@smartbit4all/ng-client 4.2.38 → 4.2.40
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/esm2022/lib/smart-client/smart-component-api-client.mjs +6 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +5 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +13 -0
- package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +1 -1
- package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +2 -1
- package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +5 -5
- package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +62 -0
- package/esm2022/lib/smart-grid/smart-grid.component.mjs +28 -5
- package/esm2022/lib/smart-map/impl/leaflet-map.mjs +80 -9
- package/esm2022/lib/smart-table/smarttable.model.mjs +3 -1
- package/esm2022/lib/smart-table/smarttable.module.mjs +7 -3
- package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +6 -5
- package/esm2022/lib/smart-table/tables/table.mjs +44 -1
- package/esm2022/lib/view-context/api/api/api.mjs +1 -1
- package/esm2022/lib/view-context/api/api/view.service.mjs +1 -1
- package/esm2022/lib/view-context/api/api.module.mjs +1 -1
- package/esm2022/lib/view-context/api/configuration.mjs +1 -1
- package/esm2022/lib/view-context/api/encoder.mjs +1 -1
- package/esm2022/lib/view-context/api/index.mjs +1 -1
- package/esm2022/lib/view-context/api/model/clipboardData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/closeResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModel.mjs +1 -1
- package/esm2022/lib/view-context/api/model/componentModelChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeEvent.mjs +1 -1
- package/esm2022/lib/view-context/api/model/dataChangeKind.mjs +1 -1
- package/esm2022/lib/view-context/api/model/deviceInfo.mjs +1 -1
- package/esm2022/lib/view-context/api/model/downloadedFile.mjs +1 -1
- package/esm2022/lib/view-context/api/model/iconPosition.mjs +1 -1
- package/esm2022/lib/view-context/api/model/imageResource.mjs +1 -1
- package/esm2022/lib/view-context/api/model/link.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOption.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageOptionType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageResult.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageTextType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/messageType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/namedValidator.mjs +1 -1
- package/esm2022/lib/view-context/api/model/openPendingData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestExecutionStat.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestTrack.mjs +1 -1
- package/esm2022/lib/view-context/api/model/serverRequestType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/statisticRecord.mjs +1 -1
- package/esm2022/lib/view-context/api/model/style.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionButtonType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionDialogDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionFeedbackType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionInputType.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionRequest.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionTooltip.mjs +1 -1
- package/esm2022/lib/view-context/api/model/uiActionUploadDescriptor.mjs +1 -1
- package/esm2022/lib/view-context/api/model/valueSet.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewApiError.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewConstraint.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContext.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextChange.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextData.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewContextUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewPlaceholder.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewState.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewStateUpdate.mjs +1 -1
- package/esm2022/lib/view-context/api/model/viewType.mjs +1 -1
- package/esm2022/lib/view-context/api/param.mjs +1 -1
- package/esm2022/lib/view-context/api/variables.mjs +1 -1
- package/fesm2022/smartbit4all-ng-client.mjs +326 -103
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-component-layout/smart-component-layout-utility.d.ts +1 -0
- package/lib/smart-grid/api/grid-api/model/gridColumnMeta.d.ts +1 -0
- package/lib/smart-grid/api/grid-api/model/gridExportDescriptor.d.ts +19 -0
- package/lib/smart-grid/api/grid-api/model/gridRow.d.ts +6 -4
- package/lib/smart-grid/api/grid-api/model/gridViewDescriptor.d.ts +2 -3
- package/lib/smart-grid/api/grid-api/model/models.d.ts +1 -0
- package/lib/smart-grid/smart-grid-toolbar-util.d.ts +9 -0
- package/lib/smart-grid/smart-grid.component.d.ts +8 -2
- package/lib/smart-map/impl/leaflet-map.d.ts +2 -0
- package/lib/smart-table/smarttable.model.d.ts +6 -0
- package/lib/smart-table/smarttable.module.d.ts +2 -1
- package/lib/smart-table/tables/table.d.ts +6 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-4.2.40.tgz +0 -0
- package/smartbit4all-ng-client-4.2.38.tgz +0 -0
|
@@ -21,6 +21,7 @@ function createLeafletMapItem(item, config) {
|
|
|
21
21
|
title: item.label,
|
|
22
22
|
markerColor: config.color,
|
|
23
23
|
draggable: config.draggable,
|
|
24
|
+
icon: getIcon(config.color),
|
|
24
25
|
})),
|
|
25
26
|
]);
|
|
26
27
|
case GeoMapItemKind.LINE:
|
|
@@ -31,6 +32,7 @@ function createLeafletMapItem(item, config) {
|
|
|
31
32
|
title: item.label,
|
|
32
33
|
color: config.color,
|
|
33
34
|
draggable: config.draggable,
|
|
35
|
+
icon: getIcon(config.color),
|
|
34
36
|
})),
|
|
35
37
|
]);
|
|
36
38
|
}
|
|
@@ -40,6 +42,7 @@ export class LeafletMap extends AbstractMap {
|
|
|
40
42
|
constructor(el, cd, zone) {
|
|
41
43
|
super(el, cd, zone, createLeafletMapItem);
|
|
42
44
|
this.offsetDistance = 0.00004;
|
|
45
|
+
this.markers = [];
|
|
43
46
|
}
|
|
44
47
|
ngAfterViewChecked() {
|
|
45
48
|
if (!this.map && this.el.nativeElement.offsetParent) {
|
|
@@ -135,6 +138,7 @@ export class LeafletMap extends AbstractMap {
|
|
|
135
138
|
if (!this.map) {
|
|
136
139
|
return;
|
|
137
140
|
}
|
|
141
|
+
this.markers = [];
|
|
138
142
|
const markerGroups = new Map();
|
|
139
143
|
toAdd.forEach((item) => {
|
|
140
144
|
if (item.record instanceof L.Marker) {
|
|
@@ -183,7 +187,16 @@ export class LeafletMap extends AbstractMap {
|
|
|
183
187
|
let group = markerGroups.get(it.record.getLatLng().lat.toFixed(6) + ',' + it.record.getLatLng().lng.toFixed(6));
|
|
184
188
|
if (group && group.length > 1) {
|
|
185
189
|
const icon = this.createNumberedIcon(group.length);
|
|
186
|
-
const
|
|
190
|
+
const label = this.createLabel(group);
|
|
191
|
+
const extraMarker = L.marker(group[0].originalLatLng, { icon });
|
|
192
|
+
if (!extraMarker._tooltip) {
|
|
193
|
+
extraMarker.bindTooltip(label, {
|
|
194
|
+
permanent: false,
|
|
195
|
+
direction: 'auto',
|
|
196
|
+
});
|
|
197
|
+
this.markers.push(extraMarker);
|
|
198
|
+
}
|
|
199
|
+
const clusterMarker = extraMarker.addTo(this.map);
|
|
187
200
|
it.record.on('mouseover', (_event) => {
|
|
188
201
|
toAdd.forEach((item, index) => {
|
|
189
202
|
if (item.record instanceof L.Marker &&
|
|
@@ -212,6 +225,9 @@ export class LeafletMap extends AbstractMap {
|
|
|
212
225
|
}
|
|
213
226
|
});
|
|
214
227
|
}
|
|
228
|
+
else {
|
|
229
|
+
this.markers.push(it.record);
|
|
230
|
+
}
|
|
215
231
|
}
|
|
216
232
|
it.record.addTo(this.map);
|
|
217
233
|
this.overlays.set(it.id, it.record);
|
|
@@ -303,15 +319,49 @@ export class LeafletMap extends AbstractMap {
|
|
|
303
319
|
}
|
|
304
320
|
toBase64() {
|
|
305
321
|
return new Promise((resolve, reject) => {
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
322
|
+
setTimeout(() => {
|
|
323
|
+
leafletImage(this.map, (err, canvas) => {
|
|
324
|
+
if (err) {
|
|
325
|
+
console.error('Leaflet image capture error', err);
|
|
326
|
+
reject(err);
|
|
327
|
+
return;
|
|
328
|
+
}
|
|
329
|
+
const ctx = canvas.getContext('2d');
|
|
330
|
+
if (!ctx) {
|
|
331
|
+
reject('No context');
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
this.markers.forEach((marker) => {
|
|
335
|
+
const tooltip = marker.getTooltip();
|
|
336
|
+
if (!tooltip) {
|
|
337
|
+
return;
|
|
338
|
+
}
|
|
339
|
+
const latLng = marker.getLatLng();
|
|
340
|
+
const point = this.map.latLngToContainerPoint(latLng);
|
|
341
|
+
const text = tooltip.getContent();
|
|
342
|
+
// Tooltip szöveg megjelenítése
|
|
343
|
+
ctx.font = 'bold 14px sans-serif';
|
|
344
|
+
ctx.fillStyle = 'black';
|
|
345
|
+
ctx.strokeStyle = 'white';
|
|
346
|
+
ctx.lineWidth = 4;
|
|
347
|
+
ctx.textAlign = 'center';
|
|
348
|
+
ctx.textBaseline = 'bottom';
|
|
349
|
+
ctx.strokeText(text, point.x, point.y + 10); // fehér kontúr
|
|
350
|
+
ctx.fillText(text, point.x, point.y + 10); // fekete szöveg
|
|
351
|
+
});
|
|
352
|
+
resolve(canvas.toDataURL('image/png'));
|
|
353
|
+
});
|
|
354
|
+
}, 300);
|
|
313
355
|
});
|
|
314
356
|
}
|
|
357
|
+
createLabel(group) {
|
|
358
|
+
let label = '';
|
|
359
|
+
group.forEach((item) => {
|
|
360
|
+
label += item._tooltip._content + ', ';
|
|
361
|
+
item._tooltip.permanent = false;
|
|
362
|
+
});
|
|
363
|
+
return label;
|
|
364
|
+
}
|
|
315
365
|
createNumberedIcon(number) {
|
|
316
366
|
const size = 35;
|
|
317
367
|
const scaleFactor = 15;
|
|
@@ -348,4 +398,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
348
398
|
type: Component,
|
|
349
399
|
args: [{ selector: 'leaflet-map', template: ` <div id="leaflet"></div>`, styles: ["#leaflet{height:720px}::ng-deep .marker-count{background-color:#0078d4;color:#fff;font-weight:700;border-radius:50%;width:30px;height:30px;line-height:30px;text-align:center;border:2px solid white;box-shadow:0 0 4px #0006}::ng-deep .custom-cluster-icon{pointer-events:auto!important}\n"] }]
|
|
350
400
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }] });
|
|
351
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvaW1wbC9sZWFmbGV0LW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsY0FBYyxFQUFrQixNQUFNLFFBQVEsQ0FBQzs7QUFXcEUsU0FBUyxvQkFBb0IsQ0FBQyxJQUFnQixFQUFFLE1BQTRCO0lBQzFFLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLEtBQUssY0FBYyxDQUFDLE1BQU07WUFDeEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2pGLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUzthQUM1QixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3pCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixTQUFTLEVBQUUsTUFBTTthQUNsQixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkYsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxjQUFjLENBQUMsT0FBTztZQUN6QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFNLENBQUMsTUFBTSxDQUFDO1lBQzlDLE9BQU8sQ0FB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QUFHLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakUsR0FBRyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDMUIsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1gsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEIsR0FBRyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDNUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBRWIsR0FBRyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDMUIsR0FBRyxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQztRQUNsQyxHQUFHLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUN6QixHQUFHLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztRQUM1QixHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUVwRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDWixPQUFPLEVBQUUsTUFBTSxDQUFDLFNBQVMsRUFBRTtZQUMzQixRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO1lBQ3RCLFVBQVUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNoQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQzVCLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBalZVLFVBQVU7bUdBQVYsVUFBVSwwRUFyQlgsMkJBQTJCOzs0RkFxQjFCLFVBQVU7a0JBdkJ0QixTQUFTOytCQUNFLGFBQWEsWUFDYiwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdDaGVja2VkLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RNYXAsIFJlY29yZFdpdGhJZCB9IGZyb20gJy4uL2Fic3RyYWN0LW1hcCc7XHJcbmltcG9ydCB7IEdlb01hcEl0ZW0sIEdlb01hcEl0ZW1LaW5kLCBHZW9NYXBWaWV3cG9ydCB9IGZyb20gJy4uL2FwaSc7XHJcbmltcG9ydCB7IENvb3JkLCBNYXBJdGVtQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL3NtYXJ0LW1hcC50eXBlcyc7XHJcblxyXG5kZWNsYXJlIHZhciBMOiBhbnk7XHJcbmRlY2xhcmUgY29uc3QgbGVhZmxldEltYWdlOiBhbnk7XHJcblxyXG5pbnRlcmZhY2UgTGVhZmxldE1hcE9wdGlvbnMge1xyXG4gIGNlbnRyZTogQXJyYXk8bnVtYmVyPjtcclxuICB6b29tOiBudW1iZXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUxlYWZsZXRNYXBJdGVtKGl0ZW06IEdlb01hcEl0ZW0sIGNvbmZpZzogTWFwSXRlbUNvbmZpZ3VyYXRpb24pOiBhbnkge1xyXG4gIHN3aXRjaCAoaXRlbS5raW5kKSB7XHJcbiAgICBjYXNlIEdlb01hcEl0ZW1LaW5kLk1BUktFUjpcclxuICAgICAgbGV0IG1hcmtlciA9IEwubWFya2VyKEwubGF0TG5nKGl0ZW0ucG9zaXRpb24hLmxhdGl0dWRlLCBpdGVtLnBvc2l0aW9uIS5sb25naXR1ZGUpLCB7XHJcbiAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICB9KS5iaW5kVG9vbHRpcChpdGVtLmxhYmVsLCB7XHJcbiAgICAgICAgcGVybWFuZW50OiBmYWxzZSxcclxuICAgICAgICBkaXJlY3Rpb246ICdhdXRvJyxcclxuICAgICAgfSk7XHJcbiAgICAgIG1hcmtlci5vcmlnaW5hbExhdExuZyA9IEwubGF0TG5nKGl0ZW0ucG9zaXRpb24hLmxhdGl0dWRlLCBpdGVtLnBvc2l0aW9uIS5sb25naXR1ZGUpOyAvL1xyXG4gICAgICByZXR1cm4gbWFya2VyO1xyXG4gICAgY2FzZSBHZW9NYXBJdGVtS2luZC5QT0xZR09OOlxyXG4gICAgICBjb25zdCBwb2x5Z29uUm91dGVQb2ludHMgPSBpdGVtLnJvdXRlIS5wb2ludHM7XHJcbiAgICAgIHJldHVybiBMLmxheWVyR3JvdXAoW1xyXG4gICAgICAgIEwucG9seWdvbihcclxuICAgICAgICAgIHBvbHlnb25Sb3V0ZVBvaW50cy5tYXAoKHApID0+IFtwLmxhdGl0dWRlLCBwLmxvbmdpdHVkZV0pLFxyXG4gICAgICAgICAgeyB0aXRsZTogaXRlbS5sYWJlbCwgY29sb3I6IGNvbmZpZy5jb2xvciB9XHJcbiAgICAgICAgKSxcclxuICAgICAgICAuLi5wb2x5Z29uUm91dGVQb2ludHMubWFwKChwKSA9PlxyXG4gICAgICAgICAgTC5tYXJrZXIoW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSwge1xyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgbWFya2VyQ29sb3I6IGNvbmZpZy5jb2xvcixcclxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApLFxyXG4gICAgICBdKTtcclxuICAgIGNhc2UgR2VvTWFwSXRlbUtpbmQuTElORTpcclxuICAgICAgY29uc3QgbGluZVJvdXRlUG9pbnRzID0gaXRlbS5yb3V0ZSEucG9pbnRzO1xyXG5cclxuICAgICAgcmV0dXJuIEwubGF5ZXJHcm91cChbXHJcbiAgICAgICAgTC5wb2x5bGluZShcclxuICAgICAgICAgIGxpbmVSb3V0ZVBvaW50cy5tYXAoKHApID0+IFtwLmxhdGl0dWRlLCBwLmxvbmdpdHVkZV0pLFxyXG4gICAgICAgICAgeyB0aXRsZTogaXRlbS5sYWJlbCwgY29sb3I6IGNvbmZpZy5jb2xvciB9XHJcbiAgICAgICAgKSxcclxuICAgICAgICAuLi5saW5lUm91dGVQb2ludHMubWFwKChwKSA9PlxyXG4gICAgICAgICAgTC5tYXJrZXIoW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSwge1xyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgY29sb3I6IGNvbmZpZy5jb2xvcixcclxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICAgICAgfSlcclxuICAgICAgICApLFxyXG4gICAgICBdKTtcclxuICB9XHJcbiAgdGhyb3cgbmV3IEVycm9yKCdGb28hJyk7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGVhZmxldC1tYXAnLFxyXG4gIHRlbXBsYXRlOiBgIDxkaXYgaWQ9XCJsZWFmbGV0XCI+PC9kaXY+YCxcclxuICBzdHlsZXM6IGBcclxuICAgICAgI2xlYWZsZXQge1xyXG4gICAgICAgICAgaGVpZ2h0OiA3MjBweDtcclxuICAgICAgfVxyXG4gICAgIDo6bmctZGVlcCAubWFya2VyLWNvdW50IHtcclxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDc4ZDQ7XHJcbiAgICAgICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgICAgICAgIHdpZHRoOiAzMHB4O1xyXG4gICAgICAgICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XHJcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCB3aGl0ZTtcclxuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCA0cHggcmdiYSgwLDAsMCwwLjQpO1xyXG4gICAgfVxyXG4gICAgIDo6bmctZGVlcCAuY3VzdG9tLWNsdXN0ZXItaWNvbiB7XHJcbiAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgfWAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMZWFmbGV0TWFwIGV4dGVuZHMgQWJzdHJhY3RNYXAgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkIHtcclxuICBvcmlnaW5hbExhdExuZzogYW55O1xyXG4gIG9mZnNldERpc3RhbmNlID0gMC4wMDAwNDtcclxuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZiwgY2Q6IENoYW5nZURldGVjdG9yUmVmLCB6b25lOiBOZ1pvbmUpIHtcclxuICAgIHN1cGVyKGVsLCBjZCwgem9uZSwgY3JlYXRlTGVhZmxldE1hcEl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1hcCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0UGFyZW50KSB7XHJcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplKCk6IHZvaWQge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY3JlYXRlTGVhZmxldE1hcE9wdGlvbnMoKTtcclxuICAgIHRoaXMubWFwID0gTC5tYXAoJ2xlYWZsZXQnLCB7IHByZWZlckNhbnZhczogdHJ1ZSB9KS5zZXRWaWV3KG9wdGlvbnMuY2VudHJlLCBvcHRpb25zLnpvb20pO1xyXG4gICAgTC50aWxlTGF5ZXIoJ2h0dHBzOi8vdGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLCB7XHJcbiAgICAgIG1heFpvb206IDE5LFxyXG4gICAgICBhdHRyaWJ1dGlvbjogJyZjb3B5OyA8YSBocmVmPVwiaHR0cDovL3d3dy5vcGVuc3RyZWV0bWFwLm9yZy9jb3B5cmlnaHRcIj5PcGVuU3RyZWV0TWFwPC9hPicsXHJcbiAgICB9KS5hZGRUbyh0aGlzLm1hcCk7XHJcblxyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zKCk7XHJcbiAgICBjb25zdCB0b0FkZDogQXJyYXk8UmVjb3JkV2l0aElkPiA9IGl0ZW1zLm1hcCgoaXQpID0+ICh7XHJcbiAgICAgIGlkOiBpdC5pZCEsXHJcbiAgICAgIHJlY29yZDogY3JlYXRlTGVhZmxldE1hcEl0ZW0oaXQsIHsgY29sb3I6ICcjMzM4OGZmJywgZHJhZ2dhYmxlOiBmYWxzZSB9KSxcclxuICAgIH0pKTtcclxuICAgIHRoaXMuaGFuZGxlSXRlbUNoYW5nZXMoW10sIHRvQWRkKTtcclxuICAgIGNvbnN0IG1vZGVsID0gdGhpcy5tb2RlbCgpO1xyXG4gICAgaWYgKG1vZGVsLnZpZXdTdGF0ZT8uZml0VG9Jbml0aWFsSXRlbXMpIHtcclxuICAgICAgY29uc3QgZGF0YXNldEJvdW5kcyA9IHRoaXMuZmluZERhdGFzZXRCb3VuZHMoKTtcclxuICAgICAgaWYgKGRhdGFzZXRCb3VuZHMpIHtcclxuICAgICAgICBjb25zdCB7IGEsIGIgfSA9IGRhdGFzZXRCb3VuZHM7XHJcbiAgICAgICAgY29uc3QgcG50QSA9IEwubGF0TG5nKGEueCwgYS55KTtcclxuICAgICAgICBjb25zdCBwbnRCID0gTC5sYXRMbmcoYi54LCBiLnkpO1xyXG4gICAgICAgIGNvbnN0IGJvdW5kcyA9IEwubGF0TG5nQm91bmRzKHBudEEsIHBudEIpO1xyXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tYXAuZml0Qm91bmRzKGJvdW5kcyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMubWFwLm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBvcyA9IGV2ZW50LmxhdGxuZztcclxuICAgICAgICB0aGlzLm9uTWFwQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBjb29yZGluYXRlczoge1xyXG4gICAgICAgICAgICBsYXRpdHVkZTogcG9zLmxhdCBhcyBudW1iZXIsXHJcbiAgICAgICAgICAgIGxvbmdpdHVkZTogcG9zLmxuZyBhcyBudW1iZXIsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAub24oJ21vdmVlbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuZ2V0Vmlld3BvcnQoKTtcclxuICAgICAgICB0aGlzLm9uTWFwRHJhZ0VuZC5lbWl0KHtcclxuICAgICAgICAgIHZpZXdwb3J0LFxyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5tYXAub24oJ3pvb21lbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMuZ2V0Vmlld3BvcnQoKTtcclxuICAgICAgICB0aGlzLm9uTWFwRHJhZ0VuZC5lbWl0KHtcclxuICAgICAgICAgIHZpZXdwb3J0LFxyXG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRWaWV3cG9ydCgpOiBHZW9NYXBWaWV3cG9ydCB7XHJcbiAgICBpZiAoIXRoaXMubWFwKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWFwIGlzIG5vdCB5ZXQgaW5pdGlhbGlzZWQhJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2VudGVyID0gdGhpcy5tYXAuZ2V0Q2VudGVyKCk7XHJcbiAgICBjb25zdCB6b29tTGV2ZWwgPSB0aGlzLm1hcC5nZXRab29tKCkgYXMgbnVtYmVyO1xyXG4gICAgY29uc3QgbGVhZmxldEJvdW5kcyA9IHRoaXMubWFwLmdldEJvdW5kcygpO1xyXG4gICAgY29uc3QgeyBsYXQ6IHN3TGF0LCBsbmc6IHN3TG5nIH0gPSBsZWFmbGV0Qm91bmRzLmdldFNvdXRoV2VzdCgpO1xyXG4gICAgY29uc3QgeyBsYXQ6IG5lTGF0LCBsbmc6IG5lTG5nIH0gPSBsZWFmbGV0Qm91bmRzLmdldE5vcnRoRWFzdCgpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGNlbnRlcjoge1xyXG4gICAgICAgIGxhdGl0dWRlOiBjZW50ZXIubGF0IGFzIG51bWJlcixcclxuICAgICAgICBsb25naXR1ZGU6IGNlbnRlci5sbmcgYXMgbnVtYmVyLFxyXG4gICAgICB9LFxyXG4gICAgICB6b29tTGV2ZWwsXHJcbiAgICAgIGJvdW5kczogW1xyXG4gICAgICAgIHsgbGF0aXR1ZGU6IHN3TGF0LCBsb25naXR1ZGU6IHN3TG5nIH0sXHJcbiAgICAgICAgeyBsYXRpdHVkZTogbmVMYXQsIGxvbmdpdHVkZTogbmVMbmcgfSxcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUxlYWZsZXRNYXBPcHRpb25zKCk6IExlYWZsZXRNYXBPcHRpb25zIHtcclxuICAgIGNvbnN0IHZpZXdwb3J0OiBHZW9NYXBWaWV3cG9ydCA9IHRoaXMubW9kZWwoKS52aWV3cG9ydCE7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjZW50cmU6IFt2aWV3cG9ydC5jZW50ZXIhLmxhdGl0dWRlLCB2aWV3cG9ydC5jZW50ZXIhLmxvbmdpdHVkZV0sXHJcbiAgICAgIHpvb206IHZpZXdwb3J0Lnpvb21MZXZlbCEsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgaGFuZGxlSXRlbUNoYW5nZXModG9SZW1vdmU6IEFycmF5PFJlY29yZFdpdGhJZD4sIHRvQWRkOiBBcnJheTxSZWNvcmRXaXRoSWQ+KTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubWFwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IG1hcmtlckdyb3VwczogTWFwPHN0cmluZywgYW55W10+ID0gbmV3IE1hcCgpO1xyXG5cclxuICAgIHRvQWRkLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKGl0ZW0ucmVjb3JkIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcclxuICAgICAgICBjb25zdCBrZXkgPVxyXG4gICAgICAgICAgaXRlbS5yZWNvcmQuZ2V0TGF0TG5nKCkubGF0LnRvRml4ZWQoNikgKyAnLCcgKyBpdGVtLnJlY29yZC5nZXRMYXRMbmcoKS5sbmcudG9GaXhlZCg2KTtcclxuICAgICAgICBpZiAoIW1hcmtlckdyb3Vwcy5nZXQoa2V5KSkge1xyXG4gICAgICAgICAgbWFya2VyR3JvdXBzLnNldChrZXksIFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFya2VyR3JvdXBzLmdldChrZXkpIS5wdXNoKGl0ZW0ucmVjb3JkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdG9SZW1vdmUuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgaXQucmVjb3JkLnJlbW92ZSgpO1xyXG4gICAgICB0aGlzLm92ZXJsYXlzLmRlbGV0ZShpdC5pZCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0b0FkZC5mb3JFYWNoKChpdCwgaW5kZXgpID0+IHtcclxuICAgICAgbGV0IHJlY29yZCA9IGl0LnJlY29yZDtcclxuICAgICAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIEwuTGF5ZXJHcm91cCkge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMocmVjb3JkLl9sYXllcnMpLmZvckVhY2goKGF0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGF0Lm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25PdmVybGF5Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBpdGVtSWQ6IGl0LmlkLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDoge1xyXG4gICAgICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgICAgICAgb3ZlcmxheTogaXQucmVjb3JkLFxyXG4gICAgICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpdC5yZWNvcmQub24oJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDoge1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5OiBpdC5yZWNvcmQsXHJcbiAgICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxldCBncm91cCA9IG1hcmtlckdyb3Vwcy5nZXQoXHJcbiAgICAgICAgICBpdC5yZWNvcmQuZ2V0TGF0TG5nKCkubGF0LnRvRml4ZWQoNikgKyAnLCcgKyBpdC5yZWNvcmQuZ2V0TGF0TG5nKCkubG5nLnRvRml4ZWQoNilcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChncm91cCAmJiBncm91cC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICBjb25zdCBpY29uID0gdGhpcy5jcmVhdGVOdW1iZXJlZEljb24oZ3JvdXAubGVuZ3RoKTtcclxuICAgICAgICAgIGNvbnN0IGNsdXN0ZXJNYXJrZXIgPSBMLm1hcmtlcihncm91cFswXS5vcmlnaW5hbExhdExuZywgeyBpY29uIH0pLmFkZFRvKHRoaXMubWFwKTtcclxuICAgICAgICAgIGl0LnJlY29yZC5vbignbW91c2VvdmVyJywgKF9ldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRvQWRkLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQgaW5zdGFuY2VvZiBMLk1hcmtlciAmJlxyXG4gICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcubGF0ID09IGl0LnJlY29yZC5vcmlnaW5hbExhdExuZy5sYXQgJiZcclxuICAgICAgICAgICAgICAgIGl0ZW0ucmVjb3JkLm9yaWdpbmFsTGF0TG5nLmxuZyA9PSBpdC5yZWNvcmQub3JpZ2luYWxMYXRMbmcubG5nXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICBpdC5yZWNvcmQuc2V0WkluZGV4T2Zmc2V0KDEwMDApO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYW5nbGUgPSAoKDM2MCAvIHRvQWRkLmxlbmd0aCkgKiBpbmRleCAqIE1hdGguUEkpIC8gMTgwO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3TGF0ID1cclxuICAgICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcubGF0ICsgdGhpcy5vZmZzZXREaXN0YW5jZSAqIE1hdGguY29zKGFuZ2xlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0xuZyA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0ucmVjb3JkLm9yaWdpbmFsTGF0TG5nLmxuZyArIHRoaXMub2Zmc2V0RGlzdGFuY2UgKiBNYXRoLnNpbihhbmdsZSk7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnJlY29yZC5zZXRMYXRMbmcoW25ld0xhdCwgbmV3TG5nXSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKHRoaXMubWFwLmhhc0xheWVyKGNsdXN0ZXJNYXJrZXIpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIoY2x1c3Rlck1hcmtlcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgaXQucmVjb3JkLm9uKCdtb3VzZW91dCcsIChfZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0b0FkZC5mb3JFYWNoKChpdGVtLCBfaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoaXRlbS5yZWNvcmQgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xyXG4gICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQuc2V0TGF0TG5nKGl0ZW0ucmVjb3JkLm9yaWdpbmFsTGF0TG5nKTtcclxuICAgICAgICAgICAgICAgIGl0LnJlY29yZC5zZXRaSW5kZXhPZmZzZXQoMCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLm1hcC5oYXNMYXllcihjbHVzdGVyTWFya2VyKSkge1xyXG4gICAgICAgICAgICAgIGNsdXN0ZXJNYXJrZXIuYWRkVG8odGhpcy5tYXApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaXQucmVjb3JkLmFkZFRvKHRoaXMubWFwKTtcclxuICAgICAgdGhpcy5vdmVybGF5cy5zZXQoaXQuaWQsIGl0LnJlY29yZCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgb3ZlcnJpZGUgaGFuZGxlRWRpdGluZ0l0ZW1DaGFuZ2VzKFxyXG4gICAgdG9SZW1vdmU6IEFycmF5PFJlY29yZFdpdGhJZD4sXHJcbiAgICB0b0FkZDogQXJyYXk8UmVjb3JkV2l0aElkPlxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1hcCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdG9SZW1vdmUuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgaXQucmVjb3JkLnJlbW92ZSgpO1xyXG4gICAgICB0aGlzLmVkaXRpbmdPdmVybGF5cy5kZWxldGUoaXQuaWQpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdG9BZGQuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgbGV0IHJlY29yZCA9IGl0LnJlY29yZDtcclxuICAgICAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIEwuTGF5ZXJHcm91cCkge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMocmVjb3JkLl9sYXllcnMpLmZvckVhY2goKGF0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGF0Lm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25FZGl0aW5nT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgaXRlbUlkOiBpdC5pZCxcclxuICAgICAgICAgICAgICAgIGNvb3JkOiB7XHJcbiAgICAgICAgICAgICAgICAgIHg6IGV2ZW50LmxhdGxuZy5sbmcsXHJcbiAgICAgICAgICAgICAgICAgIHk6IGV2ZW50LmxhdGxuZy5sYXQsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYXQub24oJ2RyYWdzdGFydCcsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxMYXRMbmcgPSBldmVudC50YXJnZXQuZ2V0TGF0TG5nKCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGF0Lm9uKCdkcmFnZW5kJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkVkaXRpbmdPdmVybGF5RHJhZy5lbWl0KHtcclxuICAgICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgICBzdGFydFBvc2l0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgIHg6IHRoaXMub3JpZ2luYWxMYXRMbmcubG5nLFxyXG4gICAgICAgICAgICAgICAgICB5OiB0aGlzLm9yaWdpbmFsTGF0TG5nLmxhdCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBkcmFnVG86IHtcclxuICAgICAgICAgICAgICAgICAgeDogZXZlbnQudGFyZ2V0LmdldExhdExuZygpLmxuZyxcclxuICAgICAgICAgICAgICAgICAgeTogZXZlbnQudGFyZ2V0LmdldExhdExuZygpLmxhdCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm9yaWdpbmFsTGF0TG5nID0gbnVsbDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGl0LnJlY29yZC5vbignY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25FZGl0aW5nT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgY29vcmQ6IHtcclxuICAgICAgICAgICAgICAgIHg6IGV2ZW50LmxhdGxuZy5sbmcsXHJcbiAgICAgICAgICAgICAgICB5OiBldmVudC5sYXRsbmcubGF0LFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGl0LnJlY29yZC5hZGRUbyh0aGlzLm1hcCk7XHJcbiAgICAgIHRoaXMuZWRpdGluZ092ZXJsYXlzLnNldChpdC5pZCwgaXQucmVjb3JkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRGF0YXNldEJvdW5kcygpOiB7IGE6IENvb3JkOyBiOiBDb29yZCB9IHwgbnVsbCB7XHJcbiAgICBjb25zdCBpdGVtczogQXJyYXk8Q29vcmQ+ID0gdGhpcy5pdGVtcygpXHJcbiAgICAgIC5mbGF0TWFwKChpdCkgPT4gKGl0LnBvc2l0aW9uID8gW2l0LnBvc2l0aW9uXSA6IGl0LnJvdXRlID8gaXQucm91dGUucG9pbnRzIDogW10pKVxyXG4gICAgICAubWFwKChpdCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IHg6IGl0LmxhdGl0dWRlLCB5OiBpdC5sb25naXR1ZGUgfTtcclxuICAgICAgfSk7XHJcbiAgICBpZiAoIWl0ZW1zIHx8IGl0ZW1zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc291dGh3ZXN0OiBDb29yZCA9IHsgeDogaXRlbXNbMF0ueCwgeTogaXRlbXNbMF0ueSB9O1xyXG4gICAgbGV0IG5vcnRoZWFzdDogQ29vcmQgPSB7IHg6IGl0ZW1zWzBdLngsIHk6IGl0ZW1zWzBdLnkgfTtcclxuXHJcbiAgICBpdGVtcy5mb3JFYWNoKChpdCkgPT4ge1xyXG4gICAgICBpZiAoaXQueCA8IHNvdXRod2VzdC54KSBzb3V0aHdlc3QueCA9IGl0Lng7XHJcbiAgICAgIGlmIChpdC55IDwgc291dGh3ZXN0LnkpIHNvdXRod2VzdC55ID0gaXQueTtcclxuXHJcbiAgICAgIGlmIChpdC54ID4gbm9ydGhlYXN0LngpIG5vcnRoZWFzdC54ID0gaXQueDtcclxuICAgICAgaWYgKGl0LnkgPiBub3J0aGVhc3QueSkgbm9ydGhlYXN0LnkgPSBpdC55O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHsgYTogc291dGh3ZXN0LCBiOiBub3J0aGVhc3QgfTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHRvQmFzZTY0KCk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBsZWFmbGV0SW1hZ2UodGhpcy5tYXAsIChlcnI6IGFueSwgY2FudmFzOiBIVE1MQ2FudmFzRWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGlmIChlcnIpIHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0xlYWZsZXQgaW1hZ2UgY2FwdHVyZSBlcnJvcicsIGVycik7XHJcbiAgICAgICAgICByZWplY3QoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzb2x2ZShjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVOdW1iZXJlZEljb24obnVtYmVyOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHNpemUgPSAzNTtcclxuICAgIGNvbnN0IHNjYWxlRmFjdG9yID0gMTU7XHJcbiAgICBjb25zdCBzY2FsZWRTaXplID0gc2l6ZSAqIHNjYWxlRmFjdG9yO1xyXG5cclxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xyXG4gICAgY2FudmFzLndpZHRoID0gc2NhbGVkU2l6ZTtcclxuICAgIGNhbnZhcy5oZWlnaHQgPSBzY2FsZWRTaXplO1xyXG4gICAgY2FudmFzLnN0eWxlLndpZHRoID0gY2FudmFzLnN0eWxlLmhlaWdodCA9ICczNXB4JztcclxuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcclxuICAgIGN0eC5zY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpO1xyXG5cclxuICAgIGN0eC5iZWdpblBhdGgoKTtcclxuICAgIGN0eC5hcmMoc2l6ZSAvIDIsIHNpemUgLyAyLCBzaXplIC8gMiAtIDIsIDAsIDIgKiBNYXRoLlBJLCBmYWxzZSk7XHJcbiAgICBjdHguZmlsbFN0eWxlID0gJyMwMDc4ZDQnO1xyXG4gICAgY3R4LmZpbGwoKTtcclxuICAgIGN0eC5saW5lV2lkdGggPSAyO1xyXG4gICAgY3R4LnN0cm9rZVN0eWxlID0gJyNmZmZmZmYnO1xyXG4gICAgY3R4LnN0cm9rZSgpO1xyXG5cclxuICAgIGN0eC5maWxsU3R5bGUgPSAnI2ZmZmZmZic7XHJcbiAgICBjdHguZm9udCA9ICdib2xkIDE2cHggc2Fucy1zZXJpZic7XHJcbiAgICBjdHgudGV4dEFsaWduID0gJ2NlbnRlcic7XHJcbiAgICBjdHgudGV4dEJhc2VsaW5lID0gJ21pZGRsZSc7XHJcbiAgICBjdHguZmlsbFRleHQobnVtYmVyLnRvU3RyaW5nKCksIHNpemUgLyAyLCBzaXplIC8gMik7XHJcblxyXG4gICAgcmV0dXJuIEwuaWNvbih7XHJcbiAgICAgIGljb25Vcmw6IGNhbnZhcy50b0RhdGFVUkwoKSxcclxuICAgICAgaWNvblNpemU6IFtzaXplLCBzaXplXSxcclxuICAgICAgaWNvbkFuY2hvcjogW3NpemUgLyAyLCBzaXplIC8gMl0sXHJcbiAgICAgIHBvcHVwQW5jaG9yOiBbMCwgLXNpemUgLyAyXSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
401
|
+
function getIcon(color) {
|
|
402
|
+
const size = 12;
|
|
403
|
+
const scaleFactor = 12;
|
|
404
|
+
const scaledSize = size * scaleFactor;
|
|
405
|
+
const canvas = document.createElement('canvas');
|
|
406
|
+
canvas.width = scaledSize;
|
|
407
|
+
canvas.height = scaledSize;
|
|
408
|
+
canvas.style.width = canvas.style.height = `${size}px`;
|
|
409
|
+
const ctx = canvas.getContext('2d');
|
|
410
|
+
ctx.scale(scaleFactor, scaleFactor);
|
|
411
|
+
ctx.beginPath();
|
|
412
|
+
ctx.arc(size / 2, size / 2, size / 2, 0, 2 * Math.PI, false);
|
|
413
|
+
ctx.fillStyle = color;
|
|
414
|
+
ctx.fill();
|
|
415
|
+
return L.icon({
|
|
416
|
+
iconUrl: canvas.toDataURL(),
|
|
417
|
+
iconSize: [size, size],
|
|
418
|
+
iconAnchor: [size / 2, size / 2],
|
|
419
|
+
popupAnchor: [0, -size / 2],
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZmxldC1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC1tYXAvaW1wbC9sZWFmbGV0LW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVDLFNBQVMsRUFBc0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RCxPQUFPLEVBQWMsY0FBYyxFQUFrQixNQUFNLFFBQVEsQ0FBQzs7QUFZcEUsU0FBUyxvQkFBb0IsQ0FBQyxJQUFnQixFQUFFLE1BQTRCO0lBQzFFLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLEtBQUssY0FBYyxDQUFDLE1BQU07WUFDeEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ2pGLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUzthQUM1QixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ3pCLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixTQUFTLEVBQUUsTUFBTTthQUNsQixDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkYsT0FBTyxNQUFNLENBQUM7UUFDaEIsS0FBSyxjQUFjLENBQUMsT0FBTztZQUN6QixNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFNLENBQUMsTUFBTSxDQUFDO1lBQzlDLE9BQU8sQ0FB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TUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNoRCxNQUFNLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQztJQUMxQixNQUFNLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztJQUMzQixNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDO0lBQ3ZELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFFLENBQUM7SUFDckMsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFcEMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2hCLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdELEdBQUcsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNaLE9BQU8sRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQzNCLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7UUFDdEIsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7S0FDNUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdE1hcCwgUmVjb3JkV2l0aElkIH0gZnJvbSAnLi4vYWJzdHJhY3QtbWFwJztcclxuaW1wb3J0IHsgR2VvTWFwSXRlbSwgR2VvTWFwSXRlbUtpbmQsIEdlb01hcFZpZXdwb3J0IH0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgQ29vcmQsIE1hcEl0ZW1Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vc21hcnQtbWFwLnR5cGVzJztcclxuaW1wb3J0IHsgSSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcblxyXG5kZWNsYXJlIHZhciBMOiBhbnk7XHJcbmRlY2xhcmUgY29uc3QgbGVhZmxldEltYWdlOiBhbnk7XHJcblxyXG5pbnRlcmZhY2UgTGVhZmxldE1hcE9wdGlvbnMge1xyXG4gIGNlbnRyZTogQXJyYXk8bnVtYmVyPjtcclxuICB6b29tOiBudW1iZXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUxlYWZsZXRNYXBJdGVtKGl0ZW06IEdlb01hcEl0ZW0sIGNvbmZpZzogTWFwSXRlbUNvbmZpZ3VyYXRpb24pOiBhbnkge1xyXG4gIHN3aXRjaCAoaXRlbS5raW5kKSB7XHJcbiAgICBjYXNlIEdlb01hcEl0ZW1LaW5kLk1BUktFUjpcclxuICAgICAgbGV0IG1hcmtlciA9IEwubWFya2VyKEwubGF0TG5nKGl0ZW0ucG9zaXRpb24hLmxhdGl0dWRlLCBpdGVtLnBvc2l0aW9uIS5sb25naXR1ZGUpLCB7XHJcbiAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICB9KS5iaW5kVG9vbHRpcChpdGVtLmxhYmVsLCB7XHJcbiAgICAgICAgcGVybWFuZW50OiBmYWxzZSxcclxuICAgICAgICBkaXJlY3Rpb246ICdhdXRvJyxcclxuICAgICAgfSk7XHJcbiAgICAgIG1hcmtlci5vcmlnaW5hbExhdExuZyA9IEwubGF0TG5nKGl0ZW0ucG9zaXRpb24hLmxhdGl0dWRlLCBpdGVtLnBvc2l0aW9uIS5sb25naXR1ZGUpOyAvL1xyXG4gICAgICByZXR1cm4gbWFya2VyO1xyXG4gICAgY2FzZSBHZW9NYXBJdGVtS2luZC5QT0xZR09OOlxyXG4gICAgICBjb25zdCBwb2x5Z29uUm91dGVQb2ludHMgPSBpdGVtLnJvdXRlIS5wb2ludHM7XHJcbiAgICAgIHJldHVybiBMLmxheWVyR3JvdXAoW1xyXG4gICAgICAgIEwucG9seWdvbihcclxuICAgICAgICAgIHBvbHlnb25Sb3V0ZVBvaW50cy5tYXAoKHApID0+IFtwLmxhdGl0dWRlLCBwLmxvbmdpdHVkZV0pLFxyXG4gICAgICAgICAgeyB0aXRsZTogaXRlbS5sYWJlbCwgY29sb3I6IGNvbmZpZy5jb2xvciB9XHJcbiAgICAgICAgKSxcclxuICAgICAgICAuLi5wb2x5Z29uUm91dGVQb2ludHMubWFwKChwKSA9PlxyXG4gICAgICAgICAgTC5tYXJrZXIoW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSwge1xyXG4gICAgICAgICAgICB0aXRsZTogaXRlbS5sYWJlbCxcclxuICAgICAgICAgICAgbWFya2VyQ29sb3I6IGNvbmZpZy5jb2xvcixcclxuICAgICAgICAgICAgZHJhZ2dhYmxlOiBjb25maWcuZHJhZ2dhYmxlLFxyXG4gICAgICAgICAgICBpY29uOiBnZXRJY29uKGNvbmZpZy5jb2xvciksXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICksXHJcbiAgICAgIF0pO1xyXG4gICAgY2FzZSBHZW9NYXBJdGVtS2luZC5MSU5FOlxyXG4gICAgICBjb25zdCBsaW5lUm91dGVQb2ludHMgPSBpdGVtLnJvdXRlIS5wb2ludHM7XHJcblxyXG4gICAgICByZXR1cm4gTC5sYXllckdyb3VwKFtcclxuICAgICAgICBMLnBvbHlsaW5lKFxyXG4gICAgICAgICAgbGluZVJvdXRlUG9pbnRzLm1hcCgocCkgPT4gW3AubGF0aXR1ZGUsIHAubG9uZ2l0dWRlXSksXHJcbiAgICAgICAgICB7IHRpdGxlOiBpdGVtLmxhYmVsLCBjb2xvcjogY29uZmlnLmNvbG9yIH1cclxuICAgICAgICApLFxyXG4gICAgICAgIC4uLmxpbmVSb3V0ZVBvaW50cy5tYXAoKHApID0+XHJcbiAgICAgICAgICBMLm1hcmtlcihbcC5sYXRpdHVkZSwgcC5sb25naXR1ZGVdLCB7XHJcbiAgICAgICAgICAgIHRpdGxlOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICBjb2xvcjogY29uZmlnLmNvbG9yLFxyXG4gICAgICAgICAgICBkcmFnZ2FibGU6IGNvbmZpZy5kcmFnZ2FibGUsXHJcbiAgICAgICAgICAgIGljb246IGdldEljb24oY29uZmlnLmNvbG9yKSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKSxcclxuICAgICAgXSk7XHJcbiAgfVxyXG4gIHRocm93IG5ldyBFcnJvcignRm9vIScpO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xlYWZsZXQtbWFwJyxcclxuICB0ZW1wbGF0ZTogYCA8ZGl2IGlkPVwibGVhZmxldFwiPjwvZGl2PmAsXHJcbiAgc3R5bGVzOiBgXHJcbiAgICAgICNsZWFmbGV0IHtcclxuICAgICAgICAgIGhlaWdodDogNzIwcHg7XHJcbiAgICAgIH1cclxuICAgICA6Om5nLWRlZXAgLm1hcmtlci1jb3VudCB7XHJcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA3OGQ0O1xyXG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICAgICAgICB3aWR0aDogMzBweDtcclxuICAgICAgICAgIGhlaWdodDogMzBweDtcclxuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAzMHB4O1xyXG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICAgICAgYm9yZGVyOiAycHggc29saWQgd2hpdGU7XHJcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgNHB4IHJnYmEoMCwwLDAsMC40KTtcclxuICAgIH1cclxuICAgICA6Om5nLWRlZXAgLmN1c3RvbS1jbHVzdGVyLWljb24ge1xyXG4gICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG8gIWltcG9ydGFudDtcclxuICAgIH1gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGVhZmxldE1hcCBleHRlbmRzIEFic3RyYWN0TWFwIGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgb3JpZ2luYWxMYXRMbmc6IGFueTtcclxuICBvZmZzZXREaXN0YW5jZSA9IDAuMDAwMDQ7XHJcbiAgbWFya2VyczogYW55ID0gW107XHJcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYsIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgem9uZTogTmdab25lKSB7XHJcbiAgICBzdXBlcihlbCwgY2QsIHpvbmUsIGNyZWF0ZUxlYWZsZXRNYXBJdGVtKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5tYXAgJiYgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldFBhcmVudCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNyZWF0ZUxlYWZsZXRNYXBPcHRpb25zKCk7XHJcbiAgICB0aGlzLm1hcCA9IEwubWFwKCdsZWFmbGV0JywgeyBwcmVmZXJDYW52YXM6IHRydWUgfSkuc2V0VmlldyhvcHRpb25zLmNlbnRyZSwgb3B0aW9ucy56b29tKTtcclxuICAgIEwudGlsZUxheWVyKCdodHRwczovL3RpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywge1xyXG4gICAgICBtYXhab29tOiAxOSxcclxuICAgICAgYXR0cmlidXRpb246ICcmY29weTsgPGEgaHJlZj1cImh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCI+T3BlblN0cmVldE1hcDwvYT4nLFxyXG4gICAgfSkuYWRkVG8odGhpcy5tYXApO1xyXG5cclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcygpO1xyXG4gICAgY29uc3QgdG9BZGQ6IEFycmF5PFJlY29yZFdpdGhJZD4gPSBpdGVtcy5tYXAoKGl0KSA9PiAoe1xyXG4gICAgICBpZDogaXQuaWQhLFxyXG4gICAgICByZWNvcmQ6IGNyZWF0ZUxlYWZsZXRNYXBJdGVtKGl0LCB7IGNvbG9yOiAnIzMzODhmZicsIGRyYWdnYWJsZTogZmFsc2UgfSksXHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLmhhbmRsZUl0ZW1DaGFuZ2VzKFtdLCB0b0FkZCk7XHJcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMubW9kZWwoKTtcclxuICAgIGlmIChtb2RlbC52aWV3U3RhdGU/LmZpdFRvSW5pdGlhbEl0ZW1zKSB7XHJcbiAgICAgIGNvbnN0IGRhdGFzZXRCb3VuZHMgPSB0aGlzLmZpbmREYXRhc2V0Qm91bmRzKCk7XHJcbiAgICAgIGlmIChkYXRhc2V0Qm91bmRzKSB7XHJcbiAgICAgICAgY29uc3QgeyBhLCBiIH0gPSBkYXRhc2V0Qm91bmRzO1xyXG4gICAgICAgIGNvbnN0IHBudEEgPSBMLmxhdExuZyhhLngsIGEueSk7XHJcbiAgICAgICAgY29uc3QgcG50QiA9IEwubGF0TG5nKGIueCwgYi55KTtcclxuICAgICAgICBjb25zdCBib3VuZHMgPSBMLmxhdExuZ0JvdW5kcyhwbnRBLCBwbnRCKTtcclxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMubWFwLmZpdEJvdW5kcyhib3VuZHMpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLm1hcC5vbignY2xpY2snLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICBjb25zdCBwb3MgPSBldmVudC5sYXRsbmc7XHJcbiAgICAgICAgdGhpcy5vbk1hcENsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgY29vcmRpbmF0ZXM6IHtcclxuICAgICAgICAgICAgbGF0aXR1ZGU6IHBvcy5sYXQgYXMgbnVtYmVyLFxyXG4gICAgICAgICAgICBsb25naXR1ZGU6IHBvcy5sbmcgYXMgbnVtYmVyLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubWFwLm9uKCdtb3ZlZW5kJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLmdldFZpZXdwb3J0KCk7XHJcbiAgICAgICAgdGhpcy5vbk1hcERyYWdFbmQuZW1pdCh7XHJcbiAgICAgICAgICB2aWV3cG9ydCxcclxuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubWFwLm9uKCd6b29tZW5kJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLmdldFZpZXdwb3J0KCk7XHJcbiAgICAgICAgdGhpcy5vbk1hcERyYWdFbmQuZW1pdCh7XHJcbiAgICAgICAgICB2aWV3cG9ydCxcclxuICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vmlld3BvcnQoKTogR2VvTWFwVmlld3BvcnQge1xyXG4gICAgaWYgKCF0aGlzLm1hcCkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hcCBpcyBub3QgeWV0IGluaXRpYWxpc2VkIScpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNlbnRlciA9IHRoaXMubWFwLmdldENlbnRlcigpO1xyXG4gICAgY29uc3Qgem9vbUxldmVsID0gdGhpcy5tYXAuZ2V0Wm9vbSgpIGFzIG51bWJlcjtcclxuICAgIGNvbnN0IGxlYWZsZXRCb3VuZHMgPSB0aGlzLm1hcC5nZXRCb3VuZHMoKTtcclxuICAgIGNvbnN0IHsgbGF0OiBzd0xhdCwgbG5nOiBzd0xuZyB9ID0gbGVhZmxldEJvdW5kcy5nZXRTb3V0aFdlc3QoKTtcclxuICAgIGNvbnN0IHsgbGF0OiBuZUxhdCwgbG5nOiBuZUxuZyB9ID0gbGVhZmxldEJvdW5kcy5nZXROb3J0aEVhc3QoKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjZW50ZXI6IHtcclxuICAgICAgICBsYXRpdHVkZTogY2VudGVyLmxhdCBhcyBudW1iZXIsXHJcbiAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXIubG5nIGFzIG51bWJlcixcclxuICAgICAgfSxcclxuICAgICAgem9vbUxldmVsLFxyXG4gICAgICBib3VuZHM6IFtcclxuICAgICAgICB7IGxhdGl0dWRlOiBzd0xhdCwgbG9uZ2l0dWRlOiBzd0xuZyB9LFxyXG4gICAgICAgIHsgbGF0aXR1ZGU6IG5lTGF0LCBsb25naXR1ZGU6IG5lTG5nIH0sXHJcbiAgICAgIF0sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVMZWFmbGV0TWFwT3B0aW9ucygpOiBMZWFmbGV0TWFwT3B0aW9ucyB7XHJcbiAgICBjb25zdCB2aWV3cG9ydDogR2VvTWFwVmlld3BvcnQgPSB0aGlzLm1vZGVsKCkudmlld3BvcnQhO1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY2VudHJlOiBbdmlld3BvcnQuY2VudGVyIS5sYXRpdHVkZSwgdmlld3BvcnQuY2VudGVyIS5sb25naXR1ZGVdLFxyXG4gICAgICB6b29tOiB2aWV3cG9ydC56b29tTGV2ZWwhLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIGhhbmRsZUl0ZW1DaGFuZ2VzKHRvUmVtb3ZlOiBBcnJheTxSZWNvcmRXaXRoSWQ+LCB0b0FkZDogQXJyYXk8UmVjb3JkV2l0aElkPik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1hcCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLm1hcmtlcnMgPSBbXTtcclxuICAgIGNvbnN0IG1hcmtlckdyb3VwczogTWFwPHN0cmluZywgYW55W10+ID0gbmV3IE1hcCgpO1xyXG5cclxuICAgIHRvQWRkLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaWYgKGl0ZW0ucmVjb3JkIGluc3RhbmNlb2YgTC5NYXJrZXIpIHtcclxuICAgICAgICBjb25zdCBrZXkgPVxyXG4gICAgICAgICAgaXRlbS5yZWNvcmQuZ2V0TGF0TG5nKCkubGF0LnRvRml4ZWQoNikgKyAnLCcgKyBpdGVtLnJlY29yZC5nZXRMYXRMbmcoKS5sbmcudG9GaXhlZCg2KTtcclxuICAgICAgICBpZiAoIW1hcmtlckdyb3Vwcy5nZXQoa2V5KSkge1xyXG4gICAgICAgICAgbWFya2VyR3JvdXBzLnNldChrZXksIFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbWFya2VyR3JvdXBzLmdldChrZXkpIS5wdXNoKGl0ZW0ucmVjb3JkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdG9SZW1vdmUuZm9yRWFjaCgoaXQpID0+IHtcclxuICAgICAgaXQucmVjb3JkLnJlbW92ZSgpO1xyXG4gICAgICB0aGlzLm92ZXJsYXlzLmRlbGV0ZShpdC5pZCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0b0FkZC5mb3JFYWNoKChpdCwgaW5kZXgpID0+IHtcclxuICAgICAgbGV0IHJlY29yZCA9IGl0LnJlY29yZDtcclxuICAgICAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIEwuTGF5ZXJHcm91cCkge1xyXG4gICAgICAgIE9iamVjdC52YWx1ZXMocmVjb3JkLl9sYXllcnMpLmZvckVhY2goKGF0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGF0Lm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMub25PdmVybGF5Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBpdGVtSWQ6IGl0LmlkLFxyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDoge1xyXG4gICAgICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcclxuICAgICAgICAgICAgICAgICAgb3ZlcmxheTogaXQucmVjb3JkLFxyXG4gICAgICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpdC5yZWNvcmQub24oJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uT3ZlcmxheUNsaWNrLmVtaXQoe1xyXG4gICAgICAgICAgICAgIGl0ZW1JZDogaXQuaWQsXHJcbiAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDoge1xyXG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXHJcbiAgICAgICAgICAgICAgICBvdmVybGF5OiBpdC5yZWNvcmQsXHJcbiAgICAgICAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGxldCBncm91cCA9IG1hcmtlckdyb3Vwcy5nZXQoXHJcbiAgICAgICAgICBpdC5yZWNvcmQuZ2V0TGF0TG5nKCkubGF0LnRvRml4ZWQoNikgKyAnLCcgKyBpdC5yZWNvcmQuZ2V0TGF0TG5nKCkubG5nLnRvRml4ZWQoNilcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChncm91cCAmJiBncm91cC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICBjb25zdCBpY29uID0gdGhpcy5jcmVhdGVOdW1iZXJlZEljb24oZ3JvdXAubGVuZ3RoKTtcclxuICAgICAgICAgIGNvbnN0IGxhYmVsID0gdGhpcy5jcmVhdGVMYWJlbChncm91cCk7XHJcbiAgICAgICAgICBjb25zdCBleHRyYU1hcmtlciA9IEwubWFya2VyKGdyb3VwWzBdLm9yaWdpbmFsTGF0TG5nLCB7IGljb24gfSk7XHJcblxyXG4gICAgICAgICAgaWYgKCFleHRyYU1hcmtlci5fdG9vbHRpcCkge1xyXG4gICAgICAgICAgICBleHRyYU1hcmtlci5iaW5kVG9vbHRpcChsYWJlbCwge1xyXG4gICAgICAgICAgICAgIHBlcm1hbmVudDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnYXV0bycsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLm1hcmtlcnMucHVzaChleHRyYU1hcmtlcik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCBjbHVzdGVyTWFya2VyID0gZXh0cmFNYXJrZXIuYWRkVG8odGhpcy5tYXApO1xyXG4gICAgICAgICAgaXQucmVjb3JkLm9uKCdtb3VzZW92ZXInLCAoX2V2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdG9BZGQuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBpdGVtLnJlY29yZCBpbnN0YW5jZW9mIEwuTWFya2VyICYmXHJcbiAgICAgICAgICAgICAgICBpdGVtLnJlY29yZC5vcmlnaW5hbExhdExuZy5sYXQgPT0gaXQucmVjb3JkLm9yaWdpbmFsTGF0TG5nLmxhdCAmJlxyXG4gICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcubG5nID09IGl0LnJlY29yZC5vcmlnaW5hbExhdExuZy5sbmdcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGl0LnJlY29yZC5zZXRaSW5kZXhPZmZzZXQoMTAwMCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhbmdsZSA9ICgoMzYwIC8gdG9BZGQubGVuZ3RoKSAqIGluZGV4ICogTWF0aC5QSSkgLyAxODA7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdMYXQgPVxyXG4gICAgICAgICAgICAgICAgICBpdGVtLnJlY29yZC5vcmlnaW5hbExhdExuZy5sYXQgKyB0aGlzLm9mZnNldERpc3RhbmNlICogTWF0aC5jb3MoYW5nbGUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3TG5nID1cclxuICAgICAgICAgICAgICAgICAgaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcubG5nICsgdGhpcy5vZmZzZXREaXN0YW5jZSAqIE1hdGguc2luKGFuZ2xlKTtcclxuICAgICAgICAgICAgICAgIGl0ZW0ucmVjb3JkLnNldExhdExuZyhbbmV3TGF0LCBuZXdMbmddKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tYXAuaGFzTGF5ZXIoY2x1c3Rlck1hcmtlcikpIHtcclxuICAgICAgICAgICAgICB0aGlzLm1hcC5yZW1vdmVMYXllcihjbHVzdGVyTWFya2VyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpdC5yZWNvcmQub24oJ21vdXNlb3V0JywgKF9ldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRvQWRkLmZvckVhY2goKGl0ZW0sIF9pbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChpdGVtLnJlY29yZCBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XHJcbiAgICAgICAgICAgICAgICBpdGVtLnJlY29yZC5zZXRMYXRMbmcoaXRlbS5yZWNvcmQub3JpZ2luYWxMYXRMbmcpO1xyXG4gICAgICAgICAgICAgICAgaXQucmVjb3JkLnNldFpJbmRleE9mZnNldCgwKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMubWFwLmhhc0xheWVyKGNsdXN0ZXJNYXJrZXIpKSB7XHJcbiAgICAgICAgICAgICAgY2x1c3Rlck1hcmtlci5hZGRUbyh0aGlzLm1hcCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1hcmtlcnMucHVzaChpdC5yZWNvcmQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpdC5yZWNvcmQuYWRkVG8odGhpcy5tYXApO1xyXG4gICAgICB0aGlzLm92ZXJsYXlzLnNldChpdC5pZCwgaXQucmVjb3JkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBvdmVycmlkZSBoYW5kbGVFZGl0aW5nSXRlbUNoYW5nZXMoXHJcbiAgICB0b1JlbW92ZTogQXJyYXk8UmVjb3JkV2l0aElkPixcclxuICAgIHRvQWRkOiBBcnJheTxSZWNvcmRXaXRoSWQ+XHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubWFwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0b1JlbW92ZS5mb3JFYWNoKChpdCkgPT4ge1xyXG4gICAgICBpdC5yZWNvcmQucmVtb3ZlKCk7XHJcbiAgICAgIHRoaXMuZWRpdGluZ092ZXJsYXlzLmRlbGV0ZShpdC5pZCk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0b0FkZC5mb3JFYWNoKChpdCkgPT4ge1xyXG4gICAgICBsZXQgcmVjb3JkID0gaXQucmVjb3JkO1xyXG4gICAgICBpZiAocmVjb3JkIGluc3RhbmNlb2YgTC5MYXllckdyb3VwKSB7XHJcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhyZWNvcmQuX2xheWVycykuZm9yRWFjaCgoYXQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgYXQub24oJ2NsaWNrJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vbkVkaXRpbmdPdmVybGF5Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgICAgICBpdGVtSWQ6IGl0LmlkLFxyXG4gICAgICAgICAgICAgICAgY29vcmQ6IHtcclxuICAgICAgICAgICAgICAgICAgeDogZXZlbnQubGF0bG5nLmxuZyxcclxuICAgICAgICAgICAgICAgICAgeTogZXZlbnQubGF0bG5nLmxhdCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBhdC5vbignZHJhZ3N0YXJ0JywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vcmlnaW5hbExhdExuZyA9IGV2ZW50LnRhcmdldC5nZXRMYXRMbmcoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYXQub24oJ2RyYWdlbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLm9uRWRpdGluZ092ZXJsYXlEcmFnLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgaXRlbUlkOiBpdC5pZCxcclxuICAgICAgICAgICAgICAgIHN0YXJ0UG9zaXRpb246IHtcclxuICAgICAgICAgICAgICAgICAgeDogdGhpcy5vcmlnaW5hbExhdExuZy5sbmcsXHJcbiAgICAgICAgICAgICAgICAgIHk6IHRoaXMub3JpZ2luYWxMYXRMbmcubGF0LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGRyYWdUbzoge1xyXG4gICAgICAgICAgICAgICAgICB4OiBldmVudC50YXJnZXQuZ2V0TGF0TG5nKCkubG5nLFxyXG4gICAgICAgICAgICAgICAgICB5OiBldmVudC50YXJnZXQuZ2V0TGF0TG5nKCkubGF0LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMub3JpZ2luYWxMYXRMbmcgPSBudWxsO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXQucmVjb3JkLm9uKCdjbGljaycsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vbkVkaXRpbmdPdmVybGF5Q2xpY2suZW1pdCh7XHJcbiAgICAgICAgICAgICAgaXRlbUlkOiBpdC5pZCxcclxuICAgICAgICAgICAgICBjb29yZDoge1xyXG4gICAgICAgICAgICAgICAgeDogZXZlbnQubGF0bG5nLmxuZyxcclxuICAgICAgICAgICAgICAgIHk6IGV2ZW50LmxhdGxuZy5sYXQsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaXQucmVjb3JkLmFkZFRvKHRoaXMubWFwKTtcclxuICAgICAgdGhpcy5lZGl0aW5nT3ZlcmxheXMuc2V0KGl0LmlkLCBpdC5yZWNvcmQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmREYXRhc2V0Qm91bmRzKCk6IHsgYTogQ29vcmQ7IGI6IENvb3JkIH0gfCBudWxsIHtcclxuICAgIGNvbnN0IGl0ZW1zOiBBcnJheTxDb29yZD4gPSB0aGlzLml0ZW1zKClcclxuICAgICAgLmZsYXRNYXAoKGl0KSA9PiAoaXQucG9zaXRpb24gPyBbaXQucG9zaXRpb25dIDogaXQucm91dGUgPyBpdC5yb3V0ZS5wb2ludHMgOiBbXSkpXHJcbiAgICAgIC5tYXAoKGl0KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgeDogaXQubGF0aXR1ZGUsIHk6IGl0LmxvbmdpdHVkZSB9O1xyXG4gICAgICB9KTtcclxuICAgIGlmICghaXRlbXMgfHwgaXRlbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzb3V0aHdlc3Q6IENvb3JkID0geyB4OiBpdGVtc1swXS54LCB5OiBpdGVtc1swXS55IH07XHJcbiAgICBsZXQgbm9ydGhlYXN0OiBDb29yZCA9IHsgeDogaXRlbXNbMF0ueCwgeTogaXRlbXNbMF0ueSB9O1xyXG5cclxuICAgIGl0ZW1zLmZvckVhY2goKGl0KSA9PiB7XHJcbiAgICAgIGlmIChpdC54IDwgc291dGh3ZXN0LngpIHNvdXRod2VzdC54ID0gaXQueDtcclxuICAgICAgaWYgKGl0LnkgPCBzb3V0aHdlc3QueSkgc291dGh3ZXN0LnkgPSBpdC55O1xyXG5cclxuICAgICAgaWYgKGl0LnggPiBub3J0aGVhc3QueCkgbm9ydGhlYXN0LnggPSBpdC54O1xyXG4gICAgICBpZiAoaXQueSA+IG5vcnRoZWFzdC55KSBub3J0aGVhc3QueSA9IGl0Lnk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4geyBhOiBzb3V0aHdlc3QsIGI6IG5vcnRoZWFzdCB9O1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgdG9CYXNlNjQoKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGxlYWZsZXRJbWFnZSh0aGlzLm1hcCwgKGVycjogYW55LCBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0xlYWZsZXQgaW1hZ2UgY2FwdHVyZSBlcnJvcicsIGVycik7XHJcbiAgICAgICAgICAgIHJlamVjdChlcnIpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICBpZiAoIWN0eCkge1xyXG4gICAgICAgICAgICByZWplY3QoJ05vIGNvbnRleHQnKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMubWFya2Vycy5mb3JFYWNoKChtYXJrZXI6IHsgZ2V0VG9vbHRpcDogKCkgPT4gYW55OyBnZXRMYXRMbmc6ICgpID0+IGFueSB9KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBtYXJrZXIuZ2V0VG9vbHRpcCgpO1xyXG4gICAgICAgICAgICBpZiAoIXRvb2x0aXApIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgbGF0TG5nID0gbWFya2VyLmdldExhdExuZygpO1xyXG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IHRoaXMubWFwLmxhdExuZ1RvQ29udGFpbmVyUG9pbnQobGF0TG5nKTtcclxuICAgICAgICAgICAgY29uc3QgdGV4dCA9IHRvb2x0aXAuZ2V0Q29udGVudCgpO1xyXG5cclxuICAgICAgICAgICAgLy8gVG9vbHRpcCBzesO2dmVnIG1lZ2plbGVuw610w6lzZVxyXG4gICAgICAgICAgICBjdHguZm9udCA9ICdib2xkIDE0cHggc2Fucy1zZXJpZic7XHJcbiAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnYmxhY2snO1xyXG4gICAgICAgICAgICBjdHguc3Ryb2tlU3R5bGUgPSAnd2hpdGUnO1xyXG4gICAgICAgICAgICBjdHgubGluZVdpZHRoID0gNDtcclxuICAgICAgICAgICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xyXG4gICAgICAgICAgICBjdHgudGV4dEJhc2VsaW5lID0gJ2JvdHRvbSc7XHJcbiAgICAgICAgICAgIGN0eC5zdHJva2VUZXh0KHRleHQsIHBvaW50LngsIHBvaW50LnkgKyAxMCk7IC8vIGZlaMOpciBrb250w7pyXHJcbiAgICAgICAgICAgIGN0eC5maWxsVGV4dCh0ZXh0LCBwb2ludC54LCBwb2ludC55ICsgMTApOyAvLyBmZWtldGUgc3rDtnZlZ1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgcmVzb2x2ZShjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sIDMwMCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUxhYmVsKGdyb3VwOiBhbnlbXSkge1xyXG4gICAgbGV0IGxhYmVsOiBzdHJpbmcgPSAnJztcclxuICAgIGdyb3VwLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgbGFiZWwgKz0gaXRlbS5fdG9vbHRpcC5fY29udGVudCArICcsICc7XHJcbiAgICAgIGl0ZW0uX3Rvb2x0aXAucGVybWFuZW50ID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsYWJlbDtcclxuICB9XHJcbiAgY3JlYXRlTnVtYmVyZWRJY29uKG51bWJlcjogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBzaXplID0gMzU7XHJcbiAgICBjb25zdCBzY2FsZUZhY3RvciA9IDE1O1xyXG4gICAgY29uc3Qgc2NhbGVkU2l6ZSA9IHNpemUgKiBzY2FsZUZhY3RvcjtcclxuXHJcbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcclxuICAgIGNhbnZhcy53aWR0aCA9IHNjYWxlZFNpemU7XHJcbiAgICBjYW52YXMuaGVpZ2h0ID0gc2NhbGVkU2l6ZTtcclxuICAgIGNhbnZhcy5zdHlsZS53aWR0aCA9IGNhbnZhcy5zdHlsZS5oZWlnaHQgPSAnMzVweCc7XHJcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSE7XHJcbiAgICBjdHguc2NhbGUoc2NhbGVGYWN0b3IsIHNjYWxlRmFjdG9yKTtcclxuXHJcbiAgICBjdHguYmVnaW5QYXRoKCk7XHJcbiAgICBjdHguYXJjKHNpemUgLyAyLCBzaXplIC8gMiwgc2l6ZSAvIDIgLSAyLCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gICAgY3R4LmZpbGxTdHlsZSA9ICcjMDA3OGQ0JztcclxuICAgIGN0eC5maWxsKCk7XHJcbiAgICBjdHgubGluZVdpZHRoID0gMjtcclxuICAgIGN0eC5zdHJva2VTdHlsZSA9ICcjZmZmZmZmJztcclxuICAgIGN0eC5zdHJva2UoKTtcclxuXHJcbiAgICBjdHguZmlsbFN0eWxlID0gJyNmZmZmZmYnO1xyXG4gICAgY3R4LmZvbnQgPSAnYm9sZCAxNnB4IHNhbnMtc2VyaWYnO1xyXG4gICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xyXG4gICAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xyXG4gICAgY3R4LmZpbGxUZXh0KG51bWJlci50b1N0cmluZygpLCBzaXplIC8gMiwgc2l6ZSAvIDIpO1xyXG5cclxuICAgIHJldHVybiBMLmljb24oe1xyXG4gICAgICBpY29uVXJsOiBjYW52YXMudG9EYXRhVVJMKCksXHJcbiAgICAgIGljb25TaXplOiBbc2l6ZSwgc2l6ZV0sXHJcbiAgICAgIGljb25BbmNob3I6IFtzaXplIC8gMiwgc2l6ZSAvIDJdLFxyXG4gICAgICBwb3B1cEFuY2hvcjogWzAsIC1zaXplIC8gMl0sXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuZnVuY3Rpb24gZ2V0SWNvbihjb2xvcjogc3RyaW5nKSB7XHJcbiAgY29uc3Qgc2l6ZSA9IDEyO1xyXG4gIGNvbnN0IHNjYWxlRmFjdG9yID0gMTI7XHJcbiAgY29uc3Qgc2NhbGVkU2l6ZSA9IHNpemUgKiBzY2FsZUZhY3RvcjtcclxuXHJcbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XHJcbiAgY2FudmFzLndpZHRoID0gc2NhbGVkU2l6ZTtcclxuICBjYW52YXMuaGVpZ2h0ID0gc2NhbGVkU2l6ZTtcclxuICBjYW52YXMuc3R5bGUud2lkdGggPSBjYW52YXMuc3R5bGUuaGVpZ2h0ID0gYCR7c2l6ZX1weGA7XHJcbiAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJykhO1xyXG4gIGN0eC5zY2FsZShzY2FsZUZhY3Rvciwgc2NhbGVGYWN0b3IpO1xyXG5cclxuICBjdHguYmVnaW5QYXRoKCk7XHJcbiAgY3R4LmFyYyhzaXplIC8gMiwgc2l6ZSAvIDIsIHNpemUgLyAyLCAwLCAyICogTWF0aC5QSSwgZmFsc2UpO1xyXG4gIGN0eC5maWxsU3R5bGUgPSBjb2xvcjtcclxuICBjdHguZmlsbCgpO1xyXG5cclxuICByZXR1cm4gTC5pY29uKHtcclxuICAgIGljb25Vcmw6IGNhbnZhcy50b0RhdGFVUkwoKSxcclxuICAgIGljb25TaXplOiBbc2l6ZSwgc2l6ZV0sXHJcbiAgICBpY29uQW5jaG9yOiBbc2l6ZSAvIDIsIHNpemUgLyAyXSxcclxuICAgIHBvcHVwQW5jaG9yOiBbMCwgLXNpemUgLyAyXSxcclxuICB9KTtcclxufVxyXG4iXX0=
|
|
@@ -90,6 +90,8 @@ export class SmartTable {
|
|
|
90
90
|
this.onSelection = config.onSelection;
|
|
91
91
|
this.onAllSelection = config.onAllSelection;
|
|
92
92
|
this.rowExpander = config.rowExpander;
|
|
93
|
+
this.gridId = config.gridId;
|
|
94
|
+
this.serviceToUse = config.serviceToUse;
|
|
93
95
|
this.pushOptions();
|
|
94
96
|
}
|
|
95
97
|
getPropertyNamesDeeply(element) {
|
|
@@ -166,4 +168,4 @@ export class SmartTable {
|
|
|
166
168
|
}
|
|
167
169
|
}
|
|
168
170
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0dGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTFELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIseUNBQXVCLENBQUE7SUFDdkIsd0NBQXNCLENBQUE7SUFDdEIsMENBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBUUQsTUFBTSxDQUFOLElBQVksNEJBTVg7QUFORCxXQUFZLDRCQUE0QjtJQUN0QywrRUFBSSxDQUFBO0lBQ0osK0VBQUksQ0FBQTtJQUNKLHVGQUFRLENBQUE7SUFDUiwrRUFBSSxDQUFBO0lBQ0osdUZBQVEsQ0FBQTtBQUNWLENBQUMsRUFOVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBTXZDO0FBeUNELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFnQkQsTUFBTSxDQUFOLElBQVksb0JBTVg7QUFORCxXQUFZLG9CQUFvQjtJQUM5QixxQ0FBYSxDQUFBO0lBQ2IscUNBQWEsQ0FBQTtJQUNiLHlDQUFpQixDQUFBO0lBQ2pCLHlDQUFpQixDQUFBO0lBQ2pCLCtDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFOVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBTS9CO0FBRUQsTUFBTSxDQUFOLElBQVksK0JBR1g7QUFIRCxXQUFZLCtCQUErQjtJQUN6QyxpR0FBVSxDQUFBO0lBQ1YsNkZBQVEsQ0FBQTtBQUNWLENBQUMsRUFIVywrQkFBK0IsS0FBL0IsK0JBQStCLFFBRzFDO0FBTUQsTUFBTSxDQUFOLElBQVksMkJBR1g7QUFIRCxXQUFZLDJCQUEyQjtJQUNyQyxpRkFBTSxDQUFBO0lBQ04sNkVBQUksQ0FBQTtBQUNOLENBQUMsRUFIVywyQkFBMkIsS0FBM0IsMkJBQTJCLFFBR3RDO0FBMEVELE1BQU0sT0FBTyxVQUFVO0lBbUNyQixZQUFZLE1BQThCO1FBbEMxQyxTQUFJLEdBQXVDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQztRQW1DNUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7UUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7UUFFbEQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQztRQUU5RCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDO2dCQUNqQyxLQUFLLEVBQUUsRUFBRTtnQkFDVCxZQUFZLEVBQUUsUUFBUTthQUN2QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLHVCQUF1QixHQUFHO2dCQUM3QjtvQkFDRSxLQUFLLEVBQUUsRUFBRTtvQkFDVCxZQUFZLEVBQUUsUUFBUTtvQkFDdEIsb0JBQW9CLEVBQ2xCLE9BQU8sTUFBTSxDQUFDLG9CQUFvQixLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsb0JBQW9CO2lCQUMxRjtnQkFDRCxHQUFHLElBQUksQ0FBQyx1QkFBd0I7YUFDakMsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUNFLElBQUksQ0FBQyxTQUFTLEtBQUssY0FBYyxDQUFDLFNBQVM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsVUFBVSxFQUM1QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBRXBDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUM7WUFDbEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksY0FBYyxDQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbEYsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVyRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQztRQUNwRSxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNoRCxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztRQUNwRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDO1FBQ3RELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUM7UUFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUM7UUFDNUQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQztRQUNsRSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixDQUFDO1FBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBRXRDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsc0JBQXNCLENBQUMsT0FBWTtRQUNqQyxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUM5QixJQUNFLE9BQU8sS0FBSyxTQUFTO2dCQUNyQixPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRO2dCQUNyQyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTO2dCQUN0QyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRO2dCQUNyQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUztnQkFDL0IsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUk7Z0JBQzFCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDbEIsQ0FBQyxPQUFPLEVBQ1IsQ0FBQztnQkFDRCxPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNyRSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVUsRUFBRSxHQUFXO1FBQ3BDLElBQUksV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxLQUFVLENBQUM7UUFFZixXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN4QixPQUFPLFNBQVMsQ0FBQztnQkFDbkIsQ0FBQztxQkFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNqRSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNYLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7cUJBQU0sQ0FBQztvQkFDTixLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLHVCQUF1QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4RSxJQUFJLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUNuRCxJQUFJLGFBQWEsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEQsSUFDRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN0RSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQ3JCLENBQUM7b0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNqRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztxQkFBTSxJQUNMLFdBQVcsQ0FBQyxPQUFPO29CQUNuQixXQUFXLENBQUMsSUFBSTtvQkFDaEIsV0FBVyxDQUFDLFlBQVksS0FBSyxRQUFRO29CQUNyQyxXQUFXLENBQUMsWUFBWSxLQUFLLFFBQVEsRUFDckMsQ0FBQztvQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQ2pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsRCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XHJcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBTdHlsZSwgVWlBY3Rpb24sIFVpQWN0aW9uRGVzY3JpcHRvciB9IGZyb20gJy4uL3ZpZXctY29udGV4dC9hcGknO1xyXG5cclxuZXhwb3J0IGVudW0gU21hcnRUYWJsZVR5cGUge1xyXG4gIElOSEVSSVRFRCA9ICdJbmhlcml0ZWQnLFxyXG4gIENIRUNLX0JPWCA9ICdDaGVja0JveCcsXHJcbiAgUk9XX1NFTEVDVCA9ICdSb3dTZWxlY3QnLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVPcHRpb24ge1xyXG4gIGxhYmVsOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBjYWxsYmFjazogKGlkOiBzdHJpbmcpID0+IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU21hcnRUYWJsZUhlYWRlclByb3BlcnR5VHlwZSB7XHJcbiAgREFURSxcclxuICBUSU1FLFxyXG4gIERBVEVUSU1FLFxyXG4gIElDT04sXHJcbiAgQ0hFQ0tCT1gsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUhlYWRlckljb25zIHtcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgY29sb3I6IFRoZW1lUGFsZXR0ZTtcclxuICBzaG93SWNvbklmVmFsdWVFcXVhbHNXaXRoU3RyaW5nPzogc3RyaW5nO1xyXG4gIHNob3dJY29uSWZWYWx1ZUVxdWFsc1dpdGhOdW1iZXI/OiBudW1iZXI7XHJcbiAgc2hvd0ljb25JZlZhbHVlU21hbGxlclRoYW5OdW1iZXI/OiBudW1iZXI7XHJcbiAgc2hvd0ljb25JZlZhbHVlQmlnZ2VyVGhhbk51bWJlcj86IG51bWJlcjtcclxuICBzaG93SWNvbklmVmFsdWVCb29sZWFuPzogYm9vbGVhbjtcclxuICBzaG93SWNvbklmVmFsdWVOdWxsPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVIZWFkZXJQcm9wZXJ0aWVzIHtcclxuICB0eXBlOiBTbWFydFRhYmxlSGVhZGVyUHJvcGVydHlUeXBlO1xyXG4gIGRhdGVGb3JtYXQ/OiBzdHJpbmc7XHJcbiAgaWNvbnM/OiBTbWFydFRhYmxlSGVhZGVySWNvbnNbXTtcclxuICB0b29sVGlwQ29sdW1uPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVJY29uIHtcclxuICBpY29uOiBzdHJpbmc7XHJcbiAgY29sb3I/OiBUaGVtZVBhbGV0dGU7XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUhlYWRlciB7XHJcbiAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpc0hpZGRlbj86IGJvb2xlYW47XHJcbiAgcHJvcGVydGllcz86IFNtYXJ0VGFibGVIZWFkZXJQcm9wZXJ0aWVzO1xyXG4gIGJ1dHRvbnM/OiBTbWFydFRhYmxlQnV0dG9uW107XHJcbiAgaWNvbj86IFNtYXJ0VGFibGVJY29uO1xyXG4gIHRyYW5zbGF0b3I/OiAoKHZhbHVlOiBzdHJpbmcpID0+IHN0cmluZykgfCAoKHZhbHVlOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nPik7XHJcbiAgc2hvd0NoZWNrYm94SW5IZWFkZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIG9yZGVyPzogU21hcnRUYWJsZU9yZGVyO1xyXG4gIG9yZGVyTnVtYmVyPzogbnVtYmVyO1xyXG4gIGlzU29ydGFibGU/OiBib29sZWFuO1xyXG4gIHN0eWxlPzogU3R5bGU7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFNtYXJ0VGFibGVPcmRlciB7XHJcbiAgQVNDID0gJ0FTQycsXHJcbiAgREVTQyA9ICdERVNDJyxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlQnV0dG9uIHtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGxhYmVsPzogc3RyaW5nO1xyXG4gIGNvbG9yPzogVGhlbWVQYWxldHRlO1xyXG4gIGNvZGU/OiBzdHJpbmc7XHJcbiAgdHlwZTogU21hcnRUYWJsZUJ1dHRvblR5cGU7XHJcbiAgbWVudUl0ZW1CdXR0b25zPzogU21hcnRUYWJsZUJ1dHRvbltdO1xyXG4gIG1lbnVJdGVtQnV0dG9uc1Byb3BlcnR5TmFtZT86IHN0cmluZztcclxuICB0cmFuc2xhdG9yPzogKHVpQWN0aW9uOiBVaUFjdGlvbikgPT4gVWlBY3Rpb25EZXNjcmlwdG9yO1xyXG4gIGNhbGxiYWNrPzogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XHJcbiAgYXJncz86IGFueVtdO1xyXG4gIHNob3dCdXR0b25JZj86IChyb3c6IGFueSkgPT4gYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU21hcnRUYWJsZUJ1dHRvblR5cGUge1xyXG4gIE1FTlUgPSAnTUVOVScsXHJcbiAgSUNPTiA9ICdJQ09OJyxcclxuICBOT1JNQUwgPSAnTk9STUFMJyxcclxuICBSQUlTRUQgPSAnUkFJU0VEJyxcclxuICBTRVBBUkFUT1IgPSAnU0VQQVJBVE9SJyxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU21hcnRUYWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbiB7XHJcbiAgSE9SSVpPTlRBTCxcclxuICBWRVJUSUNBTCxcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZTxUPiA9XHJcbiAgfCBTbWFydFRhYmxlSW50ZXJmYWNlPFQ+XHJcbiAgfCBTbWFydFRhYmxlR3JpZEludGVyZmFjZTxUPjtcclxuXHJcbmV4cG9ydCBlbnVtIFNtYXJ0VGFibGVJbnRlcmZhY2VUeXBlRW51bSB7XHJcbiAgTk9STUFMLFxyXG4gIEdSSUQsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUludGVyZmFjZTxUPiB7XHJcbiAgdHlwZTogU21hcnRUYWJsZUludGVyZmFjZVR5cGVFbnVtLk5PUk1BTDtcclxuICB0aXRsZT86IHN0cmluZztcclxuICB0YWJsZUhlYWRlcnM/OiBzdHJpbmdbXTtcclxuICBjdXN0b21TbWFydFRhYmxlSGVhZGVycz86IFNtYXJ0VGFibGVIZWFkZXJbXTtcclxuICBjdXN0b21UYWJsZUhlYWRlcnM/OiBzdHJpbmdbXTtcclxuICB0YWJsZVJvd3M6IFRbXTtcclxuICB0YWJsZVR5cGU6IFNtYXJ0VGFibGVUeXBlO1xyXG4gIG9wdGlvbnM/OiBTbWFydFRhYmxlT3B0aW9uW107XHJcbiAgdGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24/OiBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uO1xyXG4gIG9uUm93Q2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIG9uUm93RG91YmxlQ2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIGRlZmF1bHRBY3Rpb25Db2Rlcz86IHN0cmluZ1tdO1xyXG4gIGRlZmF1bHRBY3Rpb25zPzogU21hcnRUYWJsZUJ1dHRvbltdO1xyXG4gIGhpZ2hsaWdodE9uUm93Q2xpY2s/OiBib29sZWFuO1xyXG4gIGhpZ2hsaWdodENsYXNzPzogc3RyaW5nO1xyXG4gIGhvdmVyPzogYm9vbGVhbjtcclxuICBleHBhbmRhYmxlPzogYm9vbGVhbjtcclxuICBleHBhbmRlZENvbXBvbmVudD86IGFueTtcclxuICBhc3luY09uRXhwYW5kPzogYm9vbGVhbjtcclxuICBzb3J0SWNvbkFzYz86IHN0cmluZztcclxuICBzb3J0SWNvbkRlc2M/OiBzdHJpbmc7XHJcbiAgc29ydEljb25OZXV0cmFsPzogc3RyaW5nO1xyXG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICBtYXhOdW1PZlNlbGVjdGFibGVSb3dzPzogbnVtYmVyO1xyXG4gIHNlbGVjdGlvblByb3BlcnR5Pzogc3RyaW5nO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbk1vZGVsPGFueT47XHJcbiAgc2hvd0NoZWNrYm94SW5IZWFkZXI/OiBib29sZWFuO1xyXG4gIGlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgc2VsZWN0YWJsZVByb3BlcnR5TmFtZT86IHN0cmluZztcclxuICBvblNlbGVjdGlvbj86IChyb3c6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcclxuICBvbkFsbFNlbGVjdGlvbj86IChzZWxlY3RlZDogYm9vbGVhbikgPT4gUHJvbWlzZTx2b2lkPjtcclxuICByb3dFeHBhbmRlcj86IFNtYXJ0VGFibGVSb3dFeHBhbmRlcjxUPjtcclxuICBoaWdobGlnaHRQcm9wZXJ0eT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVHcmlkSW50ZXJmYWNlPFQ+IHtcclxuICB0eXBlOiBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZUVudW0uR1JJRDtcclxuICBjdXN0b21TbWFydFRhYmxlSGVhZGVycz86IFNtYXJ0VGFibGVIZWFkZXJbXTtcclxuICB0YWJsZVR5cGU6IFNtYXJ0VGFibGVUeXBlO1xyXG4gIG9wdGlvbnM/OiBTbWFydFRhYmxlT3B0aW9uW107XHJcbiAgdGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24/OiBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uO1xyXG4gIG9uUm93Q2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIG9uUm93RG91YmxlQ2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIGRlZmF1bHRBY3Rpb25Db2Rlcz86IHN0cmluZ1tdO1xyXG4gIGRlZmF1bHRBY3Rpb25zPzogU21hcnRUYWJsZUJ1dHRvbltdO1xyXG4gIGhpZ2hsaWdodE9uUm93Q2xpY2s/OiBib29sZWFuO1xyXG4gIGhpZ2hsaWdodENsYXNzPzogc3RyaW5nO1xyXG4gIGhvdmVyPzogYm9vbGVhbjtcclxuICBzb3J0SWNvbkFzYz86IHN0cmluZztcclxuICBzb3J0SWNvbkRlc2M/OiBzdHJpbmc7XHJcbiAgc29ydEljb25OZXV0cmFsPzogc3RyaW5nO1xyXG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICBtYXhOdW1PZlNlbGVjdGFibGVSb3dzPzogbnVtYmVyO1xyXG4gIHNlbGVjdGlvblByb3BlcnR5Pzogc3RyaW5nO1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNlbGVjdGlvbj86IFNlbGVjdGlvbk1vZGVsPGFueT47XHJcbiAgc2hvd0NoZWNrYm94SW5IZWFkZXI/OiBib29sZWFuO1xyXG4gIGlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgc2VsZWN0YWJsZVByb3BlcnR5TmFtZT86IHN0cmluZztcclxuICBvblNlbGVjdGlvbj86IChyb3c6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcclxuICBvbkFsbFNlbGVjdGlvbj86IChzZWxlY3RlZDogYm9vbGVhbikgPT4gUHJvbWlzZTx2b2lkPjtcclxuICBhc3luY09uRXhwYW5kPzogYm9vbGVhbjtcclxuICByb3dFeHBhbmRlcj86IFNtYXJ0VGFibGVSb3dFeHBhbmRlcjxUPjtcclxuICBoaWdobGlnaHRQcm9wZXJ0eT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlUm93RXhwYW5kZXI8VD4ge1xyXG4gIGV4cGFuZChyb3dJZDogbnVtYmVyKTogVDtcclxuICBleHBhbmRBc3luYyhyb3dJZDogbnVtYmVyKTogUHJvbWlzZTxUPjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNtYXJ0VGFibGU8VD4gaW1wbGVtZW50cyBTbWFydFRhYmxlSW50ZXJmYWNlPFQ+IHtcclxuICB0eXBlOiBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZUVudW0uTk9STUFMID0gU21hcnRUYWJsZUludGVyZmFjZVR5cGVFbnVtLk5PUk1BTDtcclxuICB0aXRsZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICB0YWJsZUhlYWRlcnM6IHN0cmluZ1tdO1xyXG4gIGN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzPzogU21hcnRUYWJsZUhlYWRlcltdO1xyXG4gIGN1c3RvbVRhYmxlSGVhZGVycyE6IHN0cmluZ1tdO1xyXG4gIHRhYmxlUm93czogVFtdO1xyXG4gIHRhYmxlVHlwZTogU21hcnRUYWJsZVR5cGU7XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uTW9kZWw8YW55PjtcclxuICBpc011bHRpcGxlPzogYm9vbGVhbjtcclxuICBvcHRpb25zPzogU21hcnRUYWJsZU9wdGlvbltdO1xyXG4gIHRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uPzogU21hcnRUYWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbjtcclxuICBvblJvd0NsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcclxuICBvblJvd0RvdWJsZUNsaWNrPzogKHJvdzogVCkgPT4gdm9pZDtcclxuICBkZWZhdWx0QWN0aW9uQ29kZXM/OiBzdHJpbmdbXTtcclxuICBkZWZhdWx0QWN0aW9ucz86IFNtYXJ0VGFibGVCdXR0b25bXTtcclxuICBoaWdobGlnaHRPblJvd0NsaWNrPzogYm9vbGVhbjtcclxuICBoaWdobGlnaHRDbGFzcz86IHN0cmluZztcclxuICBob3Zlcj86IGJvb2xlYW47XHJcbiAgZXhwYW5kYWJsZT86IGJvb2xlYW47XHJcbiAgZXhwYW5kZWRDb21wb25lbnQ/OiBhbnk7XHJcbiAgYXN5bmNPbkV4cGFuZD86IGJvb2xlYW47XHJcbiAgc29ydEljb25Bc2M/OiBzdHJpbmc7XHJcbiAgc29ydEljb25EZXNjPzogc3RyaW5nO1xyXG4gIHNvcnRJY29uTmV1dHJhbD86IHN0cmluZztcclxuICBzb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgbWF4TnVtT2ZTZWxlY3RhYmxlUm93cz86IG51bWJlcjtcclxuICBzZWxlY3Rpb25Qcm9wZXJ0eT86IHN0cmluZztcclxuICBpc1Jvd0Rpc2FibGVkUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIHNlbGVjdGFibGVQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgb25TZWxlY3Rpb24/OiAocm93OiBhbnkpID0+IFByb21pc2U8dm9pZD47XHJcbiAgb25BbGxTZWxlY3Rpb24/OiAoc2VsZWN0ZWQ6IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD47XHJcbiAgcm93RXhwYW5kZXI/OiBTbWFydFRhYmxlUm93RXhwYW5kZXI8VD47XHJcbiAgaGlnaGxpZ2h0UHJvcGVydHk/OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogU21hcnRUYWJsZUludGVyZmFjZTxUPikge1xyXG4gICAgdGhpcy5leHBhbmRhYmxlID0gY29uZmlnLmV4cGFuZGFibGU7XHJcbiAgICB0aGlzLmV4cGFuZGVkQ29tcG9uZW50ID0gY29uZmlnLmV4cGFuZGVkQ29tcG9uZW50O1xyXG4gICAgdGhpcy5hc3luY09uRXhwYW5kID0gY29uZmlnLmFzeW5jT25FeHBhbmQ7XHJcbiAgICB0aGlzLmhpZ2hsaWdodFByb3BlcnR5ID0gY29uZmlnLmhpZ2hsaWdodFByb3BlcnR5O1xyXG5cclxuICAgIHRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMgPSBjb25maWcuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnM7XHJcblxyXG4gICAgaWYgKHRoaXMuZXhwYW5kYWJsZSkge1xyXG4gICAgICB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzPy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnZXhwYW5kJyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlVHlwZSA9IGNvbmZpZy50YWJsZVR5cGU7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVUeXBlID09PSBTbWFydFRhYmxlVHlwZS5DSEVDS19CT1gpIHtcclxuICAgICAgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6ICdzZWxlY3QnLFxyXG4gICAgICAgICAgc2hvd0NoZWNrYm94SW5IZWFkZXI6XHJcbiAgICAgICAgICAgIHR5cGVvZiBjb25maWcuc2hvd0NoZWNrYm94SW5IZWFkZXIgPT09ICd1bmRlZmluZWQnID8gdHJ1ZSA6IGNvbmZpZy5zaG93Q2hlY2tib3hJbkhlYWRlcixcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhLFxyXG4gICAgICBdO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnRhYmxlVHlwZSA9PT0gU21hcnRUYWJsZVR5cGUuQ0hFQ0tfQk9YIHx8XHJcbiAgICAgIHRoaXMudGFibGVUeXBlID09PSBTbWFydFRhYmxlVHlwZS5ST1dfU0VMRUNUXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc011bHRpcGxlID0gY29uZmlnLmlzTXVsdGlwbGU7XHJcblxyXG4gICAgICB0aGlzLnNlbGVjdGlvblByb3BlcnR5ID0gY29uZmlnLnNlbGVjdGlvblByb3BlcnR5O1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IGNvbmZpZy5zZWxlY3Rpb24gPz8gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KHRoaXMuaXNNdWx0aXBsZSwgW10pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFibGVIZWFkZXJzID0gdGhpcy5nZXRQcm9wZXJ0eU5hbWVzRGVlcGx5KGNvbmZpZy50YWJsZVJvd3NbMF0pO1xyXG5cclxuICAgIHRoaXMuc2V0VGFibGVIZWFkZXJzKCk7XHJcblxyXG4gICAgdGhpcy50YWJsZVJvd3MgPSBjb25maWcudGFibGVSb3dzO1xyXG4gICAgdGhpcy50aXRsZSA9IGNvbmZpZy50aXRsZTtcclxuICAgIHRoaXMub3B0aW9ucyA9IGNvbmZpZy5vcHRpb25zO1xyXG4gICAgdGhpcy50YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbiA9IGNvbmZpZy50YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbjtcclxuICAgIHRoaXMub25Sb3dDbGljayA9IGNvbmZpZy5vblJvd0NsaWNrO1xyXG4gICAgdGhpcy5vblJvd0RvdWJsZUNsaWNrID0gY29uZmlnLm9uUm93RG91YmxlQ2xpY2s7XHJcbiAgICB0aGlzLmRlZmF1bHRBY3Rpb25zID0gY29uZmlnLmRlZmF1bHRBY3Rpb25zO1xyXG4gICAgdGhpcy5kZWZhdWx0QWN0aW9uQ29kZXMgPSBjb25maWcuZGVmYXVsdEFjdGlvbkNvZGVzO1xyXG4gICAgdGhpcy5oaWdobGlnaHRPblJvd0NsaWNrID0gY29uZmlnLmhpZ2hsaWdodE9uUm93Q2xpY2s7XHJcbiAgICB0aGlzLmhpZ2hsaWdodENsYXNzID0gY29uZmlnLmhpZ2hsaWdodENsYXNzO1xyXG4gICAgdGhpcy5ob3ZlciA9IGNvbmZpZy5ob3ZlcjtcclxuICAgIHRoaXMuc29ydEljb25Bc2MgPSBjb25maWcuc29ydEljb25Bc2M7XHJcbiAgICB0aGlzLnNvcnRJY29uRGVzYyA9IGNvbmZpZy5zb3J0SWNvbkRlc2M7XHJcbiAgICB0aGlzLnNvcnRJY29uTmV1dHJhbCA9IGNvbmZpZy5zb3J0SWNvbk5ldXRyYWw7XHJcbiAgICB0aGlzLnNvcnRhYmxlID0gY29uZmlnLnNvcnRhYmxlO1xyXG4gICAgdGhpcy5tYXhOdW1PZlNlbGVjdGFibGVSb3dzID0gY29uZmlnLm1heE51bU9mU2VsZWN0YWJsZVJvd3M7XHJcbiAgICB0aGlzLmlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWUgPSBjb25maWcuaXNSb3dEaXNhYmxlZFByb3BlcnR5TmFtZTtcclxuICAgIHRoaXMuc2VsZWN0YWJsZVByb3BlcnR5TmFtZSA9IGNvbmZpZy5zZWxlY3RhYmxlUHJvcGVydHlOYW1lO1xyXG4gICAgdGhpcy5vblNlbGVjdGlvbiA9IGNvbmZpZy5vblNlbGVjdGlvbjtcclxuICAgIHRoaXMub25BbGxTZWxlY3Rpb24gPSBjb25maWcub25BbGxTZWxlY3Rpb247XHJcbiAgICB0aGlzLnJvd0V4cGFuZGVyID0gY29uZmlnLnJvd0V4cGFuZGVyO1xyXG5cclxuICAgIHRoaXMucHVzaE9wdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIGdldFByb3BlcnR5TmFtZXNEZWVwbHkoZWxlbWVudDogYW55KTogc3RyaW5nW10ge1xyXG4gICAgaWYgKGVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKGVsZW1lbnQpO1xyXG4gICAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZWxlbWVudCA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgdHlwZW9mIGVsZW1lbnRbcHJvcGVydHldID09PSAnc3RyaW5nJyB8fFxyXG4gICAgICAgIHR5cGVvZiBlbGVtZW50W3Byb3BlcnR5XSA9PT0gJ2Jvb2xlYW4nIHx8XHJcbiAgICAgICAgdHlwZW9mIGVsZW1lbnRbcHJvcGVydHldID09PSAnbnVtYmVyJyB8fFxyXG4gICAgICAgIGVsZW1lbnRbcHJvcGVydHldID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICBlbGVtZW50W3Byb3BlcnR5XSA9PT0gbnVsbCB8fFxyXG4gICAgICAgICFlbGVtZW50W3Byb3BlcnR5XSB8fFxyXG4gICAgICAgICFlbGVtZW50XHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW5uZXJQcm9wZXJ0aWVzID0gdGhpcy5nZXRQcm9wZXJ0eU5hbWVzRGVlcGx5KGVsZW1lbnRbcHJvcGVydHldKTtcclxuICAgICAgcHJvcGVydGllcy5wdXNoKC4uLmlubmVyUHJvcGVydGllcyk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWVEZWVwbHkobW9kZWw6IGFueSwga2V5OiBzdHJpbmcpOiBhbnkge1xyXG4gICAgbGV0IHNwbGl0dGVkS2V5ID0ga2V5LnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgdmFsdWU6IGFueTtcclxuXHJcbiAgICBzcGxpdHRlZEtleS5mb3JFYWNoKChrOiBzdHJpbmcpID0+IHtcclxuICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgIHZhbHVlID0gbW9kZWxba107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtrXSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlW2tdID09PSBudWxsIHx8ICF2YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSAnJztcclxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZVtrXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVzaE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy50YWJsZUhlYWRlcnMucHVzaCgnb3B0aW9ucycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VGFibGVIZWFkZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMgJiYgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycy5sZW5ndGgpIHtcclxuICAgICAgbGV0IG9yaWdpbmFsSGVhZGVycyA9IHRoaXMudGFibGVIZWFkZXJzO1xyXG4gICAgICB0aGlzLnRhYmxlSGVhZGVycyA9IFtdO1xyXG4gICAgICB0aGlzLmN1c3RvbVRhYmxlSGVhZGVycyA9IFtdO1xyXG4gICAgICB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzLmZvckVhY2goKHRhYmxlSGVhZGVyKSA9PiB7XHJcbiAgICAgICAgbGV0IHByb3BlcnR5TmFtZXMgPSB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUuc3BsaXQoJy4nKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmZpbHRlcigocHJvcGVydHkpID0+IG9yaWdpbmFsSGVhZGVycy5pbmNsdWRlcyhwcm9wZXJ0eSkpICYmXHJcbiAgICAgICAgICAhdGFibGVIZWFkZXIuaXNIaWRkZW5cclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVIZWFkZXJzLnB1c2godGFibGVIZWFkZXIucHJvcGVydHlOYW1lKTtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tVGFibGVIZWFkZXJzLnB1c2godGFibGVIZWFkZXIubGFiZWwpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5idXR0b25zIHx8XHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5pY29uIHx8XHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUgPT09ICdleHBhbmQnIHx8XHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUgPT09ICdzZWxlY3QnXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLnByb3BlcnR5TmFtZSk7XHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLmxhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXN0b21UYWJsZUhlYWRlcnMgPSB0aGlzLnRhYmxlSGVhZGVycztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0YWJsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3NtYXJ0LXRhYmxlL3NtYXJ0dGFibGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTFELE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIseUNBQXVCLENBQUE7SUFDdkIsd0NBQXNCLENBQUE7SUFDdEIsMENBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBUUQsTUFBTSxDQUFOLElBQVksNEJBTVg7QUFORCxXQUFZLDRCQUE0QjtJQUN0QywrRUFBSSxDQUFBO0lBQ0osK0VBQUksQ0FBQTtJQUNKLHVGQUFRLENBQUE7SUFDUiwrRUFBSSxDQUFBO0lBQ0osdUZBQVEsQ0FBQTtBQUNWLENBQUMsRUFOVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBTXZDO0FBeUNELE1BQU0sQ0FBTixJQUFZLGVBR1g7QUFIRCxXQUFZLGVBQWU7SUFDekIsOEJBQVcsQ0FBQTtJQUNYLGdDQUFhLENBQUE7QUFDZixDQUFDLEVBSFcsZUFBZSxLQUFmLGVBQWUsUUFHMUI7QUFnQkQsTUFBTSxDQUFOLElBQVksb0JBTVg7QUFORCxXQUFZLG9CQUFvQjtJQUM5QixxQ0FBYSxDQUFBO0lBQ2IscUNBQWEsQ0FBQTtJQUNiLHlDQUFpQixDQUFBO0lBQ2pCLHlDQUFpQixDQUFBO0lBQ2pCLCtDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFOVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBTS9CO0FBRUQsTUFBTSxDQUFOLElBQVksK0JBR1g7QUFIRCxXQUFZLCtCQUErQjtJQUN6QyxpR0FBVSxDQUFBO0lBQ1YsNkZBQVEsQ0FBQTtBQUNWLENBQUMsRUFIVywrQkFBK0IsS0FBL0Is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QU87b0JBQ25CLFdBQVcsQ0FBQyxJQUFJO29CQUNoQixXQUFXLENBQUMsWUFBWSxLQUFLLFFBQVE7b0JBQ3JDLFdBQVcsQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUNyQyxDQUFDO29CQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IFN0eWxlLCBVaUFjdGlvbiwgVWlBY3Rpb25EZXNjcmlwdG9yIH0gZnJvbSAnLi4vdmlldy1jb250ZXh0L2FwaSc7XHJcblxyXG5leHBvcnQgZW51bSBTbWFydFRhYmxlVHlwZSB7XHJcbiAgSU5IRVJJVEVEID0gJ0luaGVyaXRlZCcsXHJcbiAgQ0hFQ0tfQk9YID0gJ0NoZWNrQm94JyxcclxuICBST1dfU0VMRUNUID0gJ1Jvd1NlbGVjdCcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZU9wdGlvbiB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGNhbGxiYWNrOiAoaWQ6IHN0cmluZykgPT4gYW55O1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTbWFydFRhYmxlSGVhZGVyUHJvcGVydHlUeXBlIHtcclxuICBEQVRFLFxyXG4gIFRJTUUsXHJcbiAgREFURVRJTUUsXHJcbiAgSUNPTixcclxuICBDSEVDS0JPWCxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlSGVhZGVySWNvbnMge1xyXG4gIGljb246IHN0cmluZztcclxuICBjb2xvcjogVGhlbWVQYWxldHRlO1xyXG4gIHNob3dJY29uSWZWYWx1ZUVxdWFsc1dpdGhTdHJpbmc/OiBzdHJpbmc7XHJcbiAgc2hvd0ljb25JZlZhbHVlRXF1YWxzV2l0aE51bWJlcj86IG51bWJlcjtcclxuICBzaG93SWNvbklmVmFsdWVTbWFsbGVyVGhhbk51bWJlcj86IG51bWJlcjtcclxuICBzaG93SWNvbklmVmFsdWVCaWdnZXJUaGFuTnVtYmVyPzogbnVtYmVyO1xyXG4gIHNob3dJY29uSWZWYWx1ZUJvb2xlYW4/OiBib29sZWFuO1xyXG4gIHNob3dJY29uSWZWYWx1ZU51bGw/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUhlYWRlclByb3BlcnRpZXMge1xyXG4gIHR5cGU6IFNtYXJ0VGFibGVIZWFkZXJQcm9wZXJ0eVR5cGU7XHJcbiAgZGF0ZUZvcm1hdD86IHN0cmluZztcclxuICBpY29ucz86IFNtYXJ0VGFibGVIZWFkZXJJY29uc1tdO1xyXG4gIHRvb2xUaXBDb2x1bW4/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUljb24ge1xyXG4gIGljb246IHN0cmluZztcclxuICBjb2xvcj86IFRoZW1lUGFsZXR0ZTtcclxuICBjc3NDbGFzcz86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlSGVhZGVyIHtcclxuICBwcm9wZXJ0eU5hbWU6IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGlzSGlkZGVuPzogYm9vbGVhbjtcclxuICBwcm9wZXJ0aWVzPzogU21hcnRUYWJsZUhlYWRlclByb3BlcnRpZXM7XHJcbiAgYnV0dG9ucz86IFNtYXJ0VGFibGVCdXR0b25bXTtcclxuICBpY29uPzogU21hcnRUYWJsZUljb247XHJcbiAgdHJhbnNsYXRvcj86ICgodmFsdWU6IHN0cmluZykgPT4gc3RyaW5nKSB8ICgodmFsdWU6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmc+KTtcclxuICBzaG93Q2hlY2tib3hJbkhlYWRlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgb3JkZXI/OiBTbWFydFRhYmxlT3JkZXI7XHJcbiAgb3JkZXJOdW1iZXI/OiBudW1iZXI7XHJcbiAgaXNTb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgc3R5bGU/OiBTdHlsZTtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU21hcnRUYWJsZU9yZGVyIHtcclxuICBBU0MgPSAnQVNDJyxcclxuICBERVNDID0gJ0RFU0MnLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVCdXR0b24ge1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgY29sb3I/OiBUaGVtZVBhbGV0dGU7XHJcbiAgY29kZT86IHN0cmluZztcclxuICB0eXBlOiBTbWFydFRhYmxlQnV0dG9uVHlwZTtcclxuICBtZW51SXRlbUJ1dHRvbnM/OiBTbWFydFRhYmxlQnV0dG9uW107XHJcbiAgbWVudUl0ZW1CdXR0b25zUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIHRyYW5zbGF0b3I/OiAodWlBY3Rpb246IFVpQWN0aW9uKSA9PiBVaUFjdGlvbkRlc2NyaXB0b3I7XHJcbiAgY2FsbGJhY2s/OiAoLi4uYXJnczogYW55W10pID0+IGFueTtcclxuICBhcmdzPzogYW55W107XHJcbiAgc2hvd0J1dHRvbklmPzogKHJvdzogYW55KSA9PiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBTbWFydFRhYmxlQnV0dG9uVHlwZSB7XHJcbiAgTUVOVSA9ICdNRU5VJyxcclxuICBJQ09OID0gJ0lDT04nLFxyXG4gIE5PUk1BTCA9ICdOT1JNQUwnLFxyXG4gIFJBSVNFRCA9ICdSQUlTRUQnLFxyXG4gIFNFUEFSQVRPUiA9ICdTRVBBUkFUT1InLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uIHtcclxuICBIT1JJWk9OVEFMLFxyXG4gIFZFUlRJQ0FMLFxyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFNtYXJ0VGFibGVJbnRlcmZhY2VUeXBlPFQ+ID1cclxuICB8IFNtYXJ0VGFibGVJbnRlcmZhY2U8VD5cclxuICB8IFNtYXJ0VGFibGVHcmlkSW50ZXJmYWNlPFQ+O1xyXG5cclxuZXhwb3J0IGVudW0gU21hcnRUYWJsZUludGVyZmFjZVR5cGVFbnVtIHtcclxuICBOT1JNQUwsXHJcbiAgR1JJRCxcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTbWFydFRhYmxlSW50ZXJmYWNlPFQ+IHtcclxuICB0eXBlOiBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZUVudW0uTk9STUFMO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIHRhYmxlSGVhZGVycz86IHN0cmluZ1tdO1xyXG4gIGN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzPzogU21hcnRUYWJsZUhlYWRlcltdO1xyXG4gIGN1c3RvbVRhYmxlSGVhZGVycz86IHN0cmluZ1tdO1xyXG4gIHRhYmxlUm93czogVFtdO1xyXG4gIHRhYmxlVHlwZTogU21hcnRUYWJsZVR5cGU7XHJcbiAgb3B0aW9ucz86IFNtYXJ0VGFibGVPcHRpb25bXTtcclxuICB0YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbj86IFNtYXJ0VGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb247XHJcbiAgb25Sb3dDbGljaz86IChyb3c6IFQpID0+IHZvaWQ7XHJcbiAgb25Sb3dEb3VibGVDbGljaz86IChyb3c6IFQpID0+IHZvaWQ7XHJcbiAgZGVmYXVsdEFjdGlvbkNvZGVzPzogc3RyaW5nW107XHJcbiAgZGVmYXVsdEFjdGlvbnM/OiBTbWFydFRhYmxlQnV0dG9uW107XHJcbiAgaGlnaGxpZ2h0T25Sb3dDbGljaz86IGJvb2xlYW47XHJcbiAgaGlnaGxpZ2h0Q2xhc3M/OiBzdHJpbmc7XHJcbiAgaG92ZXI/OiBib29sZWFuO1xyXG4gIGV4cGFuZGFibGU/OiBib29sZWFuO1xyXG4gIGV4cGFuZGVkQ29tcG9uZW50PzogYW55O1xyXG4gIGFzeW5jT25FeHBhbmQ/OiBib29sZWFuO1xyXG4gIHNvcnRJY29uQXNjPzogc3RyaW5nO1xyXG4gIHNvcnRJY29uRGVzYz86IHN0cmluZztcclxuICBzb3J0SWNvbk5ldXRyYWw/OiBzdHJpbmc7XHJcbiAgc29ydGFibGU/OiBib29sZWFuO1xyXG4gIG1heE51bU9mU2VsZWN0YWJsZVJvd3M/OiBudW1iZXI7XHJcbiAgc2VsZWN0aW9uUHJvcGVydHk/OiBzdHJpbmc7XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uTW9kZWw8YW55PjtcclxuICBzaG93Q2hlY2tib3hJbkhlYWRlcj86IGJvb2xlYW47XHJcbiAgaXNSb3dEaXNhYmxlZFByb3BlcnR5TmFtZT86IHN0cmluZztcclxuICBzZWxlY3RhYmxlUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIG9uU2VsZWN0aW9uPzogKHJvdzogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xyXG4gIG9uQWxsU2VsZWN0aW9uPzogKHNlbGVjdGVkOiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+O1xyXG4gIHJvd0V4cGFuZGVyPzogU21hcnRUYWJsZVJvd0V4cGFuZGVyPFQ+O1xyXG4gIGhpZ2hsaWdodFByb3BlcnR5Pzogc3RyaW5nO1xyXG4gIGdyaWRJZDogc3RyaW5nO1xyXG4gIHNlcnZpY2VUb1VzZTogYW55O1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU21hcnRUYWJsZUdyaWRJbnRlcmZhY2U8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0VGFibGVJbnRlcmZhY2VUeXBlRW51bS5HUklEO1xyXG4gIGN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzPzogU21hcnRUYWJsZUhlYWRlcltdO1xyXG4gIHRhYmxlVHlwZTogU21hcnRUYWJsZVR5cGU7XHJcbiAgb3B0aW9ucz86IFNtYXJ0VGFibGVPcHRpb25bXTtcclxuICB0YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbj86IFNtYXJ0VGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb247XHJcbiAgb25Sb3dDbGljaz86IChyb3c6IFQpID0+IHZvaWQ7XHJcbiAgb25Sb3dEb3VibGVDbGljaz86IChyb3c6IFQpID0+IHZvaWQ7XHJcbiAgZGVmYXVsdEFjdGlvbkNvZGVzPzogc3RyaW5nW107XHJcbiAgZGVmYXVsdEFjdGlvbnM/OiBTbWFydFRhYmxlQnV0dG9uW107XHJcbiAgaGlnaGxpZ2h0T25Sb3dDbGljaz86IGJvb2xlYW47XHJcbiAgaGlnaGxpZ2h0Q2xhc3M/OiBzdHJpbmc7XHJcbiAgaG92ZXI/OiBib29sZWFuO1xyXG4gIHNvcnRJY29uQXNjPzogc3RyaW5nO1xyXG4gIHNvcnRJY29uRGVzYz86IHN0cmluZztcclxuICBzb3J0SWNvbk5ldXRyYWw/OiBzdHJpbmc7XHJcbiAgc29ydGFibGU/OiBib29sZWFuO1xyXG4gIG1heE51bU9mU2VsZWN0YWJsZVJvd3M/OiBudW1iZXI7XHJcbiAgc2VsZWN0aW9uUHJvcGVydHk/OiBzdHJpbmc7XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcbiAgc2VsZWN0aW9uPzogU2VsZWN0aW9uTW9kZWw8YW55PjtcclxuICBzaG93Q2hlY2tib3hJbkhlYWRlcj86IGJvb2xlYW47XHJcbiAgaXNSb3dEaXNhYmxlZFByb3BlcnR5TmFtZT86IHN0cmluZztcclxuICBzZWxlY3RhYmxlUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG4gIG9uU2VsZWN0aW9uPzogKHJvdzogYW55KSA9PiBQcm9taXNlPHZvaWQ+O1xyXG4gIG9uQWxsU2VsZWN0aW9uPzogKHNlbGVjdGVkOiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+O1xyXG4gIGFzeW5jT25FeHBhbmQ/OiBib29sZWFuO1xyXG4gIHJvd0V4cGFuZGVyPzogU21hcnRUYWJsZVJvd0V4cGFuZGVyPFQ+O1xyXG4gIGhpZ2hsaWdodFByb3BlcnR5Pzogc3RyaW5nO1xyXG4gIGdyaWRJZDogc3RyaW5nO1xyXG4gIHNlcnZpY2VUb1VzZTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNtYXJ0VGFibGVSb3dFeHBhbmRlcjxUPiB7XHJcbiAgZXhwYW5kKHJvd0lkOiBudW1iZXIpOiBUO1xyXG4gIGV4cGFuZEFzeW5jKHJvd0lkOiBudW1iZXIpOiBQcm9taXNlPFQ+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU21hcnRUYWJsZTxUPiBpbXBsZW1lbnRzIFNtYXJ0VGFibGVJbnRlcmZhY2U8VD4ge1xyXG4gIHR5cGU6IFNtYXJ0VGFibGVJbnRlcmZhY2VUeXBlRW51bS5OT1JNQUwgPSBTbWFydFRhYmxlSW50ZXJmYWNlVHlwZUVudW0uTk9STUFMO1xyXG4gIHRpdGxlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHRhYmxlSGVhZGVyczogc3RyaW5nW107XHJcbiAgY3VzdG9tU21hcnRUYWJsZUhlYWRlcnM/OiBTbWFydFRhYmxlSGVhZGVyW107XHJcbiAgY3VzdG9tVGFibGVIZWFkZXJzITogc3RyaW5nW107XHJcbiAgdGFibGVSb3dzOiBUW107XHJcbiAgdGFibGVUeXBlOiBTbWFydFRhYmxlVHlwZTtcclxuICBzZWxlY3Rpb24/OiBTZWxlY3Rpb25Nb2RlbDxhbnk+O1xyXG4gIGlzTXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIG9wdGlvbnM/OiBTbWFydFRhYmxlT3B0aW9uW107XHJcbiAgdGFibGVPcHRpb25CdXR0b25EaXJlY3Rpb24/OiBTbWFydFRhYmxlT3B0aW9uQnV0dG9uRGlyZWN0aW9uO1xyXG4gIG9uUm93Q2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIG9uUm93RG91YmxlQ2xpY2s/OiAocm93OiBUKSA9PiB2b2lkO1xyXG4gIGRlZmF1bHRBY3Rpb25Db2Rlcz86IHN0cmluZ1tdO1xyXG4gIGRlZmF1bHRBY3Rpb25zPzogU21hcnRUYWJsZUJ1dHRvbltdO1xyXG4gIGhpZ2hsaWdodE9uUm93Q2xpY2s/OiBib29sZWFuO1xyXG4gIGhpZ2hsaWdodENsYXNzPzogc3RyaW5nO1xyXG4gIGhvdmVyPzogYm9vbGVhbjtcclxuICBleHBhbmRhYmxlPzogYm9vbGVhbjtcclxuICBleHBhbmRlZENvbXBvbmVudD86IGFueTtcclxuICBhc3luY09uRXhwYW5kPzogYm9vbGVhbjtcclxuICBzb3J0SWNvbkFzYz86IHN0cmluZztcclxuICBzb3J0SWNvbkRlc2M/OiBzdHJpbmc7XHJcbiAgc29ydEljb25OZXV0cmFsPzogc3RyaW5nO1xyXG4gIHNvcnRhYmxlPzogYm9vbGVhbjtcclxuICBtYXhOdW1PZlNlbGVjdGFibGVSb3dzPzogbnVtYmVyO1xyXG4gIHNlbGVjdGlvblByb3BlcnR5Pzogc3RyaW5nO1xyXG4gIGlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcbiAgc2VsZWN0YWJsZVByb3BlcnR5TmFtZT86IHN0cmluZztcclxuICBvblNlbGVjdGlvbj86IChyb3c6IGFueSkgPT4gUHJvbWlzZTx2b2lkPjtcclxuICBvbkFsbFNlbGVjdGlvbj86IChzZWxlY3RlZDogYm9vbGVhbikgPT4gUHJvbWlzZTx2b2lkPjtcclxuICByb3dFeHBhbmRlcj86IFNtYXJ0VGFibGVSb3dFeHBhbmRlcjxUPjtcclxuICBoaWdobGlnaHRQcm9wZXJ0eT86IHN0cmluZztcclxuICBncmlkSWQhOiBzdHJpbmc7XHJcbiAgc2VydmljZVRvVXNlOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogU21hcnRUYWJsZUludGVyZmFjZTxUPikge1xyXG4gICAgdGhpcy5leHBhbmRhYmxlID0gY29uZmlnLmV4cGFuZGFibGU7XHJcbiAgICB0aGlzLmV4cGFuZGVkQ29tcG9uZW50ID0gY29uZmlnLmV4cGFuZGVkQ29tcG9uZW50O1xyXG4gICAgdGhpcy5hc3luY09uRXhwYW5kID0gY29uZmlnLmFzeW5jT25FeHBhbmQ7XHJcbiAgICB0aGlzLmhpZ2hsaWdodFByb3BlcnR5ID0gY29uZmlnLmhpZ2hsaWdodFByb3BlcnR5O1xyXG5cclxuICAgIHRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMgPSBjb25maWcuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnM7XHJcblxyXG4gICAgaWYgKHRoaXMuZXhwYW5kYWJsZSkge1xyXG4gICAgICB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzPy5wdXNoKHtcclxuICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnZXhwYW5kJyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlVHlwZSA9IGNvbmZpZy50YWJsZVR5cGU7XHJcblxyXG4gICAgaWYgKHRoaXMudGFibGVUeXBlID09PSBTbWFydFRhYmxlVHlwZS5DSEVDS19CT1gpIHtcclxuICAgICAgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogJycsXHJcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6ICdzZWxlY3QnLFxyXG4gICAgICAgICAgc2hvd0NoZWNrYm94SW5IZWFkZXI6XHJcbiAgICAgICAgICAgIHR5cGVvZiBjb25maWcuc2hvd0NoZWNrYm94SW5IZWFkZXIgPT09ICd1bmRlZmluZWQnID8gdHJ1ZSA6IGNvbmZpZy5zaG93Q2hlY2tib3hJbkhlYWRlcixcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMhLFxyXG4gICAgICBdO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnRhYmxlVHlwZSA9PT0gU21hcnRUYWJsZVR5cGUuQ0hFQ0tfQk9YIHx8XHJcbiAgICAgIHRoaXMudGFibGVUeXBlID09PSBTbWFydFRhYmxlVHlwZS5ST1dfU0VMRUNUXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc011bHRpcGxlID0gY29uZmlnLmlzTXVsdGlwbGU7XHJcblxyXG4gICAgICB0aGlzLnNlbGVjdGlvblByb3BlcnR5ID0gY29uZmlnLnNlbGVjdGlvblByb3BlcnR5O1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbiA9IGNvbmZpZy5zZWxlY3Rpb24gPz8gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KHRoaXMuaXNNdWx0aXBsZSwgW10pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGFibGVIZWFkZXJzID0gdGhpcy5nZXRQcm9wZXJ0eU5hbWVzRGVlcGx5KGNvbmZpZy50YWJsZVJvd3NbMF0pO1xyXG5cclxuICAgIHRoaXMuc2V0VGFibGVIZWFkZXJzKCk7XHJcblxyXG4gICAgdGhpcy50YWJsZVJvd3MgPSBjb25maWcudGFibGVSb3dzO1xyXG4gICAgdGhpcy50aXRsZSA9IGNvbmZpZy50aXRsZTtcclxuICAgIHRoaXMub3B0aW9ucyA9IGNvbmZpZy5vcHRpb25zO1xyXG4gICAgdGhpcy50YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbiA9IGNvbmZpZy50YWJsZU9wdGlvbkJ1dHRvbkRpcmVjdGlvbjtcclxuICAgIHRoaXMub25Sb3dDbGljayA9IGNvbmZpZy5vblJvd0NsaWNrO1xyXG4gICAgdGhpcy5vblJvd0RvdWJsZUNsaWNrID0gY29uZmlnLm9uUm93RG91YmxlQ2xpY2s7XHJcbiAgICB0aGlzLmRlZmF1bHRBY3Rpb25zID0gY29uZmlnLmRlZmF1bHRBY3Rpb25zO1xyXG4gICAgdGhpcy5kZWZhdWx0QWN0aW9uQ29kZXMgPSBjb25maWcuZGVmYXVsdEFjdGlvbkNvZGVzO1xyXG4gICAgdGhpcy5oaWdobGlnaHRPblJvd0NsaWNrID0gY29uZmlnLmhpZ2hsaWdodE9uUm93Q2xpY2s7XHJcbiAgICB0aGlzLmhpZ2hsaWdodENsYXNzID0gY29uZmlnLmhpZ2hsaWdodENsYXNzO1xyXG4gICAgdGhpcy5ob3ZlciA9IGNvbmZpZy5ob3ZlcjtcclxuICAgIHRoaXMuc29ydEljb25Bc2MgPSBjb25maWcuc29ydEljb25Bc2M7XHJcbiAgICB0aGlzLnNvcnRJY29uRGVzYyA9IGNvbmZpZy5zb3J0SWNvbkRlc2M7XHJcbiAgICB0aGlzLnNvcnRJY29uTmV1dHJhbCA9IGNvbmZpZy5zb3J0SWNvbk5ldXRyYWw7XHJcbiAgICB0aGlzLnNvcnRhYmxlID0gY29uZmlnLnNvcnRhYmxlO1xyXG4gICAgdGhpcy5tYXhOdW1PZlNlbGVjdGFibGVSb3dzID0gY29uZmlnLm1heE51bU9mU2VsZWN0YWJsZVJvd3M7XHJcbiAgICB0aGlzLmlzUm93RGlzYWJsZWRQcm9wZXJ0eU5hbWUgPSBjb25maWcuaXNSb3dEaXNhYmxlZFByb3BlcnR5TmFtZTtcclxuICAgIHRoaXMuc2VsZWN0YWJsZVByb3BlcnR5TmFtZSA9IGNvbmZpZy5zZWxlY3RhYmxlUHJvcGVydHlOYW1lO1xyXG4gICAgdGhpcy5vblNlbGVjdGlvbiA9IGNvbmZpZy5vblNlbGVjdGlvbjtcclxuICAgIHRoaXMub25BbGxTZWxlY3Rpb24gPSBjb25maWcub25BbGxTZWxlY3Rpb247XHJcbiAgICB0aGlzLnJvd0V4cGFuZGVyID0gY29uZmlnLnJvd0V4cGFuZGVyO1xyXG4gICAgdGhpcy5ncmlkSWQgPSBjb25maWcuZ3JpZElkO1xyXG4gICAgdGhpcy5zZXJ2aWNlVG9Vc2UgPSBjb25maWcuc2VydmljZVRvVXNlO1xyXG5cclxuICAgIHRoaXMucHVzaE9wdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIGdldFByb3BlcnR5TmFtZXNEZWVwbHkoZWxlbWVudDogYW55KTogc3RyaW5nW10ge1xyXG4gICAgaWYgKGVsZW1lbnQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5rZXlzKGVsZW1lbnQpO1xyXG4gICAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgZWxlbWVudCA9PT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgICAgdHlwZW9mIGVsZW1lbnRbcHJvcGVydHldID09PSAnc3RyaW5nJyB8fFxyXG4gICAgICAgIHR5cGVvZiBlbGVtZW50W3Byb3BlcnR5XSA9PT0gJ2Jvb2xlYW4nIHx8XHJcbiAgICAgICAgdHlwZW9mIGVsZW1lbnRbcHJvcGVydHldID09PSAnbnVtYmVyJyB8fFxyXG4gICAgICAgIGVsZW1lbnRbcHJvcGVydHldID09PSB1bmRlZmluZWQgfHxcclxuICAgICAgICBlbGVtZW50W3Byb3BlcnR5XSA9PT0gbnVsbCB8fFxyXG4gICAgICAgICFlbGVtZW50W3Byb3BlcnR5XSB8fFxyXG4gICAgICAgICFlbGVtZW50XHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgaW5uZXJQcm9wZXJ0aWVzID0gdGhpcy5nZXRQcm9wZXJ0eU5hbWVzRGVlcGx5KGVsZW1lbnRbcHJvcGVydHldKTtcclxuICAgICAgcHJvcGVydGllcy5wdXNoKC4uLmlubmVyUHJvcGVydGllcyk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwcm9wZXJ0aWVzO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWVEZWVwbHkobW9kZWw6IGFueSwga2V5OiBzdHJpbmcpOiBhbnkge1xyXG4gICAgbGV0IHNwbGl0dGVkS2V5ID0ga2V5LnNwbGl0KCcuJyk7XHJcbiAgICBsZXQgdmFsdWU6IGFueTtcclxuXHJcbiAgICBzcGxpdHRlZEtleS5mb3JFYWNoKChrOiBzdHJpbmcpID0+IHtcclxuICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgIHZhbHVlID0gbW9kZWxba107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZVtrXSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlW2tdID09PSBudWxsIHx8ICF2YWx1ZSkge1xyXG4gICAgICAgICAgdmFsdWUgPSAnJztcclxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZVtrXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVzaE9wdGlvbnMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy50YWJsZUhlYWRlcnMucHVzaCgnb3B0aW9ucycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VGFibGVIZWFkZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tU21hcnRUYWJsZUhlYWRlcnMgJiYgdGhpcy5jdXN0b21TbWFydFRhYmxlSGVhZGVycy5sZW5ndGgpIHtcclxuICAgICAgbGV0IG9yaWdpbmFsSGVhZGVycyA9IHRoaXMudGFibGVIZWFkZXJzO1xyXG4gICAgICB0aGlzLnRhYmxlSGVhZGVycyA9IFtdO1xyXG4gICAgICB0aGlzLmN1c3RvbVRhYmxlSGVhZGVycyA9IFtdO1xyXG4gICAgICB0aGlzLmN1c3RvbVNtYXJ0VGFibGVIZWFkZXJzLmZvckVhY2goKHRhYmxlSGVhZGVyKSA9PiB7XHJcbiAgICAgICAgbGV0IHByb3BlcnR5TmFtZXMgPSB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUuc3BsaXQoJy4nKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmZpbHRlcigocHJvcGVydHkpID0+IG9yaWdpbmFsSGVhZGVycy5pbmNsdWRlcyhwcm9wZXJ0eSkpICYmXHJcbiAgICAgICAgICAhdGFibGVIZWFkZXIuaXNIaWRkZW5cclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVIZWFkZXJzLnB1c2godGFibGVIZWFkZXIucHJvcGVydHlOYW1lKTtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tVGFibGVIZWFkZXJzLnB1c2godGFibGVIZWFkZXIubGFiZWwpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5idXR0b25zIHx8XHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5pY29uIHx8XHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUgPT09ICdleHBhbmQnIHx8XHJcbiAgICAgICAgICB0YWJsZUhlYWRlci5wcm9wZXJ0eU5hbWUgPT09ICdzZWxlY3QnXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLnByb3BlcnR5TmFtZSk7XHJcbiAgICAgICAgICB0aGlzLmN1c3RvbVRhYmxlSGVhZGVycy5wdXNoKHRhYmxlSGVhZGVyLmxhYmVsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXN0b21UYWJsZUhlYWRlcnMgPSB0aGlzLnRhYmxlSGVhZGVycztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -21,6 +21,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|
|
21
21
|
import { CommonModule } from '@angular/common';
|
|
22
22
|
import { SharedModule } from '../shared/shared.module';
|
|
23
23
|
import { MatContextMenuTriggerForDirective } from './directives/mat-context-menu-trigger-for.directive';
|
|
24
|
+
import { SmartViewContextModule } from '../view-context/smart-view-context.module';
|
|
24
25
|
import * as i0 from "@angular/core";
|
|
25
26
|
export class SmarttableModule {
|
|
26
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -46,7 +47,8 @@ export class SmarttableModule {
|
|
|
46
47
|
MatDividerModule,
|
|
47
48
|
MatTooltipModule,
|
|
48
49
|
CommonModule,
|
|
49
|
-
SharedModule
|
|
50
|
+
SharedModule,
|
|
51
|
+
SmartViewContextModule], exports: [SmarttableComponent] }); }
|
|
50
52
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttableModule, providers: [ComponentFactoryService], imports: [SharedModule,
|
|
51
53
|
BrowserModule,
|
|
52
54
|
MatCommonModule,
|
|
@@ -64,7 +66,8 @@ export class SmarttableModule {
|
|
|
64
66
|
MatDividerModule,
|
|
65
67
|
MatTooltipModule,
|
|
66
68
|
CommonModule,
|
|
67
|
-
SharedModule
|
|
69
|
+
SharedModule,
|
|
70
|
+
SmartViewContextModule] }); }
|
|
68
71
|
}
|
|
69
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttableModule, decorators: [{
|
|
70
73
|
type: NgModule,
|
|
@@ -96,10 +99,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
96
99
|
MatTooltipModule,
|
|
97
100
|
CommonModule,
|
|
98
101
|
SharedModule,
|
|
102
|
+
SmartViewContextModule,
|
|
99
103
|
],
|
|
100
104
|
exports: [SmarttableComponent],
|
|
101
105
|
providers: [ComponentFactoryService],
|
|
102
106
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
103
107
|
}]
|
|
104
108
|
}] });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnR0YWJsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi9zbWFydC10YWJsZS9zbWFydHRhYmxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixHQUM5QixNQUFNLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOztBQW9DbkYsTUFBTSxPQUFPLGdCQUFnQjsrR0FBaEIsZ0JBQWdCO2dIQUFoQixnQkFBZ0IsaUJBaEN6QixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLHNCQUFzQjtZQUN0QixvQkFBb0I7WUFDcEIsNEJBQTRCO1lBQzVCLGlDQUFpQyxhQUdqQyxZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTtZQUNiLHdCQUF3QjtZQUN4Qiw2QkFBNkI7WUFDN0IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFlBQVk7WUFDWixzQkFBc0IsYUFFZCxtQkFBbUI7Z0hBSWxCLGdCQUFnQixhQUhoQixDQUFDLHVCQUF1QixDQUFDLFlBckJsQyxZQUFZO1lBQ1osYUFBYTtZQUNiLGVBQWU7WUFDZixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsYUFBYTtZQUNiLHdCQUF3QjtZQUN4Qiw2QkFBNkI7WUFDN0IsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLFlBQVk7WUFDWixzQkFBc0I7OzRGQU1iLGdCQUFnQjtrQkFsQzVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsNEJBQTRCO3dCQUM1QixpQ0FBaUM7cUJBQ2xDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2Isd0JBQXdCO3dCQUN4Qiw2QkFBNkI7d0JBQzdCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUM5QixTQUFTLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztvQkFDcEMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE1hdENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcclxuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5cclxuaW1wb3J0IHsgU21hcnR0YWJsZUNvbXBvbmVudCB9IGZyb20gJy4vc21hcnR0YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vdGFibGVzL21hdGVyaWFsLXRhYmxlL21hdGVyaWFsLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vYmlsZVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi90YWJsZXMvbW9iaWxlLXRhYmxlL21vYmlsZS10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudEZhY3RvcnlTZXJ2aWNlLFxyXG4gIENvbXBvbmVudEZhY3RvcnlTZXJ2aWNlTW9kdWxlLFxyXG59IGZyb20gJy4uL2NvbXBvbmVudC1mYWN0b3J5LXNlcnZpY2UvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBTbWFydEljb25Nb2R1bGUgfSBmcm9tICcuLi9zbWFydC1pY29uL3Byb2plY3RzJztcclxuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBEZWZhdWx0QWN0aW9uc1BvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RlZmF1bHQtYWN0aW9ucy1wb3B1cC9kZWZhdWx0LWFjdGlvbnMtcG9wdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcbmltcG9ydCB7IE1hdENvbnRleHRNZW51VHJpZ2dlckZvckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9tYXQtY29udGV4dC1tZW51LXRyaWdnZXItZm9yLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNtYXJ0Vmlld0NvbnRleHRNb2R1bGUgfSBmcm9tICcuLi92aWV3LWNvbnRleHQvc21hcnQtdmlldy1jb250ZXh0Lm1vZHVsZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgU21hcnR0YWJsZUNvbXBvbmVudCxcclxuICAgIExvYWRpbmdDb21wb25lbnQsXHJcbiAgICBNYXRlcmlhbFRhYmxlQ29tcG9uZW50LFxyXG4gICAgTW9iaWxlVGFibGVDb21wb25lbnQsXHJcbiAgICBEZWZhdWx0QWN0aW9uc1BvcHVwQ29tcG9uZW50LFxyXG4gICAgTWF0Q29udGV4dE1lbnVUcmlnZ2VyRm9yRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2hhcmVkTW9kdWxlLFxyXG4gICAgQnJvd3Nlck1vZHVsZSxcclxuICAgIE1hdENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0VGFibGVNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcclxuICAgIENvbXBvbmVudEZhY3RvcnlTZXJ2aWNlTW9kdWxlLFxyXG4gICAgU21hcnRJY29uTW9kdWxlLFxyXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTaGFyZWRNb2R1bGUsXHJcbiAgICBTbWFydFZpZXdDb250ZXh0TW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1NtYXJ0dGFibGVDb21wb25lbnRdLFxyXG4gIHByb3ZpZGVyczogW0NvbXBvbmVudEZhY3RvcnlTZXJ2aWNlXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbWFydHRhYmxlTW9kdWxlIHt9XHJcbiJdfQ==
|