@ogidor/dashboard 1.0.15 → 1.0.16
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/README.md +24 -8
- package/app/models.d.ts +8 -0
- package/esm2020/app/dashboard.component.mjs +11 -3
- package/esm2020/app/models.mjs +1 -1
- package/fesm2015/ogidor-dashboard.mjs +10 -2
- package/fesm2015/ogidor-dashboard.mjs.map +1 -1
- package/fesm2020/ogidor-dashboard.mjs +10 -2
- package/fesm2020/ogidor-dashboard.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ sync — out of the box.
|
|
|
32
32
|
- **Structural Sync** — adding, removing, or renaming a widget in any window instantly appears in all open windows via `BroadcastChannel`.
|
|
33
33
|
- **Persistent Layout** — state is saved to `localStorage` on every change and restored on reload.
|
|
34
34
|
- **Content-Agnostic Cards** — you own the card body; stamp any Angular component, chart, or markup inside via `ng-template`.
|
|
35
|
-
- **Fully Themeable** —
|
|
35
|
+
- **Fully Themeable** — 36 colour tokens plus font family, controllable via a typed `DashboardTheme` input or CSS custom properties.
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
@@ -317,6 +317,10 @@ export interface DashboardTheme {
|
|
|
317
317
|
tabHoverTextColor?: string; // hovered tab text default: #e5e5ea
|
|
318
318
|
tabHoverBgColor?: string; // hovered tab bg default: rgba(255,255,255,0.05)
|
|
319
319
|
addWidgetButtonTextColor?: string; // Add Widget label default: #ffffff
|
|
320
|
+
addWidgetButtonIconColor?: string; // Add Widget icon colour default: #ffffff
|
|
321
|
+
addWidgetButtonBgColor?: string; // Add Widget button bg default: #0a84ff
|
|
322
|
+
tabActiveIconColor?: string; // active tab action icons default: #ffffff
|
|
323
|
+
tabInactiveIconColor?: string; // inactive tab action icons default: #8e8e93
|
|
320
324
|
overflowBtnBgColor?: string; // "+N more" button bg default: rgba(255,255,255,0.08)
|
|
321
325
|
overflowBtnBorderColor?: string; // "+N more" button border default: rgba(255,255,255,0.12)
|
|
322
326
|
|
|
@@ -355,13 +359,17 @@ Pass a partial `DashboardTheme` to `[theme]`. Only provided fields are overridde
|
|
|
355
359
|
|
|
356
360
|
```typescript
|
|
357
361
|
theme: DashboardTheme = {
|
|
358
|
-
accentColor:
|
|
359
|
-
accentTintColor:
|
|
360
|
-
accentTintStrongColor:
|
|
361
|
-
tabActiveColor:
|
|
362
|
-
tabActiveTextColor:
|
|
363
|
-
|
|
364
|
-
|
|
362
|
+
accentColor: '#6c63ff',
|
|
363
|
+
accentTintColor: 'rgba(108,99,255,0.15)',
|
|
364
|
+
accentTintStrongColor: 'rgba(108,99,255,0.25)',
|
|
365
|
+
tabActiveColor: '#2a2a38',
|
|
366
|
+
tabActiveTextColor: '#ffffff',
|
|
367
|
+
tabActiveIconColor: '#ffffff', // icons on the active tab
|
|
368
|
+
tabInactiveIconColor: '#6e6e73', // icons on inactive tabs
|
|
369
|
+
addWidgetButtonBgColor: '#6c63ff', // button background
|
|
370
|
+
addWidgetButtonIconColor: '#ffffff', // + icon inside button
|
|
371
|
+
widgetTitleColor: '#f0f0f0',
|
|
372
|
+
placeholderColor: '#6c63ff',
|
|
365
373
|
};
|
|
366
374
|
```
|
|
367
375
|
|
|
@@ -395,6 +403,10 @@ app-dashboard {
|
|
|
395
403
|
--dash-tab-hover-text: #d0d0d5;
|
|
396
404
|
--dash-tab-hover-bg: rgba(255,255,255,0.05);
|
|
397
405
|
--dash-add-widget-text: #ffffff;
|
|
406
|
+
--dash-add-widget-icon: #ffffff;
|
|
407
|
+
--dash-add-widget-bg: #0a84ff;
|
|
408
|
+
--dash-tab-active-icon: #ffffff;
|
|
409
|
+
--dash-tab-inactive-icon: #a0a0a0;
|
|
398
410
|
--dash-overflow-btn-bg: rgba(255,255,255,0.08);
|
|
399
411
|
--dash-overflow-btn-border: rgba(255,255,255,0.12);
|
|
400
412
|
|
|
@@ -442,6 +454,10 @@ app-dashboard {
|
|
|
442
454
|
| `--dash-tab-hover-text` | `tabHoverTextColor` | `#e5e5ea` |
|
|
443
455
|
| `--dash-tab-hover-bg` | `tabHoverBgColor` | `rgba(255,255,255,0.05)` |
|
|
444
456
|
| `--dash-add-widget-text` | `addWidgetButtonTextColor` | `#ffffff` |
|
|
457
|
+
| `--dash-add-widget-icon` | `addWidgetButtonIconColor` | `#ffffff` |
|
|
458
|
+
| `--dash-add-widget-bg` | `addWidgetButtonBgColor` | `#0a84ff` |
|
|
459
|
+
| `--dash-tab-active-icon` | `tabActiveIconColor` | `#ffffff` |
|
|
460
|
+
| `--dash-tab-inactive-icon` | `tabInactiveIconColor` | `#8e8e93` |
|
|
445
461
|
| `--dash-overflow-btn-bg` | `overflowBtnBgColor` | `rgba(255,255,255,0.08)` |
|
|
446
462
|
| `--dash-overflow-btn-border` | `overflowBtnBorderColor` | `rgba(255,255,255,0.12)` |
|
|
447
463
|
| `--dash-overlay-bg` | `overlayBgColor` | `rgba(0,0,0,0.55)` |
|
package/app/models.d.ts
CHANGED
|
@@ -70,6 +70,14 @@ export interface DashboardTheme {
|
|
|
70
70
|
tabHoverBgColor?: string;
|
|
71
71
|
/** Text color of the "Add Widget" button. Default: `#ffffff` */
|
|
72
72
|
addWidgetButtonTextColor?: string;
|
|
73
|
+
/** Icon color of the "Add Widget" button. Default: `#ffffff` */
|
|
74
|
+
addWidgetButtonIconColor?: string;
|
|
75
|
+
/** Background of the "Add Widget" button. Default: same as `accentColor` (`#0a84ff`) */
|
|
76
|
+
addWidgetButtonBgColor?: string;
|
|
77
|
+
/** Icon color of the active (selected) tab action buttons. Default: `#ffffff` */
|
|
78
|
+
tabActiveIconColor?: string;
|
|
79
|
+
/** Icon color of the inactive tab action buttons. Default: `#8e8e93` (same as foreColor) */
|
|
80
|
+
tabInactiveIconColor?: string;
|
|
73
81
|
/** Background of the overflow "+N" button. Default: `rgba(255,255,255,0.08)` */
|
|
74
82
|
overflowBtnBgColor?: string;
|
|
75
83
|
/** Border of the overflow "+N" button. Default: `rgba(255,255,255,0.12)` */
|
|
@@ -24,6 +24,10 @@ const DEFAULT_THEME = {
|
|
|
24
24
|
tabHoverTextColor: '#e5e5ea',
|
|
25
25
|
tabHoverBgColor: 'rgba(255,255,255,0.05)',
|
|
26
26
|
addWidgetButtonTextColor: '#ffffff',
|
|
27
|
+
addWidgetButtonIconColor: '#ffffff',
|
|
28
|
+
addWidgetButtonBgColor: '#0a84ff',
|
|
29
|
+
tabActiveIconColor: '#ffffff',
|
|
30
|
+
tabInactiveIconColor: '#8e8e93',
|
|
27
31
|
overflowBtnBgColor: 'rgba(255,255,255,0.08)',
|
|
28
32
|
overflowBtnBorderColor: 'rgba(255,255,255,0.12)',
|
|
29
33
|
overlayBgColor: 'rgba(0,0,0,0.55)',
|
|
@@ -246,6 +250,10 @@ export class DashboardComponent {
|
|
|
246
250
|
'--dash-tab-hover-text': t.tabHoverTextColor,
|
|
247
251
|
'--dash-tab-hover-bg': t.tabHoverBgColor,
|
|
248
252
|
'--dash-add-widget-text': t.addWidgetButtonTextColor,
|
|
253
|
+
'--dash-add-widget-icon': t.addWidgetButtonIconColor,
|
|
254
|
+
'--dash-add-widget-bg': t.addWidgetButtonBgColor,
|
|
255
|
+
'--dash-tab-active-icon': t.tabActiveIconColor,
|
|
256
|
+
'--dash-tab-inactive-icon': t.tabInactiveIconColor,
|
|
249
257
|
'--dash-overflow-btn-bg': t.overflowBtnBgColor,
|
|
250
258
|
'--dash-overflow-btn-border': t.overflowBtnBorderColor,
|
|
251
259
|
'--dash-overlay-bg': t.overlayBgColor,
|
|
@@ -402,7 +410,7 @@ DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
402
410
|
</main>
|
|
403
411
|
</div>
|
|
404
412
|
</ng-template>
|
|
405
|
-
`, isInline: true, styles: [":host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;--dash-bg: #000000;--dash-panel-bg: #1c1c1e;--dash-panel-border: rgba(255,255,255,.05);--dash-card-bg: #2c2c2e;--dash-fore-color: #8e8e93;--dash-accent-color: #0a84ff;--dash-accent-tint: rgba(10,132,255,.15);--dash-accent-tint-strong: rgba(10,132,255,.25);--dash-danger-color: #ff453a;--dash-danger-tint: rgba(255,69,58,.22);--dash-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;--dash-tabs-container-color: rgba(44,44,46,.6);--dash-tab-active-color: #3a3a3c;--dash-tab-active-text: #ffffff;--dash-tab-hover-text: #e5e5ea;--dash-tab-hover-bg: rgba(255,255,255,.05);--dash-add-widget-text: #ffffff;--dash-overflow-btn-bg: rgba(255,255,255,.08);--dash-overflow-btn-border: rgba(255,255,255,.12);--dash-overlay-bg: rgba(0,0,0,.55);--dash-switcher-sheet-bg: #1c1c1e;--dash-switcher-card-bg: #2c2c2e;--dash-sheet-border: rgba(255,255,255,.08);--dash-scrollbar-color: rgba(255,255,255,.15);--dash-switcher-title: #ffffff;--dash-switcher-card-text: #ffffff;--dash-popout-title-color: #ffffff;--dash-widget-title-color: #ffffff;--dash-drag-handle-color: rgba(255,255,255,.2);--dash-widget-border-color: rgba(255,255,255,.07);--dash-widget-btn-bg: rgba(255,255,255,.07);--dash-widget-btn-color: rgba(255,255,255,.5);--dash-placeholder-color: #0a84ff;--dash-resize-handle-color: rgba(255,255,255,.25)}.dashboard-wrapper{display:flex;flex:1;min-height:0;overflow:hidden;padding:16px;box-sizing:border-box;background:var(--dash-bg);color:var(--dash-fore-color);font-family:var(--dash-font-family)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;border-radius:40px;padding:20px;background:var(--dash-panel-bg);border:1px solid var(--dash-panel-border);position:relative}.popout-wrapper{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding:16px;box-sizing:border-box;background:var(--dash-bg);color:var(--dash-fore-color);font-family:var(--dash-font-family)}.popout-header{display:flex;align-items:center;margin-bottom:16px;padding:10px 18px;background:var(--dash-panel-bg);border-radius:20px;border:1px solid var(--dash-panel-border);flex-shrink:0}.popout-title{font-size:16px;font-weight:700;color:var(--dash-popout-title-color)}.popout-wrapper app-grid{flex:1;min-height:0;overflow:auto}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-shrink:0}.tabs-track{display:flex;align-items:center;gap:6px;flex:1;min-width:0;background:var(--dash-tabs-container-color);backdrop-filter:blur(10px);border-radius:25px;padding:6px;overflow:hidden}.tab{display:flex;align-items:center;gap:4px;padding:8px 14px 8px 18px;border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;color:var(--dash-fore-color);white-space:nowrap;flex-shrink:0;transition:background .2s,color .2s}.tab.active{background:var(--dash-tab-active-color);color:var(--dash-tab-active-text)}.tab:hover:not(.active){color:var(--dash-tab-hover-text);background:var(--dash-tab-hover-bg)}.tab-name{white-space:nowrap}.tab-action{background:transparent;border:none;color:var(--dash-fore-color);padding:2px;font-size:11px;cursor:pointer;opacity:0;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.tab:hover .tab-action{opacity:1}.tab-popout:hover{color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-close:hover{color:var(--dash-danger-color);background:var(--dash-danger-tint)}.btn-overflow{display:inline-flex;align-items:center;gap:5px;background:var(--dash-overflow-btn-bg);border:1px solid var(--dash-overflow-btn-border);border-radius:20px;padding:7px 13px;cursor:pointer;font-size:13px;font-weight:600;color:var(--dash-tab-active-text);white-space:nowrap;flex-shrink:0;transition:background .2s,border-color .2s,color .2s}.btn-overflow:hover{background:var(--dash-accent-tint);border-color:var(--dash-accent-color);color:var(--dash-accent-color)}.btn-add-page{background:transparent;border:none;color:var(--dash-fore-color);padding:8px 14px;cursor:pointer;border-radius:20px;flex-shrink:0;transition:all .2s}.btn-add-page:hover{color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-switcher-overlay{position:absolute;inset:0;z-index:1000;background:var(--dash-overlay-bg);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:60px;animation:overlay-in .18s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.tab-switcher-sheet{background:var(--dash-switcher-sheet-bg);border:1px solid var(--dash-sheet-border);border-radius:24px;width:min(520px,calc(100% - 32px));max-height:calc(100% - 80px);display:flex;flex-direction:column;overflow:hidden;animation:sheet-in .22s cubic-bezier(.32,1.2,.5,1)}@keyframes sheet-in{0%{transform:translateY(-16px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.tab-switcher-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--dash-sheet-border);flex-shrink:0}.tab-switcher-title{font-size:15px;font-weight:700;color:var(--dash-switcher-title)}.tab-switcher-close-btn{background:var(--dash-widget-btn-bg);border:none;color:var(--dash-fore-color);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:background .15s,color .15s}.tab-switcher-close-btn:hover{background:var(--dash-danger-tint);color:var(--dash-danger-color)}.tab-switcher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:16px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--dash-scrollbar-color) transparent}.tab-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px 12px;border-radius:16px;background:var(--dash-switcher-card-bg);border:1.5px solid transparent;cursor:pointer;transition:border-color .15s,background .15s,transform .12s;position:relative}.tab-card:hover{background:var(--dash-tab-hover-bg);transform:translateY(-2px)}.tab-card.active{border-color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-card-icon{width:44px;height:44px;border-radius:12px;background:var(--dash-widget-btn-bg);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--dash-
|
|
413
|
+
`, isInline: true, styles: [":host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;--dash-bg: #000000;--dash-panel-bg: #1c1c1e;--dash-panel-border: rgba(255,255,255,.05);--dash-card-bg: #2c2c2e;--dash-fore-color: #8e8e93;--dash-accent-color: #0a84ff;--dash-accent-tint: rgba(10,132,255,.15);--dash-accent-tint-strong: rgba(10,132,255,.25);--dash-danger-color: #ff453a;--dash-danger-tint: rgba(255,69,58,.22);--dash-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;--dash-tabs-container-color: rgba(44,44,46,.6);--dash-tab-active-color: #3a3a3c;--dash-tab-active-text: #ffffff;--dash-tab-hover-text: #e5e5ea;--dash-tab-hover-bg: rgba(255,255,255,.05);--dash-add-widget-text: #ffffff;--dash-add-widget-icon: #ffffff;--dash-add-widget-bg: #0a84ff;--dash-tab-active-icon: #ffffff;--dash-tab-inactive-icon: #8e8e93;--dash-overflow-btn-bg: rgba(255,255,255,.08);--dash-overflow-btn-border: rgba(255,255,255,.12);--dash-overlay-bg: rgba(0,0,0,.55);--dash-switcher-sheet-bg: #1c1c1e;--dash-switcher-card-bg: #2c2c2e;--dash-sheet-border: rgba(255,255,255,.08);--dash-scrollbar-color: rgba(255,255,255,.15);--dash-switcher-title: #ffffff;--dash-switcher-card-text: #ffffff;--dash-popout-title-color: #ffffff;--dash-widget-title-color: #ffffff;--dash-drag-handle-color: rgba(255,255,255,.2);--dash-widget-border-color: rgba(255,255,255,.07);--dash-widget-btn-bg: rgba(255,255,255,.07);--dash-widget-btn-color: rgba(255,255,255,.5);--dash-placeholder-color: #0a84ff;--dash-resize-handle-color: rgba(255,255,255,.25)}.dashboard-wrapper{display:flex;flex:1;min-height:0;overflow:hidden;padding:16px;box-sizing:border-box;background:var(--dash-bg);color:var(--dash-fore-color);font-family:var(--dash-font-family)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;border-radius:40px;padding:20px;background:var(--dash-panel-bg);border:1px solid var(--dash-panel-border);position:relative}.popout-wrapper{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding:16px;box-sizing:border-box;background:var(--dash-bg);color:var(--dash-fore-color);font-family:var(--dash-font-family)}.popout-header{display:flex;align-items:center;margin-bottom:16px;padding:10px 18px;background:var(--dash-panel-bg);border-radius:20px;border:1px solid var(--dash-panel-border);flex-shrink:0}.popout-title{font-size:16px;font-weight:700;color:var(--dash-popout-title-color)}.popout-wrapper app-grid{flex:1;min-height:0;overflow:auto}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-shrink:0}.tabs-track{display:flex;align-items:center;gap:6px;flex:1;min-width:0;background:var(--dash-tabs-container-color);backdrop-filter:blur(10px);border-radius:25px;padding:6px;overflow:hidden}.tab{display:flex;align-items:center;gap:4px;padding:8px 14px 8px 18px;border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;color:var(--dash-fore-color);white-space:nowrap;flex-shrink:0;transition:background .2s,color .2s}.tab.active{background:var(--dash-tab-active-color);color:var(--dash-tab-active-text)}.tab:hover:not(.active){color:var(--dash-tab-hover-text);background:var(--dash-tab-hover-bg)}.tab-name{white-space:nowrap}.tab-action{background:transparent;border:none;color:var(--dash-fore-color);padding:2px;font-size:11px;cursor:pointer;opacity:0;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.tab:hover .tab-action{opacity:1}.tab.active .tab-action{color:var(--dash-tab-active-icon)}.tab:not(.active) .tab-action{color:var(--dash-tab-inactive-icon)}.tab-popout:hover{color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-close:hover{color:var(--dash-danger-color);background:var(--dash-danger-tint)}.btn-overflow{display:inline-flex;align-items:center;gap:5px;background:var(--dash-overflow-btn-bg);border:1px solid var(--dash-overflow-btn-border);border-radius:20px;padding:7px 13px;cursor:pointer;font-size:13px;font-weight:600;color:var(--dash-tab-active-text);white-space:nowrap;flex-shrink:0;transition:background .2s,border-color .2s,color .2s}.btn-overflow:hover{background:var(--dash-accent-tint);border-color:var(--dash-accent-color);color:var(--dash-accent-color)}.btn-add-page{background:transparent;border:none;color:var(--dash-fore-color);padding:8px 14px;cursor:pointer;border-radius:20px;flex-shrink:0;transition:all .2s}.btn-add-page:hover{color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-switcher-overlay{position:absolute;inset:0;z-index:1000;background:var(--dash-overlay-bg);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:60px;animation:overlay-in .18s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.tab-switcher-sheet{background:var(--dash-switcher-sheet-bg);border:1px solid var(--dash-sheet-border);border-radius:24px;width:min(520px,calc(100% - 32px));max-height:calc(100% - 80px);display:flex;flex-direction:column;overflow:hidden;animation:sheet-in .22s cubic-bezier(.32,1.2,.5,1)}@keyframes sheet-in{0%{transform:translateY(-16px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.tab-switcher-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--dash-sheet-border);flex-shrink:0}.tab-switcher-title{font-size:15px;font-weight:700;color:var(--dash-switcher-title)}.tab-switcher-close-btn{background:var(--dash-widget-btn-bg);border:none;color:var(--dash-fore-color);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:background .15s,color .15s}.tab-switcher-close-btn:hover{background:var(--dash-danger-tint);color:var(--dash-danger-color)}.tab-switcher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:16px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--dash-scrollbar-color) transparent}.tab-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px 12px;border-radius:16px;background:var(--dash-switcher-card-bg);border:1.5px solid transparent;cursor:pointer;transition:border-color .15s,background .15s,transform .12s;position:relative}.tab-card:hover{background:var(--dash-tab-hover-bg);transform:translateY(-2px)}.tab-card.active{border-color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-card-icon{width:44px;height:44px;border-radius:12px;background:var(--dash-widget-btn-bg);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--dash-switcher-card-icon)}.tab-card.active .tab-card-icon{background:var(--dash-accent-tint-strong);color:var(--dash-switcher-active-card-icon)}.tab-card-name{font-size:13px;font-weight:500;color:var(--dash-switcher-card-text);text-align:center;word-break:break-word;line-height:1.3}.tab-card-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.tab-card:hover .tab-card-actions{opacity:1}.tab-card-btn{background:var(--dash-widget-btn-bg);border:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;color:var(--dash-fore-color);transition:background .15s,color .15s}.tab-card-popout:hover{background:var(--dash-accent-tint-strong);color:var(--dash-accent-color)}.tab-card-remove:hover{background:var(--dash-danger-tint);color:var(--dash-danger-color)}.tab-switcher-footer{padding:12px 16px 16px;border-top:1px solid var(--dash-sheet-border);flex-shrink:0}.tab-switcher-add-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px 20px;border-radius:16px;background:var(--dash-accent-tint);border:1.5px dashed var(--dash-accent-tint-strong);color:var(--dash-accent-color);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.tab-switcher-add-btn:hover{background:var(--dash-accent-tint-strong);border-color:var(--dash-accent-color)}.btn-add-widget{display:flex;align-items:center;gap:6px;background:var(--dash-add-widget-bg);border:none;color:var(--dash-add-widget-text);font-size:14px;font-weight:600;padding:10px 20px;border-radius:22px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:opacity .2s,transform .15s}.btn-add-widget i{color:var(--dash-add-widget-icon)}.btn-add-widget:hover{opacity:.9;transform:translateY(-1px)}.btn-add-widget:active{transform:translateY(0)}.main-content .grid-container{flex:1;overflow:auto;border-radius:24px;min-height:0}app-grid{background:transparent;display:block;height:100%;width:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.WidgetRendererComponent, selector: "app-widget-renderer", inputs: ["widget", "theme"], outputs: ["editRequested", "removeRequested"] }, { kind: "component", type: i4.CustomGridComponent, selector: "app-grid", inputs: ["widgets", "columns", "gap", "rowHeight", "minItemCols", "minItemRows"], outputs: ["itemChanged", "layoutChanged"] }, { kind: "directive", type: i4.GridCellDirective, selector: "[gridCell]" }] });
|
|
406
414
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DashboardComponent, decorators: [{
|
|
407
415
|
type: Component,
|
|
408
416
|
args: [{ selector: 'app-dashboard', host: { '[style]': 'wrapperStyles' }, template: `
|
|
@@ -537,7 +545,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
537
545
|
</main>
|
|
538
546
|
</div>
|
|
539
547
|
</ng-template>
|
|
540
|
-
`, styles: [":host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;--dash-bg: #000000;--dash-panel-bg: #1c1c1e;--dash-panel-border: rgba(255,255,255,.05);--dash-card-bg: #2c2c2e;--dash-fore-color: #8e8e93;--dash-accent-color: #0a84ff;--dash-accent-tint: rgba(10,132,255,.15);--dash-accent-tint-strong: rgba(10,132,255,.25);--dash-danger-color: #ff453a;--dash-danger-tint: rgba(255,69,58,.22);--dash-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;--dash-tabs-container-color: rgba(44,44,46,.6);--dash-tab-active-color: #3a3a3c;--dash-tab-active-text: #ffffff;--dash-tab-hover-text: #e5e5ea;--dash-tab-hover-bg: rgba(255,255,255,.05);--dash-add-widget-text: #ffffff;--dash-overflow-btn-bg: rgba(255,255,255,.08);--dash-overflow-btn-border: rgba(255,255,255,.12);--dash-overlay-bg: rgba(0,0,0,.55);--dash-switcher-sheet-bg: #1c1c1e;--dash-switcher-card-bg: #2c2c2e;--dash-sheet-border: rgba(255,255,255,.08);--dash-scrollbar-color: rgba(255,255,255,.15);--dash-switcher-title: #ffffff;--dash-switcher-card-text: #ffffff;--dash-popout-title-color: #ffffff;--dash-widget-title-color: #ffffff;--dash-drag-handle-color: rgba(255,255,255,.2);--dash-widget-border-color: rgba(255,255,255,.07);--dash-widget-btn-bg: rgba(255,255,255,.07);--dash-widget-btn-color: rgba(255,255,255,.5);--dash-placeholder-color: #0a84ff;--dash-resize-handle-color: rgba(255,255,255,.25)}.dashboard-wrapper{display:flex;flex:1;min-height:0;overflow:hidden;padding:16px;box-sizing:border-box;background:var(--dash-bg);color:var(--dash-fore-color);font-family:var(--dash-font-family)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;border-radius:40px;padding:20px;background:var(--dash-panel-bg);border:1px solid var(--dash-panel-border);position:relative}.popout-wrapper{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding:16px;box-sizing:border-box;background:var(--dash-bg);color:var(--dash-fore-color);font-family:var(--dash-font-family)}.popout-header{display:flex;align-items:center;margin-bottom:16px;padding:10px 18px;background:var(--dash-panel-bg);border-radius:20px;border:1px solid var(--dash-panel-border);flex-shrink:0}.popout-title{font-size:16px;font-weight:700;color:var(--dash-popout-title-color)}.popout-wrapper app-grid{flex:1;min-height:0;overflow:auto}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-shrink:0}.tabs-track{display:flex;align-items:center;gap:6px;flex:1;min-width:0;background:var(--dash-tabs-container-color);backdrop-filter:blur(10px);border-radius:25px;padding:6px;overflow:hidden}.tab{display:flex;align-items:center;gap:4px;padding:8px 14px 8px 18px;border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;color:var(--dash-fore-color);white-space:nowrap;flex-shrink:0;transition:background .2s,color .2s}.tab.active{background:var(--dash-tab-active-color);color:var(--dash-tab-active-text)}.tab:hover:not(.active){color:var(--dash-tab-hover-text);background:var(--dash-tab-hover-bg)}.tab-name{white-space:nowrap}.tab-action{background:transparent;border:none;color:var(--dash-fore-color);padding:2px;font-size:11px;cursor:pointer;opacity:0;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.tab:hover .tab-action{opacity:1}.tab-popout:hover{color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-close:hover{color:var(--dash-danger-color);background:var(--dash-danger-tint)}.btn-overflow{display:inline-flex;align-items:center;gap:5px;background:var(--dash-overflow-btn-bg);border:1px solid var(--dash-overflow-btn-border);border-radius:20px;padding:7px 13px;cursor:pointer;font-size:13px;font-weight:600;color:var(--dash-tab-active-text);white-space:nowrap;flex-shrink:0;transition:background .2s,border-color .2s,color .2s}.btn-overflow:hover{background:var(--dash-accent-tint);border-color:var(--dash-accent-color);color:var(--dash-accent-color)}.btn-add-page{background:transparent;border:none;color:var(--dash-fore-color);padding:8px 14px;cursor:pointer;border-radius:20px;flex-shrink:0;transition:all .2s}.btn-add-page:hover{color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-switcher-overlay{position:absolute;inset:0;z-index:1000;background:var(--dash-overlay-bg);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:60px;animation:overlay-in .18s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.tab-switcher-sheet{background:var(--dash-switcher-sheet-bg);border:1px solid var(--dash-sheet-border);border-radius:24px;width:min(520px,calc(100% - 32px));max-height:calc(100% - 80px);display:flex;flex-direction:column;overflow:hidden;animation:sheet-in .22s cubic-bezier(.32,1.2,.5,1)}@keyframes sheet-in{0%{transform:translateY(-16px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.tab-switcher-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--dash-sheet-border);flex-shrink:0}.tab-switcher-title{font-size:15px;font-weight:700;color:var(--dash-switcher-title)}.tab-switcher-close-btn{background:var(--dash-widget-btn-bg);border:none;color:var(--dash-fore-color);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:background .15s,color .15s}.tab-switcher-close-btn:hover{background:var(--dash-danger-tint);color:var(--dash-danger-color)}.tab-switcher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:16px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--dash-scrollbar-color) transparent}.tab-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px 12px;border-radius:16px;background:var(--dash-switcher-card-bg);border:1.5px solid transparent;cursor:pointer;transition:border-color .15s,background .15s,transform .12s;position:relative}.tab-card:hover{background:var(--dash-tab-hover-bg);transform:translateY(-2px)}.tab-card.active{border-color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-card-icon{width:44px;height:44px;border-radius:12px;background:var(--dash-widget-btn-bg);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--dash-
|
|
548
|
+
`, styles: [":host{display:flex;flex-direction:column;width:100%;height:100%;min-height:0;--dash-bg: #000000;--dash-panel-bg: #1c1c1e;--dash-panel-border: rgba(255,255,255,.05);--dash-card-bg: #2c2c2e;--dash-fore-color: #8e8e93;--dash-accent-color: #0a84ff;--dash-accent-tint: rgba(10,132,255,.15);--dash-accent-tint-strong: rgba(10,132,255,.25);--dash-danger-color: #ff453a;--dash-danger-tint: rgba(255,69,58,.22);--dash-font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;--dash-tabs-container-color: rgba(44,44,46,.6);--dash-tab-active-color: #3a3a3c;--dash-tab-active-text: #ffffff;--dash-tab-hover-text: #e5e5ea;--dash-tab-hover-bg: rgba(255,255,255,.05);--dash-add-widget-text: #ffffff;--dash-add-widget-icon: #ffffff;--dash-add-widget-bg: #0a84ff;--dash-tab-active-icon: #ffffff;--dash-tab-inactive-icon: #8e8e93;--dash-overflow-btn-bg: rgba(255,255,255,.08);--dash-overflow-btn-border: rgba(255,255,255,.12);--dash-overlay-bg: rgba(0,0,0,.55);--dash-switcher-sheet-bg: #1c1c1e;--dash-switcher-card-bg: #2c2c2e;--dash-sheet-border: rgba(255,255,255,.08);--dash-scrollbar-color: rgba(255,255,255,.15);--dash-switcher-title: #ffffff;--dash-switcher-card-text: #ffffff;--dash-popout-title-color: #ffffff;--dash-widget-title-color: #ffffff;--dash-drag-handle-color: rgba(255,255,255,.2);--dash-widget-border-color: rgba(255,255,255,.07);--dash-widget-btn-bg: rgba(255,255,255,.07);--dash-widget-btn-color: rgba(255,255,255,.5);--dash-placeholder-color: #0a84ff;--dash-resize-handle-color: rgba(255,255,255,.25)}.dashboard-wrapper{display:flex;flex:1;min-height:0;overflow:hidden;padding:16px;box-sizing:border-box;background:var(--dash-bg);color:var(--dash-fore-color);font-family:var(--dash-font-family)}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;border-radius:40px;padding:20px;background:var(--dash-panel-bg);border:1px solid var(--dash-panel-border);position:relative}.popout-wrapper{display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;padding:16px;box-sizing:border-box;background:var(--dash-bg);color:var(--dash-fore-color);font-family:var(--dash-font-family)}.popout-header{display:flex;align-items:center;margin-bottom:16px;padding:10px 18px;background:var(--dash-panel-bg);border-radius:20px;border:1px solid var(--dash-panel-border);flex-shrink:0}.popout-title{font-size:16px;font-weight:700;color:var(--dash-popout-title-color)}.popout-wrapper app-grid{flex:1;min-height:0;overflow:auto}.dashboard-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:12px;flex-shrink:0}.tabs-track{display:flex;align-items:center;gap:6px;flex:1;min-width:0;background:var(--dash-tabs-container-color);backdrop-filter:blur(10px);border-radius:25px;padding:6px;overflow:hidden}.tab{display:flex;align-items:center;gap:4px;padding:8px 14px 8px 18px;border-radius:20px;cursor:pointer;font-size:14px;font-weight:500;color:var(--dash-fore-color);white-space:nowrap;flex-shrink:0;transition:background .2s,color .2s}.tab.active{background:var(--dash-tab-active-color);color:var(--dash-tab-active-text)}.tab:hover:not(.active){color:var(--dash-tab-hover-text);background:var(--dash-tab-hover-bg)}.tab-name{white-space:nowrap}.tab-action{background:transparent;border:none;color:var(--dash-fore-color);padding:2px;font-size:11px;cursor:pointer;opacity:0;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}.tab:hover .tab-action{opacity:1}.tab.active .tab-action{color:var(--dash-tab-active-icon)}.tab:not(.active) .tab-action{color:var(--dash-tab-inactive-icon)}.tab-popout:hover{color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-close:hover{color:var(--dash-danger-color);background:var(--dash-danger-tint)}.btn-overflow{display:inline-flex;align-items:center;gap:5px;background:var(--dash-overflow-btn-bg);border:1px solid var(--dash-overflow-btn-border);border-radius:20px;padding:7px 13px;cursor:pointer;font-size:13px;font-weight:600;color:var(--dash-tab-active-text);white-space:nowrap;flex-shrink:0;transition:background .2s,border-color .2s,color .2s}.btn-overflow:hover{background:var(--dash-accent-tint);border-color:var(--dash-accent-color);color:var(--dash-accent-color)}.btn-add-page{background:transparent;border:none;color:var(--dash-fore-color);padding:8px 14px;cursor:pointer;border-radius:20px;flex-shrink:0;transition:all .2s}.btn-add-page:hover{color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-switcher-overlay{position:absolute;inset:0;z-index:1000;background:var(--dash-overlay-bg);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:60px;animation:overlay-in .18s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.tab-switcher-sheet{background:var(--dash-switcher-sheet-bg);border:1px solid var(--dash-sheet-border);border-radius:24px;width:min(520px,calc(100% - 32px));max-height:calc(100% - 80px);display:flex;flex-direction:column;overflow:hidden;animation:sheet-in .22s cubic-bezier(.32,1.2,.5,1)}@keyframes sheet-in{0%{transform:translateY(-16px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.tab-switcher-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--dash-sheet-border);flex-shrink:0}.tab-switcher-title{font-size:15px;font-weight:700;color:var(--dash-switcher-title)}.tab-switcher-close-btn{background:var(--dash-widget-btn-bg);border:none;color:var(--dash-fore-color);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;transition:background .15s,color .15s}.tab-switcher-close-btn:hover{background:var(--dash-danger-tint);color:var(--dash-danger-color)}.tab-switcher-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:16px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--dash-scrollbar-color) transparent}.tab-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px 12px;border-radius:16px;background:var(--dash-switcher-card-bg);border:1.5px solid transparent;cursor:pointer;transition:border-color .15s,background .15s,transform .12s;position:relative}.tab-card:hover{background:var(--dash-tab-hover-bg);transform:translateY(-2px)}.tab-card.active{border-color:var(--dash-accent-color);background:var(--dash-accent-tint)}.tab-card-icon{width:44px;height:44px;border-radius:12px;background:var(--dash-widget-btn-bg);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--dash-switcher-card-icon)}.tab-card.active .tab-card-icon{background:var(--dash-accent-tint-strong);color:var(--dash-switcher-active-card-icon)}.tab-card-name{font-size:13px;font-weight:500;color:var(--dash-switcher-card-text);text-align:center;word-break:break-word;line-height:1.3}.tab-card-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s}.tab-card:hover .tab-card-actions{opacity:1}.tab-card-btn{background:var(--dash-widget-btn-bg);border:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:12px;color:var(--dash-fore-color);transition:background .15s,color .15s}.tab-card-popout:hover{background:var(--dash-accent-tint-strong);color:var(--dash-accent-color)}.tab-card-remove:hover{background:var(--dash-danger-tint);color:var(--dash-danger-color)}.tab-switcher-footer{padding:12px 16px 16px;border-top:1px solid var(--dash-sheet-border);flex-shrink:0}.tab-switcher-add-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px 20px;border-radius:16px;background:var(--dash-accent-tint);border:1.5px dashed var(--dash-accent-tint-strong);color:var(--dash-accent-color);font-size:14px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.tab-switcher-add-btn:hover{background:var(--dash-accent-tint-strong);border-color:var(--dash-accent-color)}.btn-add-widget{display:flex;align-items:center;gap:6px;background:var(--dash-add-widget-bg);border:none;color:var(--dash-add-widget-text);font-size:14px;font-weight:600;padding:10px 20px;border-radius:22px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:opacity .2s,transform .15s}.btn-add-widget i{color:var(--dash-add-widget-icon)}.btn-add-widget:hover{opacity:.9;transform:translateY(-1px)}.btn-add-widget:active{transform:translateY(0)}.main-content .grid-container{flex:1;overflow:auto;border-radius:24px;min-height:0}app-grid{background:transparent;display:block;height:100%;width:100%}\n"] }]
|
|
541
549
|
}], ctorParameters: function () { return [{ type: i1.DashboardStateService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { initialLayout: [{
|
|
542
550
|
type: Input
|
|
543
551
|
}], theme: [{
|
|
@@ -556,4 +564,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
556
564
|
type: HostListener,
|
|
557
565
|
args: ['document:keydown.escape']
|
|
558
566
|
}] } });
|
|
559
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvZGFzaGJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFvQyxLQUFLLEVBQUUsTUFBTSxFQUMzQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFDM0IsSUFBSSxFQUMvQixZQUFZLEVBQUUsU0FBUyxFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFFNUQsTUFBTSxhQUFhLEdBQTZCO0lBQzlDLGVBQWUsRUFBVSxTQUFTO0lBQ2xDLFVBQVUsRUFBZSxTQUFTO0lBQ2xDLGdCQUFnQixFQUFTLHdCQUF3QjtJQUNqRCxlQUFlLEVBQVUsU0FBUztJQUNsQyxTQUFTLEVBQWdCLFNBQVM7SUFDbEMsV0FBVyxFQUFjLFNBQVM7SUFDbEMsZUFBZSxFQUFVLHVCQUF1QjtJQUNoRCxxQkFBcUIsRUFBSSx1QkFBdUI7SUFDaEQsV0FBVyxFQUFjLFNBQVM7SUFDbEMsZUFBZSxFQUFVLHNCQUFzQjtJQUMvQyxVQUFVLEVBQWUscUZBQXFGO0lBQzlHLGtCQUFrQixFQUFPLG9CQUFvQjtJQUM3QyxjQUFjLEVBQVcsU0FBUztJQUNsQyxrQkFBa0IsRUFBTyxTQUFTO0lBQ2xDLGlCQUFpQixFQUFRLFNBQVM7SUFDbEMsZUFBZSxFQUFVLHdCQUF3QjtJQUNqRCx3QkFBd0IsRUFBQyxTQUFTO0lBQ2xDLGtCQUFrQixFQUFPLHdCQUF3QjtJQUNqRCxzQkFBc0IsRUFBRyx3QkFBd0I7SUFDakQsY0FBYyxFQUFXLGtCQUFrQjtJQUMzQyxvQkFBb0IsRUFBSyxTQUFTO0lBQ2xDLGdCQUFnQixFQUFTLHdCQUF3QjtJQUNqRCxjQUFjLEVBQVcsd0JB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LENBQUMsaUJBQWlCO1NBQ25ELENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRSxDQUFDOztnSEF2UFUsa0JBQWtCO29HQUFsQixrQkFBa0IsNldBT2YsaUJBQWlCLDJCQUFVLFdBQVcsNkpBaGUxQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0lUOzRGQXFWVSxrQkFBa0I7a0JBNWQ5QixTQUFTOytCQUNFLGVBQWUsUUFDbkIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQzFCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvSVQ7aUtBc1ZRLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBR1AsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFHOUIsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXO2dCQTRHdEIsV0FBVztzQkFEVixZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIElucHV0LCBPdXRwdXQsIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcywgRXZlbnRFbWl0dGVyLCBDb250ZW50Q2hpbGQsIFRlbXBsYXRlUmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZiwgTmdab25lLCBQaXBlLCBQaXBlVHJhbnNmb3JtLFxuICBIb3N0TGlzdGVuZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhc2hib2FyZFN0YXRlU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFnZSwgV2lkZ2V0LCBEYXNoYm9hcmRUaGVtZSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JpZENlbGxEaXJlY3RpdmUgfSBmcm9tICcuL2N1c3RvbS1ncmlkLmNvbXBvbmVudCc7XG5cbmNvbnN0IERFRkFVTFRfVEhFTUU6IFJlcXVpcmVkPERhc2hib2FyZFRoZW1lPiA9IHtcbiAgYmFja2dyb3VuZENvbG9yOiAgICAgICAgICcjMDAwMDAwJyxcbiAgcGFuZWxDb2xvcjogICAgICAgICAgICAgICcjMWMxYzFlJyxcbiAgcGFuZWxCb3JkZXJDb2xvcjogICAgICAgICdyZ2JhKDI1NSwyNTUsMjU1LDAuMDUpJyxcbiAgd2lkZ2V0Q2FyZENvbG9yOiAgICAgICAgICcjMmMyYzJlJyxcbiAgZm9yZUNvbG9yOiAgICAgICAgICAgICAgICcjOGU4ZTkzJyxcbiAgYWNjZW50Q29sb3I6ICAgICAgICAgICAgICcjMGE4NGZmJyxcbiAgYWNjZW50VGludENvbG9yOiAgICAgICAgICdyZ2JhKDEwLDEzMiwyNTUsMC4xNSknLFxuICBhY2NlbnRUaW50U3Ryb25nQ29sb3I6ICAgJ3JnYmEoMTAsMTMyLDI1NSwwLjI1KScsXG4gIGRhbmdlckNvbG9yOiAgICAgICAgICAgICAnI2ZmNDUzYScsXG4gIGRhbmdlclRpbnRDb2xvcjogICAgICAgICAncmdiYSgyNTUsNjksNTgsMC4yMiknLFxuICBmb250RmFtaWx5OiAgICAgICAgICAgICAgJy1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWYnLFxuICB0YWJzQ29udGFpbmVyQ29sb3I6ICAgICAgJ3JnYmEoNDQsNDQsNDYsMC42KScsXG4gIHRhYkFjdGl2ZUNvbG9yOiAgICAgICAgICAnIzNhM2EzYycsXG4gIHRhYkFjdGl2ZVRleHRDb2xvcjogICAgICAnI2ZmZmZmZicsXG4gIHRhYkhvdmVyVGV4dENvbG9yOiAgICAgICAnI2U1ZTVlYScsXG4gIHRhYkhvdmVyQmdDb2xvcjogICAgICAgICAncmdiYSgyNTUsMjU1LDI1NSwwLjA1KScsXG4gIGFkZFdpZGdldEJ1dHRvblRleHRDb2xvcjonI2ZmZmZmZicsXG4gIG92ZXJmbG93QnRuQmdDb2xvcjogICAgICAncmdiYSgyNTUsMjU1LDI1NSwwLjA4KScsXG4gIG92ZXJmbG93QnRuQm9yZGVyQ29sb3I6ICAncmdiYSgyNTUsMjU1LDI1NSwwLjEyKScsXG4gIG92ZXJsYXlCZ0NvbG9yOiAgICAgICAgICAncmdiYSgwLDAsMCwwLjU1KScsXG4gIHN3aXRjaGVyU2hlZXRCZ0NvbG9yOiAgICAnIzFjMWMxZScsXG4gIHNoZWV0Qm9yZGVyQ29sb3I6ICAgICAgICAncmdiYSgyNTUsMjU1LDI1NSwwLjA4KScsXG4gIHNjcm9sbGJhckNvbG9yOiAgICAgICAgICAncmdiYSgyNTUsMjU1LDI1NSwwLjE1KScsXG4gIHN3aXRjaGVyVGl0bGVDb2xvcjogICAgICAnI2ZmZmZmZicsXG4gIHN3aXRjaGVyQ2FyZFRleHRDb2xvcjogICAnI2ZmZmZmZicsXG4gIHN3aXRjaGVyQ2FyZEJnQ29sb3I6ICAgICAnIzJjMmMyZScsXG4gIHBvcG91dFRpdGxlQ29sb3I6ICAgICAgICAnI2ZmZmZmZicsXG4gIHdpZGdldFRpdGxlQ29sb3I6ICAgICAgICAnI2ZmZmZmZicsXG4gIGRyYWdIYW5kbGVDb2xvcjogICAgICAgICAncmdiYSgyNTUsMjU1LDI1NSwwLjIpJyxcbiAgd2lkZ2V0Qm9yZGVyQ29sb3I6ICAgICAgICdyZ2JhKDI1NSwyNTUsMjU1LDAuMDcpJyxcbiAgd2lkZ2V0QnV0dG9uQmdDb2xvcjogICAgICdyZ2JhKDI1NSwyNTUsMjU1LDAuMDcpJyxcbiAgd2lkZ2V0QnV0dG9uQ29sb3I6ICAgICAgICdyZ2JhKDI1NSwyNTUsMjU1LDAuNSknLFxuICBwbGFjZWhvbGRlckNvbG9yOiAgICAgICAgJyMwYTg0ZmYnLFxuICByZXNpemVIYW5kbGVDb2xvcjogICAgICAgJ3JnYmEoMjU1LDI1NSwyNTUsMC4yNSknLFxufTtcblxuQFBpcGUoeyBuYW1lOiAnb3ZlcmZsb3dBY3RpdmUnIH0pXG5leHBvcnQgY2xhc3MgT3ZlcmZsb3dBY3RpdmVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShwYWdlczogUGFnZVtdLCBhY3RpdmVQYWdlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwYWdlcy5zb21lKHAgPT4gcC5pZCA9PT0gYWN0aXZlUGFnZUlkKTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGFzaGJvYXJkJyxcbiAgaG9zdDogeyAnW3N0eWxlXSc6ICd3cmFwcGVyU3R5bGVzJyB9LFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0gUE9QUEVELU9VVCBNT0RFIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1BvcHBlZE91dDsgZWxzZSBub3JtYWxNb2RlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG9wb3V0LXdyYXBwZXJcIj5cbiAgICAgICAgPGhlYWRlciBjbGFzcz1cInBvcG91dC1oZWFkZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInBvcG91dC10aXRsZVwiPnt7IGFjdGl2ZVBhZ2U/Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgIDwvaGVhZGVyPlxuICAgICAgICA8YXBwLWdyaWQgW3dpZGdldHNdPVwiYWN0aXZlUGFnZT8ud2lkZ2V0cyB8fCBbXVwiIChpdGVtQ2hhbmdlZCk9XCJvbkl0ZW1DaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgZ3JpZENlbGwgbGV0LXdpZGdldD1cIndpZGdldFwiPlxuICAgICAgICAgICAgPGFwcC13aWRnZXQtcmVuZGVyZXIgW3dpZGdldF09XCJ3aWRnZXRcIiBbdGhlbWVdPVwicmVzb2x2ZWRUaGVtZVwiXG4gICAgICAgICAgICAgIChlZGl0UmVxdWVzdGVkKT1cImVkaXRXaWRnZXRSZXF1ZXN0ZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKHJlbW92ZVJlcXVlc3RlZCk9XCJvblJlbW92ZVdpZGdldCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgd2lkZ2V0OiB3aWRnZXQgfVwiPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYXBwLXdpZGdldC1yZW5kZXJlcj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2FwcC1ncmlkPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8IS0tIE5PUk1BTCBNT0RFIC0tPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9ybWFsTW9kZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXNoYm9hcmQtd3JhcHBlclwiPlxuICAgICAgICA8bWFpbiBjbGFzcz1cIm1haW4tY29udGVudFwiPlxuXG4gICAgICAgICAgPGhlYWRlciBjbGFzcz1cImRhc2hib2FyZC1oZWFkZXJcIj5cblxuICAgICAgICAgICAgPCEtLSBUYWIgYmFyIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYnMtdHJhY2tcIiAjdGFic1RyYWNrPlxuICAgICAgICAgICAgICA8IS0tIFZpc2libGUgdGFicyAtLT5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHZpc2libGVQYWdlc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwicGFnZS5pZCA9PT0gYWN0aXZlUGFnZUlkXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RQYWdlKHBhZ2UuaWQpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFiLW5hbWVcIj57eyBwYWdlLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRhYi1hY3Rpb24gdGFiLXBvcG91dFwiIChjbGljayk9XCJvblBvcE91dCgkZXZlbnQsIHBhZ2UuaWQpXCIgdGl0bGU9XCJPcGVuIGluIG5ldyB3aW5kb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGEgbGEtZXh0ZXJuYWwtbGluay1hbHRcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRhYi1hY3Rpb24gdGFiLWNsb3NlXCIgKm5nSWY9XCJwYWdlcy5sZW5ndGggPiAxXCIgKGNsaWNrKT1cIm9uUmVtb3ZlUGFnZSgkZXZlbnQsIHBhZ2UuaWQpXCIgdGl0bGU9XCJDbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsYSBsYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPCEtLSBPdmVyZmxvdyBidXR0b24g4oCUIHNob3duIG9ubHkgd2hlbiB0aGVyZSBhcmUgaGlkZGVuIHRhYnMgLS0+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cImhpZGRlbkNvdW50ID4gMFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tb3ZlcmZsb3dcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuVGFiU3dpdGNoZXIoKVwiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJTaG93IGFsbCB3b3Jrc3BhY2VzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuPit7eyBoaWRkZW5Db3VudCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImxhIGxhLXRoLWxhcmdlXCI+PC9pPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICA8IS0tIEFkZCBwYWdlIGJ1dHRvbiAtLT5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1hZGQtcGFnZVwiIChjbGljayk9XCJvbkFkZFBhZ2UoKVwiIHRpdGxlPVwiTmV3IHdvcmtzcGFjZVwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGEgbGEtcGx1c1wiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1hZGQtd2lkZ2V0XCIgKGNsaWNrKT1cImFkZFdpZGdldFJlcXVlc3RlZC5lbWl0KClcIiB0aXRsZT1cIkFkZCB3aWRnZXRcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsYSBsYS1wbHVzXCI+PC9pPlxuICAgICAgICAgICAgICA8c3Bhbj5BZGQgV2lkZ2V0PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgIDwhLS0g4pSA4pSAIFRhYi1zd2l0Y2hlciBvdmVybGF5IChDaHJvbWUgbW9iaWxlIHN0eWxlKSDilIDilIAgLS0+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1zd2l0Y2hlci1vdmVybGF5XCIgKm5nSWY9XCJ0YWJTd2l0Y2hlck9wZW5cIiAoY2xpY2spPVwiY2xvc2VUYWJTd2l0Y2hlcigpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXN3aXRjaGVyLXNoZWV0XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItc3dpdGNoZXItaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItc3dpdGNoZXItdGl0bGVcIj57eyBwYWdlcy5sZW5ndGggfX0gV29ya3NwYWNle3sgcGFnZXMubGVuZ3RoICE9PSAxID8gJ3MnIDogJycgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRhYi1zd2l0Y2hlci1jbG9zZS1idG5cIiAoY2xpY2spPVwiY2xvc2VUYWJTd2l0Y2hlcigpXCIgdGl0bGU9XCJDbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsYSBsYS10aW1lc1wiPjwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1zd2l0Y2hlci1ncmlkXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXNcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWItY2FyZFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInBhZ2UuaWQgPT09IGFjdGl2ZVBhZ2VJZFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Td2l0Y2hlclNlbGVjdChwYWdlLmlkKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1jYXJkLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsYSBsYS10aC1sYXJnZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItY2FyZC1uYW1lXCI+e3sgcGFnZS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1jYXJkLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRhYi1jYXJkLWJ0biB0YWItY2FyZC1wb3BvdXRcIiAoY2xpY2spPVwib25Td2l0Y2hlclBvcE91dCgkZXZlbnQsIHBhZ2UuaWQpXCIgdGl0bGU9XCJPcGVuIGluIG5ldyB3aW5kb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImxhIGxhLWV4dGVybmFsLWxpbmstYWx0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRhYi1jYXJkLWJ0biB0YWItY2FyZC1yZW1vdmVcIiAqbmdJZj1cInBhZ2VzLmxlbmd0aCA+IDFcIiAoY2xpY2spPVwib25Td2l0Y2hlclJlbW92ZSgkZXZlbnQsIHBhZ2UuaWQpXCIgdGl0bGU9XCJDbG9zZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGEgbGEtdGltZXNcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItc3dpdGNoZXItZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInRhYi1zd2l0Y2hlci1hZGQtYnRuXCIgKGNsaWNrKT1cIm9uU3dpdGNoZXJBZGQoKVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsYSBsYS1wbHVzXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgPHNwYW4+TmV3IFdvcmtzcGFjZTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8YXBwLWdyaWQgW3dpZGdldHNdPVwiYWN0aXZlUGFnZT8ud2lkZ2V0cyB8fCBbXVwiIChpdGVtQ2hhbmdlZCk9XCJvbkl0ZW1DaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGdyaWRDZWxsIGxldC13aWRnZXQ9XCJ3aWRnZXRcIj5cbiAgICAgICAgICAgICAgICA8YXBwLXdpZGdldC1yZW5kZXJlciBbd2lkZ2V0XT1cIndpZGdldFwiIFt0aGVtZV09XCJyZXNvbHZlZFRoZW1lXCJcbiAgICAgICAgICAgICAgICAgIChlZGl0UmVxdWVzdGVkKT1cImVkaXRXaWRnZXRSZXF1ZXN0ZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIChyZW1vdmVSZXF1ZXN0ZWQpPVwib25SZW1vdmVXaWRnZXQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHdpZGdldDogd2lkZ2V0IH1cIj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYXBwLXdpZGdldC1yZW5kZXJlcj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvYXBwLWdyaWQ+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPC9tYWluPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIDpob3N0IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgLS1kYXNoLWJnOiAgICAgICAgICAgICAgICAgICAgIzAwMDAwMDtcbiAgICAgIC0tZGFzaC1wYW5lbC1iZzogICAgICAgICAgICAgICMxYzFjMWU7XG4gICAgICAtLWRhc2gtcGFuZWwtYm9yZGVyOiAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpO1xuICAgICAgLS1kYXNoLWNhcmQtYmc6ICAgICAgICAgICAgICAgIzJjMmMyZTtcbiAgICAgIC0tZGFzaC1mb3JlLWNvbG9yOiAgICAgICAgICAgICM4ZThlOTM7XG4gICAgICAtLWRhc2gtYWNjZW50LWNvbG9yOiAgICAgICAgICAjMGE4NGZmO1xuICAgICAgLS1kYXNoLWFjY2VudC10aW50OiAgICAgICAgICAgcmdiYSgxMCwxMzIsMjU1LDAuMTUpO1xuICAgICAgLS1kYXNoLWFjY2VudC10aW50LXN0cm9uZzogICAgcmdiYSgxMCwxMzIsMjU1LDAuMjUpO1xuICAgICAgLS1kYXNoLWRhbmdlci1jb2xvcjogICAgICAgICAgI2ZmNDUzYTtcbiAgICAgIC0tZGFzaC1kYW5nZXItdGludDogICAgICAgICAgIHJnYmEoMjU1LDY5LDU4LDAuMjIpO1xuICAgICAgLS1kYXNoLWZvbnQtZmFtaWx5OiAgICAgICAgICAgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICAgIC0tZGFzaC10YWJzLWNvbnRhaW5lci1jb2xvcjogIHJnYmEoNDQsNDQsNDYsMC42KTtcbiAgICAgIC0tZGFzaC10YWItYWN0aXZlLWNvbG9yOiAgICAgICMzYTNhM2M7XG4gICAgICAtLWRhc2gtdGFiLWFjdGl2ZS10ZXh0OiAgICAgICAjZmZmZmZmO1xuICAgICAgLS1kYXNoLXRhYi1ob3Zlci10ZXh0OiAgICAgICAgI2U1ZTVlYTtcbiAgICAgIC0tZGFzaC10YWItaG92ZXItYmc6ICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7XG4gICAgICAtLWRhc2gtYWRkLXdpZGdldC10ZXh0OiAgICAgICAjZmZmZmZmO1xuICAgICAgLS1kYXNoLW92ZXJmbG93LWJ0bi1iZzogICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTtcbiAgICAgIC0tZGFzaC1vdmVyZmxvdy1idG4tYm9yZGVyOiAgIHJnYmEoMjU1LDI1NSwyNTUsMC4xMik7XG4gICAgICAtLWRhc2gtb3ZlcmxheS1iZzogICAgICAgICAgICByZ2JhKDAsMCwwLDAuNTUpO1xuICAgICAgLS1kYXNoLXN3aXRjaGVyLXNoZWV0LWJnOiAgICAgIzFjMWMxZTtcbiAgICAgIC0tZGFzaC1zd2l0Y2hlci1jYXJkLWJnOiAgICAgICMyYzJjMmU7XG4gICAgICAtLWRhc2gtc2hlZXQtYm9yZGVyOiAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpO1xuICAgICAgLS1kYXNoLXNjcm9sbGJhci1jb2xvcjogICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjE1KTtcbiAgICAgIC0tZGFzaC1zd2l0Y2hlci10aXRsZTogICAgICAgICNmZmZmZmY7XG4gICAgICAtLWRhc2gtc3dpdGNoZXItY2FyZC10ZXh0OiAgICAjZmZmZmZmO1xuICAgICAgLS1kYXNoLXBvcG91dC10aXRsZS1jb2xvcjogICAgI2ZmZmZmZjtcbiAgICAgIC0tZGFzaC13aWRnZXQtdGl0bGUtY29sb3I6ICAgICNmZmZmZmY7XG4gICAgICAtLWRhc2gtZHJhZy1oYW5kbGUtY29sb3I6ICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG4gICAgICAtLWRhc2gtd2lkZ2V0LWJvcmRlci1jb2xvcjogICByZ2JhKDI1NSwyNTUsMjU1LDAuMDcpO1xuICAgICAgLS1kYXNoLXdpZGdldC1idG4tYmc6ICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjA3KTtcbiAgICAgIC0tZGFzaC13aWRnZXQtYnRuLWNvbG9yOiAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC41KTtcbiAgICAgIC0tZGFzaC1wbGFjZWhvbGRlci1jb2xvcjogICAgICMwYTg0ZmY7XG4gICAgICAtLWRhc2gtcmVzaXplLWhhbmRsZS1jb2xvcjogICByZ2JhKDI1NSwyNTUsMjU1LDAuMjUpO1xuICAgIH1cblxuICAgIC8qIOKUgOKUgCBOb3JtYWwgbGF5b3V0IOKUgOKUgCAqL1xuICAgIC5kYXNoYm9hcmQtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWJnKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1kYXNoLWZvcmUtY29sb3IpO1xuICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWRhc2gtZm9udC1mYW1pbHkpO1xuICAgIH1cbiAgICAubWFpbi1jb250ZW50IHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtcGFuZWwtYmcpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFzaC1wYW5lbC1ib3JkZXIpO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC8qIOKUgOKUgCBQb3Atb3V0IGxheW91dCDilIDilIAgKi9cbiAgICAucG9wb3V0LXdyYXBwZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtYmcpO1xuICAgICAgY29sb3I6IHZhcigtLWRhc2gtZm9yZS1jb2xvcik7XG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZGFzaC1mb250LWZhbWlseSk7XG4gICAgfVxuICAgIC5wb3BvdXQtaGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIHBhZGRpbmc6IDEwcHggMThweDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtcGFuZWwtYmcpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWRhc2gtcGFuZWwtYm9yZGVyKTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAucG9wb3V0LXRpdGxlIHsgZm9udC1zaXplOiAxNnB4OyBmb250LXdlaWdodDogNzAwOyBjb2xvcjogdmFyKC0tZGFzaC1wb3BvdXQtdGl0bGUtY29sb3IpOyB9XG4gICAgLnBvcG91dC13cmFwcGVyIGFwcC1ncmlkIHsgZmxleDogMTsgbWluLWhlaWdodDogMDsgb3ZlcmZsb3c6IGF1dG87IH1cblxuICAgIC8qIOKUgOKUgCBIZWFkZXIg4pSA4pSAICovXG4gICAgLmRhc2hib2FyZC1oZWFkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgZ2FwOiAxMnB4O1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuXG4gICAgLyog4pSA4pSAIFRhYiBiYXIg4pSA4pSAICovXG4gICAgLnRhYnMtdHJhY2sge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDZweDtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLXRhYnMtY29udGFpbmVyLWNvbG9yKTtcbiAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDI1cHg7XG4gICAgICBwYWRkaW5nOiA2cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgIC8qIOKUgOKUgCBJbmRpdmlkdWFsIHRhYiDilIDilIAgKi9cbiAgICAudGFiIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiA0cHg7XG4gICAgICBwYWRkaW5nOiA4cHggMTRweCA4cHggMThweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgY29sb3I6IHZhcigtLWRhc2gtZm9yZS1jb2xvcik7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIGNvbG9yIDAuMnM7XG4gICAgfVxuICAgIC50YWIuYWN0aXZlIHsgYmFja2dyb3VuZDogdmFyKC0tZGFzaC10YWItYWN0aXZlLWNvbG9yKTsgY29sb3I6IHZhcigtLWRhc2gtdGFiLWFjdGl2ZS10ZXh0KTsgfVxuICAgIC50YWI6aG92ZXI6bm90KC5hY3RpdmUpIHsgY29sb3I6IHZhcigtLWRhc2gtdGFiLWhvdmVyLXRleHQpOyBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLXRhYi1ob3Zlci1iZyk7IH1cbiAgICAudGFiLW5hbWUgeyB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgLnRhYi1hY3Rpb24ge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogbm9uZTsgY29sb3I6IHZhcigtLWRhc2gtZm9yZS1jb2xvcik7XG4gICAgICBwYWRkaW5nOiAycHg7IGZvbnQtc2l6ZTogMTFweDsgY3Vyc29yOiBwb2ludGVyOyBvcGFjaXR5OiAwOyBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICB3aWR0aDogMjBweDsgaGVpZ2h0OiAyMHB4OyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzOyBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLnRhYjpob3ZlciAudGFiLWFjdGlvbiB7IG9wYWNpdHk6IDE7IH1cbiAgICAudGFiLXBvcG91dDpob3ZlciB7IGNvbG9yOiB2YXIoLS1kYXNoLWFjY2VudC1jb2xvcik7IGJhY2tncm91bmQ6IHZhcigtLWRhc2gtYWNjZW50LXRpbnQpOyB9XG4gICAgLnRhYi1jbG9zZTpob3ZlciAgeyBjb2xvcjogdmFyKC0tZGFzaC1kYW5nZXItY29sb3IpOyAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1kYW5nZXItdGludCk7IH1cblxuICAgIC8qIOKUgOKUgCBPdmVyZmxvdyBcIitOXCIgYnV0dG9uIOKUgOKUgCAqL1xuICAgIC5idG4tb3ZlcmZsb3cge1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiA1cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLW92ZXJmbG93LWJ0bi1iZyk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXNoLW92ZXJmbG93LWJ0bi1ib3JkZXIpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIHBhZGRpbmc6IDdweCAxM3B4O1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS1kYXNoLXRhYi1hY3RpdmUtdGV4dCk7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMsIGJvcmRlci1jb2xvciAwLjJzLCBjb2xvciAwLjJzO1xuICAgIH1cbiAgICAuYnRuLW92ZXJmbG93OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1hY2NlbnQtdGludCk7IGJvcmRlci1jb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IpOyBjb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IpOyB9XG5cbiAgICAvKiDilIDilIAgQWRkIHBhZ2UgYnV0dG9uIOKUgOKUgCAqL1xuICAgIC5idG4tYWRkLXBhZ2Uge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGJvcmRlcjogbm9uZTsgY29sb3I6IHZhcigtLWRhc2gtZm9yZS1jb2xvcik7XG4gICAgICBwYWRkaW5nOiA4cHggMTRweDsgY3Vyc29yOiBwb2ludGVyOyBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycztcbiAgICB9XG4gICAgLmJ0bi1hZGQtcGFnZTpob3ZlciB7IGNvbG9yOiB2YXIoLS1kYXNoLWFjY2VudC1jb2xvcik7IGJhY2tncm91bmQ6IHZhcigtLWRhc2gtYWNjZW50LXRpbnQpOyB9XG5cbiAgICAvKiDilIDilIAgVGFiLXN3aXRjaGVyIG92ZXJsYXkg4pSA4pSAICovXG4gICAgLnRhYi1zd2l0Y2hlci1vdmVybGF5IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGluc2V0OiAwO1xuICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtb3ZlcmxheS1iZyk7XG4gICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgcGFkZGluZy10b3A6IDYwcHg7XG4gICAgICBhbmltYXRpb246IG92ZXJsYXktaW4gMC4xOHMgZWFzZTtcbiAgICB9XG4gICAgQGtleWZyYW1lcyBvdmVybGF5LWluIHtcbiAgICAgIGZyb20geyBvcGFjaXR5OiAwOyB9XG4gICAgICB0byAgIHsgb3BhY2l0eTogMTsgfVxuICAgIH1cblxuICAgIC50YWItc3dpdGNoZXItc2hlZXQge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1zd2l0Y2hlci1zaGVldC1iZyk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXNoLXNoZWV0LWJvcmRlcik7XG4gICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgd2lkdGg6IG1pbig1MjBweCwgY2FsYygxMDAlIC0gMzJweCkpO1xuICAgICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gODBweCk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBhbmltYXRpb246IHNoZWV0LWluIDAuMjJzIGN1YmljLWJlemllciguMzIsMS4yLC41LDEpO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNoZWV0LWluIHtcbiAgICAgIGZyb20geyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTE2cHgpIHNjYWxlKDAuOTcpOyBvcGFjaXR5OiAwOyB9XG4gICAgICB0byAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApICAgICBzY2FsZSgxKTsgICAgb3BhY2l0eTogMTsgfVxuICAgIH1cblxuICAgIC50YWItc3dpdGNoZXItaGVhZGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgcGFkZGluZzogMTZweCAyMHB4IDEycHg7XG4gICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZGFzaC1zaGVldC1ib3JkZXIpO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuICAgIC50YWItc3dpdGNoZXItdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxNXB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS1kYXNoLXN3aXRjaGVyLXRpdGxlKTtcbiAgICB9XG4gICAgLnRhYi1zd2l0Y2hlci1jbG9zZS1idG4ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC13aWRnZXQtYnRuLWJnKTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGNvbG9yOiB2YXIoLS1kYXNoLWZvcmUtY29sb3IpO1xuICAgICAgd2lkdGg6IDI4cHg7IGhlaWdodDogMjhweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cywgY29sb3IgMC4xNXM7XG4gICAgfVxuICAgIC50YWItc3dpdGNoZXItY2xvc2UtYnRuOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1kYW5nZXItdGludCk7IGNvbG9yOiB2YXIoLS1kYXNoLWRhbmdlci1jb2xvcik7IH1cblxuICAgIC50YWItc3dpdGNoZXItZ3JpZCB7XG4gICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTQwcHgsIDFmcikpO1xuICAgICAgZ2FwOiAxMHB4O1xuICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47XG4gICAgICBzY3JvbGxiYXItY29sb3I6IHZhcigtLWRhc2gtc2Nyb2xsYmFyLWNvbG9yKSB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAudGFiLWNhcmQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICBwYWRkaW5nOiAxNnB4IDEycHggMTJweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLXN3aXRjaGVyLWNhcmQtYmcpO1xuICAgICAgYm9yZGVyOiAxLjVweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjE1cywgYmFja2dyb3VuZCAwLjE1cywgdHJhbnNmb3JtIDAuMTJzO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbiAgICAudGFiLWNhcmQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLXRhYi1ob3Zlci1iZyk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTsgfVxuICAgIC50YWItY2FyZC5hY3RpdmUge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kYXNoLWFjY2VudC1jb2xvcik7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWFjY2VudC10aW50KTtcbiAgICB9XG4gICAgLnRhYi1jYXJkLWljb24ge1xuICAgICAgd2lkdGg6IDQ0cHg7IGhlaWdodDogNDRweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLXdpZGdldC1idG4tYmcpO1xuICAgICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICBjb2xvcjogdmFyKC0tZGFzaC1mb3JlLWNvbG9yKTtcbiAgICB9XG4gICAgLnRhYi1jYXJkLmFjdGl2ZSAudGFiLWNhcmQtaWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWFjY2VudC10aW50LXN0cm9uZyk7XG4gICAgICBjb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IpO1xuICAgIH1cbiAgICAudGFiLWNhcmQtbmFtZSB7XG4gICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgY29sb3I6IHZhcigtLWRhc2gtc3dpdGNoZXItY2FyZC10ZXh0KTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICBsaW5lLWhlaWdodDogMS4zO1xuICAgIH1cbiAgICAudGFiLWNhcmQtYWN0aW9ucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZ2FwOiA0cHg7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cztcbiAgICB9XG4gICAgLnRhYi1jYXJkOmhvdmVyIC50YWItY2FyZC1hY3Rpb25zIHsgb3BhY2l0eTogMTsgfVxuICAgIC50YWItY2FyZC1idG4ge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC13aWRnZXQtYnRuLWJnKTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHdpZHRoOiAyNnB4OyBoZWlnaHQ6IDI2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgIGNvbG9yOiB2YXIoLS1kYXNoLWZvcmUtY29sb3IpO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cywgY29sb3IgMC4xNXM7XG4gICAgfVxuICAgIC50YWItY2FyZC1wb3BvdXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWFjY2VudC10aW50LXN0cm9uZyk7IGNvbG9yOiB2YXIoLS1kYXNoLWFjY2VudC1jb2xvcik7IH1cbiAgICAudGFiLWNhcmQtcmVtb3ZlOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1kYW5nZXItdGludCk7ICAgICAgICBjb2xvcjogdmFyKC0tZGFzaC1kYW5nZXItY29sb3IpOyB9XG5cbiAgICAudGFiLXN3aXRjaGVyLWZvb3RlciB7XG4gICAgICBwYWRkaW5nOiAxMnB4IDE2cHggMTZweDtcbiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1kYXNoLXNoZWV0LWJvcmRlcik7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG4gICAgLnRhYi1zd2l0Y2hlci1hZGQtYnRuIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBnYXA6IDhweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogMTFweCAyMHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtYWNjZW50LXRpbnQpO1xuICAgICAgYm9yZGVyOiAxLjVweCBkYXNoZWQgdmFyKC0tZGFzaC1hY2NlbnQtdGludC1zdHJvbmcpO1xuICAgICAgY29sb3I6IHZhcigtLWRhc2gtYWNjZW50LWNvbG9yKTtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMTVzLCBib3JkZXItY29sb3IgMC4xNXM7XG4gICAgfVxuICAgIC50YWItc3dpdGNoZXItYWRkLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhc2gtYWNjZW50LXRpbnQtc3Ryb25nKTsgYm9yZGVyLWNvbG9yOiB2YXIoLS1kYXNoLWFjY2VudC1jb2xvcik7IH1cblxuICAgIC5idG4tYWRkLXdpZGdldCB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDZweDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtYWNjZW50LWNvbG9yKTsgYm9yZGVyOiBub25lOyBjb2xvcjogdmFyKC0tZGFzaC1hZGQtd2lkZ2V0LXRleHQpO1xuICAgICAgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNjAwOyBwYWRkaW5nOiAxMHB4IDIwcHg7IGJvcmRlci1yYWRpdXM6IDIycHg7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IHdoaXRlLXNwYWNlOiBub3dyYXA7IGZsZXgtc2hyaW5rOiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzLCB0cmFuc2Zvcm0gMC4xNXM7XG4gICAgfVxuICAgIC5idG4tYWRkLXdpZGdldDpob3ZlciAgeyBvcGFjaXR5OiAwLjk7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTsgfVxuICAgIC5idG4tYWRkLXdpZGdldDphY3RpdmUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cblxuICAgIC8qIOKUgOKUgCBHcmlkIOKUgOKUgCAqL1xuICAgIC5tYWluLWNvbnRlbnQgLmdyaWQtY29udGFpbmVyIHsgZmxleDogMTsgb3ZlcmZsb3c6IGF1dG87IGJvcmRlci1yYWRpdXM6IDI0cHg7IG1pbi1oZWlnaHQ6IDA7IH1cbiAgICBhcHAtZ3JpZCB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBkaXNwbGF5OiBibG9jazsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTsgfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgaW5pdGlhbExheW91dD86IHN0cmluZztcbiAgQElucHV0KCkgdGhlbWU/OiBEYXNoYm9hcmRUaGVtZTtcblxuICBAT3V0cHV0KCkgYWRkV2lkZ2V0UmVxdWVzdGVkICA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGVkaXRXaWRnZXRSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFdpZGdldD4oKTtcblxuICBAQ29udGVudENoaWxkKEdyaWRDZWxsRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGNlbGxUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgd2lkZ2V0OiBXaWRnZXQgfT47XG5cbiAgQFZpZXdDaGlsZCgndGFic1RyYWNrJykgdGFic1RyYWNrUmVmITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgcmVzb2x2ZWRUaGVtZTogUmVxdWlyZWQ8RGFzaGJvYXJkVGhlbWU+ID0geyAuLi5ERUZBVUxUX1RIRU1FIH07XG4gIHdyYXBwZXJTdHlsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBwYWdlczogUGFnZVtdICAgICA9IFtdO1xuICB2aXNpYmxlUGFnZXM6IFBhZ2VbXSA9IFtdO1xuICBoaWRkZW5Db3VudCAgICAgICA9IDA7XG4gIGFjdGl2ZVBhZ2VJZCAgICAgID0gJyc7XG4gIGFjdGl2ZVBhZ2U/OiBQYWdlO1xuICBpc1BvcHBlZE91dCAgICAgICA9IGZhbHNlO1xuICB0YWJTd2l0Y2hlck9wZW4gICA9IGZhbHNlO1xuXG4gIHByaXZhdGUgc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyO1xuXG4gIC8vIFJlc2VydmVkIHNwYWNlIGZvciB0aGUgb3ZlcmZsb3cgXCIrTlwiIGJ1dHRvbiBhbmQgdGhlIGFkZCBcIitcIiBidXR0b24gKHB4KVxuICBwcml2YXRlIHJlYWRvbmx5IE9WRVJGTE9XX0JUTl9XID0gODA7XG4gIHByaXZhdGUgcmVhZG9ubHkgQUREX0JUTl9XICAgICAgPSA1MjtcbiAgcHJpdmF0ZSByZWFkb25seSBHQVAgICAgICAgICAgICA9IDY7XG4gIHByaXZhdGUgcmVhZG9ubHkgUEFERElORyAgICAgICAgPSAxMjsgLy8gNnB4IGVhY2ggc2lkZVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzdGF0ZVNlcnZpY2U6IERhc2hib2FyZFN0YXRlU2VydmljZSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB6b25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1sndGhlbWUnXSB8fCBjaGFuZ2VzWydpbml0aWFsTGF5b3V0J10pIHRoaXMuYXBwbHlUaGVtZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcHBseVRoZW1lKCk7XG5cbiAgICBpZiAodGhpcy5pbml0aWFsTGF5b3V0KSB7XG4gICAgICB0cnkgeyB0aGlzLnN0YXRlU2VydmljZS5sb2FkTGF5b3V0KEpTT04ucGFyc2UodGhpcy5pbml0aWFsTGF5b3V0KSk7IH1cbiAgICAgIGNhdGNoIChlKSB7IGNvbnNvbGUuZXJyb3IoJ1tEYXNoYm9hcmRdIEZhaWxlZCB0byBwYXJzZSBpbml0aWFsTGF5b3V0JywgZSk7IH1cbiAgICB9XG5cbiAgICBjb25zdCBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2g/LnJlcGxhY2UoJyMnLCAnJykudHJpbSgpO1xuICAgIGlmIChoYXNoKSB0aGlzLmlzUG9wcGVkT3V0ID0gdHJ1ZTtcblxuICAgIHRoaXMuc3Vicy5hZGQodGhpcy5zdGF0ZVNlcnZpY2UucGFnZXMkLnN1YnNjcmliZShwYWdlcyA9PiB7XG4gICAgICB0aGlzLnBhZ2VzID0gcGFnZXM7XG4gICAgICB0aGlzLl90YWJXaWR0aENhY2hlID0gW107IC8vIGludmFsaWRhdGUgY2FjaGUg4oCUIHBhZ2UgbGlzdCBjaGFuZ2VkXG4gICAgICBpZiAodGhpcy5pc1BvcHBlZE91dCAmJiBoYXNoKSB7XG4gICAgICAgIGlmIChwYWdlcy5maW5kKHAgPT4gcC5pZCA9PT0gaGFzaCkpIHRoaXMuc3RhdGVTZXJ2aWNlLnNldEFjdGl2ZVBhZ2UoaGFzaCk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVBhZ2UoKTtcbiAgICAgIHRoaXMucmVjYWxjVmlzaWJsZVRhYnMoKTtcbiAgICAgIC8vIFNlY29uZCBwYXNzIGFmdGVyIEFuZ3VsYXIgaGFzIHJlbmRlcmVkIHRoZSB1cGRhdGVkIHRhYiBlbGVtZW50c1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlY2FsY1Zpc2libGVUYWJzKCkpO1xuICAgIH0pKTtcbiAgICB0aGlzLnN1YnMuYWRkKHRoaXMuc3RhdGVTZXJ2aWNlLmFjdGl2ZVBhZ2VJZCQuc3Vic2NyaWJlKGlkID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlUGFnZUlkID0gaWQ7XG4gICAgICB0aGlzLnVwZGF0ZUFjdGl2ZVBhZ2UoKTtcbiAgICB9KSk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLnRhYnNUcmFja1JlZikgcmV0dXJuO1xuICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB0aGlzLnJlY2FsY1Zpc2libGVUYWJzKCkpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy50YWJzVHJhY2tSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgfSk7XG4gICAgLy8gSW5pdGlhbCBtZWFzdXJlbWVudCBwYXNzIG5vdyB0aGF0IHRoZSBET00gaXMgcmVhZHlcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVjYWxjVmlzaWJsZVRhYnMoKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBvbkl0ZW1DaGFuZ2VkKHdpZGdldDogV2lkZ2V0KSB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UudXBkYXRlV2lkZ2V0UG9zaXRpb24oXG4gICAgICB0aGlzLmFjdGl2ZVBhZ2VJZCwgd2lkZ2V0LmlkLCB3aWRnZXQueCwgd2lkZ2V0LnksIHdpZGdldC5jb2xzLCB3aWRnZXQucm93c1xuICAgICk7XG4gIH1cblxuICBvblJlbW92ZVdpZGdldCh3aWRnZXRJZDogc3RyaW5nKSB7IHRoaXMuc3RhdGVTZXJ2aWNlLnJlbW92ZVdpZGdldCh3aWRnZXRJZCk7IH1cblxuICBvblNlbGVjdFBhZ2UoaWQ6IHN0cmluZykgeyB0aGlzLnN0YXRlU2VydmljZS5zZXRBY3RpdmVQYWdlKGlkKTsgfVxuXG4gIG9uQWRkUGFnZSgpIHtcbiAgICBjb25zdCBuYW1lID0gcHJvbXB0KCdXb3Jrc3BhY2UgbmFtZTonLCBgV29ya3NwYWNlICR7dGhpcy5wYWdlcy5sZW5ndGggKyAxfWApO1xuICAgIGlmIChuYW1lKSB0aGlzLnN0YXRlU2VydmljZS5hZGRQYWdlKG5hbWUpO1xuICB9XG5cbiAgb25SZW1vdmVQYWdlKGV2ZW50OiBFdmVudCwgaWQ6IHN0cmluZykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmIChjb25maXJtKCdSZW1vdmUgdGhpcyB3b3Jrc3BhY2U/JykpIHRoaXMuc3RhdGVTZXJ2aWNlLnJlbW92ZVBhZ2UoaWQpO1xuICB9XG5cbiAgb25Qb3BPdXQoZXZlbnQ6IEV2ZW50LCBwYWdlSWQ6IHN0cmluZykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnBvcE91dFBhZ2UocGFnZUlkKTtcbiAgfVxuXG4gIHNlcmlhbGl6ZUxheW91dCgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5zdGF0ZVNlcnZpY2Uuc2VyaWFsaXplTGF5b3V0KCk7IH1cblxuICBvcGVuVGFiU3dpdGNoZXIoKSAgeyB0aGlzLnRhYlN3aXRjaGVyT3BlbiA9IHRydWU7IH1cbiAgY2xvc2VUYWJTd2l0Y2hlcigpIHsgdGhpcy50YWJTd2l0Y2hlck9wZW4gPSBmYWxzZTsgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJylcbiAgb25Fc2NhcGVLZXkoKSB7IHRoaXMuY2xvc2VUYWJTd2l0Y2hlcigpOyB9XG5cbiAgb25Td2l0Y2hlclNlbGVjdChwYWdlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldEFjdGl2ZVBhZ2UocGFnZUlkKTtcbiAgICB0aGlzLmNsb3NlVGFiU3dpdGNoZXIoKTtcbiAgfVxuXG4gIG9uU3dpdGNoZXJQb3BPdXQoZXZlbnQ6IEV2ZW50LCBwYWdlSWQ6IHN0cmluZykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnBvcE91dFBhZ2UocGFnZUlkKTtcbiAgICB0aGlzLmNsb3NlVGFiU3dpdGNoZXIoKTtcbiAgfVxuXG4gIG9uU3dpdGNoZXJSZW1vdmUoZXZlbnQ6IEV2ZW50LCBwYWdlSWQ6IHN0cmluZykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmIChjb25maXJtKCdSZW1vdmUgdGhpcyB3b3Jrc3BhY2U/JykpIHtcbiAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnJlbW92ZVBhZ2UocGFnZUlkKTtcbiAgICAgIGlmICh0aGlzLnBhZ2VzLmxlbmd0aCA8PSAxKSB0aGlzLmNsb3NlVGFiU3dpdGNoZXIoKTtcbiAgICB9XG4gIH1cblxuICBvblN3aXRjaGVyQWRkKCkge1xuICAgIGNvbnN0IG5hbWUgPSBwcm9tcHQoJ1dvcmtzcGFjZSBuYW1lOicsIGBXb3Jrc3BhY2UgJHt0aGlzLnBhZ2VzLmxlbmd0aCArIDF9YCk7XG4gICAgaWYgKG5hbWUpIHRoaXMuc3RhdGVTZXJ2aWNlLmFkZFBhZ2UobmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlY2FsY1Zpc2libGVUYWJzKCkge1xuICAgIGlmICghdGhpcy50YWJzVHJhY2tSZWYgfHwgIXRoaXMucGFnZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnZpc2libGVQYWdlcyA9IHRoaXMucGFnZXM7XG4gICAgICB0aGlzLmhpZGRlbkNvdW50ICA9IDA7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFjayAgICAgICAgPSB0aGlzLnRhYnNUcmFja1JlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IHRyYWNrVyAgICAgICA9IHRyYWNrLmNsaWVudFdpZHRoO1xuICAgIC8vIFNwYWNlIGFsd2F5cyBjb25zdW1lZCBieSB0aGUgYWRkIFwiK1wiIGJ1dHRvbiArIHBhZGRpbmdcbiAgICBjb25zdCBiYXNlUmVzZXJ2ZWQgPSB0aGlzLkFERF9CVE5fVyArIHRoaXMuR0FQICsgdGhpcy5QQURESU5HO1xuICAgIC8vIFNwYWNlIG5lZWRlZCBmb3IgdGhlIG92ZXJmbG93IFwiK05cIiBidXR0b24gd2hlbiBzaG93blxuICAgIGNvbnN0IG92ZXJmbG93U2xvdCA9IHRoaXMuT1ZFUkZMT1dfQlROX1cgKyB0aGlzLkdBUDtcblxuICAgIC8vIE1lYXN1cmUgZWFjaCByZWFsIHRhYiBlbGVtZW50IGN1cnJlbnRseSBpbiB0aGUgRE9NLlxuICAgIC8vIFRoZSBET00gYWx3YXlzIHJlbmRlcnMgYWxsIHZpc2libGVQYWdlcyB0YWJzLCBzbyB3ZSBtYXkgbm90IGhhdmUgYWxsIHRhYnNcbiAgICAvLyBtZWFzdXJlZCB5ZXQg4oCUIGZhbGwgYmFjayB0byB0aGUgcHJldmlvdXMgbWVhc3VyZWQgY2FjaGUgb3IgYSBnZW5lcm91cyBlc3RpbWF0ZS5cbiAgICBjb25zdCB0YWJFbHMgPSBBcnJheS5mcm9tKHRyYWNrLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTEVsZW1lbnQ+KCcudGFiJykpO1xuICAgIC8vIEJ1aWxkIGEgd2lkdGggbWFwIGJ5IGluZGV4IChvbmx5IGNvdmVycyBjdXJyZW50bHkgdmlzaWJsZSB0YWJzKVxuICAgIGNvbnN0IG1lYXN1cmVkV2lkdGhzOiBudW1iZXJbXSA9IHRoaXMucGFnZXMubWFwKChfLCBpKSA9PiB7XG4gICAgICBjb25zdCBlbCA9IHRhYkVsc1tpXTtcbiAgICAgIHJldHVybiBlbCA/IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoICsgdGhpcy5HQVAgOiB0aGlzLl90YWJXaWR0aENhY2hlW2ldID8/IDE1MCArIHRoaXMuR0FQO1xuICAgIH0pO1xuICAgIC8vIFVwZGF0ZSBjYWNoZSBmb3IgbmV4dCBjYWxsXG4gICAgdGFiRWxzLmZvckVhY2goKGVsLCBpKSA9PiB7XG4gICAgICB0aGlzLl90YWJXaWR0aENhY2hlW2ldID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggKyB0aGlzLkdBUDtcbiAgICB9KTtcblxuICAgIC8vIEhvdyBtdWNoIHNwYWNlIHRoZSB0YWJzIG5lZWQgaW4gdG90YWwgKG5vIG92ZXJmbG93IGJ1dHRvbilcbiAgICBjb25zdCB0b3RhbE5lZWRlZCA9IG1lYXN1cmVkV2lkdGhzLnJlZHVjZSgocywgdykgPT4gcyArIHcsIDApIC0gdGhpcy5HQVA7IC8vIHJlbW92ZSB0cmFpbGluZyBnYXBcblxuICAgIGlmICh0b3RhbE5lZWRlZCA8PSB0cmFja1cgLSBiYXNlUmVzZXJ2ZWQpIHtcbiAgICAgIC8vIEV2ZXJ5dGhpbmcgZml0cyDigJQgc2hvdyBhbGxcbiAgICAgIHRoaXMudmlzaWJsZVBhZ2VzID0gdGhpcy5wYWdlcztcbiAgICAgIHRoaXMuaGlkZGVuQ291bnQgID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm90IGV2ZXJ5dGhpbmcgZml0cyDigJQgZmlsbCBhcyBtYW55IGFzIHBvc3NpYmxlIHdoaWxlIGFsd2F5cyBsZWF2aW5nIHJvb20gZm9yIG92ZXJmbG93IGJ0blxuICAgICAgY29uc3QgYnVkZ2V0ID0gdHJhY2tXIC0gYmFzZVJlc2VydmVkIC0gb3ZlcmZsb3dTbG90O1xuICAgICAgbGV0IHVzZWQgID0gMDtcbiAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucGFnZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdXNlZCArPSBtZWFzdXJlZFdpZHRoc1tpXTtcbiAgICAgICAgaWYgKHVzZWQgLSB0aGlzLkdBUCA8PSBidWRnZXQpIHsgIC8vIC1HQVA6IGxhc3QgaXRlbSBoYXMgbm8gdHJhaWxpbmcgZ2FwXG4gICAgICAgICAgY291bnQrKztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY291bnQgPSBNYXRoLm1heCgxLCBjb3VudCk7XG4gICAgICB0aGlzLnZpc2libGVQYWdlcyA9IHRoaXMucGFnZXMuc2xpY2UoMCwgY291bnQpO1xuICAgICAgdGhpcy5oaWRkZW5Db3VudCAgPSB0aGlzLnBhZ2VzLmxlbmd0aCAtIGNvdW50O1xuICAgIH1cblxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLy8gQ2FjaGUgb2YgbWVhc3VyZWQgdGFiIHdpZHRocyAoaW5jbHVkaW5nIGdhcCkgaW5kZXhlZCBieSBwYWdlIHBvc2l0aW9uXG4gIHByaXZhdGUgX3RhYldpZHRoQ2FjaGU6IG51bWJlcltdID0gW107XG5cbiAgcHJpdmF0ZSBhcHBseVRoZW1lKCkge1xuICAgIHRoaXMucmVzb2x2ZWRUaGVtZSA9IHsgLi4uREVGQVVMVF9USEVNRSwgLi4uKHRoaXMudGhlbWUgPz8ge30pIH07XG4gICAgY29uc3QgdCA9IHRoaXMucmVzb2x2ZWRUaGVtZTtcbiAgICB0aGlzLndyYXBwZXJTdHlsZXMgPSB7XG4gICAgICAnLS1kYXNoLWJnJzogICAgICAgICAgICAgICAgICAgdC5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICAnLS1kYXNoLXBhbmVsLWJnJzogICAgICAgICAgICAgdC5wYW5lbENvbG9yLFxuICAgICAgJy0tZGFzaC1wYW5lbC1ib3JkZXInOiAgICAgICAgIHQucGFuZWxCb3JkZXJDb2xvcixcbiAgICAgICctLWRhc2gtY2FyZC1iZyc6ICAgICAgICAgICAgICB0LndpZGdldENhcmRDb2xvcixcbiAgICAgICctLWRhc2gtZm9yZS1jb2xvcic6ICAgICAgICAgICB0LmZvcmVDb2xvcixcbiAgICAgICctLWRhc2gtYWNjZW50LWNvbG9yJzogICAgICAgICB0LmFjY2VudENvbG9yLFxuICAgICAgJy0tZGFzaC1hY2NlbnQtdGludCc6ICAgICAgICAgIHQuYWNjZW50VGludENvbG9yLFxuICAgICAgJy0tZGFzaC1hY2NlbnQtdGludC1zdHJvbmcnOiAgIHQuYWNjZW50VGludFN0cm9uZ0NvbG9yLFxuICAgICAgJy0tZGFzaC1kYW5nZXItY29sb3InOiAgICAgICAgIHQuZGFuZ2VyQ29sb3IsXG4gICAgICAnLS1kYXNoLWRhbmdlci10aW50JzogICAgICAgICAgdC5kYW5nZXJUaW50Q29sb3IsXG4gICAgICAnLS1kYXNoLWZvbnQtZmFtaWx5JzogICAgICAgICAgdC5mb250RmFtaWx5LFxuICAgICAgJy0tZGFzaC10YWJzLWNvbnRhaW5lci1jb2xvcic6IHQudGFic0NvbnRhaW5lckNvbG9yLFxuICAgICAgJy0tZGFzaC10YWItYWN0aXZlLWNvbG9yJzogICAgIHQudGFiQWN0aXZlQ29sb3IsXG4gICAgICAnLS1kYXNoLXRhYi1hY3RpdmUtdGV4dCc6ICAgICAgdC50YWJBY3RpdmVUZXh0Q29sb3IsXG4gICAgICAnLS1kYXNoLXRhYi1ob3Zlci10ZXh0JzogICAgICAgdC50YWJIb3ZlclRleHRDb2xvcixcbiAgICAgICctLWRhc2gtdGFiLWhvdmVyLWJnJzogICAgICAgICB0LnRhYkhvdmVyQmdDb2xvcixcbiAgICAgICctLWRhc2gtYWRkLXdpZGdldC10ZXh0JzogICAgICB0LmFkZFdpZGdldEJ1dHRvblRleHRDb2xvcixcbiAgICAgICctLWRhc2gtb3ZlcmZsb3ctYnRuLWJnJzogICAgICB0Lm92ZXJmbG93QnRuQmdDb2xvcixcbiAgICAgICctLWRhc2gtb3ZlcmZsb3ctYnRuLWJvcmRlcic6ICB0Lm92ZXJmbG93QnRuQm9yZGVyQ29sb3IsXG4gICAgICAnLS1kYXNoLW92ZXJsYXktYmcnOiAgICAgICAgICAgdC5vdmVybGF5QmdDb2xvcixcbiAgICAgICctLWRhc2gtc3dpdGNoZXItc2hlZXQtYmcnOiAgICB0LnN3aXRjaGVyU2hlZXRCZ0NvbG9yLFxuICAgICAgJy0tZGFzaC1zd2l0Y2hlci1jYXJkLWJnJzogICAgIHQuc3dpdGNoZXJDYXJkQmdDb2xvcixcbiAgICAgICctLWRhc2gtc2hlZXQtYm9yZGVyJzogICAgICAgICB0LnNoZWV0Qm9yZGVyQ29sb3IsXG4gICAgICAnLS1kYXNoLXNjcm9sbGJhci1jb2xvcic6ICAgICAgdC5zY3JvbGxiYXJDb2xvcixcbiAgICAgICctLWRhc2gtc3dpdGNoZXItdGl0bGUnOiAgICAgICB0LnN3aXRjaGVyVGl0bGVDb2xvcixcbiAgICAgICctLWRhc2gtc3dpdGNoZXItY2FyZC10ZXh0JzogICB0LnN3aXRjaGVyQ2FyZFRleHRDb2xvcixcbiAgICAgICctLWRhc2gtcG9wb3V0LXRpdGxlLWNvbG9yJzogICB0LnBvcG91dFRpdGxlQ29sb3IsXG4gICAgICAnLS1kYXNoLXdpZGdldC10aXRsZS1jb2xvcic6ICAgdC53aWRnZXRUaXRsZUNvbG9yLFxuICAgICAgJy0tZGFzaC1kcmFnLWhhbmRsZS1jb2xvcic6ICAgIHQuZHJhZ0hhbmRsZUNvbG9yLFxuICAgICAgJy0tZGFzaC13aWRnZXQtYm9yZGVyLWNvbG9yJzogIHQud2lkZ2V0Qm9yZGVyQ29sb3IsXG4gICAgICAnLS1kYXNoLXdpZGdldC1idG4tYmcnOiAgICAgICAgdC53aWRnZXRCdXR0b25CZ0NvbG9yLFxuICAgICAgJy0tZGFzaC13aWRnZXQtYnRuLWNvbG9yJzogICAgIHQud2lkZ2V0QnV0dG9uQ29sb3IsXG4gICAgICAnLS1kYXNoLXBsYWNlaG9sZGVyLWNvbG9yJzogICAgdC5wbGFjZWhvbGRlckNvbG9yLFxuICAgICAgJy0tZGFzaC1yZXNpemUtaGFuZGxlLWNvbG9yJzogIHQucmVzaXplSGFuZGxlQ29sb3IsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQWN0aXZlUGFnZSgpIHtcbiAgICB0aGlzLmFjdGl2ZVBhZ2UgPSB0aGlzLnBhZ2VzLmZpbmQocCA9PiBwLmlkID09PSB0aGlzLmFjdGl2ZVBhZ2VJZCk7XG4gIH1cbn1cbiJdfQ==
|
|
567
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvZGFzaGJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUFvQyxLQUFLLEVBQUUsTUFBTSxFQUMzQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFDM0IsSUFBSSxFQUMvQixZQUFZLEVBQUUsU0FBUyxFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFFNUQsTUFBTSxhQUFhLEdBQTZCO0lBQzlDLGVBQWUsRUFBVSxTQUFTO0lBQ2xDLFVBQVUsRUFBZSxTQUFTO0lBQ2xDLGdCQUFnQixFQUFTLHdCQUF3QjtJQUNqRCxlQUFlLEVBQVUsU0FBUztJQUNsQyxTQUFTLEVBQWdCLFNBQVM7SUFDbEMsV0FBVyxFQUFjLFNBQVM7SUFDbEMsZUFBZSxFQUFVLHVCQUF1QjtJQUNoRCxxQkFBcUIsRUFBSSx1QkFBdUI7SUFDaEQsV0FBVyxFQUFjLFNBQVM7SUFDbEMsZUFBZSxFQUFVLHNCQUFzQjtJQUMvQyxVQUFVLEVBQWUscUZBQXFGO0lBQzlHLGtCQUFrQixFQUFPLG9CQUFvQjtJQUM3QyxjQUFjLEVBQVcsU0FBUztJQUNsQyxrQkFBa0IsRUFBTyxTQUFTO0lBQ2xDLGlCQUFpQixFQUFRLFNBQVM7SUFDbEMsZUFBZSxFQUFVLHdCQUF3QjtJQUNqRCx3QkFBd0IsRUFBQyxTQUFTO0lBQ2xDLHdCQUF3QixFQUFDLFNBQVM7SUFDbEMsc0JBQXNCLEVBQUcsU0FBUztJQUNsQyxrQkFBa0IsRUFBTyxTQUFTO0lBQ2xDLG9CQUFvQixFQUFLLFNBQVM7SUFDbEMsa0JBQWtCLEVBQU8sd0JBQXdCO0lBQ2pELHNCQUFzQixFQUFHLHdCQUF3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QW1CO3NCQUE1QixNQUFNO2dCQUdQLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBRzlCLFlBQVk7c0JBQW5DLFNBQVM7dUJBQUMsV0FBVztnQkE0R3RCLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBJbnB1dCwgT3V0cHV0LCBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsIEV2ZW50RW1pdHRlciwgQ29udGVudENoaWxkLCBUZW1wbGF0ZVJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsIE5nWm9uZSwgUGlwZSwgUGlwZVRyYW5zZm9ybSxcbiAgSG9zdExpc3RlbmVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2Rhc2hib2FyZC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2UsIFdpZGdldCwgRGFzaGJvYXJkVGhlbWUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyaWRDZWxsRGlyZWN0aXZlIH0gZnJvbSAnLi9jdXN0b20tZ3JpZC5jb21wb25lbnQnO1xuXG5jb25zdCBERUZBVUxUX1RIRU1FOiBSZXF1aXJlZDxEYXNoYm9hcmRUaGVtZT4gPSB7XG4gIGJhY2tncm91bmRDb2xvcjogICAgICAgICAnIzAwMDAwMCcsXG4gIHBhbmVsQ29sb3I6ICAgICAgICAgICAgICAnIzFjMWMxZScsXG4gIHBhbmVsQm9yZGVyQ29sb3I6ICAgICAgICAncmdiYSgyNTUsMjU1LDI1NSwwLjA1KScsXG4gIHdpZGdldENhcmRDb2xvcjogICAgICAgICAnIzJjMmMyZScsXG4gIGZvcmVDb2xvcjogICAgICAgICAgICAgICAnIzhlOGU5MycsXG4gIGFjY2VudENvbG9yOiAgICAgICAgICAgICAnIzBhODRmZicsXG4gIGFjY2VudFRpbnRDb2xvcjogICAgICAgICAncmdiYSgxMCwxMzIsMjU1LDAuMTUpJyxcbiAgYWNjZW50VGludFN0cm9uZ0NvbG9yOiAgICdyZ2JhKDEwLDEzMiwyNTUsMC4yNSknLFxuICBkYW5nZXJDb2xvcjogICAgICAgICAgICAgJyNmZjQ1M2EnLFxuICBkYW5nZXJUaW50Q29sb3I6ICAgICAgICAgJ3JnYmEoMjU1LDY5LDU4LDAuMjIpJyxcbiAgZm9udEZhbWlseTogICAgICAgICAgICAgICctYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmJyxcbiAgdGFic0NvbnRhaW5lckNvbG9yOiAgICAgICdyZ2JhKDQ0LDQ0LDQ2LDAuNiknLFxuICB0YWJBY3RpdmVDb2xvcjogICAgICAgICAgJyMzYTNhM2MnLFxuICB0YWJBY3RpdmVUZXh0Q29sb3I6ICAgICAgJyNmZmZmZmYnLFxuICB0YWJIb3ZlclRleHRDb2xvcjogICAgICAgJyNlNWU1ZWEnLFxuICB0YWJIb3ZlckJnQ29sb3I6ICAgICAgICAgJ3JnYmEoMjU1LDI1NSwyNTUsMC4wNSknLFxuICBhZGRXaWRnZXRCdXR0b25UZXh0Q29sb3I6JyNmZmZmZmYnLFxuICBhZGRXaWRnZXRCdXR0b25JY29uQ29sb3I6JyNmZmZmZmYnLFxuICBhZGRXaWRnZXRCdXR0b25CZ0NvbG9yOiAgJyMwYTg0ZmYnLFxuICB0YWJBY3RpdmVJY29uQ29sb3I6ICAgICAgJyNmZmZmZmYnLFxuICB0YWJJbmFjdGl2ZUljb25Db2xvcjogICAgJyM4ZThlOTMnLFxuICBvdmVyZmxvd0J0bkJnQ29sb3I6ICAgICAgJ3JnYmEoMjU1LDI1NSwyNTUsMC4wOCknLFxuICBvdmVyZmxvd0J0bkJvcmRlckNvbG9yOiAgJ3JnYmEoMjU1LDI1NSwyNTUsMC4xMiknLFxuICBvdmVybGF5QmdDb2xvcjogICAgICAgICAgJ3JnYmEoMCwwLDAsMC41NSknLFxuICBzd2l0Y2hlclNoZWV0QmdDb2xvcjogICAgJyMxYzFjMWUnLFxuICBzaGVldEJvcmRlckNvbG9yOiAgICAgICAgJ3JnYmEoMjU1LDI1NSwyNTUsMC4wOCknLFxuICBzY3JvbGxiYXJDb2xvcjogICAgICAgICAgJ3JnYmEoMjU1LDI1NSwyNTUsMC4xNSknLFxuICBzd2l0Y2hlclRpdGxlQ29sb3I6ICAgICAgJyNmZmZmZmYnLFxuICBzd2l0Y2hlckNhcmRUZXh0Q29sb3I6ICAgJyNmZmZmZmYnLFxuICBzd2l0Y2hlckNhcmRCZ0NvbG9yOiAgICAgJyMyYzJjMmUnLFxuICBwb3BvdXRUaXRsZUNvbG9yOiAgICAgICAgJyNmZmZmZmYnLFxuICB3aWRnZXRUaXRsZUNvbG9yOiAgICAgICAgJyNmZmZmZmYnLFxuICBkcmFnSGFuZGxlQ29sb3I6ICAgICAgICAgJ3JnYmEoMjU1LDI1NSwyNTUsMC4yKScsXG4gIHdpZGdldEJvcmRlckNvbG9yOiAgICAgICAncmdiYSgyNTUsMjU1LDI1NSwwLjA3KScsXG4gIHdpZGdldEJ1dHRvbkJnQ29sb3I6ICAgICAncmdiYSgyNTUsMjU1LDI1NSwwLjA3KScsXG4gIHdpZGdldEJ1dHRvbkNvbG9yOiAgICAgICAncmdiYSgyNTUsMjU1LDI1NSwwLjUpJyxcbiAgcGxhY2Vob2xkZXJDb2xvcjogICAgICAgICcjMGE4NGZmJyxcbiAgcmVzaXplSGFuZGxlQ29sb3I6ICAgICAgICdyZ2JhKDI1NSwyNTUsMjU1LDAuMjUpJyxcbn07XG5cbkBQaXBlKHsgbmFtZTogJ292ZXJmbG93QWN0aXZlJyB9KVxuZXhwb3J0IGNsYXNzIE92ZXJmbG93QWN0aXZlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0ocGFnZXM6IFBhZ2VbXSwgYWN0aXZlUGFnZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGFnZXMuc29tZShwID0+IHAuaWQgPT09IGFjdGl2ZVBhZ2VJZCk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRhc2hib2FyZCcsXG4gIGhvc3Q6IHsgJ1tzdHlsZV0nOiAnd3JhcHBlclN0eWxlcycgfSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tIFBPUFBFRC1PVVQgTU9ERSAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQb3BwZWRPdXQ7IGVsc2Ugbm9ybWFsTW9kZVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInBvcG91dC13cmFwcGVyXCI+XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9XCJwb3BvdXQtaGVhZGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJwb3BvdXQtdGl0bGVcIj57eyBhY3RpdmVQYWdlPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8L2hlYWRlcj5cbiAgICAgICAgPGFwcC1ncmlkIFt3aWRnZXRzXT1cImFjdGl2ZVBhZ2U/LndpZGdldHMgfHwgW11cIiAoaXRlbUNoYW5nZWQpPVwib25JdGVtQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGdyaWRDZWxsIGxldC13aWRnZXQ9XCJ3aWRnZXRcIj5cbiAgICAgICAgICAgIDxhcHAtd2lkZ2V0LXJlbmRlcmVyIFt3aWRnZXRdPVwid2lkZ2V0XCIgW3RoZW1lXT1cInJlc29sdmVkVGhlbWVcIlxuICAgICAgICAgICAgICAoZWRpdFJlcXVlc3RlZCk9XCJlZGl0V2lkZ2V0UmVxdWVzdGVkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChyZW1vdmVSZXF1ZXN0ZWQpPVwib25SZW1vdmVXaWRnZXQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2VsbFRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHdpZGdldDogd2lkZ2V0IH1cIj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2FwcC13aWRnZXQtcmVuZGVyZXI+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9hcHAtZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPCEtLSBOT1JNQUwgTU9ERSAtLT5cbiAgICA8bmctdGVtcGxhdGUgI25vcm1hbE1vZGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGFzaGJvYXJkLXdyYXBwZXJcIj5cbiAgICAgICAgPG1haW4gY2xhc3M9XCJtYWluLWNvbnRlbnRcIj5cblxuICAgICAgICAgIDxoZWFkZXIgY2xhc3M9XCJkYXNoYm9hcmQtaGVhZGVyXCI+XG5cbiAgICAgICAgICAgIDwhLS0gVGFiIGJhciAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzLXRyYWNrXCIgI3RhYnNUcmFjaz5cbiAgICAgICAgICAgICAgPCEtLSBWaXNpYmxlIHRhYnMgLS0+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcGFnZSBvZiB2aXNpYmxlUGFnZXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFiXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInBhZ2UuaWQgPT09IGFjdGl2ZVBhZ2VJZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0UGFnZShwYWdlLmlkKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhYi1uYW1lXCI+e3sgcGFnZS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWItYWN0aW9uIHRhYi1wb3BvdXRcIiAoY2xpY2spPVwib25Qb3BPdXQoJGV2ZW50LCBwYWdlLmlkKVwiIHRpdGxlPVwiT3BlbiBpbiBuZXcgd2luZG93XCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImxhIGxhLWV4dGVybmFsLWxpbmstYWx0XCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWItYWN0aW9uIHRhYi1jbG9zZVwiICpuZ0lmPVwicGFnZXMubGVuZ3RoID4gMVwiIChjbGljayk9XCJvblJlbW92ZVBhZ2UoJGV2ZW50LCBwYWdlLmlkKVwiIHRpdGxlPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGEgbGEtdGltZXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDwhLS0gT3ZlcmZsb3cgYnV0dG9uIOKAlCBzaG93biBvbmx5IHdoZW4gdGhlcmUgYXJlIGhpZGRlbiB0YWJzIC0tPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJoaWRkZW5Db3VudCA+IDBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLW92ZXJmbG93XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblRhYlN3aXRjaGVyKClcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiU2hvdyBhbGwgd29ya3NwYWNlc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3Bhbj4re3sgaGlkZGVuQ291bnQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsYSBsYS10aC1sYXJnZVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgICAgPCEtLSBBZGQgcGFnZSBidXR0b24gLS0+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tYWRkLXBhZ2VcIiAoY2xpY2spPVwib25BZGRQYWdlKClcIiB0aXRsZT1cIk5ldyB3b3Jrc3BhY2VcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImxhIGxhLXBsdXNcIj48L2k+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tYWRkLXdpZGdldFwiIChjbGljayk9XCJhZGRXaWRnZXRSZXF1ZXN0ZWQuZW1pdCgpXCIgdGl0bGU9XCJBZGQgd2lkZ2V0XCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwibGEgbGEtcGx1c1wiPjwvaT5cbiAgICAgICAgICAgICAgPHNwYW4+QWRkIFdpZGdldDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgICA8IS0tIOKUgOKUgCBUYWItc3dpdGNoZXIgb3ZlcmxheSAoQ2hyb21lIG1vYmlsZSBzdHlsZSkg4pSA4pSAIC0tPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItc3dpdGNoZXItb3ZlcmxheVwiICpuZ0lmPVwidGFiU3dpdGNoZXJPcGVuXCIgKGNsaWNrKT1cImNsb3NlVGFiU3dpdGNoZXIoKVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYi1zd2l0Y2hlci1zaGVldFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXN3aXRjaGVyLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFiLXN3aXRjaGVyLXRpdGxlXCI+e3sgcGFnZXMubGVuZ3RoIH19IFdvcmtzcGFjZXt7IHBhZ2VzLmxlbmd0aCAhPT0gMSA/ICdzJyA6ICcnIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWItc3dpdGNoZXItY2xvc2UtYnRuXCIgKGNsaWNrKT1cImNsb3NlVGFiU3dpdGNoZXIoKVwiIHRpdGxlPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGEgbGEtdGltZXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItc3dpdGNoZXItZ3JpZFwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGFiLWNhcmRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJwYWdlLmlkID09PSBhY3RpdmVQYWdlSWRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3dpdGNoZXJTZWxlY3QocGFnZS5pZClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY2FyZC1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGEgbGEtdGgtbGFyZ2VcIj48L2k+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFiLWNhcmQtbmFtZVwiPnt7IHBhZ2UubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWItY2FyZC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWItY2FyZC1idG4gdGFiLWNhcmQtcG9wb3V0XCIgKGNsaWNrKT1cIm9uU3dpdGNoZXJQb3BPdXQoJGV2ZW50LCBwYWdlLmlkKVwiIHRpdGxlPVwiT3BlbiBpbiBuZXcgd2luZG93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsYSBsYS1leHRlcm5hbC1saW5rLWFsdFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWItY2FyZC1idG4gdGFiLWNhcmQtcmVtb3ZlXCIgKm5nSWY9XCJwYWdlcy5sZW5ndGggPiAxXCIgKGNsaWNrKT1cIm9uU3dpdGNoZXJSZW1vdmUoJGV2ZW50LCBwYWdlLmlkKVwiIHRpdGxlPVwiQ2xvc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImxhIGxhLXRpbWVzXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFiLXN3aXRjaGVyLWZvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ0YWItc3dpdGNoZXItYWRkLWJ0blwiIChjbGljayk9XCJvblN3aXRjaGVyQWRkKClcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGEgbGEtcGx1c1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDxzcGFuPk5ldyBXb3Jrc3BhY2U8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGFwcC1ncmlkIFt3aWRnZXRzXT1cImFjdGl2ZVBhZ2U/LndpZGdldHMgfHwgW11cIiAoaXRlbUNoYW5nZWQpPVwib25JdGVtQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBncmlkQ2VsbCBsZXQtd2lkZ2V0PVwid2lkZ2V0XCI+XG4gICAgICAgICAgICAgICAgPGFwcC13aWRnZXQtcmVuZGVyZXIgW3dpZGdldF09XCJ3aWRnZXRcIiBbdGhlbWVdPVwicmVzb2x2ZWRUaGVtZVwiXG4gICAgICAgICAgICAgICAgICAoZWRpdFJlcXVlc3RlZCk9XCJlZGl0V2lkZ2V0UmVxdWVzdGVkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAocmVtb3ZlUmVxdWVzdGVkKT1cIm9uUmVtb3ZlV2lkZ2V0KCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjZWxsVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB3aWRnZXQ6IHdpZGdldCB9XCI+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2FwcC13aWRnZXQtcmVuZGVyZXI+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2FwcC1ncmlkPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvbWFpbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIGAsXG4gIHN0eWxlczogW2BcbiAgICA6aG9zdCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIC0tZGFzaC1iZzogICAgICAgICAgICAgICAgICAgICMwMDAwMDA7XG4gICAgICAtLWRhc2gtcGFuZWwtYmc6ICAgICAgICAgICAgICAjMWMxYzFlO1xuICAgICAgLS1kYXNoLXBhbmVsLWJvcmRlcjogICAgICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjA1KTtcbiAgICAgIC0tZGFzaC1jYXJkLWJnOiAgICAgICAgICAgICAgICMyYzJjMmU7XG4gICAgICAtLWRhc2gtZm9yZS1jb2xvcjogICAgICAgICAgICAjOGU4ZTkzO1xuICAgICAgLS1kYXNoLWFjY2VudC1jb2xvcjogICAgICAgICAgIzBhODRmZjtcbiAgICAgIC0tZGFzaC1hY2NlbnQtdGludDogICAgICAgICAgIHJnYmEoMTAsMTMyLDI1NSwwLjE1KTtcbiAgICAgIC0tZGFzaC1hY2NlbnQtdGludC1zdHJvbmc6ICAgIHJnYmEoMTAsMTMyLDI1NSwwLjI1KTtcbiAgICAgIC0tZGFzaC1kYW5nZXItY29sb3I6ICAgICAgICAgICNmZjQ1M2E7XG4gICAgICAtLWRhc2gtZGFuZ2VyLXRpbnQ6ICAgICAgICAgICByZ2JhKDI1NSw2OSw1OCwwLjIyKTtcbiAgICAgIC0tZGFzaC1mb250LWZhbWlseTogICAgICAgICAgIC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gICAgICAtLWRhc2gtdGFicy1jb250YWluZXItY29sb3I6ICByZ2JhKDQ0LDQ0LDQ2LDAuNik7XG4gICAgICAtLWRhc2gtdGFiLWFjdGl2ZS1jb2xvcjogICAgICAjM2EzYTNjO1xuICAgICAgLS1kYXNoLXRhYi1hY3RpdmUtdGV4dDogICAgICAgI2ZmZmZmZjtcbiAgICAgIC0tZGFzaC10YWItaG92ZXItdGV4dDogICAgICAgICNlNWU1ZWE7XG4gICAgICAtLWRhc2gtdGFiLWhvdmVyLWJnOiAgICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpO1xuICAgICAgLS1kYXNoLWFkZC13aWRnZXQtdGV4dDogICAgICAgI2ZmZmZmZjtcbiAgICAgIC0tZGFzaC1hZGQtd2lkZ2V0LWljb246ICAgICAgICNmZmZmZmY7XG4gICAgICAtLWRhc2gtYWRkLXdpZGdldC1iZzogICAgICAgICAjMGE4NGZmO1xuICAgICAgLS1kYXNoLXRhYi1hY3RpdmUtaWNvbjogICAgICAgI2ZmZmZmZjtcbiAgICAgIC0tZGFzaC10YWItaW5hY3RpdmUtaWNvbjogICAgICM4ZThlOTM7XG4gICAgICAtLWRhc2gtb3ZlcmZsb3ctYnRuLWJnOiAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpO1xuICAgICAgLS1kYXNoLW92ZXJmbG93LWJ0bi1ib3JkZXI6ICAgcmdiYSgyNTUsMjU1LDI1NSwwLjEyKTtcbiAgICAgIC0tZGFzaC1vdmVybGF5LWJnOiAgICAgICAgICAgIHJnYmEoMCwwLDAsMC41NSk7XG4gICAgICAtLWRhc2gtc3dpdGNoZXItc2hlZXQtYmc6ICAgICAjMWMxYzFlO1xuICAgICAgLS1kYXNoLXN3aXRjaGVyLWNhcmQtYmc6ICAgICAgIzJjMmMyZTtcbiAgICAgIC0tZGFzaC1zaGVldC1ib3JkZXI6ICAgICAgICAgIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCk7XG4gICAgICAtLWRhc2gtc2Nyb2xsYmFyLWNvbG9yOiAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpO1xuICAgICAgLS1kYXNoLXN3aXRjaGVyLXRpdGxlOiAgICAgICAgI2ZmZmZmZjtcbiAgICAgIC0tZGFzaC1zd2l0Y2hlci1jYXJkLXRleHQ6ICAgICNmZmZmZmY7XG4gICAgICAtLWRhc2gtcG9wb3V0LXRpdGxlLWNvbG9yOiAgICAjZmZmZmZmO1xuICAgICAgLS1kYXNoLXdpZGdldC10aXRsZS1jb2xvcjogICAgI2ZmZmZmZjtcbiAgICAgIC0tZGFzaC1kcmFnLWhhbmRsZS1jb2xvcjogICAgIHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcbiAgICAgIC0tZGFzaC13aWRnZXQtYm9yZGVyLWNvbG9yOiAgIHJnYmEoMjU1LDI1NSwyNTUsMC4wNyk7XG4gICAgICAtLWRhc2gtd2lkZ2V0LWJ0bi1iZzogICAgICAgICByZ2JhKDI1NSwyNTUsMjU1LDAuMDcpO1xuICAgICAgLS1kYXNoLXdpZGdldC1idG4tY29sb3I6ICAgICAgcmdiYSgyNTUsMjU1LDI1NSwwLjUpO1xuICAgICAgLS1kYXNoLXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgIzBhODRmZjtcbiAgICAgIC0tZGFzaC1yZXNpemUtaGFuZGxlLWNvbG9yOiAgIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSk7XG4gICAgfVxuXG4gICAgLyog4pSA4pSAIE5vcm1hbCBsYXlvdXQg4pSA4pSAICovXG4gICAgLmRhc2hib2FyZC13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAxO1xuICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwYWRkaW5nOiAxNnB4O1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtYmcpO1xuICAgICAgY29sb3I6IHZhcigtLWRhc2gtZm9yZS1jb2xvcik7XG4gICAgICBmb250LWZhbWlseTogdmFyKC0tZGFzaC1mb250LWZhbWlseSk7XG4gICAgfVxuICAgIC5tYWluLWNvbnRlbnQge1xuICAgICAgZmxleDogMTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1wYW5lbC1iZyk7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1kYXNoLXBhbmVsLWJvcmRlcik7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgLyog4pSA4pSAIFBvcC1vdXQgbGF5b3V0IOKUgOKUgCAqL1xuICAgIC5wb3BvdXQtd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleDogMTtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1iZyk7XG4gICAgICBjb2xvcjogdmFyKC0tZGFzaC1mb3JlLWNvbG9yKTtcbiAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1kYXNoLWZvbnQtZmFtaWx5KTtcbiAgICB9XG4gICAgLnBvcG91dC1oZWFkZXIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgcGFkZGluZzogMTBweCAxOHB4O1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1wYW5lbC1iZyk7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFzaC1wYW5lbC1ib3JkZXIpO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuICAgIC5wb3BvdXQtdGl0bGUgeyBmb250LXNpemU6IDE2cHg7IGZvbnQtd2VpZ2h0OiA3MDA7IGNvbG9yOiB2YXIoLS1kYXNoLXBvcG91dC10aXRsZS1jb2xvcik7IH1cbiAgICAucG9wb3V0LXdyYXBwZXIgYXBwLWdyaWQgeyBmbGV4OiAxOyBtaW4taGVpZ2h0OiAwOyBvdmVyZmxvdzogYXV0bzsgfVxuXG4gICAgLyog4pSA4pSAIEhlYWRlciDilIDilIAgKi9cbiAgICAuZGFzaGJvYXJkLWhlYWRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBnYXA6IDEycHg7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICB9XG5cbiAgICAvKiDilIDilIAgVGFiIGJhciDilIDilIAgKi9cbiAgICAudGFicy10cmFjayB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogNnB4O1xuICAgICAgZmxleDogMTtcbiAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtdGFicy1jb250YWluZXItY29sb3IpO1xuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgLyog4pSA4pSAIEluZGl2aWR1YWwgdGFiIOKUgOKUgCAqL1xuICAgIC50YWIge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBnYXA6IDRweDtcbiAgICAgIHBhZGRpbmc6IDhweCAxNHB4IDhweCAxOHB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBjb2xvcjogdmFyKC0tZGFzaC1mb3JlLWNvbG9yKTtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycywgY29sb3IgMC4ycztcbiAgICB9XG4gICAgLnRhYi5hY3RpdmUgeyBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLXRhYi1hY3RpdmUtY29sb3IpOyBjb2xvcjogdmFyKC0tZGFzaC10YWItYWN0aXZlLXRleHQpOyB9XG4gICAgLnRhYjpob3Zlcjpub3QoLmFjdGl2ZSkgeyBjb2xvcjogdmFyKC0tZGFzaC10YWItaG92ZXItdGV4dCk7IGJhY2tncm91bmQ6IHZhcigtLWRhc2gtdGFiLWhvdmVyLWJnKTsgfVxuICAgIC50YWItbmFtZSB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAudGFiLWFjdGlvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgYm9yZGVyOiBub25lOyBjb2xvcjogdmFyKC0tZGFzaC1mb3JlLWNvbG9yKTtcbiAgICAgIHBhZGRpbmc6IDJweDsgZm9udC1zaXplOiAxMXB4OyBjdXJzb3I6IHBvaW50ZXI7IG9wYWNpdHk6IDA7IGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIHdpZHRoOiAyMHB4OyBoZWlnaHQ6IDIwcHg7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7IGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAudGFiOmhvdmVyIC50YWItYWN0aW9uIHsgb3BhY2l0eTogMTsgfVxuICAgIC50YWIuYWN0aXZlIC50YWItYWN0aW9uIHsgY29sb3I6IHZhcigtLWRhc2gtdGFiLWFjdGl2ZS1pY29uKTsgfVxuICAgIC50YWI6bm90KC5hY3RpdmUpIC50YWItYWN0aW9uIHsgY29sb3I6IHZhcigtLWRhc2gtdGFiLWluYWN0aXZlLWljb24pOyB9XG4gICAgLnRhYi1wb3BvdXQ6aG92ZXIgeyBjb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IpOyBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWFjY2VudC10aW50KTsgfVxuICAgIC50YWItY2xvc2U6aG92ZXIgIHsgY29sb3I6IHZhcigtLWRhc2gtZGFuZ2VyLWNvbG9yKTsgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtZGFuZ2VyLXRpbnQpOyB9XG5cbiAgICAvKiDilIDilIAgT3ZlcmZsb3cgXCIrTlwiIGJ1dHRvbiDilIDilIAgKi9cbiAgICAuYnRuLW92ZXJmbG93IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogNXB4O1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1vdmVyZmxvdy1idG4tYmcpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFzaC1vdmVyZmxvdy1idG4tYm9yZGVyKTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgICBwYWRkaW5nOiA3cHggMTNweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBjb2xvcjogdmFyKC0tZGFzaC10YWItYWN0aXZlLXRleHQpO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzLCBib3JkZXItY29sb3IgMC4ycywgY29sb3IgMC4ycztcbiAgICB9XG4gICAgLmJ0bi1vdmVyZmxvdzpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhc2gtYWNjZW50LXRpbnQpOyBib3JkZXItY29sb3I6IHZhcigtLWRhc2gtYWNjZW50LWNvbG9yKTsgY29sb3I6IHZhcigtLWRhc2gtYWNjZW50LWNvbG9yKTsgfVxuXG4gICAgLyog4pSA4pSAIEFkZCBwYWdlIGJ1dHRvbiDilIDilIAgKi9cbiAgICAuYnRuLWFkZC1wYWdlIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyBib3JkZXI6IG5vbmU7IGNvbG9yOiB2YXIoLS1kYXNoLWZvcmUtY29sb3IpO1xuICAgICAgcGFkZGluZzogOHB4IDE0cHg7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XG4gICAgfVxuICAgIC5idG4tYWRkLXBhZ2U6aG92ZXIgeyBjb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IpOyBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWFjY2VudC10aW50KTsgfVxuXG4gICAgLyog4pSA4pSAIFRhYi1zd2l0Y2hlciBvdmVybGF5IOKUgOKUgCAqL1xuICAgIC50YWItc3dpdGNoZXItb3ZlcmxheSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBpbnNldDogMDtcbiAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLW92ZXJsYXktYmcpO1xuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBhZGRpbmctdG9wOiA2MHB4O1xuICAgICAgYW5pbWF0aW9uOiBvdmVybGF5LWluIDAuMThzIGVhc2U7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgb3ZlcmxheS1pbiB7XG4gICAgICBmcm9tIHsgb3BhY2l0eTogMDsgfVxuICAgICAgdG8gICB7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG5cbiAgICAudGFiLXN3aXRjaGVyLXNoZWV0IHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtc3dpdGNoZXItc2hlZXQtYmcpO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZGFzaC1zaGVldC1ib3JkZXIpO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICAgIHdpZHRoOiBtaW4oNTIwcHgsIGNhbGMoMTAwJSAtIDMycHgpKTtcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwJSAtIDgwcHgpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgYW5pbWF0aW9uOiBzaGVldC1pbiAwLjIycyBjdWJpYy1iZXppZXIoLjMyLDEuMiwuNSwxKTtcbiAgICB9XG4gICAgQGtleWZyYW1lcyBzaGVldC1pbiB7XG4gICAgICBmcm9tIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xNnB4KSBzY2FsZSgwLjk3KTsgb3BhY2l0eTogMDsgfVxuICAgICAgdG8gICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSAgICAgc2NhbGUoMSk7ICAgIG9wYWNpdHk6IDE7IH1cbiAgICB9XG5cbiAgICAudGFiLXN3aXRjaGVyLWhlYWRlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHBhZGRpbmc6IDE2cHggMjBweCAxMnB4O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWRhc2gtc2hlZXQtYm9yZGVyKTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIH1cbiAgICAudGFiLXN3aXRjaGVyLXRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBjb2xvcjogdmFyKC0tZGFzaC1zd2l0Y2hlci10aXRsZSk7XG4gICAgfVxuICAgIC50YWItc3dpdGNoZXItY2xvc2UtYnRuIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtd2lkZ2V0LWJ0bi1iZyk7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBjb2xvcjogdmFyKC0tZGFzaC1mb3JlLWNvbG9yKTtcbiAgICAgIHdpZHRoOiAyOHB4OyBoZWlnaHQ6IDI4cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMsIGNvbG9yIDAuMTVzO1xuICAgIH1cbiAgICAudGFiLXN3aXRjaGVyLWNsb3NlLWJ0bjpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhc2gtZGFuZ2VyLXRpbnQpOyBjb2xvcjogdmFyKC0tZGFzaC1kYW5nZXItY29sb3IpOyB9XG5cbiAgICAudGFiLXN3aXRjaGVyLWdyaWQge1xuICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDE0MHB4LCAxZnIpKTtcbiAgICAgIGdhcDogMTBweDtcbiAgICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuICAgICAgc2Nyb2xsYmFyLWNvbG9yOiB2YXIoLS1kYXNoLXNjcm9sbGJhci1jb2xvcikgdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLnRhYi1jYXJkIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGdhcDogOHB4O1xuICAgICAgcGFkZGluZzogMTZweCAxMnB4IDEycHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1zd2l0Y2hlci1jYXJkLWJnKTtcbiAgICAgIGJvcmRlcjogMS41cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4xNXMsIGJhY2tncm91bmQgMC4xNXMsIHRyYW5zZm9ybSAwLjEycztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG4gICAgLnRhYi1jYXJkOmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tZGFzaC10YWItaG92ZXItYmcpOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7IH1cbiAgICAudGFiLWNhcmQuYWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IpO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1hY2NlbnQtdGludCk7XG4gICAgfVxuICAgIC50YWItY2FyZC1pY29uIHtcbiAgICAgIHdpZHRoOiA0NHB4OyBoZWlnaHQ6IDQ0cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tZGFzaC13aWRnZXQtYnRuLWJnKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiAyMHB4O1xuICAgICAgY29sb3I6IHZhcigtLWRhc2gtc3dpdGNoZXItY2FyZC1pY29uKTtcbiAgICB9XG4gICAgLnRhYi1jYXJkLmFjdGl2ZSAudGFiLWNhcmQtaWNvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWFjY2VudC10aW50LXN0cm9uZyk7XG4gICAgICBjb2xvcjogdmFyKC0tZGFzaC1zd2l0Y2hlci1hY3RpdmUtY2FyZC1pY29uKTtcbiAgICB9XG4gICAgLnRhYi1jYXJkLW5hbWUge1xuICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgIGNvbG9yOiB2YXIoLS1kYXNoLXN3aXRjaGVyLWNhcmQtdGV4dCk7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMztcbiAgICB9XG4gICAgLnRhYi1jYXJkLWFjdGlvbnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGdhcDogNHB4O1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXM7XG4gICAgfVxuICAgIC50YWItY2FyZDpob3ZlciAudGFiLWNhcmQtYWN0aW9ucyB7IG9wYWNpdHk6IDE7IH1cbiAgICAudGFiLWNhcmQtYnRuIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWRhc2gtd2lkZ2V0LWJ0bi1iZyk7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICB3aWR0aDogMjZweDsgaGVpZ2h0OiAyNnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICBjb2xvcjogdmFyKC0tZGFzaC1mb3JlLWNvbG9yKTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4xNXMsIGNvbG9yIDAuMTVzO1xuICAgIH1cbiAgICAudGFiLWNhcmQtcG9wb3V0OmhvdmVyIHsgYmFja2dyb3VuZDogdmFyKC0tZGFzaC1hY2NlbnQtdGludC1zdHJvbmcpOyBjb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IpOyB9XG4gICAgLnRhYi1jYXJkLXJlbW92ZTpob3ZlciB7IGJhY2tncm91bmQ6IHZhcigtLWRhc2gtZGFuZ2VyLXRpbnQpOyAgICAgICAgY29sb3I6IHZhcigtLWRhc2gtZGFuZ2VyLWNvbG9yKTsgfVxuXG4gICAgLnRhYi1zd2l0Y2hlci1mb290ZXIge1xuICAgICAgcGFkZGluZzogMTJweCAxNnB4IDE2cHg7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZGFzaC1zaGVldC1ib3JkZXIpO1xuICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgfVxuICAgIC50YWItc3dpdGNoZXItYWRkLWJ0biB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgZ2FwOiA4cHg7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBhZGRpbmc6IDExcHggMjBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWFjY2VudC10aW50KTtcbiAgICAgIGJvcmRlcjogMS41cHggZGFzaGVkIHZhcigtLWRhc2gtYWNjZW50LXRpbnQtc3Ryb25nKTtcbiAgICAgIGNvbG9yOiB2YXIoLS1kYXNoLWFjY2VudC1jb2xvcik7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjE1cywgYm9yZGVyLWNvbG9yIDAuMTVzO1xuICAgIH1cbiAgICAudGFiLXN3aXRjaGVyLWFkZC1idG46aG92ZXIgeyBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWFjY2VudC10aW50LXN0cm9uZyk7IGJvcmRlci1jb2xvcjogdmFyKC0tZGFzaC1hY2NlbnQtY29sb3IpOyB9XG5cbiAgICAuYnRuLWFkZC13aWRnZXQge1xuICAgICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA2cHg7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYXNoLWFkZC13aWRnZXQtYmcpOyBib3JkZXI6IG5vbmU7IGNvbG9yOiB2YXIoLS1kYXNoLWFkZC13aWRnZXQtdGV4dCk7XG4gICAgICBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA2MDA7IHBhZGRpbmc6IDEwcHggMjBweDsgYm9yZGVyLXJhZGl1czogMjJweDtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjsgd2hpdGUtc3BhY2U6IG5vd3JhcDsgZmxleC1zaHJpbms6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMsIHRyYW5zZm9ybSAwLjE1cztcbiAgICB9XG4gICAgLmJ0bi1hZGQtd2lkZ2V0IGkgeyBjb2xvcjogdmFyKC0tZGFzaC1hZGQtd2lkZ2V0LWljb24pOyB9XG4gICAgLmJ0bi1hZGQtd2lkZ2V0OmhvdmVyICB7IG9wYWNpdHk6IDAuOTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpOyB9XG4gICAgLmJ0bi1hZGQtd2lkZ2V0OmFjdGl2ZSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxuXG4gICAgLyog4pSA4pSAIEdyaWQg4pSA4pSAICovXG4gICAgLm1haW4tY29udGVudCAuZ3JpZC1jb250YWluZXIgeyBmbGV4OiAxOyBvdmVyZmxvdzogYXV0bzsgYm9yZGVyLXJhZGl1czogMjRweDsgbWluLWhlaWdodDogMDsgfVxuICAgIGFwcC1ncmlkIHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IGRpc3BsYXk6IGJsb2NrOyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpbml0aWFsTGF5b3V0Pzogc3RyaW5nO1xuICBASW5wdXQoKSB0aGVtZT86IERhc2hib2FyZFRoZW1lO1xuXG4gIEBPdXRwdXQoKSBhZGRXaWRnZXRSZXF1ZXN0ZWQgID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgZWRpdFdpZGdldFJlcXVlc3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8V2lkZ2V0PigpO1xuXG4gIEBDb250ZW50Q2hpbGQoR3JpZENlbGxEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgY2VsbFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyB3aWRnZXQ6IFdpZGdldCB9PjtcblxuICBAVmlld0NoaWxkKCd0YWJzVHJhY2snKSB0YWJzVHJhY2tSZWYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICByZXNvbHZlZFRoZW1lOiBSZXF1aXJlZDxEYXNoYm9hcmRUaGVtZT4gPSB7IC4uLkRFRkFVTFRfVEhFTUUgfTtcbiAgd3JhcHBlclN0eWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIHBhZ2VzOiBQYWdlW10gICAgID0gW107XG4gIHZpc2libGVQYWdlczogUGFnZVtdID0gW107XG4gIGhpZGRlbkNvdW50ICAgICAgID0gMDtcbiAgYWN0aXZlUGFnZUlkICAgICAgPSAnJztcbiAgYWN0aXZlUGFnZT86IFBhZ2U7XG4gIGlzUG9wcGVkT3V0ICAgICAgID0gZmFsc2U7XG4gIHRhYlN3aXRjaGVyT3BlbiAgID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgLy8gUmVzZXJ2ZWQgc3BhY2UgZm9yIHRoZSBvdmVyZmxvdyBcIitOXCIgYnV0dG9uIGFuZCB0aGUgYWRkIFwiK1wiIGJ1dHRvbiAocHgpXG4gIHByaXZhdGUgcmVhZG9ubHkgT1ZFUkZMT1dfQlROX1cgPSA4MDtcbiAgcHJpdmF0ZSByZWFkb25seSBBRERfQlROX1cgICAgICA9IDUyO1xuICBwcml2YXRlIHJlYWRvbmx5IEdBUCAgICAgICAgICAgID0gNjtcbiAgcHJpdmF0ZSByZWFkb25seSBQQURESU5HICAgICAgICA9IDEyOyAvLyA2cHggZWFjaCBzaWRlXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN0YXRlU2VydmljZTogRGFzaGJvYXJkU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWyd0aGVtZSddIHx8IGNoYW5nZXNbJ2luaXRpYWxMYXlvdXQnXSkgdGhpcy5hcHBseVRoZW1lKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFwcGx5VGhlbWUoKTtcblxuICAgIGlmICh0aGlzLmluaXRpYWxMYXlvdXQpIHtcbiAgICAgIHRyeSB7IHRoaXMuc3RhdGVTZXJ2aWNlLmxvYWRMYXlvdXQoSlNPTi5wYXJzZSh0aGlzLmluaXRpYWxMYXlvdXQpKTsgfVxuICAgICAgY2F0Y2ggKGUpIHsgY29uc29sZS5lcnJvcignW0Rhc2hib2FyZF0gRmFpbGVkIHRvIHBhcnNlIGluaXRpYWxMYXlvdXQnLCBlKTsgfVxuICAgIH1cblxuICAgIGNvbnN0IGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaD8ucmVwbGFjZSgnIycsICcnKS50cmltKCk7XG4gICAgaWYgKGhhc2gpIHRoaXMuaXNQb3BwZWRPdXQgPSB0cnVlO1xuXG4gICAgdGhpcy5zdWJzLmFkZCh0aGlzLnN0YXRlU2VydmljZS5wYWdlcyQuc3Vic2NyaWJlKHBhZ2VzID0+IHtcbiAgICAgIHRoaXMucGFnZXMgPSBwYWdlcztcbiAgICAgIHRoaXMuX3RhYldpZHRoQ2FjaGUgPSBbXTsgLy8gaW52YWxpZGF0ZSBjYWNoZSDigJQgcGFnZSBsaXN0IGNoYW5nZWRcbiAgICAgIGlmICh0aGlzLmlzUG9wcGVkT3V0ICYmIGhhc2gpIHtcbiAgICAgICAgaWYgKHBhZ2VzLmZpbmQocCA9PiBwLmlkID09PSBoYXNoKSkgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0QWN0aXZlUGFnZShoYXNoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlQWN0aXZlUGFnZSgpO1xuICAgICAgdGhpcy5yZWNhbGNWaXNpYmxlVGFicygpO1xuICAgICAgLy8gU2Vjb25kIHBhc3MgYWZ0ZXIgQW5ndWxhciBoYXMgcmVuZGVyZWQgdGhlIHVwZGF0ZWQgdGFiIGVsZW1lbnRzXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucmVjYWxjVmlzaWJsZVRhYnMoKSk7XG4gICAgfSkpO1xuICAgIHRoaXMuc3Vicy5hZGQodGhpcy5zdGF0ZVNlcnZpY2UuYWN0aXZlUGFnZUlkJC5zdWJzY3JpYmUoaWQgPT4ge1xuICAgICAgdGhpcy5hY3RpdmVQYWdlSWQgPSBpZDtcbiAgICAgIHRoaXMudXBkYXRlQWN0aXZlUGFnZSgpO1xuICAgIH0pKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoIXRoaXMudGFic1RyYWNrUmVmKSByZXR1cm47XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHRoaXMucmVjYWxjVmlzaWJsZVRhYnMoKSk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnRhYnNUcmFja1JlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9KTtcbiAgICAvLyBJbml0aWFsIG1lYXN1cmVtZW50IHBhc3Mgbm93IHRoYXQgdGhlIERPTSBpcyByZWFkeVxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZWNhbGNWaXNpYmxlVGFicygpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vicy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIG9uSXRlbUNoYW5nZWQod2lkZ2V0OiBXaWRnZXQpIHtcbiAgICB0aGlzLnN0YXRlU2VydmljZS51cGRhdGVXaWRnZXRQb3NpdGlvbihcbiAgICAgIHRoaXMuYWN0aXZlUGFnZUlkLCB3aWRnZXQuaWQsIHdpZGdldC54LCB3aWRnZXQueSwgd2lkZ2V0LmNvbHMsIHdpZGdldC5yb3dzXG4gICAgKTtcbiAgfVxuXG4gIG9uUmVtb3ZlV2lkZ2V0KHdpZGdldElkOiBzdHJpbmcpIHsgdGhpcy5zdGF0ZVNlcnZpY2UucmVtb3ZlV2lkZ2V0KHdpZGdldElkKTsgfVxuXG4gIG9uU2VsZWN0UGFnZShpZDogc3RyaW5nKSB7IHRoaXMuc3RhdGVTZXJ2aWNlLnNldEFjdGl2ZVBhZ2UoaWQpOyB9XG5cbiAgb25BZGRQYWdlKCkge1xuICAgIGNvbnN0IG5hbWUgPSBwcm9tcHQoJ1dvcmtzcGFjZSBuYW1lOicsIGBXb3Jrc3BhY2UgJHt0aGlzLnBhZ2VzLmxlbmd0aCArIDF9YCk7XG4gICAgaWYgKG5hbWUpIHRoaXMuc3RhdGVTZXJ2aWNlLmFkZFBhZ2UobmFtZSk7XG4gIH1cblxuICBvblJlbW92ZVBhZ2UoZXZlbnQ6IEV2ZW50LCBpZDogc3RyaW5nKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGNvbmZpcm0oJ1JlbW92ZSB0aGlzIHdvcmtzcGFjZT8nKSkgdGhpcy5zdGF0ZVNlcnZpY2UucmVtb3ZlUGFnZShpZCk7XG4gIH1cblxuICBvblBvcE91dChldmVudDogRXZlbnQsIHBhZ2VJZDogc3RyaW5nKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UucG9wT3V0UGFnZShwYWdlSWQpO1xuICB9XG5cbiAgc2VyaWFsaXplTGF5b3V0KCk6IHN0cmluZyB7IHJldHVybiB0aGlzLnN0YXRlU2VydmljZS5zZXJpYWxpemVMYXlvdXQoKTsgfVxuXG4gIG9wZW5UYWJTd2l0Y2hlcigpICB7IHRoaXMudGFiU3dpdGNoZXJPcGVuID0gdHJ1ZTsgfVxuICBjbG9zZVRhYlN3aXRjaGVyKCkgeyB0aGlzLnRhYlN3aXRjaGVyT3BlbiA9IGZhbHNlOyB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnKVxuICBvbkVzY2FwZUtleSgpIHsgdGhpcy5jbG9zZVRhYlN3aXRjaGVyKCk7IH1cblxuICBvblN3aXRjaGVyU2VsZWN0KHBhZ2VJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0QWN0aXZlUGFnZShwYWdlSWQpO1xuICAgIHRoaXMuY2xvc2VUYWJTd2l0Y2hlcigpO1xuICB9XG5cbiAgb25Td2l0Y2hlclBvcE91dChldmVudDogRXZlbnQsIHBhZ2VJZDogc3RyaW5nKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2UucG9wT3V0UGFnZShwYWdlSWQpO1xuICAgIHRoaXMuY2xvc2VUYWJTd2l0Y2hlcigpO1xuICB9XG5cbiAgb25Td2l0Y2hlclJlbW92ZShldmVudDogRXZlbnQsIHBhZ2VJZDogc3RyaW5nKSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGNvbmZpcm0oJ1JlbW92ZSB0aGlzIHdvcmtzcGFjZT8nKSkge1xuICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVtb3ZlUGFnZShwYWdlSWQpO1xuICAgICAgaWYgKHRoaXMucGFnZXMubGVuZ3RoIDw9IDEpIHRoaXMuY2xvc2VUYWJTd2l0Y2hlcigpO1xuICAgIH1cbiAgfVxuXG4gIG9uU3dpdGNoZXJBZGQoKSB7XG4gICAgY29uc3QgbmFtZSA9IHByb21wdCgnV29ya3NwYWNlIG5hbWU6JywgYFdvcmtzcGFjZSAke3RoaXMucGFnZXMubGVuZ3RoICsgMX1gKTtcbiAgICBpZiAobmFtZSkgdGhpcy5zdGF0ZVNlcnZpY2UuYWRkUGFnZShuYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVjYWxjVmlzaWJsZVRhYnMoKSB7XG4gICAgaWYgKCF0aGlzLnRhYnNUcmFja1JlZiB8fCAhdGhpcy5wYWdlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudmlzaWJsZVBhZ2VzID0gdGhpcy5wYWdlcztcbiAgICAgIHRoaXMuaGlkZGVuQ291bnQgID0gMDtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRyYWNrICAgICAgICA9IHRoaXMudGFic1RyYWNrUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgdHJhY2tXICAgICAgID0gdHJhY2suY2xpZW50V2lkdGg7XG4gICAgLy8gU3BhY2UgYWx3YXlzIGNvbnN1bWVkIGJ5IHRoZSBhZGQgXCIrXCIgYnV0dG9uICsgcGFkZGluZ1xuICAgIGNvbnN0IGJhc2VSZXNlcnZlZCA9IHRoaXMuQUREX0JUTl9XICsgdGhpcy5HQVAgKyB0aGlzLlBBRERJTkc7XG4gICAgLy8gU3BhY2UgbmVlZGVkIGZvciB0aGUgb3ZlcmZsb3cgXCIrTlwiIGJ1dHRvbiB3aGVuIHNob3duXG4gICAgY29uc3Qgb3ZlcmZsb3dTbG90ID0gdGhpcy5PVkVSRkxPV19CVE5fVyArIHRoaXMuR0FQO1xuXG4gICAgLy8gTWVhc3VyZSBlYWNoIHJlYWwgdGFiIGVsZW1lbnQgY3VycmVudGx5IGluIHRoZSBET00uXG4gICAgLy8gVGhlIERPTSBhbHdheXMgcmVuZGVycyBhbGwgdmlzaWJsZVBhZ2VzIHRhYnMsIHNvIHdlIG1heSBub3QgaGF2ZSBhbGwgdGFic1xuICAgIC8vIG1lYXN1cmVkIHlldCDigJQgZmFsbCBiYWNrIHRvIHRoZSBwcmV2aW91cyBtZWFzdXJlZCBjYWNoZSBvciBhIGdlbmVyb3VzIGVzdGltYXRlLlxuICAgIGNvbnN0IHRhYkVscyA9IEFycmF5LmZyb20odHJhY2sucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJy50YWInKSk7XG4gICAgLy8gQnVpbGQgYSB3aWR0aCBtYXAgYnkgaW5kZXggKG9ubHkgY292ZXJzIGN1cnJlbnRseSB2aXNpYmxlIHRhYnMpXG4gICAgY29uc3QgbWVhc3VyZWRXaWR0aHM6IG51bWJlcltdID0gdGhpcy5wYWdlcy5tYXAoKF8sIGkpID0+IHtcbiAgICAgIGNvbnN0IGVsID0gdGFiRWxzW2ldO1xuICAgICAgcmV0dXJuIGVsID8gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggKyB0aGlzLkdBUCA6IHRoaXMuX3RhYldpZHRoQ2FjaGVbaV0gPz8gMTUwICsgdGhpcy5HQVA7XG4gICAgfSk7XG4gICAgLy8gVXBkYXRlIGNhY2hlIGZvciBuZXh0IGNhbGxcbiAgICB0YWJFbHMuZm9yRWFjaCgoZWwsIGkpID0+IHtcbiAgICAgIHRoaXMuX3RhYldpZHRoQ2FjaGVbaV0gPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCArIHRoaXMuR0FQO1xuICAgIH0pO1xuXG4gICAgLy8gSG93IG11Y2ggc3BhY2UgdGhlIHRhYnMgbmVlZCBpbiB0b3RhbCAobm8gb3ZlcmZsb3cgYnV0dG9uKVxuICAgIGNvbnN0IHRvdGFsTmVlZGVkID0gbWVhc3VyZWRXaWR0aHMucmVkdWNlKChzLCB3KSA9PiBzICsgdywgMCkgLSB0aGlzLkdBUDsgLy8gcmVtb3ZlIHRyYWlsaW5nIGdhcFxuXG4gICAgaWYgKHRvdGFsTmVlZGVkIDw9IHRyYWNrVyAtIGJhc2VSZXNlcnZlZCkge1xuICAgICAgLy8gRXZlcnl0aGluZyBmaXRzIOKAlCBzaG93IGFsbFxuICAgICAgdGhpcy52aXNpYmxlUGFnZXMgPSB0aGlzLnBhZ2VzO1xuICAgICAgdGhpcy5oaWRkZW5Db3VudCAgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBOb3QgZXZlcnl0aGluZyBmaXRzIOKAlCBmaWxsIGFzIG1hbnkgYXMgcG9zc2libGUgd2hpbGUgYWx3YXlzIGxlYXZpbmcgcm9vbSBmb3Igb3ZlcmZsb3cgYnRuXG4gICAgICBjb25zdCBidWRnZXQgPSB0cmFja1cgLSBiYXNlUmVzZXJ2ZWQgLSBvdmVyZmxvd1Nsb3Q7XG4gICAgICBsZXQgdXNlZCAgPSAwO1xuICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB1c2VkICs9IG1lYXN1cmVkV2lkdGhzW2ldO1xuICAgICAgICBpZiAodXNlZCAtIHRoaXMuR0FQIDw9IGJ1ZGdldCkgeyAgLy8gLUdBUDogbGFzdCBpdGVtIGhhcyBubyB0cmFpbGluZyBnYXBcbiAgICAgICAgICBjb3VudCsrO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb3VudCA9IE1hdGgubWF4KDEsIGNvdW50KTtcbiAgICAgIHRoaXMudmlzaWJsZVBhZ2VzID0gdGhpcy5wYWdlcy5zbGljZSgwLCBjb3VudCk7XG4gICAgICB0aGlzLmhpZGRlbkNvdW50ICA9IHRoaXMucGFnZXMubGVuZ3RoIC0gY291bnQ7XG4gICAgfVxuXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvLyBDYWNoZSBvZiBtZWFzdXJlZCB0YWIgd2lkdGhzIChpbmNsdWRpbmcgZ2FwKSBpbmRleGVkIGJ5IHBhZ2UgcG9zaXRpb25cbiAgcHJpdmF0ZSBfdGFiV2lkdGhDYWNoZTogbnVtYmVyW10gPSBbXTtcblxuICBwcml2YXRlIGFwcGx5VGhlbWUoKSB7XG4gICAgdGhpcy5yZXNvbHZlZFRoZW1lID0geyAuLi5ERUZBVUxUX1RIRU1FLCAuLi4odGhpcy50aGVtZSA/PyB7fSkgfTtcbiAgICBjb25zdCB0ID0gdGhpcy5yZXNvbHZlZFRoZW1lO1xuICAgIHRoaXMud3JhcHBlclN0eWxlcyA9IHtcbiAgICAgICctLWRhc2gtYmcnOiAgICAgICAgICAgICAgICAgICB0LmJhY2tncm91bmRDb2xvcixcbiAgICAgICctLWRhc2gtcGFuZWwtYmcnOiAgICAgICAgICAgICB0LnBhbmVsQ29sb3IsXG4gICAgICAnLS1kYXNoLXBhbmVsLWJvcmRlcic6ICAgICAgICAgdC5wYW5lbEJvcmRlckNvbG9yLFxuICAgICAgJy0tZGFzaC1jYXJkLWJnJzogICAgICAgICAgICAgIHQud2lkZ2V0Q2FyZENvbG9yLFxuICAgICAgJy0tZGFzaC1mb3JlLWNvbG9yJzogICAgICAgICAgIHQuZm9yZUNvbG9yLFxuICAgICAgJy0tZGFzaC1hY2NlbnQtY29sb3InOiAgICAgICAgIHQuYWNjZW50Q29sb3IsXG4gICAgICAnLS1kYXNoLWFjY2VudC10aW50JzogICAgICAgICAgdC5hY2NlbnRUaW50Q29sb3IsXG4gICAgICAnLS1kYXNoLWFjY2VudC10aW50LXN0cm9uZyc6ICAgdC5hY2NlbnRUaW50U3Ryb25nQ29sb3IsXG4gICAgICAnLS1kYXNoLWRhbmdlci1jb2xvcic6ICAgICAgICAgdC5kYW5nZXJDb2xvcixcbiAgICAgICctLWRhc2gtZGFuZ2VyLXRpbnQnOiAgICAgICAgICB0LmRhbmdlclRpbnRDb2xvcixcbiAgICAgICctLWRhc2gtZm9udC1mYW1pbHknOiAgICAgICAgICB0LmZvbnRGYW1pbHksXG4gICAgICAnLS1kYXNoLXRhYnMtY29udGFpbmVyLWNvbG9yJzogdC50YWJzQ29udGFpbmVyQ29sb3IsXG4gICAgICAnLS1kYXNoLXRhYi1hY3RpdmUtY29sb3InOiAgICAgdC50YWJBY3RpdmVDb2xvcixcbiAgICAgICctLWRhc2gtdGFiLWFjdGl2ZS10ZXh0JzogICAgICB0LnRhYkFjdGl2ZVRleHRDb2xvcixcbiAgICAgICctLWRhc2gtdGFiLWhvdmVyLXRleHQnOiAgICAgICB0LnRhYkhvdmVyVGV4dENvbG9yLFxuICAgICAgJy0tZGFzaC10YWItaG92ZXItYmcnOiAgICAgICAgIHQudGFiSG92ZXJCZ0NvbG9yLFxuICAgICAgJy0tZGFzaC1hZGQtd2lkZ2V0LXRleHQnOiAgICAgIHQuYWRkV2lkZ2V0QnV0dG9uVGV4dENvbG9yLFxuICAgICAgJy0tZGFzaC1hZGQtd2lkZ2V0LWljb24nOiAgICAgIHQuYWRkV2lkZ2V0QnV0dG9uSWNvbkNvbG9yLFxuICAgICAgJy0tZGFzaC1hZGQtd2lkZ2V0LWJnJzogICAgICAgIHQuYWRkV2lkZ2V0QnV0dG9uQmdDb2xvcixcbiAgICAgICctLWRhc2gtdGFiLWFjdGl2ZS1pY29uJzogICAgICB0LnRhYkFjdGl2ZUljb25Db2xvcixcbiAgICAgICctLWRhc2gtdGFiLWluYWN0aXZlLWljb24nOiAgICB0LnRhYkluYWN0aXZlSWNvbkNvbG9yLFxuICAgICAgJy0tZGFzaC1vdmVyZmxvdy1idG4tYmcnOiAgICAgIHQub3ZlcmZsb3dCdG5CZ0NvbG9yLFxuICAgICAgJy0tZGFzaC1vdmVyZmxvdy1idG4tYm9yZGVyJzogIHQub3ZlcmZsb3dCdG5Cb3JkZXJDb2xvcixcbiAgICAgICctLWRhc2gtb3ZlcmxheS1iZyc6ICAgICAgICAgICB0Lm92ZXJsYXlCZ0NvbG9yLFxuICAgICAgJy0tZGFzaC1zd2l0Y2hlci1zaGVldC1iZyc6ICAgIHQuc3dpdGNoZXJTaGVldEJnQ29sb3IsXG4gICAgICAnLS1kYXNoLXN3aXRjaGVyLWNhcmQtYmcnOiAgICAgdC5zd2l0Y2hlckNhcmRCZ0NvbG9yLFxuICAgICAgJy0tZGFzaC1zaGVldC1ib3JkZXInOiAgICAgICAgIHQuc2hlZXRCb3JkZXJDb2xvcixcbiAgICAgICctLWRhc2gtc2Nyb2xsYmFyLWNvbG9yJzogICAgICB0LnNjcm9sbGJhckNvbG9yLFxuICAgICAgJy0tZGFzaC1zd2l0Y2hlci10aXRsZSc6ICAgICAgIHQuc3dpdGNoZXJUaXRsZUNvbG9yLFxuICAgICAgJy0tZGFzaC1zd2l0Y2hlci1jYXJkLXRleHQnOiAgIHQuc3dpdGNoZXJDYXJkVGV4dENvbG9yLFxuICAgICAgJy0tZGFzaC1wb3BvdXQtdGl0bGUtY29sb3InOiAgIHQucG9wb3V0VGl0bGVDb2xvcixcbiAgICAgICctLWRhc2gtd2lkZ2V0LXRpdGxlLWNvbG9yJzogICB0LndpZGdldFRpdGxlQ29sb3IsXG4gICAgICAnLS1kYXNoLWRyYWctaGFuZGxlLWNvbG9yJzogICAgdC5kcmFnSGFuZGxlQ29sb3IsXG4gICAgICAnLS1kYXNoLXdpZGdldC1ib3JkZXItY29sb3InOiAgdC53aWRnZXRCb3JkZXJDb2xvcixcbiAgICAgICctLWRhc2gtd2lkZ2V0LWJ0bi1iZyc6ICAgICAgICB0LndpZGdldEJ1dHRvbkJnQ29sb3IsXG4gICAgICAnLS1kYXNoLXdpZGdldC1idG4tY29sb3InOiAgICAgdC53aWRnZXRCdXR0b25Db2xvcixcbiAgICAgICctLWRhc2gtcGxhY2Vob2xkZXItY29sb3InOiAgICB0LnBsYWNlaG9sZGVyQ29sb3IsXG4gICAgICAnLS1kYXNoLXJlc2l6ZS1oYW5kbGUtY29sb3InOiAgdC5yZXNpemVIYW5kbGVDb2xvcixcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVBY3RpdmVQYWdlKCkge1xuICAgIHRoaXMuYWN0aXZlUGFnZSA9IHRoaXMucGFnZXMuZmluZChwID0+IHAuaWQgPT09IHRoaXMuYWN0aXZlUGFnZUlkKTtcbiAgfVxufVxuIl19
|
package/esm2020/app/models.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzaW5nbGUgd2lkZ2V0IG9uIHRoZSBncmlkLlxuICogVGhlIGxpYiBpcyBjb250ZW50LWFnbm9zdGljIOKAlCBgZGF0YWAgY2FuIGhvbGQgYW55dGhpbmcgdGhlIGNvbnN1bWVyIG5lZWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldCB7XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBHcmlkIGNvbHVtbiAoMC1iYXNlZCkgKi9cbiAgeDogbnVtYmVyO1xuICAvKiogR3JpZCByb3cgKDAtYmFzZWQpICovXG4gIHk6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBjb2x1bW5zIHRoaXMgd2lkZ2V0IHNwYW5zICovXG4gIGNvbHM6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiByb3dzIHRoaXMgd2lkZ2V0IHNwYW5zICovXG4gIHJvd3M6IG51bWJlcjtcbiAgLyoqIERpc3BsYXkgdGl0bGUgc2hvd24gaW4gdGhlIGNhcmQgaGVhZGVyICovXG4gIHRpdGxlOiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBwZXItd2lkZ2V0IGNhcmQgYmFja2dyb3VuZCBjb2xvci4gT3ZlcnJpZGVzIHRoZSBnbG9iYWwgdGhlbWUgd2lkZ2V0Q2FyZENvbG9yLiAqL1xuICBjYXJkQ29sb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBcmJpdHJhcnkgY29uc3VtZXIgZGF0YS5cbiAgICogVGhlIGxpYiBzdG9yZXMgYW5kIHN5bmNzIHRoaXMgYnV0IG5ldmVyIGluc3BlY3RzIGl0LlxuICAgKi9cbiAgZGF0YT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB3aWRnZXRzOiBXaWRnZXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRDb25maWcge1xuICBwYWdlczogUGFnZVtdO1xuICBhY3RpdmVQYWdlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGVtZSBjb25maWd1cmF0aW9uIGZvciB0aGUgZGFzaGJvYXJkLlxuICogQWxsIHByb3BlcnRpZXMgYXJlIG9wdGlvbmFsIOKAlCBhbnkgdmFsdWVzIG5vdCBwcm92aWRlZCB3aWxsIGZhbGwgYmFjayB0byBkZWZhdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRUaGVtZSB7XG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVyYWxsIGRhc2hib2FyZCB3cmFwcGVyLiBEZWZhdWx0OiBgIzAwMDAwMGAgKi9cbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAvKiogQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgbWFpbiBjb250ZW50IHBhbmVsLiBEZWZhdWx0OiBgIzFjMWMxZWAgKi9cbiAgcGFuZWxDb2xvcj86IHN0cmluZztcbiAgLyoqIFN1YnRsZSBib3JkZXIgb24gdGhlIG1haW4gcGFuZWwgYW5kIHBvcC1vdXQgaGVhZGVyLiBEZWZhdWx0OiBgcmdiYSgyNTUsMjU1LDI1NSwwLjA1KWAgKi9cbiAgcGFuZWxCb3JkZXJDb2xvcj86IHN0cmluZztcbiAgLyoqIEJhY2tncm91bmQgY29sb3Igb2YgaW5kaXZpZHVhbCB3aWRnZXQgY2FyZHMuIERlZmF1bHQ6IGAjMmMyYzJlYCAqL1xuICB3aWRnZXRDYXJkQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBQcmltYXJ5IGZvcmVncm91bmQvdGV4dCBjb2xvci4gRGVmYXVsdDogYCM4ZThlOTNgICovXG4gIGZvcmVDb2xvcj86IHN0cmluZztcbiAgLyoqIFByaW1hcnkgYWNjZW50IGNvbG9yIChhY3RpdmUgdGFicywgYnV0dG9ucywgZXRjLikuIERlZmF1bHQ6IGAjMGE4NGZmYCAqL1xuICBhY2NlbnRDb2xvcj86IHN0cmluZztcbiAgLyoqIExpZ2h0IHRpbnQgb2YgdGhlIGFjY2VudCBjb2xvciB1c2VkIGZvciBob3ZlciBiYWNrZ3JvdW5kcy4gRGVmYXVsdDogYHJnYmEoMTAsMTMyLDI1NSwwLjE1KWAgKi9cbiAgYWNjZW50VGludENvbG9yPzogc3RyaW5nO1xuICAvKiogU3Ryb25nZXIgdGludCBvZiB0aGUgYWNjZW50IGNvbG9yIHVzZWQgZm9yIGFjdGl2ZSBjYXJkIGJhY2tncm91bmRzLiBEZWZhdWx0OiBgcmdiYSgxMCwxMzIsMjU1LDAuMjUpYCAqL1xuICBhY2NlbnRUaW50U3Ryb25nQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBEYW5nZXIgY29sb3IgdXNlZCBvbiByZW1vdmUtd2lkZ2V0IGJ1dHRvbiBob3Zlci4gRGVmYXVsdDogYCNmZjQ1M2FgICovXG4gIGRhbmdlckNvbG9yPzogc3RyaW5nO1xuICAvKiogTGlnaHQgdGludCBvZiB0aGUgZGFuZ2VyIGNvbG9yIHVzZWQgZm9yIGhvdmVyIGJhY2tncm91bmRzLiBEZWZhdWx0OiBgcmdiYSgyNTUsNjksNTgsMC4yMilgICovXG4gIGRhbmdlclRpbnRDb2xvcj86IHN0cmluZztcbiAgLyoqIEZvbnQgZmFtaWx5IGFwcGxpZWQgdG8gdGhlIHdob2xlIGRhc2hib2FyZC4gRGVmYXVsdDogc3lzdGVtLXVpIHN0YWNrICovXG4gIGZvbnRGYW1pbHk/OiBzdHJpbmc7XG5cbiAgLy8g4pSA4pSAIEhlYWRlciAvIFRhYnMg4pSA4pSAXG4gIC8qKiBCYWNrZ3JvdW5kIG9mIHRoZSB0YWJzIHBpbGwgY29udGFpbmVyLiBEZWZhdWx0OiBgcmdiYSg0NCw0NCw0NiwwLjYpYCAqL1xuICB0YWJzQ29udGFpbmVyQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBCYWNrZ3JvdW5kIG9mIHRoZSBhY3RpdmUvc2VsZWN0ZWQgdGFiLiBEZWZhdWx0OiBgIzNhM2EzY2AgKi9cbiAgdGFiQWN0aXZlQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGNvbG9yIG9mIHRoZSBhY3RpdmUgdGFiLiBEZWZhdWx0OiBgI2ZmZmZmZmAgKi9cbiAgdGFiQWN0aXZlVGV4dENvbG9yPzogc3RyaW5nO1xuICAvKiogVGV4dCBjb2xvciBvZiBob3ZlcmVkIChpbmFjdGl2ZSkgdGFicy4gRGVmYXVsdDogYCNlNWU1ZWFgICovXG4gIHRhYkhvdmVyVGV4dENvbG9yPzogc3RyaW5nO1xuICAvKiogQmFja2dyb3VuZCBvZiBhIGhvdmVyZWQgKGluYWN0aXZlKSB0YWIuIERlZmF1bHQ6IGByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpYCAqL1xuICB0YWJIb3ZlckJnQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGNvbG9yIG9mIHRoZSBcIkFkZCBXaWRnZXRcIiBidXR0b24uIERlZmF1bHQ6IGAjZmZmZmZmYCAqL1xuICBhZGRXaWRnZXRCdXR0b25UZXh0Q29sb3I/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwcC9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzaW5nbGUgd2lkZ2V0IG9uIHRoZSBncmlkLlxuICogVGhlIGxpYiBpcyBjb250ZW50LWFnbm9zdGljIOKAlCBgZGF0YWAgY2FuIGhvbGQgYW55dGhpbmcgdGhlIGNvbnN1bWVyIG5lZWRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdpZGdldCB7XG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBHcmlkIGNvbHVtbiAoMC1iYXNlZCkgKi9cbiAgeDogbnVtYmVyO1xuICAvKiogR3JpZCByb3cgKDAtYmFzZWQpICovXG4gIHk6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiBjb2x1bW5zIHRoaXMgd2lkZ2V0IHNwYW5zICovXG4gIGNvbHM6IG51bWJlcjtcbiAgLyoqIE51bWJlciBvZiByb3dzIHRoaXMgd2lkZ2V0IHNwYW5zICovXG4gIHJvd3M6IG51bWJlcjtcbiAgLyoqIERpc3BsYXkgdGl0bGUgc2hvd24gaW4gdGhlIGNhcmQgaGVhZGVyICovXG4gIHRpdGxlOiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBwZXItd2lkZ2V0IGNhcmQgYmFja2dyb3VuZCBjb2xvci4gT3ZlcnJpZGVzIHRoZSBnbG9iYWwgdGhlbWUgd2lkZ2V0Q2FyZENvbG9yLiAqL1xuICBjYXJkQ29sb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBcmJpdHJhcnkgY29uc3VtZXIgZGF0YS5cbiAgICogVGhlIGxpYiBzdG9yZXMgYW5kIHN5bmNzIHRoaXMgYnV0IG5ldmVyIGluc3BlY3RzIGl0LlxuICAgKi9cbiAgZGF0YT86IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYWdlIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB3aWRnZXRzOiBXaWRnZXRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRDb25maWcge1xuICBwYWdlczogUGFnZVtdO1xuICBhY3RpdmVQYWdlSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGVtZSBjb25maWd1cmF0aW9uIGZvciB0aGUgZGFzaGJvYXJkLlxuICogQWxsIHByb3BlcnRpZXMgYXJlIG9wdGlvbmFsIOKAlCBhbnkgdmFsdWVzIG5vdCBwcm92aWRlZCB3aWxsIGZhbGwgYmFjayB0byBkZWZhdWx0cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXNoYm9hcmRUaGVtZSB7XG4gIC8qKiBCYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBvdmVyYWxsIGRhc2hib2FyZCB3cmFwcGVyLiBEZWZhdWx0OiBgIzAwMDAwMGAgKi9cbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAvKiogQmFja2dyb3VuZCBjb2xvciBvZiB0aGUgbWFpbiBjb250ZW50IHBhbmVsLiBEZWZhdWx0OiBgIzFjMWMxZWAgKi9cbiAgcGFuZWxDb2xvcj86IHN0cmluZztcbiAgLyoqIFN1YnRsZSBib3JkZXIgb24gdGhlIG1haW4gcGFuZWwgYW5kIHBvcC1vdXQgaGVhZGVyLiBEZWZhdWx0OiBgcmdiYSgyNTUsMjU1LDI1NSwwLjA1KWAgKi9cbiAgcGFuZWxCb3JkZXJDb2xvcj86IHN0cmluZztcbiAgLyoqIEJhY2tncm91bmQgY29sb3Igb2YgaW5kaXZpZHVhbCB3aWRnZXQgY2FyZHMuIERlZmF1bHQ6IGAjMmMyYzJlYCAqL1xuICB3aWRnZXRDYXJkQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBQcmltYXJ5IGZvcmVncm91bmQvdGV4dCBjb2xvci4gRGVmYXVsdDogYCM4ZThlOTNgICovXG4gIGZvcmVDb2xvcj86IHN0cmluZztcbiAgLyoqIFByaW1hcnkgYWNjZW50IGNvbG9yIChhY3RpdmUgdGFicywgYnV0dG9ucywgZXRjLikuIERlZmF1bHQ6IGAjMGE4NGZmYCAqL1xuICBhY2NlbnRDb2xvcj86IHN0cmluZztcbiAgLyoqIExpZ2h0IHRpbnQgb2YgdGhlIGFjY2VudCBjb2xvciB1c2VkIGZvciBob3ZlciBiYWNrZ3JvdW5kcy4gRGVmYXVsdDogYHJnYmEoMTAsMTMyLDI1NSwwLjE1KWAgKi9cbiAgYWNjZW50VGludENvbG9yPzogc3RyaW5nO1xuICAvKiogU3Ryb25nZXIgdGludCBvZiB0aGUgYWNjZW50IGNvbG9yIHVzZWQgZm9yIGFjdGl2ZSBjYXJkIGJhY2tncm91bmRzLiBEZWZhdWx0OiBgcmdiYSgxMCwxMzIsMjU1LDAuMjUpYCAqL1xuICBhY2NlbnRUaW50U3Ryb25nQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBEYW5nZXIgY29sb3IgdXNlZCBvbiByZW1vdmUtd2lkZ2V0IGJ1dHRvbiBob3Zlci4gRGVmYXVsdDogYCNmZjQ1M2FgICovXG4gIGRhbmdlckNvbG9yPzogc3RyaW5nO1xuICAvKiogTGlnaHQgdGludCBvZiB0aGUgZGFuZ2VyIGNvbG9yIHVzZWQgZm9yIGhvdmVyIGJhY2tncm91bmRzLiBEZWZhdWx0OiBgcmdiYSgyNTUsNjksNTgsMC4yMilgICovXG4gIGRhbmdlclRpbnRDb2xvcj86IHN0cmluZztcbiAgLyoqIEZvbnQgZmFtaWx5IGFwcGxpZWQgdG8gdGhlIHdob2xlIGRhc2hib2FyZC4gRGVmYXVsdDogc3lzdGVtLXVpIHN0YWNrICovXG4gIGZvbnRGYW1pbHk/OiBzdHJpbmc7XG5cbiAgLy8g4pSA4pSAIEhlYWRlciAvIFRhYnMg4pSA4pSAXG4gIC8qKiBCYWNrZ3JvdW5kIG9mIHRoZSB0YWJzIHBpbGwgY29udGFpbmVyLiBEZWZhdWx0OiBgcmdiYSg0NCw0NCw0NiwwLjYpYCAqL1xuICB0YWJzQ29udGFpbmVyQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBCYWNrZ3JvdW5kIG9mIHRoZSBhY3RpdmUvc2VsZWN0ZWQgdGFiLiBEZWZhdWx0OiBgIzNhM2EzY2AgKi9cbiAgdGFiQWN0aXZlQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGNvbG9yIG9mIHRoZSBhY3RpdmUgdGFiLiBEZWZhdWx0OiBgI2ZmZmZmZmAgKi9cbiAgdGFiQWN0aXZlVGV4dENvbG9yPzogc3RyaW5nO1xuICAvKiogVGV4dCBjb2xvciBvZiBob3ZlcmVkIChpbmFjdGl2ZSkgdGFicy4gRGVmYXVsdDogYCNlNWU1ZWFgICovXG4gIHRhYkhvdmVyVGV4dENvbG9yPzogc3RyaW5nO1xuICAvKiogQmFja2dyb3VuZCBvZiBhIGhvdmVyZWQgKGluYWN0aXZlKSB0YWIuIERlZmF1bHQ6IGByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpYCAqL1xuICB0YWJIb3ZlckJnQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGNvbG9yIG9mIHRoZSBcIkFkZCBXaWRnZXRcIiBidXR0b24uIERlZmF1bHQ6IGAjZmZmZmZmYCAqL1xuICBhZGRXaWRnZXRCdXR0b25UZXh0Q29sb3I/OiBzdHJpbmc7XG4gIC8qKiBJY29uIGNvbG9yIG9mIHRoZSBcIkFkZCBXaWRnZXRcIiBidXR0b24uIERlZmF1bHQ6IGAjZmZmZmZmYCAqL1xuICBhZGRXaWRnZXRCdXR0b25JY29uQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBCYWNrZ3JvdW5kIG9mIHRoZSBcIkFkZCBXaWRnZXRcIiBidXR0b24uIERlZmF1bHQ6IHNhbWUgYXMgYGFjY2VudENvbG9yYCAoYCMwYTg0ZmZgKSAqL1xuICBhZGRXaWRnZXRCdXR0b25CZ0NvbG9yPzogc3RyaW5nO1xuICAvKiogSWNvbiBjb2xvciBvZiB0aGUgYWN0aXZlIChzZWxlY3RlZCkgdGFiIGFjdGlvbiBidXR0b25zLiBEZWZhdWx0OiBgI2ZmZmZmZmAgKi9cbiAgdGFiQWN0aXZlSWNvbkNvbG9yPzogc3RyaW5nO1xuICAvKiogSWNvbiBjb2xvciBvZiB0aGUgaW5hY3RpdmUgdGFiIGFjdGlvbiBidXR0b25zLiBEZWZhdWx0OiBgIzhlOGU5M2AgKHNhbWUgYXMgZm9yZUNvbG9yKSAqL1xuICB0YWJJbmFjdGl2ZUljb25Db2xvcj86IHN0cmluZztcbiAgLyoqIEJhY2tncm91bmQgb2YgdGhlIG92ZXJmbG93IFwiK05cIiBidXR0b24uIERlZmF1bHQ6IGByZ2JhKDI1NSwyNTUsMjU1LDAuMDgpYCAqL1xuICBvdmVyZmxvd0J0bkJnQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBCb3JkZXIgb2YgdGhlIG92ZXJmbG93IFwiK05cIiBidXR0b24uIERlZmF1bHQ6IGByZ2JhKDI1NSwyNTUsMjU1LDAuMTIpYCAqL1xuICBvdmVyZmxvd0J0bkJvcmRlckNvbG9yPzogc3RyaW5nO1xuXG4gIC8vIOKUgOKUgCBUYWItc3dpdGNoZXIgb3ZlcmxheSDilIDilIBcbiAgLyoqIEJhY2tncm91bmQgb2YgdGhlIGZ1bGwtc2NyZWVuIG92ZXJsYXkgYmVoaW5kIHRoZSB0YWItc3dpdGNoZXIgc2hlZXQuIERlZmF1bHQ6IGByZ2JhKDAsMCwwLDAuNTUpYCAqL1xuICBvdmVybGF5QmdDb2xvcj86IHN0cmluZztcbiAgLyoqIEJhY2tncm91bmQgb2YgdGhlIHRhYi1zd2l0Y2hlciBzaGVldCBpdHNlbGYuIERlZmF1bHQ6IHNhbWUgYXMgYHBhbmVsQ29sb3JgIChgIzFjMWMxZWApICovXG4gIHN3aXRjaGVyU2hlZXRCZ0NvbG9yPzogc3RyaW5nO1xuICAvKiogQm9yZGVyIGNvbG9yIG9mIHRoZSB0YWItc3dpdGNoZXIgc2hlZXQgYW5kIGl0cyBpbm5lciBkaXZpZGVycy4gRGVmYXVsdDogYHJnYmEoMjU1LDI1NSwyNTUsMC4wOClgICovXG4gIHNoZWV0Qm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBTY3JvbGxiYXIgdGh1bWIgY29sb3IgaW5zaWRlIHRoZSB0YWItc3dpdGNoZXIgZ3JpZC4gRGVmYXVsdDogYHJnYmEoMjU1LDI1NSwyNTUsMC4xNSlgICovXG4gIHNjcm9sbGJhckNvbG9yPzogc3RyaW5nO1xuICAvKiogVGV4dCBjb2xvciBvZiB0aGUgXCJOIFdvcmtzcGFjZXNcIiB0aXRsZSBpbnNpZGUgdGhlIHRhYi1zd2l0Y2hlciBkaWFsb2cuIERlZmF1bHQ6IGAjZmZmZmZmYCAqL1xuICBzd2l0Y2hlclRpdGxlQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBUZXh0IGNvbG9yIG9mIHdvcmtzcGFjZSBjYXJkIG5hbWVzIGluc2lkZSB0aGUgdGFiLXN3aXRjaGVyIGRpYWxvZy4gRGVmYXVsdDogYCNmZmZmZmZgICovXG4gIHN3aXRjaGVyQ2FyZFRleHRDb2xvcj86IHN0cmluZztcbiAgLyoqIEJhY2tncm91bmQgb2YgZWFjaCB3b3Jrc3BhY2UgY2FyZCBpbnNpZGUgdGhlIHRhYi1zd2l0Y2hlciBkaWFsb2cuIERlZmF1bHQ6IHNhbWUgYXMgYHdpZGdldENhcmRDb2xvcmAgKGAjMmMyYzJlYCkgKi9cbiAgc3dpdGNoZXJDYXJkQmdDb2xvcj86IHN0cmluZztcblxuICAvLyDilIDilIAgUG9wLW91dCB3aW5kb3cg4pSA4pSAXG4gIC8qKiBUZXh0IGNvbG9yIG9mIHRoZSBwb3Atb3V0IHBhZ2UgdGl0bGUuIERlZmF1bHQ6IGAjZmZmZmZmYCAqL1xuICBwb3BvdXRUaXRsZUNvbG9yPzogc3RyaW5nO1xuXG4gIC8vIOKUgOKUgCBXaWRnZXQgY2FyZCDilIDilIBcbiAgLyoqIFRleHQgY29sb3Igb2YgdGhlIHdpZGdldCBjYXJkIHRpdGxlLiBEZWZhdWx0OiBgI2ZmZmZmZmAgKi9cbiAgd2lkZ2V0VGl0bGVDb2xvcj86IHN0cmluZztcbiAgLyoqIENvbG9yIG9mIHRoZSBkcmFnLWhhbmRsZSBkb3RzIG9uIGEgd2lkZ2V0IGNhcmQuIERlZmF1bHQ6IGByZ2JhKDI1NSwyNTUsMjU1LDAuMilgICovXG4gIGRyYWdIYW5kbGVDb2xvcj86IHN0cmluZztcbiAgLyoqIEJvcmRlciBjb2xvciBvZiB3aWRnZXQgY2FyZHMuIERlZmF1bHQ6IGByZ2JhKDI1NSwyNTUsMjU1LDAuMDcpYCAqL1xuICB3aWRnZXRCb3JkZXJDb2xvcj86IHN0cmluZztcbiAgLyoqIEJhY2tncm91bmQgb2YgdGhlIGljb24gYnV0dG9ucyAoZWRpdC9yZW1vdmUpIG9uIHdpZGdldCBob3Zlci4gRGVmYXVsdDogYHJnYmEoMjU1LDI1NSwyNTUsMC4wNylgICovXG4gIHdpZGdldEJ1dHRvbkJnQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0IHRleHQgY29sb3Igb2YgaWNvbiBidXR0b25zLiBEZWZhdWx0OiBgcmdiYSgyNTUsMjU1LDI1NSwwLjUpYCAqL1xuICB3aWRnZXRCdXR0b25Db2xvcj86IHN0cmluZztcblxuICAvLyDilIDilIAgR3JpZCDilIDilIBcbiAgLyoqIENvbG9yIG9mIHRoZSBkcmFnL3Jlc2l6ZSBwbGFjZWhvbGRlciBvdmVybGF5LiBEZWZhdWx0OiBzYW1lIGFzIGFjY2VudENvbG9yICovXG4gIHBsYWNlaG9sZGVyQ29sb3I/OiBzdHJpbmc7XG4gIC8qKiBDb2xvciBvZiB0aGUgcmVzaXplIGhhbmRsZSBpY29uLiBEZWZhdWx0OiBgcmdiYSgyNTUsMjU1LDI1NSwwLjI1KWAgKi9cbiAgcmVzaXplSGFuZGxlQ29sb3I/OiBzdHJpbmc7XG59XG4iXX0=
|