@cqa-lib/cqa-ui 1.1.439 → 1.1.441
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/esm2020/lib/execution-screen/ai-agent-step/ai-agent-step.component.mjs +23 -8
- package/esm2020/lib/execution-screen/condition-debug-step/condition-branch-editor.component.mjs +7 -2
- package/esm2020/lib/execution-screen/condition-debug-step/condition-debug-step.component.mjs +3 -3
- package/esm2020/lib/execution-screen/step-renderer/step-renderer.component.mjs +69 -10
- package/esm2020/lib/version-history/new-version-history-detail/new-version-history-detail.component.mjs +20 -6
- package/fesm2015/cqa-lib-cqa-ui.mjs +139 -46
- package/fesm2015/cqa-lib-cqa-ui.mjs.map +1 -1
- package/fesm2020/cqa-lib-cqa-ui.mjs +117 -24
- package/fesm2020/cqa-lib-cqa-ui.mjs.map +1 -1
- package/lib/execution-screen/condition-debug-step/condition-branch-editor.component.d.ts +4 -0
- package/lib/execution-screen/step-renderer/step-renderer.component.d.ts +6 -0
- package/lib/version-history/new-version-history-detail/new-version-history-detail.component.d.ts +2 -0
- package/package.json +1 -1
|
@@ -100,12 +100,12 @@ export class AIAgentStepComponent extends BaseStepComponent {
|
|
|
100
100
|
this.showThinkingLog = this.isLive && hasExecutionStarted && !hasStepRunSuccessfully && !hasFailed;
|
|
101
101
|
}
|
|
102
102
|
ngOnInit() {
|
|
103
|
-
// Get action from step if available (set by step-renderer)
|
|
104
|
-
const actionValue = this.action || '';
|
|
105
|
-
// Use title if available, otherwise
|
|
106
|
-
const titleValue = this.title || actionValue || '';
|
|
107
|
-
// Use prompt if available, otherwise
|
|
108
|
-
const promptValue = this.prompt || actionValue || titleValue || '';
|
|
103
|
+
// Get action from step if available (set by step-renderer directly or via step object)
|
|
104
|
+
const actionValue = this.action || this.step?.action || '';
|
|
105
|
+
// Use title if available, otherwise step.title / action (matches server shape for AI_AGENT)
|
|
106
|
+
const titleValue = this.title || this.step?.title || actionValue || '';
|
|
107
|
+
// Use prompt if available, otherwise step.prompt / action / title (API often uses `prompt` + `title`, not `action`)
|
|
108
|
+
const promptValue = this.prompt || this.step?.prompt || this.step?.action || actionValue || titleValue || '';
|
|
109
109
|
// Build config from individual inputs
|
|
110
110
|
this.config = {
|
|
111
111
|
id: this.id,
|
|
@@ -142,8 +142,15 @@ export class AIAgentStepComponent extends BaseStepComponent {
|
|
|
142
142
|
const promptValue = this.prompt || '';
|
|
143
143
|
this.config.prompt = promptValue.replace('AI Agent', '').trim();
|
|
144
144
|
}
|
|
145
|
+
// Sync prompt when the step reference updates (live execution); use `prompt`, then `action`
|
|
146
|
+
if (changes['step'] && !String(this.config.prompt || '').trim()) {
|
|
147
|
+
const fromStep = this.step?.prompt || this.step?.action || '';
|
|
148
|
+
if (fromStep) {
|
|
149
|
+
this.config.prompt = String(fromStep).replace('AI Agent', '').trim();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
145
152
|
// If prompt is not set but title is, use title as prompt
|
|
146
|
-
if (!this.prompt && this.
|
|
153
|
+
if (!this.prompt && !String(this.config.prompt || '').trim() && this.title) {
|
|
147
154
|
this.config.prompt = this.title.replace('AI Agent', '').trim();
|
|
148
155
|
}
|
|
149
156
|
// If title is not set but prompt is, use prompt as title
|
|
@@ -158,6 +165,14 @@ export class AIAgentStepComponent extends BaseStepComponent {
|
|
|
158
165
|
// Sub-steps are appended externally, so we just update the config
|
|
159
166
|
if (this.config) {
|
|
160
167
|
this.config.actions = this.actions || [];
|
|
168
|
+
// If prompt is still empty when logs start arriving, sync it from step.action
|
|
169
|
+
// (step-renderer sets instance.step directly without triggering ngOnChanges for 'step')
|
|
170
|
+
if (!String(this.config.prompt || '').trim()) {
|
|
171
|
+
const fallback = this.action || this.step?.prompt || this.step?.action || '';
|
|
172
|
+
if (fallback) {
|
|
173
|
+
this.config.prompt = String(fallback).replace('AI Agent', '').trim();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
161
176
|
}
|
|
162
177
|
// Auto-expand if step is running and new subSteps are added (logs coming in)
|
|
163
178
|
if (!changes['actions'].firstChange &&
|
|
@@ -391,4 +406,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
391
406
|
}], selfHealAction: [{
|
|
392
407
|
type: Output
|
|
393
408
|
}] } });
|
|
394
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYWdlbnQtc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2V4ZWN1dGlvbi1zY3JlZW4vYWktYWdlbnQtc3RlcC9haS1hZ2VudC1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9haS1hZ2VudC1zdGVwL2FpLWFnZW50LXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUE2TCw2QkFBNkIsRUFBc0IsOEJBQThCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4VCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQVMzRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsaUJBQWlCO0lBTjNEOztRQXlCVyxZQUFPLEdBQWEsS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQWEsS0FBSyxDQUFDO1FBQ2hDLGtCQUFhLEdBQWEsS0FBSyxDQUFDO1FBQy9CLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDL0MsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDNUQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFDL0QsdUJBQWtCLEdBQXdCLDZCQUE2QixDQUFDO1FBQ3hFLHdCQUFtQixHQUF5Qiw4QkFBOEIsQ0FBQztRQUMzRSx3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDekIsNEJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBSzdCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFnQmpDLDBCQUFxQixHQUFZLEtBQUss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RyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0Usa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRywrQkFBK0I7c0JBQXZDLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQW9DSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIERvQ2hlY2sgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFJQWdlbnRTdGVwQ29uZmlnLCBBSUFnZW50QWN0aW9uLCBTdGVwU3RhdHVzLCBUaW1pbmdCcmVha2Rvd24sIEZhaWx1cmVEZXRhaWxzLCBTdWJTdGVwLCBTZWxmSGVhbEFuYWx5c2lzRGF0YSwgU2VsZkhlYWxBY3Rpb24sIEV4ZWN1dGlvblN0ZXBDb25maWcsIFNlbGZIZWFsQWN0aW9uRXZlbnQsIEFkZFN0ZXBNZW51T3B0aW9uLCBERUZBVUxUX0FERF9TVEVQX01FTlVfT1BUSU9OUywgU3RlcE1vcmVNZW51T3B0aW9uLCBERUZBVUxUX1NURVBfTU9SRV9NRU5VX09QVElPTlMgfSBmcm9tICcuLi9leGVjdXRpb24tc3RlcC5tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZVN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IG1ha2VDdXJyZW50QmFzZWxpbmVFdmVudCwgdXBsb2FkQmFzZWxpbmVFdmVudCB9IGZyb20gJy4uL3Zpc3VhbC1jb21wYXJpc29uL3Zpc3VhbC1jb21wYXJpc29uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1haS1hZ2VudC1zdGVwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FpLWFnZW50LXN0ZXAuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBob3N0OiB7IGNsYXNzOiAnY3FhLXVpLXJvb3QgY3FhLXctZnVsbCcgfVxufSlcbmV4cG9ydCBjbGFzcyBBSUFnZW50U3RlcENvbXBvbmVudCBleHRlbmRzIEJhc2VTdGVwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrIHtcbiAgLy8gSW5kaXZpZHVhbCBpbnB1dHNcbiAgQElucHV0KCkgaWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRlc3RTdGVwUmVzdWx0SWQhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0ZXBOdW1iZXIhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xuICBASW5wdXQoKSBzdGF0dXMhOiBTdGVwU3RhdHVzO1xuICBASW5wdXQoKSBkdXJhdGlvbiE6IG51bWJlcjtcbiAgQElucHV0KCkgdGltaW5nQnJlYWtkb3duPzogVGltaW5nQnJlYWtkb3duO1xuICBASW5wdXQoKSBleHBhbmRlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIHByb21wdCE6IHN0cmluZztcbiAgQElucHV0KCkgb3B0aW1pemVkUnVuPzogYm9vbGVhbjtcbiAgQElucHV0KCkgYWN0aW9uQ291bnQ/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGFjdGlvbnM/OiBBSUFnZW50QWN0aW9uW107XG4gIEBJbnB1dCgpIHNlbGVjdGVkVGFiSW5wdXQ/OiAnYWN0aW9uLXRyYWNlJyB8ICdwbGFubmVyLXRpbWVsaW5lJyB8ICdhaS1yZWFzb25pbmcnO1xuICBASW5wdXQoKSBmYWlsdXJlRGV0YWlscz86IEZhaWx1cmVEZXRhaWxzO1xuICBASW5wdXQoKSByZWFzb25pbmc/OiBzdHJpbmdbXTtcbiAgQElucHV0KCkgY29uZmlkZW5jZT86IHN0cmluZztcbiAgQElucHV0KCkgc3RlcERlbGV0ZWQ/OiBib29sZWFuO1xuICBASW5wdXQoKSBpc0RlYnVnPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkZWJ1Z1BvaW50U2V0PzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwYXJlbnRTa2lwcGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgZGVidWdQb2ludENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGVkaXRTdGVwID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYWRkU3RlcE9wdGlvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8QWRkU3RlcE1lbnVPcHRpb24+KCk7XG4gIEBPdXRwdXQoKSBzdGVwTW9yZU9wdGlvblNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U3RlcE1vcmVNZW51T3B0aW9uPigpO1xuICBASW5wdXQoKSBhZGRTdGVwTWVudU9wdGlvbnM6IEFkZFN0ZXBNZW51T3B0aW9uW10gPSBERUZBVUxUX0FERF9TVEVQX01FTlVfT1BUSU9OUztcbiAgQElucHV0KCkgc3RlcE1vcmVNZW51T3B0aW9uczogU3RlcE1vcmVNZW51T3B0aW9uW10gPSBERUZBVUxUX1NURVBfTU9SRV9NRU5VX09QVElPTlM7XG4gIEBJbnB1dCgpIGlzVXBsb2FkaW5nQmFzZWxpbmUgPSB7fTtcbiAgQElucHV0KCkgaXNNYWtpbmdDdXJyZW50QmFzZWxpbmUgPSB7fTtcbiAgQElucHV0KCkgc2VsZkhlYWxBbmFseXNpcz86IFNlbGZIZWFsQW5hbHlzaXNEYXRhO1xuICBASW5wdXQoKSBnZXRTZWxmSGVhbExvYWRpbmdTdGF0ZXNIYW5kbGVyPzogKCkgPT4geyBpc0xvYWRpbmdBY2NlcHQ6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9OyBpc0xvYWRpbmdNb2RpZnlBY2NlcHQ6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IH07XG4gIEBJbnB1dCgpIG9uU3RlcENsaWNrSGFuZGxlcj86IChzdGVwOiBFeGVjdXRpb25TdGVwQ29uZmlnLCBldmVudD86IEV2ZW50KSA9PiB2b2lkO1xuICBASW5wdXQoKSBqdW1wVG9UaW1lc3RhbXBIYW5kbGVyPzogKHRpbWVzdGFtcDogbnVtYmVyLCB0ZXN0U3RlcElkPzogbnVtYmVyIHwgc3RyaW5nKSA9PiB2b2lkO1xuICBASW5wdXQoKSBpc0xpdmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc3RlcD86IGFueTtcbiAgZ2V0IHN0ZXBCYWRnZXMoKTogKCdza2lwcGVkJyB8ICdlZGl0ZWQnIHwgJ2FkZGVkJyB8ICdyZW1vdmVkJylbXSB7XG4gICAgY29uc3QgYmFkZ2UgPSB0aGlzLnN0ZXA/LnN0ZXBCYWRnZTtcbiAgICBpZiAoIWJhZGdlKSByZXR1cm4gW107XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoYmFkZ2UpID8gYmFkZ2UgOiBbYmFkZ2VdO1xuICB9XG5cbiAgZ2V0IGlzU2tpcHBlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwQmFkZ2VzLmluY2x1ZGVzKCdza2lwcGVkJyk7XG4gIH1cblxuICBnZXQgaXNTdGVwRGVsZXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwQmFkZ2VzLmluY2x1ZGVzKCdyZW1vdmVkJyk7XG4gIH1cblxuICBzaG93RmFpbGVkU3RlcERldGFpbHM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2hvdyBkZWJ1ZyBpY29uIG9ubHkgd2hlbiB0aGlzIHN0ZXAgaGFzIG5vIGNoaWxkIHN0ZXBzIChsZWFmIHN0ZXA6IGFsd2F5cyBzaG93IHdoZW4gaXNEZWJ1ZykuICovXG4gIGdldCBzaG93RGVidWdJY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzRGVidWcgPT09IHRydWU7XG4gIH1cblxuICAvKiogUGVyLXN0ZXAgZmlsdGVyZWQgdGhyZWUtZG90IG1lbnUgb3B0aW9ucyAoZS5nLiBoaWRlIER1cGxpY2F0ZS9EZWxldGUgZm9yIHN0ZXAtZ3JvdXAgY2hpbGRyZW4pLiAqL1xuICBnZXQgZWZmZWN0aXZlU3RlcE1vcmVNZW51T3B0aW9ucygpOiBTdGVwTW9yZU1lbnVPcHRpb25bXSB7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBbXTtcbiAgICBjb25zdCBzdGVwUmVmOiBhbnkgPSB0aGlzLnN0ZXA7XG4gICAgaWYgKCFzdGVwUmVmKSByZXR1cm4gYmFzZTtcblxuICAgIGNvbnN0IGlzR3JvdXBDaGlsZCA9ICEhc3RlcFJlZi5pc1N0ZXBHcm91cENoaWxkcmVuO1xuICAgIC8vIFdoZW4gc3RlcC5zdGVwTW9yZU1lbnVPcHRpb25zIGlzIHRydXRoeSBPUiBzdGVwIGlzIGEgc3RlcC1ncm91cCBjaGlsZCwgaGlkZSBtdXRhdGluZyBpdGVtc1xuICAgIGNvbnN0IHN1cHByZXNzTXV0YXRpbmcgPSAhIXN0ZXBSZWYuc3RlcE1vcmVNZW51T3B0aW9ucyB8fCBpc0dyb3VwQ2hpbGQ7XG4gICAgaWYgKCFzdXBwcmVzc011dGF0aW5nKSByZXR1cm4gYmFzZTtcblxuICAgIHJldHVybiBiYXNlLmZpbHRlcihvcHQgPT4gb3B0LmlkICE9PSAnZHVwbGljYXRlJyAmJiBvcHQuaWQgIT09ICdkZWxldGUnKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBtYWtlQ3VycmVudEJhc2VsaW5lID0gbmV3IEV2ZW50RW1pdHRlcjxtYWtlQ3VycmVudEJhc2VsaW5lRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSB1cGxvYWRCYXNlbGluZSA9IG5ldyBFdmVudEVtaXR0ZXI8dXBsb2FkQmFzZWxpbmVFdmVudD4oKTtcbiAgQE91dHB1dCgpIGFuYWx5emUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSB2aWV3RnVsbExvZ3MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzZWxmSGVhbEFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZkhlYWxBY3Rpb25FdmVudD4oKTtcblxuICAvLyBDb25maWcgcHJvcGVydHkgZm9yIGJhc2UgY2xhc3MgLSBidWlsdCBmcm9tIGluZGl2aWR1YWwgaW5wdXRzIGluIG5nT25Jbml0XG4gIG92ZXJyaWRlIGNvbmZpZyE6IEFJQWdlbnRTdGVwQ29uZmlnO1xuICBwcml2YXRlIHByZXZpb3VzU3RhdHVzPzogU3RlcFN0YXR1cztcbiAgcHJpdmF0ZSB1c2VyTWFudWFsbHlDbG9zZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBzZWxlY3RlZFRhYjogJ2FjdGlvbi10cmFjZScgfCAncGxhbm5lci10aW1lbGluZScgfCAnYWktcmVhc29uaW5nJyA9ICdhY3Rpb24tdHJhY2UnO1xuXG4gIHNob3dUaGlua2luZ0xvZyA9IGZhbHNlO1xuICBwcml2YXRlIGxhc3RQcm9jZXNzZWRBY3Rpb25zTGVuZ3RoID0gMDtcbiAgcHJpdmF0ZSBsYXN0UHJvY2Vzc2VkU3RhdHVzID0gJyc7XG4gIHByaXZhdGUgbGFzdFByb2Nlc3NlZEFjdGlvbnNLZXkgPSAnJztcblxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzTGl2ZSkgcmV0dXJuO1xuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmFjdGlvbnMgfHwgW107XG4gICAgY29uc3QgY3VycmVudExlbmd0aCA9IGFjdGlvbnMubGVuZ3RoO1xuICAgIGNvbnN0IGN1cnJlbnRTdGF0dXMgPSAodGhpcy5zdGF0dXMgfHwgJycpLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgYWN0aW9uc0tleSA9IGFjdGlvbnMubWFwKChhOiBhbnkpID0+IGAke2EudWlUeXBlIHx8IGEudHlwZX18JHthLnN0YXR1c318JHthLnN0ZXBTdGF0dXMgfHwgJyd9YCkuam9pbignLCcpO1xuICAgIGNvbnN0IGNoYW5nZWQgPVxuICAgICAgY3VycmVudExlbmd0aCAhPT0gdGhpcy5sYXN0UHJvY2Vzc2VkQWN0aW9uc0xlbmd0aCB8fFxuICAgICAgY3VycmVudFN0YXR1cyAhPT0gdGhpcy5sYXN0UHJvY2Vzc2VkU3RhdHVzIHx8XG4gICAgICBhY3Rpb25zS2V5ICE9PSB0aGlzLmxhc3RQcm9jZXNzZWRBY3Rpb25zS2V5O1xuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLnByb2Nlc3NMaXZlVGhpbmtpbmdMb2coKTtcbiAgICAgIHRoaXMubGFzdFByb2Nlc3NlZEFjdGlvbnNMZW5ndGggPSBjdXJyZW50TGVuZ3RoO1xuICAgICAgdGhpcy5sYXN0UHJvY2Vzc2VkU3RhdHVzID0gY3VycmVudFN0YXR1cztcbiAgICAgIHRoaXMubGFzdFByb2Nlc3NlZEFjdGlvbnNLZXkgPSBhY3Rpb25zS2V5O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0xpdmVUaGlua2luZ0xvZygpOiB2b2lkIHtcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5hY3Rpb25zIHx8IFtdO1xuICAgIGNvbnN0IHN0YXR1c0xvd2VyID0gKHRoaXMuc3RhdHVzIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgaXNTdGVwRmFpbGVkID0gc3RhdHVzTG93ZXIgPT09ICdmYWlsZWQnIHx8IHN0YXR1c0xvd2VyID09PSAnZmFpbHVyZSc7XG5cbiAgICBjb25zdCBoYXNFeGVjdXRpb25TdGFydGVkID0gYWN0aW9ucy5zb21lKFxuICAgICAgKGE6IGFueSkgPT4gKGEudWlUeXBlIHx8IGEudHlwZSkgPT09ICdTVEVQX0VYRUNVVElPTl9TVEFSVEVEJ1xuICAgICk7XG4gICAgY29uc3QgaGFzU3RlcFJ1blN1Y2Nlc3NmdWxseSA9IGFjdGlvbnMuc29tZShcbiAgICAgIChhOiBhbnkpID0+IChhLnVpVHlwZSB8fCBhLnR5cGUpID09PSAnU1RFUF9SVU5fU1VDQ0VTU0ZVTExZJ1xuICAgICk7XG4gICAgY29uc3QgaGFzRmFpbGVkID1cbiAgICAgIGlzU3RlcEZhaWxlZCB8fFxuICAgICAgYWN0aW9ucy5zb21lKChhOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgcyA9IChhLnN0YXR1cyB8fCAnJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gcyA9PT0gJ2ZhaWxlZCcgfHwgcyA9PT0gJ2ZhaWx1cmUnO1xuICAgICAgfSkgfHxcbiAgICAgIGFjdGlvbnMuc29tZSgoYTogYW55KSA9PiAoYS5zdGVwU3RhdHVzIHx8ICcnKS50b1N0cmluZygpLnRvVXBwZXJDYXNlKCkgPT09ICdGQUlMVVJFJykgfHxcbiAgICAgIGFjdGlvbnMuc29tZSgoYTogYW55KSA9PiAoYS51aVR5cGUgfHwgYS50eXBlKSA9PT0gJ1NURVBfUlVOX0ZBSUxFRCcpO1xuXG4gICAgdGhpcy5zaG93VGhpbmtpbmdMb2cgPSB0aGlzLmlzTGl2ZSAmJiBoYXNFeGVjdXRpb25TdGFydGVkICYmICFoYXNTdGVwUnVuU3VjY2Vzc2Z1bGx5ICYmICFoYXNGYWlsZWQ7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBHZXQgYWN0aW9uIGZyb20gc3RlcCBpZiBhdmFpbGFibGUgKHNldCBieSBzdGVwLXJlbmRlcmVyKVxuICAgIGNvbnN0IGFjdGlvblZhbHVlID0gKHRoaXMgYXMgYW55KS5hY3Rpb24gfHwgJyc7XG4gICAgXG4gICAgLy8gVXNlIHRpdGxlIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0byBhY3Rpb25cbiAgICBjb25zdCB0aXRsZVZhbHVlID0gdGhpcy50aXRsZSB8fCBhY3Rpb25WYWx1ZSB8fCAnJztcbiAgICBcbiAgICAvLyBVc2UgcHJvbXB0IGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0byBhY3Rpb24gb3IgdGl0bGVcbiAgICBjb25zdCBwcm9tcHRWYWx1ZSA9IHRoaXMucHJvbXB0IHx8IGFjdGlvblZhbHVlIHx8IHRpdGxlVmFsdWUgfHwgJyc7XG4gICAgXG4gICAgLy8gQnVpbGQgY29uZmlnIGZyb20gaW5kaXZpZHVhbCBpbnB1dHNcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgdGVzdFN0ZXBJZDogdGhpcy5zdGVwPy50ZXN0U3RlcElkIHx8IHVuZGVmaW5lZCxcbiAgICAgIHRlc3RTdGVwUmVzdWx0SWQ6IHRoaXMudGVzdFN0ZXBSZXN1bHRJZCxcbiAgICAgIHN0ZXBOdW1iZXI6IHRoaXMuc3RlcE51bWJlcixcbiAgICAgIHRpdGxlOiB0aXRsZVZhbHVlLFxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcbiAgICAgIGR1cmF0aW9uOiB0aGlzLmR1cmF0aW9uLFxuICAgICAgZGlzcGxheVR5cGU6ICdhaS1hZ2VudCcsXG4gICAgICBwcm9tcHQ6IHByb21wdFZhbHVlLnJlcGxhY2UoJ0FJIEFnZW50JywgJycpLnRyaW0oKSxcbiAgICAgIG9wdGltaXplZFJ1bjogdGhpcy5vcHRpbWl6ZWRSdW4sXG4gICAgICBhY3Rpb25Db3VudDogdGhpcy5hY3Rpb25Db3VudCxcbiAgICAgIGFjdGlvbnM6IHRoaXMuYWN0aW9ucyB8fCBbXSxcbiAgICAgIHNlbGVjdGVkVGFiOiB0aGlzLnNlbGVjdGVkVGFiSW5wdXQsXG4gICAgICBzdGVwRGVsZXRlZDogdGhpcy5zdGVwRGVsZXRlZCxcbiAgICAgIHRpbWluZ0JyZWFrZG93bjogdGhpcy50aW1pbmdCcmVha2Rvd24sXG4gICAgICBleHBhbmRlZDogdGhpcy5leHBhbmRlZCxcbiAgICAgIHNlbGZIZWFsQW5hbHlzaXM6IHRoaXMuc2VsZkhlYWxBbmFseXNpcyxcbiAgICB9IGFzIEFJQWdlbnRTdGVwQ29uZmlnO1xuXG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gdGhpcy5jb25maWcuc2VsZWN0ZWRUYWIgfHwgJ2FjdGlvbi10cmFjZSc7XG4gIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLyBVcGRhdGUgdGl0bGUgYW5kIHByb21wdCBpbiBjb25maWcgd2hlbiB0aGV5IGNoYW5nZVxuICAgIGlmICh0aGlzLmNvbmZpZykge1xuICAgICAgaWYgKGNoYW5nZXNbJ3N0ZXBOdW1iZXInXSAmJiB0aGlzLmNvbmZpZykgdGhpcy5jb25maWcuc3RlcE51bWJlciA9IGNoYW5nZXNbJ3N0ZXBOdW1iZXInXS5jdXJyZW50VmFsdWU7XG4gICAgICBpZiAoY2hhbmdlc1sndGl0bGUnXSkge1xuICAgICAgICB0aGlzLmNvbmZpZy50aXRsZSA9IHRoaXMudGl0bGUgfHwgJyc7XG4gICAgICB9XG4gICAgICBpZiAoY2hhbmdlc1sncHJvbXB0J10pIHtcbiAgICAgICAgLy8gUmVtb3ZlICdBSSBBZ2VudCcgcHJlZml4IGlmIHByZXNlbnQgYW5kIHRyaW1cbiAgICAgICAgY29uc3QgcHJvbXB0VmFsdWUgPSB0aGlzLnByb21wdCB8fCAnJztcbiAgICAgICAgdGhpcy5jb25maWcucHJvbXB0ID0gcHJvbXB0VmFsdWUucmVwbGFjZSgnQUkgQWdlbnQnLCAnJykudHJpbSgpO1xuICAgICAgfVxuICAgICAgLy8gSWYgcHJvbXB0IGlzIG5vdCBzZXQgYnV0IHRpdGxlIGlzLCB1c2UgdGl0bGUgYXMgcHJvbXB0XG4gICAgICBpZiAoIXRoaXMucHJvbXB0ICYmIHRoaXMudGl0bGUgJiYgdGhpcy5jb25maWcucHJvbXB0ICE9PSB0aGlzLnRpdGxlLnJlcGxhY2UoJ0FJIEFnZW50JywgJycpLnRyaW0oKSkge1xuICAgICAgICB0aGlzLmNvbmZpZy5wcm9tcHQgPSB0aGlzLnRpdGxlLnJlcGxhY2UoJ0FJIEFnZW50JywgJycpLnRyaW0oKTtcbiAgICAgIH1cbiAgICAgIC8vIElmIHRpdGxlIGlzIG5vdCBzZXQgYnV0IHByb21wdCBpcywgdXNlIHByb21wdCBhcyB0aXRsZVxuICAgICAgaWYgKCF0aGlzLnRpdGxlICYmIHRoaXMucHJvbXB0ICYmIHRoaXMuY29uZmlnLnRpdGxlICE9PSB0aGlzLnByb21wdCkge1xuICAgICAgICB0aGlzLmNvbmZpZy50aXRsZSA9IHRoaXMucHJvbXB0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFVwZGF0ZSBzdWJTdGVwcyBhcnJheSB3aGVuIG5ldyBvbmVzIGFyZSBhZGRlZFxuICAgIGlmIChjaGFuZ2VzWydhY3Rpb25zJ10pIHtcbiAgICAgIGNvbnN0IHByZXZpb3VzU3ViU3RlcHNDb3VudCA9IGNoYW5nZXNbJ2FjdGlvbnMnXS5wcmV2aW91c1ZhbHVlPy5sZW5ndGggfHwgMDtcbiAgICAgIGNvbnN0IGN1cnJlbnRTdWJTdGVwc0NvdW50ID0gKHRoaXMuYWN0aW9ucyB8fCBbXSkubGVuZ3RoO1xuICAgICAgXG4gICAgICAvLyBTdWItc3RlcHMgYXJlIGFwcGVuZGVkIGV4dGVybmFsbHksIHNvIHdlIGp1c3QgdXBkYXRlIHRoZSBjb25maWdcbiAgICAgIGlmICh0aGlzLmNvbmZpZykge1xuICAgICAgICB0aGlzLmNvbmZpZy5hY3Rpb25zID0gdGhpcy5hY3Rpb25zIHx8IFtdO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBBdXRvLWV4cGFuZCBpZiBzdGVwIGlzIHJ1bm5pbmcgYW5kIG5ldyBzdWJTdGVwcyBhcmUgYWRkZWQgKGxvZ3MgY29taW5nIGluKVxuICAgICAgaWYgKCFjaGFuZ2VzWydhY3Rpb25zJ10uZmlyc3RDaGFuZ2UgJiYgXG4gICAgICAgICAgdGhpcy5zdGF0dXMgPT09ICdydW5uaW5nJyAmJiBcbiAgICAgICAgICBjdXJyZW50U3ViU3RlcHNDb3VudCA+IHByZXZpb3VzU3ViU3RlcHNDb3VudCAmJlxuICAgICAgICAgIHRoaXMuaGFzU3ViU3RlcHMgJiYgXG4gICAgICAgICAgIXRoaXMuaXNFeHBhbmRlZCAmJiBcbiAgICAgICAgICAhdGhpcy51c2VyTWFudWFsbHlDbG9zZWQpIHtcbiAgICAgICAgdGhpcy5hdXRvRXhwYW5kKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnICYmIGNoYW5nZXNbJ2R1cmF0aW9uJ10pIHtcbiAgICAgIHRoaXMuY29uZmlnLmR1cmF0aW9uID0gY2hhbmdlc1snZHVyYXRpb24nXT8uY3VycmVudFZhbHVlIHx8IDA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnICYmIGNoYW5nZXNbJ3N0ZXBEZWxldGVkJ10pIHtcbiAgICAgIHRoaXMuY29uZmlnLnN0ZXBEZWxldGVkID0gY2hhbmdlc1snc3RlcERlbGV0ZWQnXT8uY3VycmVudFZhbHVlO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBzdGF0dXMgY2hhbmdlcyAtIGF1dG8tZXhwYW5kIHdoZW4gc3RlcCBzdGFydHMgZXhlY3V0aW5nXG4gICAgaWYgKGNoYW5nZXNbJ3N0YXR1cyddICYmICFjaGFuZ2VzWydzdGF0dXMnXS5maXJzdENoYW5nZSkge1xuICAgICAgY29uc3QgbmV3U3RhdHVzID0gY2hhbmdlc1snc3RhdHVzJ10/LmN1cnJlbnRWYWx1ZSB8fCAnJztcbiAgICAgIGNvbnN0IG9sZFN0YXR1cyA9IGNoYW5nZXNbJ3N0YXR1cyddPy5wcmV2aW91c1ZhbHVlIHx8ICcnO1xuICAgICAgXG4gICAgICAvLyBBdXRvLWV4cGFuZCB3aGVuIHN0YXR1cyBjaGFuZ2VzIHRvICdydW5uaW5nJyBhbmQgaGFzIHN1YlN0ZXBzIChvciB3aWxsIGhhdmUgc29vbilcbiAgICAgIGlmIChuZXdTdGF0dXMgPT09ICdydW5uaW5nJyAmJiBvbGRTdGF0dXMgIT09ICdydW5uaW5nJyAmJiAhdGhpcy51c2VyTWFudWFsbHlDbG9zZWQpIHtcbiAgICAgICAgLy8gRXhwYW5kIGltbWVkaWF0ZWx5IGlmIGFscmVhZHkgaGFzIHN1YlN0ZXBzLCBvciB3YWl0IGZvciB0aGVtXG4gICAgICAgIGlmICh0aGlzLmhhc1N1YlN0ZXBzKSB7XG4gICAgICAgICAgdGhpcy5hdXRvRXhwYW5kKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhpcy5wcmV2aW91c1N0YXR1cyA9IG5ld1N0YXR1cztcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snZXhwYW5kZWQnXSAmJiB0aGlzLmV4cGFuZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQgPz8gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvRXhwYW5kKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0V4cGFuZGVkICYmIHRoaXMuaGFzU3ViU3RlcHMpIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRydWU7XG4gICAgICB0aGlzLnVzZXJNYW51YWxseUNsb3NlZCA9IGZhbHNlO1xuICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZC5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBoYXNTdWJTdGVwcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zICE9PSB1bmRlZmluZWQgJiYgdGhpcy5hY3Rpb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBzZWxlY3RUYWIodGFiOiAnYWN0aW9uLXRyYWNlJyB8ICdwbGFubmVyLXRpbWVsaW5lJyB8ICdhaS1yZWFzb25pbmcnKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRhYjtcbiAgfVxuXG4gIGdldEFjdGlvbkljb24oYWN0aW9uVHlwZTogJ2V4dHJhY3QnIHwgJ3ZhbGlkYXRlJyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGlvblR5cGUgPT09ICdleHRyYWN0JyA/ICdib2x0JyA6ICd3YXJuaW5nJztcbiAgfVxuXG4gIGNvcHlUb0NsaXBib2FyZCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdDb3BpZWQgdG8gY2xpcGJvYXJkOicsIHRleHQpO1xuICAgIH0pLmNhdGNoKGVyciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weSB0byBjbGlwYm9hcmQ6JywgZXJyKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvcHlQcm9tcHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnPy5wcm9tcHQpIHtcbiAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHRlbXBEaXYuaW5uZXJIVE1MID0gdGhpcy5jb25maWcucHJvbXB0O1xuICAgICAgY29uc3QgcGxhaW5UZXh0ID0gdGVtcERpdi50ZXh0Q29udGVudCB8fCB0ZW1wRGl2LmlubmVyVGV4dCB8fCAnJztcbiAgICAgIHRoaXMuY29weVRvQ2xpcGJvYXJkKHBsYWluVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgb25WaWV3TW9yZUZhaWxlZFN0ZXBDbGljayhleHBhbmRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd0ZhaWxlZFN0ZXBEZXRhaWxzID0gZXhwYW5kZWQ7XG4gIH1cblxuICBnZXRTdWJTdGVwc0ZvckZhaWxlZFN0ZXAoKTogU3ViU3RlcFtdIHtcbiAgICAvLyBDb252ZXJ0IEFJQWdlbnRBY3Rpb25bXSB0byBTdWJTdGVwW10gZm9yIHRoZSBmYWlsZWQgc3RlcCBjb21wb25lbnRcbiAgICByZXR1cm4gKHRoaXMuYWN0aW9ucyB8fCBbXSkubWFwKGFjdGlvbiA9PiAoe1xuICAgICAgaWQ6IGFjdGlvbi5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBhY3Rpb24uZGVzY3JpcHRpb24sXG4gICAgICBzdGF0dXM6IGFjdGlvbi5zdGF0dXMsXG4gICAgICBkdXJhdGlvbjogYWN0aW9uLmR1cmF0aW9uLFxuICAgIH0pKTtcbiAgfVxuXG4gIG9uTWFrZUN1cnJlbnRCYXNlbGluZShldmVudDogbWFrZUN1cnJlbnRCYXNlbGluZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5tYWtlQ3VycmVudEJhc2VsaW5lLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25VcGxvYWRCYXNlbGluZShldmVudDogdXBsb2FkQmFzZWxpbmVFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBsb2FkQmFzZWxpbmUuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkFuYWx5emUoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXplLmVtaXQoKTtcbiAgfVxuXG4gIG9uVmlld0Z1bGxMb2dzKCk6IHZvaWQge1xuICAgIHRoaXMudmlld0Z1bGxMb2dzLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2VsZkhlYWxBY3Rpb24oZXZlbnQ6IFNlbGZIZWFsQWN0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGZIZWFsQWN0aW9uLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgdHJhY2tCeUFjdGlvbklkKGluZGV4OiBudW1iZXIsIGFjdGlvbjogQUlBZ2VudEFjdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGlvbj8uaWQgfHwgaW5kZXgudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGdldCBzaG93Vmlld01vcmVCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNFeHBhbmRlZCAmJiBCb29sZWFuKHRoaXMuZmFpbHVyZURldGFpbHMpICYmXG4gICAgICAoXG4gICAgICAgIChCb29sZWFuKHRoaXMuZmFpbHVyZURldGFpbHM/LmV4cGVjdGVkIHx8IHRoaXMuZmFpbHVyZURldGFpbHM/LmFjdHVhbCkpIHx8XG4gICAgICAgIChCb29sZWFuKHRoaXMuZmFpbHVyZURldGFpbHM/LnNjcmVlbnNob3RzPy5jdXJyZW50IHx8IHRoaXMuZmFpbHVyZURldGFpbHM/LnNjcmVlbnNob3RzPy5iYXNlbGluZSB8fCB0aGlzLmZhaWx1cmVEZXRhaWxzPy5zY3JlZW5zaG90cz8uZGlmZmVyZW5jZSlcbiAgICAgICAgICB8fCBCb29sZWFuKHRoaXMuZmFpbHVyZURldGFpbHM/LmxvZ3M/Lmxlbmd0aCkpIHx8IFxuICAgICAgICAoQm9vbGVhbih0aGlzLmZhaWx1cmVEZXRhaWxzPy5haUZpeEFwcGxpZWQgJiYgKHRoaXMuZmFpbHVyZURldGFpbHM/LmFpRml4TWVzc2FnZSB8fCB0aGlzLmNvbmZpZGVuY2UgfHwgdGhpcy5yZWFzb25pbmc/Lmxlbmd0aCkpKVxuICAgICAgKVxuICB9XG5cbiAgb25EZWJ1Z1BvaW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmRlYnVnUG9pbnRDaGFuZ2UuZW1pdCghdGhpcy5kZWJ1Z1BvaW50U2V0KTtcbiAgfVxuXG4gIG9uRWRpdFN0ZXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmVkaXRTdGVwLmVtaXQoKTtcbiAgfVxuXG4gIG9uQWRkU3RlcE9wdGlvblNlbGVjdChvcHRpb246IEFkZFN0ZXBNZW51T3B0aW9uLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuYWRkU3RlcE9wdGlvblNlbGVjdC5lbWl0KG9wdGlvbik7XG4gIH1cblxuICBvblN0ZXBNb3JlT3B0aW9uU2VsZWN0KG9wdGlvbjogU3RlcE1vcmVNZW51T3B0aW9uLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc3RlcE1vcmVPcHRpb25TZWxlY3QuZW1pdChvcHRpb24pO1xuICB9XG5cbiAgdG9nZ2xlSGVhZGVyKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgc3VwZXIudG9nZ2xlKCk7XG4gICAgaWYoIXRoaXMuaXNFeHBhbmRlZCl7XG4gICAgICB0aGlzLnNob3dGYWlsZWRTdGVwRGV0YWlscyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5vblN0ZXBDbGlja0hhbmRsZXIpIHtcbiAgICAgIGNvbnN0IHN0ZXBUb1Bhc3MgPSB0aGlzLnN0ZXAgfHwgdGhpcy5jb25maWc7XG4gICAgICBpZiAoc3RlcFRvUGFzcykge1xuICAgICAgICB0aGlzLm9uU3RlcENsaWNrSGFuZGxlcihzdGVwVG9QYXNzLCBldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25KdW1wVG9UaW1lc3RhbXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuanVtcFRvVGltZXN0YW1wSGFuZGxlciAmJiB0aGlzLnN0ZXA/LmV4ZWN1dGVkUmVzdWx0Py52aWRlb19zdGFydF90aW1lICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGltZXN0YW1wID0gdHlwZW9mIHRoaXMuc3RlcC5leGVjdXRlZFJlc3VsdC52aWRlb19zdGFydF90aW1lID09PSAnbnVtYmVyJyBcbiAgICAgICAgPyB0aGlzLnN0ZXAuZXhlY3V0ZWRSZXN1bHQudmlkZW9fc3RhcnRfdGltZSBcbiAgICAgICAgOiBOdW1iZXIodGhpcy5zdGVwLmV4ZWN1dGVkUmVzdWx0LnZpZGVvX3N0YXJ0X3RpbWUpO1xuICAgICAgY29uc3QgdGVzdFN0ZXBJZCA9IHRoaXMuc3RlcD8udGVzdFN0ZXBJZDtcbiAgICAgIGlmIChpc0Zpbml0ZSh0aW1lc3RhbXApICYmIHRpbWVzdGFtcCA+PSAwKSB7XG4gICAgICAgIHRoaXMuanVtcFRvVGltZXN0YW1wSGFuZGxlcih0aW1lc3RhbXAsIHRlc3RTdGVwSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNxYS1mb250LWludGVyIGNxYS13LWZ1bGxcIiBbY2xhc3MuY3FhLW9wYWNpdHktNTBdPVwiaXNEZWJ1ZyAmJiBpc1NraXBwZWQgJiYgIXBhcmVudFNraXBwZWRcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIhaXNEZWJ1ZyA/IG51bGwgOiBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3BhdXNlZCcgPyAnI0ZGRjlFOScgOiBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWxlZCcgPyAnI0ZFRjJGMicgOiBudWxsXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXAtMiBjcWEtY3Vyc29yLXBvaW50ZXJcIlxuICAgIChjbGljayk9XCJ0b2dnbGVIZWFkZXIoJGV2ZW50KVwiPlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVidWdJY29uXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3J1bm5pbmcnID8gJ0JyZWFrcG9pbnQgY2Fubm90IGJlIHNldCBvbiBhIHJ1bm5pbmcgc3RlcCcgOiAoaXNTdGVwRGVsZXRlZCA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gZGVsZXRlZCBzdGVwcycgOiAoKCEhcGFyZW50U2tpcHBlZCAmJiAhc3RlcD8uZGVidWdQb2ludERpc2FibGVkKSA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gYSBydW5uaW5nIHN0ZXAnIDogKCEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkID8gJ0JyZWFrcG9pbnQgY2Fubm90IGJlIHNldCBvbiBza2lwcGVkIHN0ZXBzJyA6ICcnKSkpXCJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtcm91bmRlZC1mdWxsIGNxYS10cmFuc2l0aW9uLW9wYWNpdHkgZm9jdXM6Y3FhLW91dGxpbmUtbm9uZVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncnVubmluZycgfHwgISFzdGVwPy5kZWJ1Z1BvaW50RGlzYWJsZWQgfHwgISFwYXJlbnRTa2lwcGVkIHx8IGlzU3RlcERlbGV0ZWQgPyAnY3FhLWN1cnNvci1ub3QtYWxsb3dlZCBjcWEtb3BhY2l0eS00MCBjcWEtcG9pbnRlci1ldmVudHMtbm9uZScgOiAnY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3J1bm5pbmcnIHx8ICEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uRGVidWdQb2ludENsaWNrKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImRlYnVnUG9pbnRTZXQgPyAnUmVtb3ZlIGRlYnVnIHBvaW50JyA6ICdTZXQgZGVidWcgcG9pbnQnXCI+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJkZWJ1Z1BvaW50U2V0XCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI3XCIgY3k9XCI3XCIgcj1cIjZcIiBbYXR0ci5maWxsXT1cIiEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkID8gJyM5RTlFOUUnIDogJyNDNjM1MzUnXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHN2ZyAqbmdJZj1cIiFkZWJ1Z1BvaW50U2V0XCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI3XCIgY3k9XCI3XCIgcj1cIjZcIiBbYXR0ci5zdHJva2VdPVwiISFzdGVwPy5kZWJ1Z1BvaW50RGlzYWJsZWQgfHwgISFwYXJlbnRTa2lwcGVkIHx8IGlzU3RlcERlbGV0ZWQgPyAnIzlFOUU5RScgOiAnI0M2MzUzNSdcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBmaWxsPVwibm9uZVwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFN0YXR1cyBJY29uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnXCIgPjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTAuOTAwNSA0Ljk5OTk5QzExLjEyODkgNi4xMjA2NCAxMC45NjYyIDcuMjg1NzEgMTAuNDM5NSA4LjMwMDg5QzkuOTEyNzkgOS4zMTYwOCA5LjA1NCAxMC4xMiA4LjAwNjMxIDEwLjU3ODdDNi45NTg2MiAxMS4wMzczIDUuNzg1MzYgMTEuMTIyOSA0LjY4MjIgMTAuODIxMkMzLjU3OTA0IDEwLjUxOTUgMi42MTI2NSA5Ljg0ODY5IDEuOTQ0MTkgOC45MjA3MUMxLjI3NTczIDcuOTkyNzIgMC45NDU2MTEgNi44NjM2MSAxLjAwODg4IDUuNzIxNjlDMS4wNzIxNSA0LjU3OTc2IDEuNTI0OTkgMy40OTQwNCAyLjI5MTg4IDIuNjQ1NThDMy4wNTg3NiAxLjc5NzEyIDQuMDkzMzQgMS4yMzcyMSA1LjIyMzA4IDEuMDU5MjJDNi4zNTI4MiAwLjg4MTIzMyA3LjUwOTQ0IDEuMDk1OTIgOC41MDAwNSAxLjY2NzQ5XCIgc3Ryb2tlPVwiIzIyQzU1RVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSA1LjVMNiA3TDExIDJcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWx1cmUnIHx8IHN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnZmFpbGVkJ1wiPjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNiAxMUM4Ljc2MTQyIDExIDExIDguNzYxNDIgMTEgNkMxMSAzLjIzODU4IDguNzYxNDIgMSA2IDFDMy4yMzg1OCAxIDEgMy4yMzg1OCAxIDZDMSA4Ljc2MTQyIDMuMjM4NTggMTEgNiAxMVpcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNy41IDQuNUw0LjUgNy41XCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSA0LjVMNy41IDcuNVwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGVuZGluZydcIj48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYgM1Y2TDggN1wiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncnVubmluZydcIj48c3ZnIGNsYXNzPVwiY3FhLWFuaW1hdGUtc3BpbiBjcWEtdGV4dC1bIzNCODJGNl1cIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PGNpcmNsZSBjeD1cIjZcIiBjeT1cIjZcIiByPVwiNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIGZpbGw9XCJub25lXCIgb3BhY2l0eT1cIjAuMjVcIi8+PHBhdGggZD1cIk02IDFBNSA1IDAgMCAxIDExIDZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnc2tpcHBlZCdcIj48c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgY3FhLXRleHQtWyM5Q0EzQUZdIGNxYS10ZXh0LVsxMnB4XVwiPnNraXBfbmV4dDwvc3Bhbj48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdwYXVzZWQnXCI+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk04LjUgMkg3LjVDNy4yMjM4NiAyIDcgMi4yMjM4NiA3IDIuNVY5LjVDNyA5Ljc3NjE0IDcuMjIzODYgMTAgNy41IDEwSDguNUM4Ljc3NjE0IDEwIDkgOS43NzYxNCA5IDkuNVYyLjVDOSAyLjIyMzg2IDguNzc2MTQgMiA4LjUgMlpcIiBzdHJva2U9XCIjRTE3MTAwXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDJIMy41QzMuMjIzODYgMiAzIDIuMjIzODYgMyAyLjVWOS41QzMgOS43NzYxNCAzLjIyMzg2IDEwIDMuNSAxMEg0LjVDNC43NzYxNCAxMCA1IDkuNzc2MTQgNSA5LjVWMi41QzUgMi4yMjM4NiA0Ljc3NjE0IDIgNC41IDJaXCIgc3Ryb2tlPVwiI0UxNzEwMFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICA8IS0tIExpZ2h0YnVsYiBJY29uIGFuZCBTdGVwIE51bWJlciAtLT5cbiAgICA8ZGl2PlxuICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDIwIDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjE2XCIgcng9XCI0XCIgZmlsbD1cIiNGRUYzQzZcIi8+PHBhdGggZD1cIk04LjgzMTUgMTAuNUgxMS4xNjhNMTAgMy41VjRNMTMuMTgyIDQuODE4TDEyLjgyODUgNS4xNzE1TTE0LjUgOEgxNE02IDhINS41TTcuMTcxNSA1LjE3MTVMNi44MTggNC44MThNOC4yMzIgOS43NjhDNy44ODI0MyA5LjQxODM0IDcuNjQ0NCA4Ljk3Mjg4IDcuNTQ3OTkgOC40ODc5NUM3LjQ1MTU4IDguMDAzMDEgNy41MDExMyA3LjUwMDM4IDcuNjkwMzYgNy4wNDM2MUM3Ljg3OTYgNi41ODY4MyA4LjIwMDAzIDYuMTk2NDIgOC42MTExNCA1LjkyMTc1QzkuMDIyMjUgNS42NDcwNyA5LjUwNTU3IDUuNTAwNDcgMTAgNS41MDA0N0MxMC40OTQ0IDUuNTAwNDcgMTAuOTc3NyA1LjY0NzA3IDExLjM4ODkgNS45MjE3NUMxMS44IDYuMTk2NDIgMTIuMTIwNCA2LjU4NjgzIDEyLjMwOTYgNy4wNDM2MUMxMi40OTg5IDcuNTAwMzggMTIuNTQ4NCA4LjAwMzAxIDEyLjQ1MiA4LjQ4Nzk1QzEyLjM1NTYgOC45NzI4OCAxMi4xMTc2IDkuNDE4MzQgMTEuNzY4IDkuNzY4TDExLjQ5NCAxMC4wNDE1QzExLjMzNzQgMTAuMTk4MiAxMS4yMTMxIDEwLjM4NDIgMTEuMTI4MyAxMC41ODg5QzExLjA0MzYgMTAuNzkzNiAxMSAxMS4wMTI5IDExIDExLjIzNDVWMTEuNUMxMSAxMS43NjUyIDEwLjg5NDYgMTIuMDE5NiAxMC43MDcxIDEyLjIwNzFDMTAuNTE5NiAxMi4zOTQ2IDEwLjI2NTIgMTIuNSAxMCAxMi41QzkuNzM0NzggMTIuNSA5LjQ4MDQzIDEyLjM5NDYgOS4yOTI4OSAxMi4yMDcxQzkuMTA1MzYgMTIuMDE5NiA5IDExLjc2NTIgOSAxMS41VjExLjIzNDVDOSAxMC43ODcgOC44MjIgMTAuMzU3NSA4LjUwNiAxMC4wNDE1TDguMjMyIDkuNzY4WlwiIHN0cm9rZT1cIiNFMTcxMDBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN0ZXAgTnVtYmVyIGFuZCBUaXRsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMyBjcWEtZm9udC1pbnRlclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzMzNDE1NV0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XVwiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDtcIj5cbiAgICAgICAge3sgY29uZmlnPy5zdGVwTnVtYmVyIH19LiA8c3BhbiBbaW5uZXJIVE1MXT1cImNvbmZpZz8udGl0bGUgfHwgJydcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICBcbiAgICAgIDwhLS0gTG9vcCBUeXBlIEJhZGdlcyAtLT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXB4LTEuNSBjcWEtcm91bmRlZC1mdWxsIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bI0UxNzEwMF0gY3FhLWJnLVsjRkVGM0M2XSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1taW4tdy1tYXhcIj5cbiAgICAgICAgQUkgQWdlbnRcbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWcuc3RlcERlbGV0ZWRcIiBjbGFzcz1cImNxYS1weC0xLjUgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjQjQyMzE4XSBjcWEtYmctWyNGRUYzRjJdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0ZFRTRFMl1cIj5cbiAgICAgICAgRGVsZXRlZFxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBBY3Rpb24gQ291bnQgLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJjb25maWc/LmFjdGlvbkNvdW50XCIgY2xhc3M9XCJjcWEtcHgtMS41IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjRTE3MTAwXSBjcWEtYmctWyNGRUYzQzZdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLW1pbi13LW1heFwiPlxuICAgICAge3sgY29uZmlnPy5hY3Rpb25Db3VudCB9fSBhY3Rpb25zXG4gICAgPC9zcGFuPlxuXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS1mb250LWludGVyXCI+XG4gICAgICA8IS0tIFN0ZXAgQ2hhbmdlIEJhZGdlcyAoZGVidWcgb25seSkgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZWJ1Z1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBzdGVwQmFkZ2VzXCI+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnc2tpcHBlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiU2tpcHBlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjNEE1NTY1J1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjOTlBMUFGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZGRkZGRidcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnZWRpdGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJFZGl0ZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInI0ZCQkYyNCdcIlxuICAgICAgICAgIFtib3JkZXJDb2xvcl09XCInI0ZEREY5MidcIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJyNGRkY5RTknXCI+XG4gICAgICAgIDwvY3FhLWJhZGdlPlxuICAgICAgICA8Y3FhLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJiYWRnZSA9PT0gJ2FkZGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJBZGRlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjMERCRDdEJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjNUVEM0E4J1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0NGRjJFNSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAncmVtb3ZlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiUmVtb3ZlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjRUUzRjNGJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjRjQ3RjdGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZDRDlEOSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhbiAqbmdJZj1cInNlbGZIZWFsQW5hbHlzaXNcIiBjbGFzcz1cImNxYS1weC0xLjUgY3FhLXJvdW5kZWQtZnVsbCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwOTdFNTNdIGNxYS1iZy1bI0NGRjJFNV0gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtbWluLXctbWF4IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC1bNnB4XVwiPlxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjlcIiBoZWlnaHQ9XCI5XCIgdmlld0JveD1cIjAgMCA5IDlcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNNC41MDk0MSAwQzQuNTY0ODkgMC4wMjI3Mzg0IDQuNTg4NTkgMC4wNzgyNjUyIDQuNjExMzEgMC4xMjk4NDZDNC42MjI2OSAwLjE1OTkgNC42MzMxNCAwLjE5MDExNyA0LjY0MzI5IDAuMjIwNTc1QzQuNjQ3MjYgMC4yMzIyNDcgNC42NTEyMyAwLjI0MzkxOCA0LjY1NTMyIDAuMjU1OTQzQzQuNzA4MDYgMC40MTMwMDUgNC43NTUwNCAwLjU3MTc0OCA0LjgwMjI5IDAuNzMwMzhDNC44MTI5NyAwLjc2NjE5IDQuODIzNjkgMC44MDE5ODcgNC44MzQ0MiAwLjgzNzc4M0M0Ljg4OTA1IDEuMDIwMDQgNC45NDMyNyAxLjIwMjQgNC45OTcxOSAxLjM4NDg0QzUuMDA0NzYgMS40MTA0NyA1LjAxMjM0IDEuNDM2MDkgNS4wMTk5MiAxLjQ2MTcxQzUuMDQxMjggMS41MzM5NSA1LjA2MjYyIDEuNjA2MTkgNS4wODM4MyAxLjY3ODQ3QzUuMTI4NjcgMS44MzEyIDUuMTc0NzMgMS45ODM0NyA1LjIyMzc4IDIuMTM1MDFDNS4yMjgwNyAyLjE0ODI3IDUuMjMyMzYgMi4xNjE1MiA1LjIzNjc3IDIuMTc1MThDNS4zNjQyIDIuNTY1IDUuNTQ0ODIgMi45MTQzNyA1Ljg0MDkgMy4yMTE5NkM1Ljg0ODIzIDMuMjE5NyA1Ljg1NTU2IDMuMjI3NDQgNS44NjMxMiAzLjIzNTQxQzUuOTg5NSAzLjM2NDM3IDYuMTUxNjkgMy40Njc3MSA2LjMxMzggMy41NTExMUM2LjMyMjA2IDMuNTU1NDIgNi4zMzAzMSAzLjU1OTc0IDYuMzM4ODIgMy41NjQxOUM2LjgxNTg3IDMuODA5MjUgNy4zODk1MSAzLjkxNzA0IDcuOTA2MTkgNC4wNjA1QzguMTMyNiA0LjEyMzQgOC4zNTgzIDQuMTg4MjkgOC41ODMxNyA0LjI1NjAzQzguNTk4OTcgNC4yNjA3OSA4LjYxNDc4IDQuMjY1NTQgOC42MzA1OCA0LjI3MDI4QzguNjc3ODQgNC4yODQ0NSA4LjcyNSA0LjI5ODg3IDguNzcyMTEgNC4zMTM0N0M4Ljc4MzEgNC4zMTY3OSA4Ljc5NDA4IDQuMzIwMTEgOC44MDUzOSA0LjMyMzUzQzguODcwMjkgNC4zNDQwNiA4LjkzMjM5IDQuMzY4MjkgOC45ODU2NiA0LjQxMDI3QzkuMDAxOTEgNC40NDQxOCA5LjAwMTkxIDQuNDQ0MTggOC45OTc0OCA0LjQ3ODFDOC45NDU2NCA0LjUyNzM2IDguODk0MiA0LjU1MDQ2IDguODI1NzggNC41NzNDOC44MTYgNC41NzYzMiA4LjgwNjIyIDQuNTc5NjUgOC43OTYxNCA0LjU4MzA4QzguNjgwNjEgNC42MjE4MyA4LjU2MzUxIDQuNjU1NzUgOC40NDYyNiA0LjY4OTM1QzguNDIyMiA0LjY5NjMgOC4zOTgxNCA0LjcwMzI2IDguMzc0MDggNC43MTAyMUM4LjIyNTcxIDQuNzUzMDEgOC4wNzcwOCA0Ljc5NDkgNy45MjgyOSA0LjgzNjMyQzcuNzMyMzIgNC44OTA4OCA3LjUzNjYzIDQuOTQ2MzQgNy4zNDExMyA1LjAwMjQzQzcuMzA5MSA1LjAxMTYyIDcuMjc3MDYgNS4wMjA3OCA3LjI0NTAxIDUuMDI5OTFDNy4wNzY3MSA1LjA3Nzg2IDYuOTA5MjMgNS4xMjc1MyA2Ljc0MzE0IDUuMTgyMDhDNi43MjkzNyA1LjE4NjU5IDYuNzE1NTkgNS4xOTExIDYuNzAxMzkgNS4xOTU3NEM2LjE0NTExIDUuMzgwODIgNS43MjExIDUuNzI2MDkgNS40NTU3MSA2LjIzMDk5QzUuMzEyNjMgNi41MTQ3NSA1LjIyODIzIDYuODIxNjEgNS4xNDIxNCA3LjEyNDQ3QzUuMTE4ODQgNy4yMDYxOSA1LjA5NDA5IDcuMjg3NDUgNS4wNjkwNSA3LjM2ODY5QzUuMDQ5NCA3LjQzMjYxIDUuMDMwMiA3LjQ5NjYzIDUuMDExNDkgNy41NjA4MUM1LjAwOTI2IDcuNTY4NDQgNS4wMDcwMyA3LjU3NjA4IDUuMDA0NzMgNy41ODM5NUM0Ljk5Mzk0IDcuNjIwOTQgNC45ODMxOSA3LjY1NzkzIDQuOTcyNTIgNy42OTQ5NUM0Ljk0NTE5IDcuNzg4NzkgNC45MTU3OCA3Ljg4MTg3IDQuODg1NTUgNy45NzQ4OUM0LjgzMTkxIDguMTQwMjEgNC43ODMxIDguMzA2NzQgNC43MzQ1OSA4LjQ3MzVDNC42NjE0NCA4LjcyNDU3IDQuNjYxNDQgOC43MjQ1NyA0LjYxOTk3IDguODQ1MjdDNC42MTcyMSA4Ljg1MzM3IDQuNjE0NDYgOC44NjE0NyA0LjYxMTYzIDguODY5ODJDNC41OTY0OSA4LjkxMjc4IDQuNTgwOTIgOC45NTIzMyA0LjU1MjI2IDguOTg4N0M0LjUwODY3IDguOTk3ODggNC41MDg2NyA4Ljk5Nzg4IDQuNDY5NTEgOUM0LjQyNDczIDguOTM3NTkgNC4zOTUwOCA4Ljg3NzExIDQuMzcxMzMgOC44MDUwOEM0LjM2Nzg3IDguNzk0ODcgNC4zNjQ0MSA4Ljc4NDY2IDQuMzYwODUgOC43NzQxNUM0LjMxNjg0IDguNjQyNDggNC4yNzc1MSA4LjUwOTQ2IDQuMjM4MTcgOC4zNzY0NkM0LjIyOTE2IDguMzQ2MDQgNC4yMjAxMSA4LjMxNTY0IDQuMjExMDUgOC4yODUyNEM0LjE0MzYgOC4wNTg2MyA0LjA3NzI1IDcuODMxNzQgNC4wMTEwMSA3LjYwNDgxQzMuNzM1MDcgNi40ODIyNCAzLjczNTA3IDYuNDgyMjQgMy4wMzkgNS41NzQ2NkMzLjAyNzg0IDUuNTY1OTYgMy4wMTY2OSA1LjU1NzI2IDMuMDA1MTkgNS41NDgzQzIuNTQ5MTMgNS4xOTkwMiAxLjk0ODM0IDUuMDY5NjkgMS4zOTgxNSA0LjkxODEzQzEuMjYyMDcgNC44ODA2MiAxLjEyNjA1IDQuODQyOTMgMC45OTAwMzIgNC44MDUyM0MwLjk3ODEzOCA0LjgwMTkzIDAuOTc4MTM4IDQuODAxOTMgMC45NjYwMDMgNC43OTg1N0MwLjc2OTgxMSA0Ljc0NDE3IDAuNTczNjc0IDQuNjg5NjMgMC4zNzgyMjQgNC42MzI4M0MwLjM2OTk1NiA0LjYzMDQ1IDAuMzYxNjg4IDQuNjI4MDYgMC4zNTMxNjkgNC42MjU2MUMwLjA1Mjg5ODkgNC41Mzg4MyAwLjA1Mjg5ODkgNC41Mzg4MyAwLjAwMDY0NjUzNyA0LjQ3ODFDLTAuMDAwODMxMjYxIDQuNDUwNTQgLTAuMDAwODMxMjYxIDQuNDUwNTQgMC4wMTI0Njg5IDQuNDIxNTdDMC4wNjcwODM1IDQuMzcwNCAwLjEyMDA3NyA0LjM0ODQ4IDAuMTkyMTYgNC4zMjYxOUMwLjIwMjU5NyA0LjMyMjg0IDAuMjEzMDM0IDQuMzE5NDggMC4yMjM3ODcgNC4zMTYwM0MwLjI1NTc1MyA0LjMwNTgyIDAuMjg3Nzg4IDQuMjk1ODQgMC4zMTk4NTEgNC4yODU5MkMwLjMyOTAwMSA0LjI4MzA1IDAuMzM4MTUxIDQuMjgwMTcgMC4zNDc1NzggNC4yNzcyMkMwLjQxMjI4NSA0LjI1NjkzIDAuNDc3MjI1IDQuMjM3NCAwLjU0MjI1OSA0LjIxODA5QzAuNTU4MjQgNC4yMTMzMiAwLjU1ODI0IDQuMjEzMzIgMC41NzQ1NDQgNC4yMDg0NkMwLjg1MjI2OSA0LjEyNTg3IDEuMTMxODEgNC4wNDkgMS40MTEyNiAzLjk3MTk2QzEuNjE5NSAzLjkxNDU1IDEuODI3MzggMy44NTYxOCAyLjAzNDYgMy43OTU0OEMyLjA0NDEzIDMuNzkyNzEgMi4wNTM2NSAzLjc4OTkzIDIuMDYzNDYgMy43ODcwN0MyLjU0MzUgMy42NDY5NiAzLjAxMjc4IDMuNDQ4MTYgMy4zMjI3NCAzLjA1MzdDMy4zMjczOCAzLjA0Nzg1IDMuMzMyMDIgMy4wNDIgMy4zMzY4IDMuMDM1OTdDMy42ODE5NyAyLjU5ODE1IDMuODE2NTggMi4wNjU3MiAzLjk2Njk1IDEuNTQ2MjFDNC4wMTY0MyAxLjM3NTM0IDQuMDY2NDkgMS4yMDQ2NCA0LjExNjczIDEuMDMzOTlDNC4xMzA2NCAwLjk4NjczMyA0LjE0NDUzIDAuOTM5NDcxIDQuMTU4MzYgMC44OTIxOTRDNC4yMTM5NCAwLjcwMjI4OSA0LjI3MDM1IDAuNTEyNjQyIDQuMzMgMC4zMjM4NjRDNC4zMzU1OCAwLjMwNjE4NiA0LjM0MTE0IDAuMjg4NTAxIDQuMzQ2NjYgMC4yNzA4MDdDNC40MzAxNyAwLjAwMzk4NzYxIDQuNDMwMTcgMC4wMDM5ODc2MSA0LjUwOTQxIDBaXCIgZmlsbD1cIiMwREJEN0RcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk03LjIzNTk3IDAuNTU0ODU5QzcuMjkwMjQgMC42MTM1OTkgNy4zMDEwOSAwLjY4MjYzMSA3LjMxNzk5IDAuNzU3NjM4QzcuMzc0MzYgMC45OTMyNjkgNy40MzkyOSAxLjIwOTkzIDcuNjY0NjcgMS4zNDY4MUM3LjgwMzcxIDEuNDIwMzUgNy45Njk0NCAxLjQ1MzgxIDguMTIzNSAxLjQ4NTQxQzguMTg4NTQgMS40OTkwMiA4LjI0MzQ4IDEuNTE3MDkgOC4yOTkyNCAxLjU1MzIxQzguMzExODEgMS41NzIyOSA4LjMxMTgxIDEuNTcyMjkgOC4zMTEwNyAxLjYwNTQ5QzguMjk4MTQgMS42NDU4OCA4LjI4Njc4IDEuNjU4OSA4LjI1MjY5IDEuNjg1MzNDOC4yMTU0MyAxLjY5NzI2IDguMjE1NDMgMS42OTcyNiA4LjE3MDY4IDEuNzA2NTNDOC4xNTM3NSAxLjcxMDI1IDguMTM2ODMgMS43MTQgOC4xMTk5MiAxLjcxNzc5QzguMTEwODYgMS43MTk4IDguMTAxODEgMS43MjE4MSA4LjA5MjQ3IDEuNzIzODhDNy44MTY5NiAxLjc4NDgyIDcuODE2OTYgMS43ODQ4MiA3LjU3ODgyIDEuOTIyNzNDNy41NzEwOCAxLjkyODY5IDcuNTYzMzMgMS45MzQ2NiA3LjU1NTM2IDEuOTQwOEM3LjM4NTE2IDIuMDg0MzEgNy4zNDkxNiAyLjMyMzAzIDcuMjk3OTMgMi41MjMwMUM3LjI5NDk5IDIuNTMzOTkgNy4yOTIwNiAyLjU0NDk3IDcuMjg5MDMgMi41NTYyOUM3LjI4NjQ5IDIuNTY2MDEgNy4yODM5NSAyLjU3NTczIDcuMjgxMzMgMi41ODU3NUM3LjI3MDI4IDIuNjE1NDQgNy4yNTg4MSAyLjYzNDc5IDcuMjM1OTcgMi42NTc1NEM3LjE3MjM0IDIuNjY1MjcgNy4xNzIzNCAyLjY2NTI3IDcuMTQxMzkgMi42NTc1NEM3LjA5MjE2IDIuNjIxMDYgNy4wODExNCAyLjU3OTUgNy4wNjgyOCAyLjUyMzY1QzcuMDY2MTMgMi41MTUwMSA3LjA2Mzk4IDIuNTA2MzYgNy4wNjE3NiAyLjQ5NzQ1QzcuMDU0ODkgMi40Njk4MyA3LjA0ODI0IDIuNDQyMTcgNy4wNDE2NCAyLjQxNDQ5QzYuOTg5NzkgMi4xOTg5NyA2LjkzMTI2IDEuOTg3NTEgNi43MjQ1MSAxLjg2MTE4QzYuNTYyOTMgMS43NzUwMSA2LjM2NjQ2IDEuNzM0MjYgNi4xODU4NyAxLjcwMTM2QzYuMTM2MzcgMS42OTE1MSA2LjEwODAyIDEuNjc5MTEgNi4wNzczOCAxLjY0MDEyQzYuMDcwNzMgMS42MDA1NSA2LjA3MDczIDEuNjAwNTUgNi4wNzczOCAxLjU2MDk4QzYuMTI0NDcgMS41MTQzNyA2LjE3NDAyIDEuNTAyOTkgNi4yMzc3MiAxLjQ4ODkxQzYuMjU3NzggMS40ODQxNiA2LjI3Nzg0IDEuNDc5MzggNi4yOTc4OSAxLjQ3NDU2QzYuMzA4MjUgMS40NzIwOSA2LjMxODYxIDEuNDY5NjIgNi4zMjkyOSAxLjQ2NzA3QzYuMzgyMTIgMS40NTQwNyA2LjQzNDQzIDEuNDM5NDkgNi40ODY3MyAxLjQyNDYyQzYuNDk2MjMgMS40MjE5OCA2LjUwNTczIDEuNDE5MzUgNi41MTU1MiAxLjQxNjYzQzYuNjIxODIgMS4zODYyNCA2LjcxMzU2IDEuMzQ3MzcgNi43OTg1NCAxLjI3ODM2QzYuODA2NDcgMS4yNzIxMyA2LjgxNDM5IDEuMjY1ODkgNi44MjI1NSAxLjI1OTQ2QzYuOTU0OCAxLjE0NTY1IDYuOTk5NzQgMC45NzQ2NzQgNy4wNDA1MyAwLjgxNTEzNEM3LjA0MzY0IDAuODAzMDIyIDcuMDQ2NzUgMC43OTA5MSA3LjA0OTk1IDAuNzc4NDMyQzcuMDU2MTQgMC43NTQxMDEgNy4wNjIyMiAwLjcyOTc0MyA3LjA2ODE3IDAuNzA1MzU5QzcuMDcyNDMgMC42ODgzOTQgNy4wNzI0MyAwLjY4ODM5NCA3LjA3Njc4IDAuNjcxMDg2QzcuMDc5MjcgMC42NjA5NTEgNy4wODE3NSAwLjY1MDgxNiA3LjA4NDMxIDAuNjQwMzczQzcuMDk1MjEgMC42MDgxMDggNy4xMDk1MiAwLjU4Mjc3MiA3LjEyOTU3IDAuNTU0ODU5QzcuMTY4MSAwLjUzNjQzNSA3LjE5NTE1IDAuNTQ0NzY0IDcuMjM1OTcgMC41NTQ4NTlaXCIgZmlsbD1cIiMwNzVGM0ZcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk0xLjc5NTQ1IDYuMjQ3MUMxLjgwOTUxIDYuMjQ3MTkgMS44MDk1MSA2LjI0NzE5IDEuODIzODYgNi4yNDcyOUMxLjkyNDc3IDYuMjUwMjIgMS45OTMwNCA2LjI4MTE1IDIuMDY3MzYgNi4zNDYwMUMyLjE1Mzg0IDYuNDM1MzMgMi4xOTM3NyA2LjUzNjExIDIuMTkxNSA2LjY1NjVDMi4xODE3OCA2Ljc1NDEyIDIuMTIxNTggNi44MzkzNSAyLjA0NzczIDYuOTA1MzNDMS45NjA4MSA2Ljk3MjQyIDEuODczMTMgNi45OTQ1OSAxLjc2MjA2IDYuOTkxNDlDMS42Njg0MSA2Ljk4MTA3IDEuNTgwMyA2LjkzODUyIDEuNTEzOTMgNi44NzQ1MUMxLjQzMTM4IDYuNzY2ODEgMS40MDcyNSA2LjY2ODAzIDEuNDE5MzUgNi41MzUzN0MxLjQ0NDMzIDYuNDMwOTIgMS41MTYzNyA2LjM0NjEzIDEuNjA4NSA2LjI4NjY2QzEuNjcyNTEgNi4yNTU2NCAxLjcyMzk5IDYuMjQ2NTIgMS43OTU0NSA2LjI0NzFaXCIgZmlsbD1cIiMwREJEN0RcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIFNlbGYtaGVhbGVkXG4gICAgICA8L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgY3FhLXJvdW5kZWQtWzRweF0gY3FhLXB5LTAuNSBjcWEtcHgtMSBjcWEtYmctWyM2MzY2RjExQV0gY3FhLW1sLTEgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHlcIiBcbiAgICAgICAgICAgKm5nSWY9XCJzdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZVwiIFxuICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInSnVtcCB0byB2aWRlbyB0aW1lJ1wiIFxuICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgICAgIChjbGljayk9XCJvbkp1bXBUb1RpbWVzdGFtcCgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LVsjNjM2MzYzXSAhY3FhLXRleHQtWzEwcHhdICFjcWEtdy1bMTBweF0gIWNxYS1oLVsxMHB4XVwiPlxuICAgICAgICAgIHBsYXlfYXJyb3dcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bOHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLWZvbnQtbm9ybWFsIGNxYS10ZXh0LVsjNjM2MzYzXVwiPlxuICAgICAgICAgIHt7IGZvcm1hdER1cmF0aW9uQ2xvY2soc3RlcD8uZXhlY3V0ZWRSZXN1bHQ/LnZpZGVvX3N0YXJ0X3RpbWUgfHwgMCkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNEZWJ1Z1wiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTAuNSBjcWEtdGV4dC1bIzlDQTNBRl1cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhc3RlcD8uaXNTdGVwR3JvdXBDaGlsZHJlblwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkVkaXRcIiAoY2xpY2spPVwib25FZGl0U3RlcCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhc3RlcD8uaXNTdGVwR3JvdXBDaGlsZHJlblwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkFkZFwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhZGRTdGVwTWVudVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdGV4dC1bMTRweF0gIWNxYS13LVsxNHB4XSAhY3FhLWgtWzE0cHhdXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtbWVudSAjYWRkU3RlcE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjcWEtYWRkLXN0ZXAtbWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiIHlQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHQgb2YgYWRkU3RlcE1lbnVPcHRpb25zXCIgKGNsaWNrKT1cIm9uQWRkU3RlcE9wdGlvblNlbGVjdChvcHQsICRldmVudClcIj5cbiAgICAgICAgICAgIHt7IG9wdC5sYWJlbCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWZmZWN0aXZlU3RlcE1vcmVNZW51T3B0aW9ucy5sZW5ndGhcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHkgZm9jdXM6Y3FhLW91dGxpbmUtbm9uZVwiIGFyaWEtbGFiZWw9XCJNb3JlIG9wdGlvbnNcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwic3RlcE1vcmVNZW51XCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNzdGVwTW9yZU1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjcWEtc3RlcC1tb3JlLW1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIiB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgb3B0IG9mIGVmZmVjdGl2ZVN0ZXBNb3JlTWVudU9wdGlvbnNcIiAoY2xpY2spPVwib25TdGVwTW9yZU9wdGlvblNlbGVjdChvcHQsICRldmVudClcIj57eyBvcHQubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjOUNBM0FGXVwiPlxuICAgICAgICB7eyBmb3JtYXREdXJhdGlvbihjb25maWc/LmR1cmF0aW9uIHx8IDApIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3ZnIFtjbGFzcy5jcWEtcm90YXRlLTE4MF09XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJjcWEtdHJhbnNpdGlvbi10cmFuc2Zvcm1cIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0zLjUgNUw3IDguNUwxMC41IDVcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLXdpZHRoPVwiMC44MzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRXhwYW5kZWQgQ29udGVudCAtLT5cbiAgPGRpdiAqbmdJZj1cImlzRXhwYW5kZWRcIiBjbGFzcz1cImNxYS1iZy1bI0ZGRkVGOV0gY3FhLW10LTEuNSBjcWEtbWwtOSBjcWEtbXItNiBjcWEtcC00XCIgc3R5bGU9XCJib3JkZXItdG9wOiAxcHggc29saWQgI0U0RTRFNDtcIj5cbiAgICA8IS0tIFByb21wdCBDYXJkIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1pdGVtcy1zdGFydCBjcWEtYmctd2hpdGUgY3FhLXJvdW5kZWQtbGcgY3FhLXAtM1wiIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI0ZFRTY4NVwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgICAgPGRpdj48c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTUuMzMzMzMgNi42NjY3NUg1LjM0TTggNi42NjY3NUg4LjAwNjY3TTEwLjY2NjcgNi42NjY3NUgxMC42NzMzTTYgMTAuNjY2N0gzLjMzMzMzQzIuOTc5NzEgMTAuNjY2NyAyLjY0MDU3IDEwLjUyNjMgMi4zOTA1MiAxMC4yNzYyQzIuMTQwNDggMTAuMDI2MiAyIDkuNjg3MDQgMiA5LjMzMzQxVjQuMDAwMDhDMiAzLjY0NjQ2IDIuMTQwNDggMy4zMDczMiAyLjM5MDUyIDMuMDU3MjdDMi42NDA1NyAyLjgwNzIyIDIuOTc5NzEgMi42NjY3NSAzLjMzMzMzIDIuNjY2NzVIMTIuNjY2N0MxMy4wMjAzIDIuNjY2NzUgMTMuMzU5NCAyLjgwNzIyIDEzLjYwOTUgMy4wNTcyN0MxMy44NTk1IDMuMzA3MzIgMTQgMy42NDY0NiAxNCA0LjAwMDA4VjkuMzMzNDFDMTQgOS42ODcwNCAxMy44NTk1IDEwLjAyNjIgMTMuNjA5NSAxMC4yNzYyQzEzLjM1OTQgMTAuNTI2MyAxMy4wMjAzIDEwLjY2NjcgMTIuNjY2NyAxMC42NjY3SDkuMzMzMzNMNiAxNC4wMDAxVjEwLjY2NjdaXCIgc3Ryb2tlPVwiI0UxNzEwMFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjQkI0RDAwXSBcIj5QUk9NUFQ8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWc/Lm9wdGltaXplZFJ1blwiIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLWZ1bGwgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtcHJpbWFyeSBjcWEtYmctWyNFQkVDRkRdXCI+XG4gICAgICAgICAgICBPcHRpbWl6ZWQgUnVuXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzBCMEIwQl1cIiBzdHlsZT1cIndvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XCIgW2lubmVySFRNTF09XCJjb25maWc/LnByb21wdFwiPjwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiBcbiAgICAgICAgY2xhc3M9XCJjcWEtcC0xLjVcIiBcbiAgICAgICAgKGNsaWNrKT1cImNvcHlQcm9tcHQoKVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidDb3B5IHByb21wdCdcIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxuICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTUuMzMzMzIgMTAuNjY2N0gzLjk5OTk5QzMuNjQ2MzcgMTAuNjY2NyAzLjMwNzIzIDEwLjUyNjMgMy4wNTcxOCAxMC4yNzYyQzIuODA3MTMgMTAuMDI2MiAyLjY2NjY2IDkuNjg3MDQgMi42NjY2NiA5LjMzMzQxVjQuMDAwMDhDMi42NjY2NiAzLjY0NjQ2IDIuODA3MTMgMy4zMDczMiAzLjA1NzE4IDMuMDU3MjdDMy4zMDcyMyAyLjgwNzIyIDMuNjQ2MzcgMi42NjY3NSAzLjk5OTk5IDIuNjY2NzVIOS4zMzMzMkM5LjY4Njk1IDIuNjY2NzUgMTAuMDI2MSAyLjgwNzIyIDEwLjI3NjEgMy4wNTcyN0MxMC41MjYyIDMuMzA3MzIgMTAuNjY2NyAzLjY0NjQ2IDEwLjY2NjcgNC4wMDAwOFY1LjMzMzQxTTYuNjY2NjYgMTMuMzMzNEgxMkMxMi4zNTM2IDEzLjMzMzQgMTIuNjkyOCAxMy4xOTI5IDEyLjk0MjggMTIuOTQyOUMxMy4xOTI4IDEyLjY5MjggMTMuMzMzMyAxMi4zNTM3IDEzLjMzMzMgMTIuMDAwMVY2LjY2Njc1QzEzLjMzMzMgNi4zMTMxMyAxMy4xOTI4IDUuOTczOTkgMTIuOTQyOCA1LjcyMzk0QzEyLjY5MjggNS40NzM4OSAxMi4zNTM2IDUuMzMzNDEgMTIgNS4zMzM0MUg2LjY2NjY2QzYuMzEzMDMgNS4zMzM0MSA1Ljk3MzkgNS40NzM4OSA1LjcyMzg1IDUuNzIzOTRDNS40NzM4IDUuOTczOTkgNS4zMzMzMiA2LjMxMzEzIDUuMzMzMzIgNi42NjY3NVYxMi4wMDAxQzUuMzMzMzIgMTIuMzUzNyA1LjQ3MzggMTIuNjkyOCA1LjcyMzg1IDEyLjk0MjlDNS45NzM5IDEzLjE5MjkgNi4zMTMwMyAxMy4zMzM0IDYuNjY2NjYgMTMuMzMzNFpcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBUYWIgTmF2aWdhdGlvbiAtLT5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1mbGV4LXdyYXAgY3FhLW15LTEuNVwiIHN0eWxlPVwiYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFNEU0RTRcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFRhYignYWN0aW9uLXRyYWNlJylcIlxuICAgICAgICBbbmdDbGFzc109XCJ7JyFjcWEtdGV4dC1bI0JCNEQwMF0nOiBzZWxlY3RlZFRhYiA9PT0gJ2FjdGlvbi10cmFjZSd9XCJcbiAgICAgICAgW25nU3R5bGVdPVwieydib3JkZXItYm90dG9tJzogc2VsZWN0ZWRUYWIgPT09ICdhY3Rpb24tdHJhY2UnID8gJzJweCBzb2xpZCAjRkU5QTAwJyA6ICcycHggc29saWQgdHJhbnNwYXJlbnQnfVwiXG4gICAgICAgIGNsYXNzPVwiY3FhLXB5LTIgY3FhLXB4LTMgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctNCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM2MzYzNjNdIGNxYS10cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICBBY3Rpb24gVHJhY2VcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWcgJiYgY29uZmlnLmFjdGlvbnMgJiYgY29uZmlnLmFjdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiY3FhLWJnLVsjRjVGNUY1XSBjcWEtdGV4dC1jdXJyZW50IGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTMuM3B4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXJvdW5kZWQtZnVsbCBjcWEtdy1bMTZweF0gY3FhLWgtWzE2cHhdIGNxYS1taW4tdy1bMTZweF0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICB7eyBjb25maWcuYWN0aW9ucy5sZW5ndGggfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RUYWIoJ3BsYW5uZXItdGltZWxpbmUnKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnIWNxYS10ZXh0LVsjQkI0RDAwXSc6IHNlbGVjdGVkVGFiID09PSAncGxhbm5lci10aW1lbGluZSd9XCJcbiAgICAgICAgW25nU3R5bGVdPVwieydib3JkZXItYm90dG9tJzogc2VsZWN0ZWRUYWIgPT09ICdwbGFubmVyLXRpbWVsaW5lJyA/ICcycHggc29saWQgI0ZFOUEwMCcgOiAnMnB4IHNvbGlkIHRyYW5zcGFyZW50J31cIlxuICAgICAgICBjbGFzcz1cImNxYS1weS0yIGNxYS1weC0zIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjUgY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLTQgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXSBjcWEtdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgUGxhbm5lciBUaW1lbGluZVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RUYWIoJ2FpLXJlYXNvbmluZycpXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieychY3FhLXRleHQtWyNCQjREMDBdJzogc2VsZWN0ZWRUYWIgPT09ICdhaS1yZWFzb25pbmcnfVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsnYm9yZGVyLWJvdHRvbSc6IHNlbGVjdGVkVGFiID09PSAnYWktcmVhc29uaW5nJyA/ICcycHggc29saWQgI0ZFOUEwMCcgOiAnMnB4IHNvbGlkIHRyYW5zcGFyZW50J31cIlxuICAgICAgICBjbGFzcz1cImNxYS1weS0yIGNxYS1weC0zIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjUgY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLTQgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXSBjcWEtdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgQUkgUmVhc29uaW5nXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8IS0tIFRhYiBDb250ZW50IC0tPlxuICAgIDwhLS0gQWN0aW9uIFRyYWNlIFRhYiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdhY3Rpb24tdHJhY2UnXCI+XG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjcWEtcm91bmRlZC1tZCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtbXktMS41IGNxYS1wLTIgY3FhLWJnLVsjRUZGNkZGXVwiIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI0JFREJGRlwiPlxuICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNOC42NjY2NyA0LjY2Njc1SDE0TTE0IDQuNjY2NzVWMTAuMDAwMU0xNCA0LjY2Njc1TDguNjY2NjcgMTAuMDAwMUw2IDcuMzMzNDFMMiAxMS4zMzM0XCIgc3Ryb2tlPVwiIzE1NURGQ1wiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMxNDQ3RTZdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj5cbiAgICAgICAgICA8Yj57eyBjb25maWc/LmFjdGlvbnM/Lmxlbmd0aCB8fCAwIH19IGFjdGlvbnM8L2I+IFxuICAgICAgICAgIGZyb20gcHJldmlvdXMgcnVuc1xuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1teS0xLjVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGNvbmZpZz8uYWN0aW9uczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUFjdGlvbklkXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24/LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLWZvbnQtaW50ZXIgY3FhLXJvdW5kZWQtbWQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXB4LTIgY3FhLXB5LTFcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGFjdGlvbj8ucmVhc29uaW5nID8gJyNFRUYyRkYnIDogJyNGN0ZBRkMnLFxuICAgICAgICAgICAgICAnYm9yZGVyJzogYWN0aW9uPy5yZWFzb25pbmcgPyAnMXB4IHNvbGlkICNDNEI1RkQnIDogJzFweCBzb2xpZCAjQkVEQkZGJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhYWN0aW9uPy5yZWFzb25pbmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgcng9XCI4XCIgZmlsbD1cIiNEQkVBRkVcIi8+PHBhdGggZD1cIk01LjA4MzM3IDguNDE2NzVMNi43NTAwNCAxMC4wODM0TDEwLjkxNjcgNS45MTY3NVwiIHN0cm9rZT1cIiMxNTVERkNcIiBzdHJva2Utd2lkdGg9XCIwLjgzMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImFjdGlvbj8ucmVhc29uaW5nXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiOFwiIGZpbGw9XCIjZGRkN2Y1XCIvPjxwYXRoIGQ9XCJNNS4wODMzNyA4LjQxNjc1TDYuNzUwMDQgMTAuMDgzNEwxMC45MTY3IDUuOTE2NzVcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLXdpZHRoPVwiMC44MzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPG1hdC1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwiIWNxYS13LTQgIWNxYS1oLTQgIWNxYS10ZXh0LVsxNnB4XSBjcWEtdGV4dC15ZWxsb3ctNTAwXCI+XG4gICAgICAgICAgICAgIHt7IGdldEFjdGlvbkljb24oYWN0aW9uLnR5cGUpIH19XG4gICAgICAgICAgICA8L21hdC1pY29uPiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWFjdGlvbj8ucmVhc29uaW5nXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNFwiIGZpbGw9XCIjRkVGM0M2XCIvPjxwYXRoIGQ9XCJNMTAuNSA5VjUuNUw2IDExSDkuNVYxNC41TDE0IDlIMTAuNVpcIiBzdHJva2U9XCIjRTE3MTAwXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJhY3Rpb24/LnJlYXNvbmluZ1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNFwiIGZpbGw9XCIjZGRkN2Y1XCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjgzMTUgMTAuNUgxMS4xNjhNMTAgMy41VjRNMTMuMTgyIDQuODE4TDEyLjgyODUgNS4xNzE1TTE0LjUgOEgxNE02IDhINS41TTcuMTcxNSA1LjE3MTVMNi44MTggNC44MThNOC4yMzIgOS43NjhDNy44ODI0MyA5LjQxODM0IDcuNjQ0NCA4Ljk3Mjg4IDcuNTQ3OTkgOC40ODc5NUM3LjQ1MTU4IDguMDAzMDEgNy41MDExMyA3LjUwMDM4IDcuNjkwMzYgNy4wNDM2MUM3Ljg3OTYgNi41ODY4MyA4LjIwMDAzIDYuMTk2NDIgOC42MTExNCA1LjkyMTc1QzkuMDIyMjUgNS42NDcwNyA5LjUwNTU3IDUuNTAwNDcgMTAgNS41MDA0N0MxMC40OTQ0IDUuNTAwNDcgMTAuOTc3NyA1LjY0NzA3IDExLjM4ODkgNS45MjE3NUMxMS44IDYuMTk2NDIgMTIuMTIwNCA2LjU4NjgzIDEyLjMwOTYgNy4wNDM2MUMxMi40OTg5IDcuNTAwMzggMTIuNTQ4NCA4LjAwMzAxIDEyLjQ1MiA4LjQ4Nzk1QzEyLjM1NTYgOC45NzI4OCAxMi4xMTc2IDkuNDE4MzQgMTEuNzY4IDkuNzY4TDExLjQ5NCAxMC4wNDE1QzExLjMzNzQgMTAuMTk4MiAxMS4yMTMxIDEwLjM4NDIgMTEuMTI4MyAxMC41ODg5QzExLjA0MzYgMTAuNzkzNiAxMSAxMS4wMTI5IDExIDExLjIzNDVWMTEuNUMxMSAxMS43NjUyIDEwLjg5NDYgMTIuMDE5NiAxMC43MDcxIDEyLjIwNzFDMTAuNTE5NiAxMi4zOTQ2IDEwLjI2NTIgMTIuNSAxMCAxMi41QzkuNzM0NzggMTIuNSA5LjQ4MDQzIDEyLjM5NDYgOS4yOTI4OSAxMi4yMDcxQzkuMTA1MzYgMTIuMDE5NiA5IDExLjc2NTIgOSAxMS41VjExLjIzNDVDOSAxMC43ODcgOC44MjIgMTAuMzU3NSA4LjUwNiAxMC4wNDE1TDguMjMyIDkuNzY4WlwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtc2VtaWJvbGRcIiBzdHlsZT1cIndvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogYWN0aW9uPy5yZWFzb25pbmcgPyAnIzRDMUQ5NScgOiAnIzBCMEIwQicgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJhY3Rpb24uY29uZmlkZW5jZVwiIGNsYXNzPVwiY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwMEE2M0VdXCI+XG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5jb25maWRlbmNlIH19JVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWZvbnQtaW50ZXIgY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M11cIj5cbiAgICAgICAgICAgICAge3sgZm9ybWF0RHVyYXRpb24oYWN0aW9uLmR1cmF0aW9uKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPCEtLSA8ZGl2Pjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNC41IDIuNUw4IDZMNC41IDkuNVwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+IC0tPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzTGl2ZSAmJiBzaG93VGhpbmtpbmdMb2dcIiBjbGFzcz1cImNxYS1haS1hZ2VudC10aGlua2luZy1sb2cgY3FhLXJvdW5kZWQtbWQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXB4LTMgY3FhLXB5LTIgY3FhLWJnLVsjRjdGQUZDXSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNCRURCRkZdXCIgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCAjQkVEQkZGO1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYWktYWdlbnQtdGhpbmtpbmctZG90cyBjcWEtZmxleCBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWFpLWFnZW50LXRoaW5raW5nLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWFpLWFnZW50LXRoaW5raW5nLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWFpLWFnZW50LXRoaW5raW5nLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzM0MTU1XVwiPlRoaW5raW5nPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQbGFubmVyIFRpbWVsaW5lIFRhYiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdwbGFubmVyLXRpbWVsaW5lJ1wiIGNsYXNzPVwiY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtc20gY3FhLXRleHQtZ3JheS02MDBcIj5cbiAgICAgIFBsYW5uZXIgdGltZWxpbmUgY29udGVudCB3b3VsZCBnbyBoZXJlXG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEFJIFJlYXNvbmluZyBUYWIgLS0+XG4gICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnYWktcmVhc29uaW5nJ1wiIGNsYXNzPVwiY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtc20gY3FhLXRleHQtZ3JheS02MDBcIj5cbiAgICAgIEFJIHJlYXNvbmluZyBjb250ZW50IHdvdWxkIGdvIGhlcmVcbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cblxuICAgICAgPCEtLSBTZWxmIEhlYWwgQW5hbHlzaXMgLS0+XG4gICAgPGNxYS1zZWxmLWhlYWwtYW5hbHlzaXMgXG4gICAgICAqbmdJZj1cInNlbGZIZWFsQW5hbHlzaXNcIiBcbiAgICAgIFtpZF09XCJzdGVwPy50ZXN0U3RlcElkXCJcbiAgICAgIFtvcmlnaW5hbExvY2F0b3JdPVwic2VsZkhlYWxBbmFseXNpcy5vcmlnaW5hbExvY2F0b3JcIlxuICAgICAgW2hlYWxlZExvY2F0b3JdPVwic2VsZkhlYWxBbmFseXNpcy5oZWFsZWRMb2NhdG9yXCJcbiAgICAgIFtjb25maWRlbmNlXT1cInNlbGZIZWFsQW5hbHlzaXMuY29uZmlkZW5jZVwiXG4gICAgICBbaGVhbE1ldGhvZF09XCJzZWxmSGVhbEFuYWx5c2lzLmhlYWxNZXRob2RcIlxuICAgICAgW2lzTG9hZGluZ0FjY2VwdF09XCJnZXRTZWxmSGVhbExvYWRpbmdTdGF0ZXNIYW5kbGVyID8gZ2V0U2VsZkhlYWxMb2FkaW5nU3RhdGVzSGFuZGxlcigpLmlzTG9hZGluZ0FjY2VwdD8uW3N0ZXA/LnRlc3RTdGVwSWRdIDogZmFsc2VcIlxuICAgICAgW2lzTG9hZGluZ01vZGlmeUFjY2VwdF09XCJnZXRTZWxmSGVhbExvYWRpbmdTdGF0ZXNIYW5kbGVyID8gZ2V0U2VsZkhlYWxMb2FkaW5nU3RhdGVzSGFuZGxlcigpLmlzTG9hZGluZ01vZGlmeUFjY2VwdD8uW3N0ZXA/LnRlc3RTdGVwSWRdIDogZmFsc2VcIlxuICAgICAgKGFjdGlvbik9XCJvblNlbGZIZWFsQWN0aW9uKCRldmVudClcIj5cbiAgICA8L2NxYS1zZWxmLWhlYWwtYW5hbHlzaXM+XG5cbiAgPCEtLSBUaW1pbmcgQnJlYWtkb3duIC0tPlxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnPy50aW1pbmdCcmVha2Rvd25cIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktZW5kIGNxYS1nYXAtNSBjcWEtcHQtMS41IGNxYS1weC00IGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjOUNBM0FGXVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgPGRpdj48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYgM1Y2TDggN1wiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICA8c3Bhbj5UaW1pbmcgYnJlYWtkb3duPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtZGlhbG9nLW11dGVkIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICBBcHAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1ncmF5LTcwMFwiPnt7IGZvcm1hdER1cmF0aW9uKGNvbmZpZz8udGltaW5nQnJlYWtkb3duPy5hcHAgfHwgMCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxMVwiIHZpZXdCb3g9XCIwIDAgMSAxMVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNLTMuODE0N2UtMDYgMTAuMzJWLTcuMTUyNTZlLTA3SDAuOTU5OTk2VjEwLjMySC0zLjgxNDdlLTA2WlwiIGZpbGw9XCIjRTVFN0VCXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgVG9vbCA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LWdyYXktNzAwXCI+e3sgZm9ybWF0RHVyYXRpb24oY29uZmlnPy50aW1pbmdCcmVha2Rvd24/LnRvb2wgfHwgMCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVmlldyBNb3JlIEZhaWxlZCBTdGVwIEJ1dHRvbiAtIHNob3duIHdoZW4gZXhwYW5kZWQgYW5kIGZhaWx1cmUgZGV0YWlscyBleGlzdCAtLT5cbiAgPGRpdiAqbmdJZj1cInNob3dWaWV3TW9yZUJ1dHRvblwiIGNsYXNzPVwiY3FhLW10LTIgY3FhLXB4LTRcIj5cbiAgICA8Y3FhLXZpZXctbW9yZS1mYWlsZWQtc3RlcC1idXR0b25cbiAgICAgIFt0aW1pbmdCcmVha2Rvd25dPVwidGltaW5nQnJlYWtkb3duXCJcbiAgICAgIFtzdWJTdGVwc109XCJnZXRTdWJTdGVwc0ZvckZhaWxlZFN0ZXAoKVwiXG4gICAgICBbZmFpbHVyZURldGFpbHNdPVwiZmFpbHVyZURldGFpbHNcIlxuICAgICAgW2lzRXhwYW5kZWRdPVwic2hvd0ZhaWxlZFN0ZXBEZXRhaWxzXCJcbiAgICAgICh2aWV3TW9yZUNsaWNrKT1cIm9uVmlld01vcmVGYWlsZWRTdGVwQ2xpY2soJGV2ZW50KVwiPlxuICAgIDwvY3FhLXZpZXctbW9yZS1mYWlsZWQtc3RlcC1idXR0b24+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVXBkYXRlZCBGYWlsZWQgU3RlcCBDb21wb25lbnQgLSBzaG93biB3aGVuIGJ1dHRvbiBpcyBjbGlja2VkIC0tPlxuICA8ZGl2ICpuZ0lmPVwic2hvd1ZpZXdNb3JlQnV0dG9uICYmIHNob3dGYWlsZWRTdGVwRGV0YWlscyAmJiBmYWlsdXJlRGV0YWlsc1wiIGNsYXNzPVwiY3FhLW10LTIgY3FhLXB4LTRcIj5cbiAgICA8Y3FhLXVwZGF0ZWQtZmFpbGVkLXN0ZXBcbiAgICAgIFt0ZXN0U3RlcFJlc3VsdElkXT1cInRlc3RTdGVwUmVzdWx0SWRcIlxuICAgICAgW3RpbWluZ0JyZWFrZG93bl09XCJ0aW1pbmdCcmVha2Rvd25cIlxuICAgICAgW2V4cGFuZGVkXT1cInRydWVcIlxuICAgICAgW3N1YlN0ZXBzXT1cImdldFN1YlN0ZXBzRm9yRmFpbGVkU3RlcCgpXCJcbiAgICAgIFtmYWlsdXJlRGV0YWlsc109XCJmYWlsdXJlRGV0YWlsc1wiXG4gICAgICBbcmVhc29uaW5nXT1cInJlYXNvbmluZ1wiXG4gICAgICBbY29uZmlkZW5jZV09XCJjb25maWRlbmNlXCJcbiAgICAgIFtpc1VwbG9hZGluZ0Jhc2VsaW5lXT1cImlzVXBsb2FkaW5nQmFzZWxpbmVcIlxuICAgICAgW2lzTWFraW5nQ3VycmVudEJhc2VsaW5lXT1cImlzTWFraW5nQ3VycmVudEJhc2VsaW5lXCJcbiAgICAgIFtpc0xpdmVdPVwiaXNMaXZlXCJcbiAgICAgIChtYWtlQ3VycmVudEJhc2VsaW5lKT1cIm9uTWFrZUN1cnJlbnRCYXNlbGluZSgkZXZlbnQpXCJcbiAgICAgICh1cGxvYWRCYXNlbGluZSk9XCJvblVwbG9hZEJhc2VsaW5lKCRldmVudClcIlxuICAgICAgKGFuYWx5emUpPVwib25BbmFseXplKClcIlxuICAgICAgKHZpZXdGdWxsTG9ncyk9XCJvblZpZXdGdWxsTG9ncygpXCI+XG4gICAgPC9jcWEtdXBkYXRlZC1mYWlsZWQtc3RlcD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
409
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYWdlbnQtc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2V4ZWN1dGlvbi1zY3JlZW4vYWktYWdlbnQtc3RlcC9haS1hZ2VudC1zdGVwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZXhlY3V0aW9uLXNjcmVlbi9haS1hZ2VudC1zdGVwL2FpLWFnZW50LXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUE2TCw2QkFBNkIsRUFBc0IsOEJBQThCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4VCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7OztBQVMzRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsaUJBQWlCO0lBTjNEOztRQXlCVyxZQUFPLEdBQWEsS0FBSyxDQUFDO1FBQzFCLGtCQUFhLEdBQWEsS0FBSyxDQUFDO1FBQ2hDLGtCQUFhLEdBQWEsS0FBSyxDQUFDO1FBQy9CLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDL0MsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDNUQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFDL0QsdUJBQWtCLEdBQXdCLDZCQUE2QixDQUFDO1FBQ3hFLHdCQUFtQixHQUF5Qiw4QkFBOEIsQ0FBQztRQUMzRSx3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDekIsNEJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBSzdCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFnQmpDLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQXFCN0Isd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFDbkUsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUN6RCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNuQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUszRCx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFFNUMsZ0JBQVcsR0FBeUQsY0FBYyxDQUFDO1FBRW5GLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLCtCQUEwQixHQUFHLENBQUMsQ0FBQztRQUMvQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDekIsNEJBQXVCLEdBQUcsRUFBRSxDQUFDO0tBNlN0QztJQWhXQyxJQUFJLFVBQVU7UUFDWixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3RCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFJRCxvR0FBb0c7SUFDcEcsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQscUdBQXFHO0lBQ3JHLElBQUksNEJBQTRCO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7UUFDNUMsTUFBTSxPQUFPLEdBQVEsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTFCLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDbkQsNkZBQTZGO1FBQzdGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxZQUFZLENBQUM7UUFDdkUsSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRW5DLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssV0FBVyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQW9CRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEgsTUFBTSxPQUFPLEdBQ1gsYUFBYSxLQUFLLElBQUksQ0FBQywwQkFBMEI7WUFDakQsYUFBYSxLQUFLLElBQUksQ0FBQyxtQkFBbUI7WUFDMUMsVUFBVSxLQUFLLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztRQUM5QyxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQywwQkFBMEIsR0FBRyxhQUFhLENBQUM7WUFDaEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGFBQWEsQ0FBQztZQUN6QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsVUFBVSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakUsTUFBTSxZQUFZLEdBQUcsV0FBVyxLQUFLLFFBQVEsSUFBSSxXQUFXLEtBQUssU0FBUyxDQUFDO1FBRTNFLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FDdEMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssd0JBQXdCLENBQzlELENBQUM7UUFDRixNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQ3pDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLHVCQUF1QixDQUM3RCxDQUFDO1FBQ0YsTUFBTSxTQUFTLEdBQ2IsWUFBWTtZQUNaLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtnQkFDdEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNwRCxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLFNBQVMsQ0FBQztZQUMzQyxDQUFDLENBQUM7WUFDRixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssU0FBUyxDQUFDO1lBQ3JGLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssaUJBQWlCLENBQUMsQ0FBQztRQUV2RSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksbUJBQW1CLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNyRyxDQUFDO0lBRVEsUUFBUTtRQUNmLHVGQUF1RjtRQUN2RixNQUFNLFdBQVcsR0FBSSxJQUFZLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUVwRSw0RkFBNEY7UUFDNUYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxXQUFXLElBQUksRUFBRSxDQUFDO1FBRXZFLG9IQUFvSDtRQUNwSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxJQUFJLFdBQVcsSUFBSSxVQUFVLElBQUksRUFBRSxDQUFDO1FBRTdHLHNDQUFzQztRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxJQUFJLFNBQVM7WUFDOUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsS0FBSyxFQUFFLFVBQVU7WUFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsVUFBVTtZQUN2QixNQUFNLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFO1lBQ2xELFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRTtZQUMzQixXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQ25CLENBQUM7UUFFdkIsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksY0FBYyxDQUFDO0lBQy9ELENBQUM7SUFFQyxXQUFXLENBQUMsT0FBc0I7UUFDbEMscURBQXFEO1FBQ3JELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNO2dCQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFDdEcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3JCLCtDQUErQztnQkFDL0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ2pFO1lBQ0QsNEZBQTRGO1lBQzVGLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMvRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQzlELElBQUksUUFBUSxFQUFFO29CQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUN0RTthQUNGO1lBQ0QseURBQXlEO1lBQ3pELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUNoRTtZQUNELHlEQUF5RDtZQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDakM7U0FDRjtRQUVELGdEQUFnRDtRQUNoRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN0QixNQUFNLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztZQUM1RSxNQUFNLG9CQUFvQixHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFFekQsa0VBQWtFO1lBQ2xFLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztnQkFDekMsOEVBQThFO2dCQUM5RSx3RkFBd0Y7Z0JBQ3hGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQzVDLE1BQU0sUUFBUSxHQUFJLElBQVksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO29CQUN0RixJQUFJLFFBQVEsRUFBRTt3QkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztxQkFDdEU7aUJBQ0Y7YUFDRjtZQUVELDZFQUE2RTtZQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVc7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUztnQkFDekIsb0JBQW9CLEdBQUcscUJBQXFCO2dCQUM1QyxJQUFJLENBQUMsV0FBVztnQkFDaEIsQ0FBQyxJQUFJLENBQUMsVUFBVTtnQkFDaEIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNuQjtTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsWUFBWSxJQUFJLENBQUMsQ0FBQztTQUMvRDtRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFlBQVksQ0FBQztTQUNoRTtRQUVELGlFQUFpRTtRQUNqRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUU7WUFDdkQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDeEQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGFBQWEsSUFBSSxFQUFFLENBQUM7WUFFekQsb0ZBQW9GO1lBQ3BGLElBQUksU0FBUyxLQUFLLFNBQVMsSUFBSSxTQUFTLEtBQUssU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUNsRiwrREFBK0Q7Z0JBQy9ELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUNuQjthQUNGO1lBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7U0FDakM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUN0RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVPLFVBQVU7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxTQUFTLENBQUMsR0FBeUQ7UUFDakUsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWEsQ0FBQyxVQUFrQztRQUM5QyxPQUFPLFVBQVUsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxlQUFlLENBQUMsSUFBWTtRQUMxQixTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRTtZQUN2QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDdkMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVELHlCQUF5QixDQUFDLFFBQWlCO1FBQ3pDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLENBQUM7SUFDeEMsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixxRUFBcUU7UUFDckUsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QyxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDYixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1lBQ3JCLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtTQUMxQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUErQjtRQUNuRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUEwQjtRQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUEwQjtRQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWEsRUFBRSxNQUFxQjtRQUNsRCxPQUFPLE1BQU0sRUFBRSxFQUFFLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDcEQsQ0FDRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN2RSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxPQUFPLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQzt1QkFDNUksT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNoRCxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQ2pJLENBQUE7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBWTtRQUM1QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFZO1FBQ3JCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBeUIsRUFBRSxLQUFZO1FBQzNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxNQUEwQixFQUFFLEtBQVk7UUFDN0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLElBQUksS0FBSyxFQUFFO1lBQ1QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUN6QjtRQUNELEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNmLElBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFDO1lBQ2xCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7U0FDcEM7UUFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDNUMsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUM1QztTQUNGO0lBQ0gsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVk7UUFDNUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLHNCQUFzQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7WUFDcEosTUFBTSxTQUFTLEdBQUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsS0FBSyxRQUFRO2dCQUM3RSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCO2dCQUMzQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUM7WUFDekMsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxJQUFJLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQzthQUNwRDtTQUNGO0lBQ0gsQ0FBQzs7aUhBbllVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLDQ0Q0NYakMsa3cvQkFtVUE7MkZEeFRhLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxtQkFBbUIsUUFHdkIsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUU7OEJBSWhDLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBb0NJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgRG9DaGVjayB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlBZ2VudFN0ZXBDb25maWcsIEFJQWdlbnRBY3Rpb24sIFN0ZXBTdGF0dXMsIFRpbWluZ0JyZWFrZG93biwgRmFpbHVyZURldGFpbHMsIFN1YlN0ZXAsIFNlbGZIZWFsQW5hbHlzaXNEYXRhLCBTZWxmSGVhbEFjdGlvbiwgRXhlY3V0aW9uU3RlcENvbmZpZywgU2VsZkhlYWxBY3Rpb25FdmVudCwgQWRkU3RlcE1lbnVPcHRpb24sIERFRkFVTFRfQUREX1NURVBfTUVOVV9PUFRJT05TLCBTdGVwTW9yZU1lbnVPcHRpb24sIERFRkFVTFRfU1RFUF9NT1JFX01FTlVfT1BUSU9OUyB9IGZyb20gJy4uL2V4ZWN1dGlvbi1zdGVwLm1vZGVscyc7XG5pbXBvcnQgeyBCYXNlU3RlcENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2Utc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgbWFrZUN1cnJlbnRCYXNlbGluZUV2ZW50LCB1cGxvYWRCYXNlbGluZUV2ZW50IH0gZnJvbSAnLi4vdmlzdWFsLWNvbXBhcmlzb24vdmlzdWFsLWNvbXBhcmlzb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWFpLWFnZW50LXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWktYWdlbnQtc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW10sXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCBjcWEtdy1mdWxsJyB9XG59KVxuZXhwb3J0IGNsYXNzIEFJQWdlbnRTdGVwQ29tcG9uZW50IGV4dGVuZHMgQmFzZVN0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERvQ2hlY2sge1xuICAvLyBJbmRpdmlkdWFsIGlucHV0c1xuICBASW5wdXQoKSBpZCE6IHN0cmluZztcbiAgQElucHV0KCkgdGVzdFN0ZXBSZXN1bHRJZCE6IHN0cmluZztcbiAgQElucHV0KCkgc3RlcE51bWJlciE6IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN0YXR1cyE6IFN0ZXBTdGF0dXM7XG4gIEBJbnB1dCgpIGR1cmF0aW9uITogbnVtYmVyO1xuICBASW5wdXQoKSB0aW1pbmdCcmVha2Rvd24/OiBUaW1pbmdCcmVha2Rvd247XG4gIEBJbnB1dCgpIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgcHJvbXB0ITogc3RyaW5nO1xuICBASW5wdXQoKSBvcHRpbWl6ZWRSdW4/OiBib29sZWFuO1xuICBASW5wdXQoKSBhY3Rpb25Db3VudD86IG51bWJlcjtcbiAgQElucHV0KCkgYWN0aW9ucz86IEFJQWdlbnRBY3Rpb25bXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRUYWJJbnB1dD86ICdhY3Rpb24tdHJhY2UnIHwgJ3BsYW5uZXItdGltZWxpbmUnIHwgJ2FpLXJlYXNvbmluZyc7XG4gIEBJbnB1dCgpIGZhaWx1cmVEZXRhaWxzPzogRmFpbHVyZURldGFpbHM7XG4gIEBJbnB1dCgpIHJlYXNvbmluZz86IHN0cmluZ1tdO1xuICBASW5wdXQoKSBjb25maWRlbmNlPzogc3RyaW5nO1xuICBASW5wdXQoKSBzdGVwRGVsZXRlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGlzRGVidWc/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGRlYnVnUG9pbnRTZXQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBhcmVudFNraXBwZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBkZWJ1Z1BvaW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZWRpdFN0ZXAgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBhZGRTdGVwT3B0aW9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxBZGRTdGVwTWVudU9wdGlvbj4oKTtcbiAgQE91dHB1dCgpIHN0ZXBNb3JlT3B0aW9uU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxTdGVwTW9yZU1lbnVPcHRpb24+KCk7XG4gIEBJbnB1dCgpIGFkZFN0ZXBNZW51T3B0aW9uczogQWRkU3RlcE1lbnVPcHRpb25bXSA9IERFRkFVTFRfQUREX1NURVBfTUVOVV9PUFRJT05TO1xuICBASW5wdXQoKSBzdGVwTW9yZU1lbnVPcHRpb25zOiBTdGVwTW9yZU1lbnVPcHRpb25bXSA9IERFRkFVTFRfU1RFUF9NT1JFX01FTlVfT1BUSU9OUztcbiAgQElucHV0KCkgaXNVcGxvYWRpbmdCYXNlbGluZSA9IHt9O1xuICBASW5wdXQoKSBpc01ha2luZ0N1cnJlbnRCYXNlbGluZSA9IHt9O1xuICBASW5wdXQoKSBzZWxmSGVhbEFuYWx5c2lzPzogU2VsZkhlYWxBbmFseXNpc0RhdGE7XG4gIEBJbnB1dCgpIGdldFNlbGZIZWFsTG9hZGluZ1N0YXRlc0hhbmRsZXI/OiAoKSA9PiB7IGlzTG9hZGluZ0FjY2VwdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH07IGlzTG9hZGluZ01vZGlmeUFjY2VwdDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfTtcbiAgQElucHV0KCkgb25TdGVwQ2xpY2tIYW5kbGVyPzogKHN0ZXA6IEV4ZWN1dGlvblN0ZXBDb25maWcsIGV2ZW50PzogRXZlbnQpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIGp1bXBUb1RpbWVzdGFtcEhhbmRsZXI/OiAodGltZXN0YW1wOiBudW1iZXIsIHRlc3RTdGVwSWQ/OiBudW1iZXIgfCBzdHJpbmcpID0+IHZvaWQ7XG4gIEBJbnB1dCgpIGlzTGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdGVwPzogYW55O1xuICBnZXQgc3RlcEJhZGdlcygpOiAoJ3NraXBwZWQnIHwgJ2VkaXRlZCcgfCAnYWRkZWQnIHwgJ3JlbW92ZWQnKVtdIHtcbiAgICBjb25zdCBiYWRnZSA9IHRoaXMuc3RlcD8uc3RlcEJhZGdlO1xuICAgIGlmICghYmFkZ2UpIHJldHVybiBbXTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShiYWRnZSkgPyBiYWRnZSA6IFtiYWRnZV07XG4gIH1cblxuICBnZXQgaXNTa2lwcGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBCYWRnZXMuaW5jbHVkZXMoJ3NraXBwZWQnKTtcbiAgfVxuXG4gIGdldCBpc1N0ZXBEZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBCYWRnZXMuaW5jbHVkZXMoJ3JlbW92ZWQnKTtcbiAgfVxuXG4gIHNob3dGYWlsZWRTdGVwRGV0YWlsczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTaG93IGRlYnVnIGljb24gb25seSB3aGVuIHRoaXMgc3RlcCBoYXMgbm8gY2hpbGQgc3RlcHMgKGxlYWYgc3RlcDogYWx3YXlzIHNob3cgd2hlbiBpc0RlYnVnKS4gKi9cbiAgZ2V0IHNob3dEZWJ1Z0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNEZWJ1ZyA9PT0gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBQZXItc3RlcCBmaWx0ZXJlZCB0aHJlZS1kb3QgbWVudSBvcHRpb25zIChlLmcuIGhpZGUgRHVwbGljYXRlL0RlbGV0ZSBmb3Igc3RlcC1ncm91cCBjaGlsZHJlbikuICovXG4gIGdldCBlZmZlY3RpdmVTdGVwTW9yZU1lbnVPcHRpb25zKCk6IFN0ZXBNb3JlTWVudU9wdGlvbltdIHtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5zdGVwTW9yZU1lbnVPcHRpb25zIHx8IFtdO1xuICAgIGNvbnN0IHN0ZXBSZWY6IGFueSA9IHRoaXMuc3RlcDtcbiAgICBpZiAoIXN0ZXBSZWYpIHJldHVybiBiYXNlO1xuXG4gICAgY29uc3QgaXNHcm91cENoaWxkID0gISFzdGVwUmVmLmlzU3RlcEdyb3VwQ2hpbGRyZW47XG4gICAgLy8gV2hlbiBzdGVwLnN0ZXBNb3JlTWVudU9wdGlvbnMgaXMgdHJ1dGh5IE9SIHN0ZXAgaXMgYSBzdGVwLWdyb3VwIGNoaWxkLCBoaWRlIG11dGF0aW5nIGl0ZW1zXG4gICAgY29uc3Qgc3VwcHJlc3NNdXRhdGluZyA9ICEhc3RlcFJlZi5zdGVwTW9yZU1lbnVPcHRpb25zIHx8IGlzR3JvdXBDaGlsZDtcbiAgICBpZiAoIXN1cHByZXNzTXV0YXRpbmcpIHJldHVybiBiYXNlO1xuXG4gICAgcmV0dXJuIGJhc2UuZmlsdGVyKG9wdCA9PiBvcHQuaWQgIT09ICdkdXBsaWNhdGUnICYmIG9wdC5pZCAhPT0gJ2RlbGV0ZScpO1xuICB9XG5cbiAgQE91dHB1dCgpIG1ha2VDdXJyZW50QmFzZWxpbmUgPSBuZXcgRXZlbnRFbWl0dGVyPG1ha2VDdXJyZW50QmFzZWxpbmVFdmVudD4oKTtcbiAgQE91dHB1dCgpIHVwbG9hZEJhc2VsaW5lID0gbmV3IEV2ZW50RW1pdHRlcjx1cGxvYWRCYXNlbGluZUV2ZW50PigpO1xuICBAT3V0cHV0KCkgYW5hbHl6ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHZpZXdGdWxsTG9ncyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHNlbGZIZWFsQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxmSGVhbEFjdGlvbkV2ZW50PigpO1xuXG4gIC8vIENvbmZpZyBwcm9wZXJ0eSBmb3IgYmFzZSBjbGFzcyAtIGJ1aWx0IGZyb20gaW5kaXZpZHVhbCBpbnB1dHMgaW4gbmdPbkluaXRcbiAgb3ZlcnJpZGUgY29uZmlnITogQUlBZ2VudFN0ZXBDb25maWc7XG4gIHByaXZhdGUgcHJldmlvdXNTdGF0dXM/OiBTdGVwU3RhdHVzO1xuICBwcml2YXRlIHVzZXJNYW51YWxseUNsb3NlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHNlbGVjdGVkVGFiOiAnYWN0aW9uLXRyYWNlJyB8ICdwbGFubmVyLXRpbWVsaW5lJyB8ICdhaS1yZWFzb25pbmcnID0gJ2FjdGlvbi10cmFjZSc7XG5cbiAgc2hvd1RoaW5raW5nTG9nID0gZmFsc2U7XG4gIHByaXZhdGUgbGFzdFByb2Nlc3NlZEFjdGlvbnNMZW5ndGggPSAwO1xuICBwcml2YXRlIGxhc3RQcm9jZXNzZWRTdGF0dXMgPSAnJztcbiAgcHJpdmF0ZSBsYXN0UHJvY2Vzc2VkQWN0aW9uc0tleSA9ICcnO1xuXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNMaXZlKSByZXR1cm47XG4gICAgY29uc3QgYWN0aW9ucyA9IHRoaXMuYWN0aW9ucyB8fCBbXTtcbiAgICBjb25zdCBjdXJyZW50TGVuZ3RoID0gYWN0aW9ucy5sZW5ndGg7XG4gICAgY29uc3QgY3VycmVudFN0YXR1cyA9ICh0aGlzLnN0YXR1cyB8fCAnJykudG9TdHJpbmcoKTtcbiAgICBjb25zdCBhY3Rpb25zS2V5ID0gYWN0aW9ucy5tYXAoKGE6IGFueSkgPT4gYCR7YS51aVR5cGUgfHwgYS50eXBlfXwke2Euc3RhdHVzfXwke2Euc3RlcFN0YXR1cyB8fCAnJ31gKS5qb2luKCcsJyk7XG4gICAgY29uc3QgY2hhbmdlZCA9XG4gICAgICBjdXJyZW50TGVuZ3RoICE9PSB0aGlzLmxhc3RQcm9jZXNzZWRBY3Rpb25zTGVuZ3RoIHx8XG4gICAgICBjdXJyZW50U3RhdHVzICE9PSB0aGlzLmxhc3RQcm9jZXNzZWRTdGF0dXMgfHxcbiAgICAgIGFjdGlvbnNLZXkgIT09IHRoaXMubGFzdFByb2Nlc3NlZEFjdGlvbnNLZXk7XG4gICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgIHRoaXMucHJvY2Vzc0xpdmVUaGlua2luZ0xvZygpO1xuICAgICAgdGhpcy5sYXN0UHJvY2Vzc2VkQWN0aW9uc0xlbmd0aCA9IGN1cnJlbnRMZW5ndGg7XG4gICAgICB0aGlzLmxhc3RQcm9jZXNzZWRTdGF0dXMgPSBjdXJyZW50U3RhdHVzO1xuICAgICAgdGhpcy5sYXN0UHJvY2Vzc2VkQWN0aW9uc0tleSA9IGFjdGlvbnNLZXk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzTGl2ZVRoaW5raW5nTG9nKCk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLmFjdGlvbnMgfHwgW107XG4gICAgY29uc3Qgc3RhdHVzTG93ZXIgPSAodGhpcy5zdGF0dXMgfHwgJycpLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBpc1N0ZXBGYWlsZWQgPSBzdGF0dXNMb3dlciA9PT0gJ2ZhaWxlZCcgfHwgc3RhdHVzTG93ZXIgPT09ICdmYWlsdXJlJztcblxuICAgIGNvbnN0IGhhc0V4ZWN1dGlvblN0YXJ0ZWQgPSBhY3Rpb25zLnNvbWUoXG4gICAgICAoYTogYW55KSA9PiAoYS51aVR5cGUgfHwgYS50eXBlKSA9PT0gJ1NURVBfRVhFQ1VUSU9OX1NUQVJURUQnXG4gICAgKTtcbiAgICBjb25zdCBoYXNTdGVwUnVuU3VjY2Vzc2Z1bGx5ID0gYWN0aW9ucy5zb21lKFxuICAgICAgKGE6IGFueSkgPT4gKGEudWlUeXBlIHx8IGEudHlwZSkgPT09ICdTVEVQX1JVTl9TVUNDRVNTRlVMTFknXG4gICAgKTtcbiAgICBjb25zdCBoYXNGYWlsZWQgPVxuICAgICAgaXNTdGVwRmFpbGVkIHx8XG4gICAgICBhY3Rpb25zLnNvbWUoKGE6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBzID0gKGEuc3RhdHVzIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiBzID09PSAnZmFpbGVkJyB8fCBzID09PSAnZmFpbHVyZSc7XG4gICAgICB9KSB8fFxuICAgICAgYWN0aW9ucy5zb21lKChhOiBhbnkpID0+IChhLnN0ZXBTdGF0dXMgfHwgJycpLnRvU3RyaW5nKCkudG9VcHBlckNhc2UoKSA9PT0gJ0ZBSUxVUkUnKSB8fFxuICAgICAgYWN0aW9ucy5zb21lKChhOiBhbnkpID0+IChhLnVpVHlwZSB8fCBhLnR5cGUpID09PSAnU1RFUF9SVU5fRkFJTEVEJyk7XG5cbiAgICB0aGlzLnNob3dUaGlua2luZ0xvZyA9IHRoaXMuaXNMaXZlICYmIGhhc0V4ZWN1dGlvblN0YXJ0ZWQgJiYgIWhhc1N0ZXBSdW5TdWNjZXNzZnVsbHkgJiYgIWhhc0ZhaWxlZDtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEdldCBhY3Rpb24gZnJvbSBzdGVwIGlmIGF2YWlsYWJsZSAoc2V0IGJ5IHN0ZXAtcmVuZGVyZXIgZGlyZWN0bHkgb3IgdmlhIHN0ZXAgb2JqZWN0KVxuICAgIGNvbnN0IGFjdGlvblZhbHVlID0gKHRoaXMgYXMgYW55KS5hY3Rpb24gfHwgdGhpcy5zdGVwPy5hY3Rpb24gfHwgJyc7XG5cbiAgICAvLyBVc2UgdGl0bGUgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2Ugc3RlcC50aXRsZSAvIGFjdGlvbiAobWF0Y2hlcyBzZXJ2ZXIgc2hhcGUgZm9yIEFJX0FHRU5UKVxuICAgIGNvbnN0IHRpdGxlVmFsdWUgPSB0aGlzLnRpdGxlIHx8IHRoaXMuc3RlcD8udGl0bGUgfHwgYWN0aW9uVmFsdWUgfHwgJyc7XG5cbiAgICAvLyBVc2UgcHJvbXB0IGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHN0ZXAucHJvbXB0IC8gYWN0aW9uIC8gdGl0bGUgKEFQSSBvZnRlbiB1c2VzIGBwcm9tcHRgICsgYHRpdGxlYCwgbm90IGBhY3Rpb25gKVxuICAgIGNvbnN0IHByb21wdFZhbHVlID0gdGhpcy5wcm9tcHQgfHwgdGhpcy5zdGVwPy5wcm9tcHQgfHwgdGhpcy5zdGVwPy5hY3Rpb24gfHwgYWN0aW9uVmFsdWUgfHwgdGl0bGVWYWx1ZSB8fCAnJztcbiAgICBcbiAgICAvLyBCdWlsZCBjb25maWcgZnJvbSBpbmRpdmlkdWFsIGlucHV0c1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICB0ZXN0U3RlcElkOiB0aGlzLnN0ZXA/LnRlc3RTdGVwSWQgfHwgdW5kZWZpbmVkLFxuICAgICAgdGVzdFN0ZXBSZXN1bHRJZDogdGhpcy50ZXN0U3RlcFJlc3VsdElkLFxuICAgICAgc3RlcE51bWJlcjogdGhpcy5zdGVwTnVtYmVyLFxuICAgICAgdGl0bGU6IHRpdGxlVmFsdWUsXG4gICAgICBzdGF0dXM6IHRoaXMuc3RhdHVzLFxuICAgICAgZHVyYXRpb246IHRoaXMuZHVyYXRpb24sXG4gICAgICBkaXNwbGF5VHlwZTogJ2FpLWFnZW50JyxcbiAgICAgIHByb21wdDogcHJvbXB0VmFsdWUucmVwbGFjZSgnQUkgQWdlbnQnLCAnJykudHJpbSgpLFxuICAgICAgb3B0aW1pemVkUnVuOiB0aGlzLm9wdGltaXplZFJ1bixcbiAgICAgIGFjdGlvbkNvdW50OiB0aGlzLmFjdGlvbkNvdW50LFxuICAgICAgYWN0aW9uczogdGhpcy5hY3Rpb25zIHx8IFtdLFxuICAgICAgc2VsZWN0ZWRUYWI6IHRoaXMuc2VsZWN0ZWRUYWJJbnB1dCxcbiAgICAgIHN0ZXBEZWxldGVkOiB0aGlzLnN0ZXBEZWxldGVkLFxuICAgICAgdGltaW5nQnJlYWtkb3duOiB0aGlzLnRpbWluZ0JyZWFrZG93bixcbiAgICAgIGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkLFxuICAgICAgc2VsZkhlYWxBbmFseXNpczogdGhpcy5zZWxmSGVhbEFuYWx5c2lzLFxuICAgIH0gYXMgQUlBZ2VudFN0ZXBDb25maWc7XG5cbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSB0aGlzLmNvbmZpZy5zZWxlY3RlZFRhYiB8fCAnYWN0aW9uLXRyYWNlJztcbiAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vIFVwZGF0ZSB0aXRsZSBhbmQgcHJvbXB0IGluIGNvbmZpZyB3aGVuIHRoZXkgY2hhbmdlXG4gICAgaWYgKHRoaXMuY29uZmlnKSB7XG4gICAgICBpZiAoY2hhbmdlc1snc3RlcE51bWJlciddICYmIHRoaXMuY29uZmlnKSB0aGlzLmNvbmZpZy5zdGVwTnVtYmVyID0gY2hhbmdlc1snc3RlcE51bWJlciddLmN1cnJlbnRWYWx1ZTtcbiAgICAgIGlmIChjaGFuZ2VzWyd0aXRsZSddKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnRpdGxlID0gdGhpcy50aXRsZSB8fCAnJztcbiAgICAgIH1cbiAgICAgIGlmIChjaGFuZ2VzWydwcm9tcHQnXSkge1xuICAgICAgICAvLyBSZW1vdmUgJ0FJIEFnZW50JyBwcmVmaXggaWYgcHJlc2VudCBhbmQgdHJpbVxuICAgICAgICBjb25zdCBwcm9tcHRWYWx1ZSA9IHRoaXMucHJvbXB0IHx8ICcnO1xuICAgICAgICB0aGlzLmNvbmZpZy5wcm9tcHQgPSBwcm9tcHRWYWx1ZS5yZXBsYWNlKCdBSSBBZ2VudCcsICcnKS50cmltKCk7XG4gICAgICB9XG4gICAgICAvLyBTeW5jIHByb21wdCB3aGVuIHRoZSBzdGVwIHJlZmVyZW5jZSB1cGRhdGVzIChsaXZlIGV4ZWN1dGlvbik7IHVzZSBgcHJvbXB0YCwgdGhlbiBgYWN0aW9uYFxuICAgICAgaWYgKGNoYW5nZXNbJ3N0ZXAnXSAmJiAhU3RyaW5nKHRoaXMuY29uZmlnLnByb21wdCB8fCAnJykudHJpbSgpKSB7XG4gICAgICAgIGNvbnN0IGZyb21TdGVwID0gdGhpcy5zdGVwPy5wcm9tcHQgfHwgdGhpcy5zdGVwPy5hY3Rpb24gfHwgJyc7XG4gICAgICAgIGlmIChmcm9tU3RlcCkge1xuICAgICAgICAgIHRoaXMuY29uZmlnLnByb21wdCA9IFN0cmluZyhmcm9tU3RlcCkucmVwbGFjZSgnQUkgQWdlbnQnLCAnJykudHJpbSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAvLyBJZiBwcm9tcHQgaXMgbm90IHNldCBidXQgdGl0bGUgaXMsIHVzZSB0aXRsZSBhcyBwcm9tcHRcbiAgICAgIGlmICghdGhpcy5wcm9tcHQgJiYgIVN0cmluZyh0aGlzLmNvbmZpZy5wcm9tcHQgfHwgJycpLnRyaW0oKSAmJiB0aGlzLnRpdGxlKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnByb21wdCA9IHRoaXMudGl0bGUucmVwbGFjZSgnQUkgQWdlbnQnLCAnJykudHJpbSgpO1xuICAgICAgfVxuICAgICAgLy8gSWYgdGl0bGUgaXMgbm90IHNldCBidXQgcHJvbXB0IGlzLCB1c2UgcHJvbXB0IGFzIHRpdGxlXG4gICAgICBpZiAoIXRoaXMudGl0bGUgJiYgdGhpcy5wcm9tcHQgJiYgdGhpcy5jb25maWcudGl0bGUgIT09IHRoaXMucHJvbXB0KSB7XG4gICAgICAgIHRoaXMuY29uZmlnLnRpdGxlID0gdGhpcy5wcm9tcHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIHN1YlN0ZXBzIGFycmF5IHdoZW4gbmV3IG9uZXMgYXJlIGFkZGVkXG4gICAgaWYgKGNoYW5nZXNbJ2FjdGlvbnMnXSkge1xuICAgICAgY29uc3QgcHJldmlvdXNTdWJTdGVwc0NvdW50ID0gY2hhbmdlc1snYWN0aW9ucyddLnByZXZpb3VzVmFsdWU/Lmxlbmd0aCB8fCAwO1xuICAgICAgY29uc3QgY3VycmVudFN1YlN0ZXBzQ291bnQgPSAodGhpcy5hY3Rpb25zIHx8IFtdKS5sZW5ndGg7XG4gICAgICBcbiAgICAgIC8vIFN1Yi1zdGVwcyBhcmUgYXBwZW5kZWQgZXh0ZXJuYWxseSwgc28gd2UganVzdCB1cGRhdGUgdGhlIGNvbmZpZ1xuICAgICAgaWYgKHRoaXMuY29uZmlnKSB7XG4gICAgICAgIHRoaXMuY29uZmlnLmFjdGlvbnMgPSB0aGlzLmFjdGlvbnMgfHwgW107XG4gICAgICAgIC8vIElmIHByb21wdCBpcyBzdGlsbCBlbXB0eSB3aGVuIGxvZ3Mgc3RhcnQgYXJyaXZpbmcsIHN5bmMgaXQgZnJvbSBzdGVwLmFjdGlvblxuICAgICAgICAvLyAoc3RlcC1yZW5kZXJlciBzZXRzIGluc3RhbmNlLnN0ZXAgZGlyZWN0bHkgd2l0aG91dCB0cmlnZ2VyaW5nIG5nT25DaGFuZ2VzIGZvciAnc3RlcCcpXG4gICAgICAgIGlmICghU3RyaW5nKHRoaXMuY29uZmlnLnByb21wdCB8fCAnJykudHJpbSgpKSB7XG4gICAgICAgICAgY29uc3QgZmFsbGJhY2sgPSAodGhpcyBhcyBhbnkpLmFjdGlvbiB8fCB0aGlzLnN0ZXA/LnByb21wdCB8fCB0aGlzLnN0ZXA/LmFjdGlvbiB8fCAnJztcbiAgICAgICAgICBpZiAoZmFsbGJhY2spIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnByb21wdCA9IFN0cmluZyhmYWxsYmFjaykucmVwbGFjZSgnQUkgQWdlbnQnLCAnJykudHJpbSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBBdXRvLWV4cGFuZCBpZiBzdGVwIGlzIHJ1bm5pbmcgYW5kIG5ldyBzdWJTdGVwcyBhcmUgYWRkZWQgKGxvZ3MgY29taW5nIGluKVxuICAgICAgaWYgKCFjaGFuZ2VzWydhY3Rpb25zJ10uZmlyc3RDaGFuZ2UgJiYgXG4gICAgICAgICAgdGhpcy5zdGF0dXMgPT09ICdydW5uaW5nJyAmJiBcbiAgICAgICAgICBjdXJyZW50U3ViU3RlcHNDb3VudCA+IHByZXZpb3VzU3ViU3RlcHNDb3VudCAmJlxuICAgICAgICAgIHRoaXMuaGFzU3ViU3RlcHMgJiYgXG4gICAgICAgICAgIXRoaXMuaXNFeHBhbmRlZCAmJiBcbiAgICAgICAgICAhdGhpcy51c2VyTWFudWFsbHlDbG9zZWQpIHtcbiAgICAgICAgdGhpcy5hdXRvRXhwYW5kKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnICYmIGNoYW5nZXNbJ2R1cmF0aW9uJ10pIHtcbiAgICAgIHRoaXMuY29uZmlnLmR1cmF0aW9uID0gY2hhbmdlc1snZHVyYXRpb24nXT8uY3VycmVudFZhbHVlIHx8IDA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29uZmlnICYmIGNoYW5nZXNbJ3N0ZXBEZWxldGVkJ10pIHtcbiAgICAgIHRoaXMuY29uZmlnLnN0ZXBEZWxldGVkID0gY2hhbmdlc1snc3RlcERlbGV0ZWQnXT8uY3VycmVudFZhbHVlO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBzdGF0dXMgY2hhbmdlcyAtIGF1dG8tZXhwYW5kIHdoZW4gc3RlcCBzdGFydHMgZXhlY3V0aW5nXG4gICAgaWYgKGNoYW5nZXNbJ3N0YXR1cyddICYmICFjaGFuZ2VzWydzdGF0dXMnXS5maXJzdENoYW5nZSkge1xuICAgICAgY29uc3QgbmV3U3RhdHVzID0gY2hhbmdlc1snc3RhdHVzJ10/LmN1cnJlbnRWYWx1ZSB8fCAnJztcbiAgICAgIGNvbnN0IG9sZFN0YXR1cyA9IGNoYW5nZXNbJ3N0YXR1cyddPy5wcmV2aW91c1ZhbHVlIHx8ICcnO1xuICAgICAgXG4gICAgICAvLyBBdXRvLWV4cGFuZCB3aGVuIHN0YXR1cyBjaGFuZ2VzIHRvICdydW5uaW5nJyBhbmQgaGFzIHN1YlN0ZXBzIChvciB3aWxsIGhhdmUgc29vbilcbiAgICAgIGlmIChuZXdTdGF0dXMgPT09ICdydW5uaW5nJyAmJiBvbGRTdGF0dXMgIT09ICdydW5uaW5nJyAmJiAhdGhpcy51c2VyTWFudWFsbHlDbG9zZWQpIHtcbiAgICAgICAgLy8gRXhwYW5kIGltbWVkaWF0ZWx5IGlmIGFscmVhZHkgaGFzIHN1YlN0ZXBzLCBvciB3YWl0IGZvciB0aGVtXG4gICAgICAgIGlmICh0aGlzLmhhc1N1YlN0ZXBzKSB7XG4gICAgICAgICAgdGhpcy5hdXRvRXhwYW5kKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhpcy5wcmV2aW91c1N0YXR1cyA9IG5ld1N0YXR1cztcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlc1snZXhwYW5kZWQnXSAmJiB0aGlzLmV4cGFuZGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRoaXMuZXhwYW5kZWQgPz8gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvRXhwYW5kKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0V4cGFuZGVkICYmIHRoaXMuaGFzU3ViU3RlcHMpIHtcbiAgICAgIHRoaXMuaXNFeHBhbmRlZCA9IHRydWU7XG4gICAgICB0aGlzLnVzZXJNYW51YWxseUNsb3NlZCA9IGZhbHNlO1xuICAgICAgdGhpcy50b2dnbGVFeHBhbmRlZC5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBoYXNTdWJTdGVwcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zICE9PSB1bmRlZmluZWQgJiYgdGhpcy5hY3Rpb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBzZWxlY3RUYWIodGFiOiAnYWN0aW9uLXRyYWNlJyB8ICdwbGFubmVyLXRpbWVsaW5lJyB8ICdhaS1yZWFzb25pbmcnKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHRhYjtcbiAgfVxuXG4gIGdldEFjdGlvbkljb24oYWN0aW9uVHlwZTogJ2V4dHJhY3QnIHwgJ3ZhbGlkYXRlJyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGlvblR5cGUgPT09ICdleHRyYWN0JyA/ICdib2x0JyA6ICd3YXJuaW5nJztcbiAgfVxuXG4gIGNvcHlUb0NsaXBib2FyZCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0ZXh0KS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdDb3BpZWQgdG8gY2xpcGJvYXJkOicsIHRleHQpO1xuICAgIH0pLmNhdGNoKGVyciA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdGYWlsZWQgdG8gY29weSB0byBjbGlwYm9hcmQ6JywgZXJyKTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvcHlQcm9tcHQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnPy5wcm9tcHQpIHtcbiAgICAgIGNvbnN0IHRlbXBEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHRlbXBEaXYuaW5uZXJIVE1MID0gdGhpcy5jb25maWcucHJvbXB0O1xuICAgICAgY29uc3QgcGxhaW5UZXh0ID0gdGVtcERpdi50ZXh0Q29udGVudCB8fCB0ZW1wRGl2LmlubmVyVGV4dCB8fCAnJztcbiAgICAgIHRoaXMuY29weVRvQ2xpcGJvYXJkKHBsYWluVGV4dCk7XG4gICAgfVxuICB9XG5cbiAgb25WaWV3TW9yZUZhaWxlZFN0ZXBDbGljayhleHBhbmRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2hvd0ZhaWxlZFN0ZXBEZXRhaWxzID0gZXhwYW5kZWQ7XG4gIH1cblxuICBnZXRTdWJTdGVwc0ZvckZhaWxlZFN0ZXAoKTogU3ViU3RlcFtdIHtcbiAgICAvLyBDb252ZXJ0IEFJQWdlbnRBY3Rpb25bXSB0byBTdWJTdGVwW10gZm9yIHRoZSBmYWlsZWQgc3RlcCBjb21wb25lbnRcbiAgICByZXR1cm4gKHRoaXMuYWN0aW9ucyB8fCBbXSkubWFwKGFjdGlvbiA9PiAoe1xuICAgICAgaWQ6IGFjdGlvbi5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBhY3Rpb24uZGVzY3JpcHRpb24sXG4gICAgICBzdGF0dXM6IGFjdGlvbi5zdGF0dXMsXG4gICAgICBkdXJhdGlvbjogYWN0aW9uLmR1cmF0aW9uLFxuICAgIH0pKTtcbiAgfVxuXG4gIG9uTWFrZUN1cnJlbnRCYXNlbGluZShldmVudDogbWFrZUN1cnJlbnRCYXNlbGluZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5tYWtlQ3VycmVudEJhc2VsaW5lLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb25VcGxvYWRCYXNlbGluZShldmVudDogdXBsb2FkQmFzZWxpbmVFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudXBsb2FkQmFzZWxpbmUuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkFuYWx5emUoKTogdm9pZCB7XG4gICAgdGhpcy5hbmFseXplLmVtaXQoKTtcbiAgfVxuXG4gIG9uVmlld0Z1bGxMb2dzKCk6IHZvaWQge1xuICAgIHRoaXMudmlld0Z1bGxMb2dzLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2VsZkhlYWxBY3Rpb24oZXZlbnQ6IFNlbGZIZWFsQWN0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGZIZWFsQWN0aW9uLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgdHJhY2tCeUFjdGlvbklkKGluZGV4OiBudW1iZXIsIGFjdGlvbjogQUlBZ2VudEFjdGlvbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFjdGlvbj8uaWQgfHwgaW5kZXgudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGdldCBzaG93Vmlld01vcmVCdXR0b24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNFeHBhbmRlZCAmJiBCb29sZWFuKHRoaXMuZmFpbHVyZURldGFpbHMpICYmXG4gICAgICAoXG4gICAgICAgIChCb29sZWFuKHRoaXMuZmFpbHVyZURldGFpbHM/LmV4cGVjdGVkIHx8IHRoaXMuZmFpbHVyZURldGFpbHM/LmFjdHVhbCkpIHx8XG4gICAgICAgIChCb29sZWFuKHRoaXMuZmFpbHVyZURldGFpbHM/LnNjcmVlbnNob3RzPy5jdXJyZW50IHx8IHRoaXMuZmFpbHVyZURldGFpbHM/LnNjcmVlbnNob3RzPy5iYXNlbGluZSB8fCB0aGlzLmZhaWx1cmVEZXRhaWxzPy5zY3JlZW5zaG90cz8uZGlmZmVyZW5jZSlcbiAgICAgICAgICB8fCBCb29sZWFuKHRoaXMuZmFpbHVyZURldGFpbHM/LmxvZ3M/Lmxlbmd0aCkpIHx8IFxuICAgICAgICAoQm9vbGVhbih0aGlzLmZhaWx1cmVEZXRhaWxzPy5haUZpeEFwcGxpZWQgJiYgKHRoaXMuZmFpbHVyZURldGFpbHM/LmFpRml4TWVzc2FnZSB8fCB0aGlzLmNvbmZpZGVuY2UgfHwgdGhpcy5yZWFzb25pbmc/Lmxlbmd0aCkpKVxuICAgICAgKVxuICB9XG5cbiAgb25EZWJ1Z1BvaW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmRlYnVnUG9pbnRDaGFuZ2UuZW1pdCghdGhpcy5kZWJ1Z1BvaW50U2V0KTtcbiAgfVxuXG4gIG9uRWRpdFN0ZXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmVkaXRTdGVwLmVtaXQoKTtcbiAgfVxuXG4gIG9uQWRkU3RlcE9wdGlvblNlbGVjdChvcHRpb246IEFkZFN0ZXBNZW51T3B0aW9uLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuYWRkU3RlcE9wdGlvblNlbGVjdC5lbWl0KG9wdGlvbik7XG4gIH1cblxuICBvblN0ZXBNb3JlT3B0aW9uU2VsZWN0KG9wdGlvbjogU3RlcE1vcmVNZW51T3B0aW9uLCBldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuc3RlcE1vcmVPcHRpb25TZWxlY3QuZW1pdChvcHRpb24pO1xuICB9XG5cbiAgdG9nZ2xlSGVhZGVyKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gICAgc3VwZXIudG9nZ2xlKCk7XG4gICAgaWYoIXRoaXMuaXNFeHBhbmRlZCl7XG4gICAgICB0aGlzLnNob3dGYWlsZWRTdGVwRGV0YWlscyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5vblN0ZXBDbGlja0hhbmRsZXIpIHtcbiAgICAgIGNvbnN0IHN0ZXBUb1Bhc3MgPSB0aGlzLnN0ZXAgfHwgdGhpcy5jb25maWc7XG4gICAgICBpZiAoc3RlcFRvUGFzcykge1xuICAgICAgICB0aGlzLm9uU3RlcENsaWNrSGFuZGxlcihzdGVwVG9QYXNzLCBldmVudCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25KdW1wVG9UaW1lc3RhbXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKHRoaXMuanVtcFRvVGltZXN0YW1wSGFuZGxlciAmJiB0aGlzLnN0ZXA/LmV4ZWN1dGVkUmVzdWx0Py52aWRlb19zdGFydF90aW1lICE9PSB1bmRlZmluZWQgJiYgdGhpcy5zdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdGltZXN0YW1wID0gdHlwZW9mIHRoaXMuc3RlcC5leGVjdXRlZFJlc3VsdC52aWRlb19zdGFydF90aW1lID09PSAnbnVtYmVyJyBcbiAgICAgICAgPyB0aGlzLnN0ZXAuZXhlY3V0ZWRSZXN1bHQudmlkZW9fc3RhcnRfdGltZSBcbiAgICAgICAgOiBOdW1iZXIodGhpcy5zdGVwLmV4ZWN1dGVkUmVzdWx0LnZpZGVvX3N0YXJ0X3RpbWUpO1xuICAgICAgY29uc3QgdGVzdFN0ZXBJZCA9IHRoaXMuc3RlcD8udGVzdFN0ZXBJZDtcbiAgICAgIGlmIChpc0Zpbml0ZSh0aW1lc3RhbXApICYmIHRpbWVzdGFtcCA+PSAwKSB7XG4gICAgICAgIHRoaXMuanVtcFRvVGltZXN0YW1wSGFuZGxlcih0aW1lc3RhbXAsIHRlc3RTdGVwSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNxYS1mb250LWludGVyIGNxYS13LWZ1bGxcIiBbY2xhc3MuY3FhLW9wYWNpdHktNTBdPVwiaXNEZWJ1ZyAmJiBpc1NraXBwZWQgJiYgIXBhcmVudFNraXBwZWRcIiBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIhaXNEZWJ1ZyA/IG51bGwgOiBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3BhdXNlZCcgPyAnI0ZGRjlFOScgOiBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWxlZCcgPyAnI0ZFRjJGMicgOiBudWxsXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICA8IS0tIEhlYWRlciAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXAtMiBjcWEtY3Vyc29yLXBvaW50ZXJcIlxuICAgIChjbGljayk9XCJ0b2dnbGVIZWFkZXIoJGV2ZW50KVwiPlxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVidWdJY29uXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICBbbWF0VG9vbHRpcF09XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3J1bm5pbmcnID8gJ0JyZWFrcG9pbnQgY2Fubm90IGJlIHNldCBvbiBhIHJ1bm5pbmcgc3RlcCcgOiAoaXNTdGVwRGVsZXRlZCA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gZGVsZXRlZCBzdGVwcycgOiAoKCEhcGFyZW50U2tpcHBlZCAmJiAhc3RlcD8uZGVidWdQb2ludERpc2FibGVkKSA/ICdCcmVha3BvaW50IGNhbm5vdCBiZSBzZXQgb24gYSBydW5uaW5nIHN0ZXAnIDogKCEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkID8gJ0JyZWFrcG9pbnQgY2Fubm90IGJlIHNldCBvbiBza2lwcGVkIHN0ZXBzJyA6ICcnKSkpXCJcbiAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtcm91bmRlZC1mdWxsIGNxYS10cmFuc2l0aW9uLW9wYWNpdHkgZm9jdXM6Y3FhLW91dGxpbmUtbm9uZVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncnVubmluZycgfHwgISFzdGVwPy5kZWJ1Z1BvaW50RGlzYWJsZWQgfHwgISFwYXJlbnRTa2lwcGVkIHx8IGlzU3RlcERlbGV0ZWQgPyAnY3FhLWN1cnNvci1ub3QtYWxsb3dlZCBjcWEtb3BhY2l0eS00MCBjcWEtcG9pbnRlci1ldmVudHMtbm9uZScgOiAnY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3J1bm5pbmcnIHx8ICEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uRGVidWdQb2ludENsaWNrKCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImRlYnVnUG9pbnRTZXQgPyAnUmVtb3ZlIGRlYnVnIHBvaW50JyA6ICdTZXQgZGVidWcgcG9pbnQnXCI+XG4gICAgICAgIDxzdmcgKm5nSWY9XCJkZWJ1Z1BvaW50U2V0XCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI3XCIgY3k9XCI3XCIgcj1cIjZcIiBbYXR0ci5maWxsXT1cIiEhc3RlcD8uZGVidWdQb2ludERpc2FibGVkIHx8ICEhcGFyZW50U2tpcHBlZCB8fCBpc1N0ZXBEZWxldGVkID8gJyM5RTlFOUUnIDogJyNDNjM1MzUnXCIvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHN2ZyAqbmdJZj1cIiFkZWJ1Z1BvaW50U2V0XCIgd2lkdGg9XCIxNFwiIGhlaWdodD1cIjE0XCIgdmlld0JveD1cIjAgMCAxNCAxNFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI3XCIgY3k9XCI3XCIgcj1cIjZcIiBbYXR0ci5zdHJva2VdPVwiISFzdGVwPy5kZWJ1Z1BvaW50RGlzYWJsZWQgfHwgISFwYXJlbnRTa2lwcGVkIHx8IGlzU3RlcERlbGV0ZWQgPyAnIzlFOUU5RScgOiAnI0M2MzUzNSdcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBmaWxsPVwibm9uZVwiLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8IS0tIFN0YXR1cyBJY29uIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnXCIgPjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNMTAuOTAwNSA0Ljk5OTk5QzExLjEyODkgNi4xMjA2NCAxMC45NjYyIDcuMjg1NzEgMTAuNDM5NSA4LjMwMDg5QzkuOTEyNzkgOS4zMTYwOCA5LjA1NCAxMC4xMiA4LjAwNjMxIDEwLjU3ODdDNi45NTg2MiAxMS4wMzczIDUuNzg1MzYgMTEuMTIyOSA0LjY4MjIgMTAuODIxMkMzLjU3OTA0IDEwLjUxOTUgMi42MTI2NSA5Ljg0ODY5IDEuOTQ0MTkgOC45MjA3MUMxLjI3NTczIDcuOTkyNzIgMC45NDU2MTEgNi44NjM2MSAxLjAwODg4IDUuNzIxNjlDMS4wNzIxNSA0LjU3OTc2IDEuNTI0OTkgMy40OTQwNCAyLjI5MTg4IDIuNjQ1NThDMy4wNTg3NiAxLjc5NzEyIDQuMDkzMzQgMS4yMzcyMSA1LjIyMzA4IDEuMDU5MjJDNi4zNTI4MiAwLjg4MTIzMyA3LjUwOTQ0IDEuMDk1OTIgOC41MDAwNSAxLjY2NzQ5XCIgc3Ryb2tlPVwiIzIyQzU1RVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSA1LjVMNiA3TDExIDJcIiBzdHJva2U9XCIjMjJDNTVFXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2ZhaWx1cmUnIHx8IHN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnZmFpbGVkJ1wiPjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNiAxMUM4Ljc2MTQyIDExIDExIDguNzYxNDIgMTEgNkMxMSAzLjIzODU4IDguNzYxNDIgMSA2IDFDMy4yMzg1OCAxIDEgMy4yMzg1OCAxIDZDMSA4Ljc2MTQyIDMuMjM4NTggMTEgNiAxMVpcIiBzdHJva2U9XCIjREMyNjI2XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNy41IDQuNUw0LjUgNy41XCIgc3Ryb2tlPVwiI0RDMjYyNlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTQuNSA0LjVMNy41IDcuNVwiIHN0cm9rZT1cIiNEQzI2MjZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGVuZGluZydcIj48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYgM1Y2TDggN1wiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncnVubmluZydcIj48c3ZnIGNsYXNzPVwiY3FhLWFuaW1hdGUtc3BpbiBjcWEtdGV4dC1bIzNCODJGNl1cIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PGNpcmNsZSBjeD1cIjZcIiBjeT1cIjZcIiByPVwiNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIGZpbGw9XCJub25lXCIgb3BhY2l0eT1cIjAuMjVcIi8+PHBhdGggZD1cIk02IDFBNSA1IDAgMCAxIDExIDZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cInN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnc2tpcHBlZCdcIj48c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgY3FhLXRleHQtWyM5Q0EzQUZdIGNxYS10ZXh0LVsxMnB4XVwiPnNraXBfbmV4dDwvc3Bhbj48L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwic3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdwYXVzZWQnXCI+PHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk04LjUgMkg3LjVDNy4yMjM4NiAyIDcgMi4yMjM4NiA3IDIuNVY5LjVDNyA5Ljc3NjE0IDcuMjIzODYgMTAgNy41IDEwSDguNUM4Ljc3NjE0IDEwIDkgOS43NzYxNCA5IDkuNVYyLjVDOSAyLjIyMzg2IDguNzc2MTQgMiA4LjUgMlpcIiBzdHJva2U9XCIjRTE3MTAwXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxwYXRoIGQ9XCJNNC41IDJIMy41QzMuMjIzODYgMiAzIDIuMjIzODYgMyAyLjVWOS41QzMgOS43NzYxNCAzLjIyMzg2IDEwIDMuNSAxMEg0LjVDNC43NzYxNCAxMCA1IDkuNzc2MTQgNSA5LjVWMi41QzUgMi4yMjM4NiA0Ljc3NjE0IDIgNC41IDJaXCIgc3Ryb2tlPVwiI0UxNzEwMFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz48L2Rpdj5cbiAgICA8IS0tIExpZ2h0YnVsYiBJY29uIGFuZCBTdGVwIE51bWJlciAtLT5cbiAgICA8ZGl2PlxuICAgICAgPHN2ZyB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDIwIDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjE2XCIgcng9XCI0XCIgZmlsbD1cIiNGRUYzQzZcIi8+PHBhdGggZD1cIk04LjgzMTUgMTAuNUgxMS4xNjhNMTAgMy41VjRNMTMuMTgyIDQuODE4TDEyLjgyODUgNS4xNzE1TTE0LjUgOEgxNE02IDhINS41TTcuMTcxNSA1LjE3MTVMNi44MTggNC44MThNOC4yMzIgOS43NjhDNy44ODI0MyA5LjQxODM0IDcuNjQ0NCA4Ljk3Mjg4IDcuNTQ3OTkgOC40ODc5NUM3LjQ1MTU4IDguMDAzMDEgNy41MDExMyA3LjUwMDM4IDcuNjkwMzYgNy4wNDM2MUM3Ljg3OTYgNi41ODY4MyA4LjIwMDAzIDYuMTk2NDIgOC42MTExNCA1LjkyMTc1QzkuMDIyMjUgNS42NDcwNyA5LjUwNTU3IDUuNTAwNDcgMTAgNS41MDA0N0MxMC40OTQ0IDUuNTAwNDcgMTAuOTc3NyA1LjY0NzA3IDExLjM4ODkgNS45MjE3NUMxMS44IDYuMTk2NDIgMTIuMTIwNCA2LjU4NjgzIDEyLjMwOTYgNy4wNDM2MUMxMi40OTg5IDcuNTAwMzggMTIuNTQ4NCA4LjAwMzAxIDEyLjQ1MiA4LjQ4Nzk1QzEyLjM1NTYgOC45NzI4OCAxMi4xMTc2IDkuNDE4MzQgMTEuNzY4IDkuNzY4TDExLjQ5NCAxMC4wNDE1QzExLjMzNzQgMTAuMTk4MiAxMS4yMTMxIDEwLjM4NDIgMTEuMTI4MyAxMC41ODg5QzExLjA0MzYgMTAuNzkzNiAxMSAxMS4wMTI5IDExIDExLjIzNDVWMTEuNUMxMSAxMS43NjUyIDEwLjg5NDYgMTIuMDE5NiAxMC43MDcxIDEyLjIwNzFDMTAuNTE5NiAxMi4zOTQ2IDEwLjI2NTIgMTIuNSAxMCAxMi41QzkuNzM0NzggMTIuNSA5LjQ4MDQzIDEyLjM5NDYgOS4yOTI4OSAxMi4yMDcxQzkuMTA1MzYgMTIuMDE5NiA5IDExLjc2NTIgOSAxMS41VjExLjIzNDVDOSAxMC43ODcgOC44MjIgMTAuMzU3NSA4LjUwNiAxMC4wNDE1TDguMjMyIDkuNzY4WlwiIHN0cm9rZT1cIiNFMTcxMDBcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIFN0ZXAgTnVtYmVyIGFuZCBUaXRsZSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMyBjcWEtZm9udC1pbnRlclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzMzNDE1NV0gY3FhLXRleHQtWzE0cHhdIGNxYS1sZWFkaW5nLVsxOHB4XVwiIHN0eWxlPVwid29yZC1icmVhazogYnJlYWstd29yZDtcIj5cbiAgICAgICAge3sgY29uZmlnPy5zdGVwTnVtYmVyIH19LiA8c3BhbiBbaW5uZXJIVE1MXT1cImNvbmZpZz8udGl0bGUgfHwgJydcIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICBcbiAgICAgIDwhLS0gTG9vcCBUeXBlIEJhZGdlcyAtLT5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXB4LTEuNSBjcWEtcm91bmRlZC1mdWxsIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bI0UxNzEwMF0gY3FhLWJnLVsjRkVGM0M2XSBjcWEtdGV4dC1bMTBweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1taW4tdy1tYXhcIj5cbiAgICAgICAgQUkgQWdlbnRcbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWcuc3RlcERlbGV0ZWRcIiBjbGFzcz1cImNxYS1weC0xLjUgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLVs0cHhdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjQjQyMzE4XSBjcWEtYmctWyNGRUYzRjJdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI0ZFRTRFMl1cIj5cbiAgICAgICAgRGVsZXRlZFxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBBY3Rpb24gQ291bnQgLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJjb25maWc/LmFjdGlvbkNvdW50XCIgY2xhc3M9XCJjcWEtcHgtMS41IGNxYS1yb3VuZGVkLWZ1bGwgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjRTE3MTAwXSBjcWEtYmctWyNGRUYzQzZdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLW1pbi13LW1heFwiPlxuICAgICAge3sgY29uZmlnPy5hY3Rpb25Db3VudCB9fSBhY3Rpb25zXG4gICAgPC9zcGFuPlxuXG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xIGNxYS1mb250LWludGVyXCI+XG4gICAgICA8IS0tIFN0ZXAgQ2hhbmdlIEJhZGdlcyAoZGVidWcgb25seSkgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZWJ1Z1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBiYWRnZSBvZiBzdGVwQmFkZ2VzXCI+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnc2tpcHBlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiU2tpcHBlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjNEE1NTY1J1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjOTlBMUFGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZGRkZGRidcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAnZWRpdGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJFZGl0ZWRcIlxuICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgW3RleHRDb2xvcl09XCInI0ZCQkYyNCdcIlxuICAgICAgICAgIFtib3JkZXJDb2xvcl09XCInI0ZEREY5MidcIlxuICAgICAgICAgIFtiYWNrZ3JvdW5kQ29sb3JdPVwiJyNGRkY5RTknXCI+XG4gICAgICAgIDwvY3FhLWJhZGdlPlxuICAgICAgICA8Y3FhLWJhZGdlXG4gICAgICAgICAgKm5nSWY9XCJiYWRnZSA9PT0gJ2FkZGVkJ1wiXG4gICAgICAgICAgbGFiZWw9XCJBZGRlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjMERCRDdEJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjNUVEM0E4J1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0NGRjJFNSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDxjcWEtYmFkZ2VcbiAgICAgICAgICAqbmdJZj1cImJhZGdlID09PSAncmVtb3ZlZCdcIlxuICAgICAgICAgIGxhYmVsPVwiUmVtb3ZlZFwiXG4gICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cIicjRUUzRjNGJ1wiXG4gICAgICAgICAgW2JvcmRlckNvbG9yXT1cIicjRjQ3RjdGJ1wiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCInI0ZDRDlEOSdcIj5cbiAgICAgICAgPC9jcWEtYmFkZ2U+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhbiAqbmdJZj1cInNlbGZIZWFsQW5hbHlzaXNcIiBjbGFzcz1cImNxYS1weC0xLjUgY3FhLXJvdW5kZWQtZnVsbCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwOTdFNTNdIGNxYS1iZy1bI0NGRjJFNV0gY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtbWluLXctbWF4IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC1bNnB4XVwiPlxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjlcIiBoZWlnaHQ9XCI5XCIgdmlld0JveD1cIjAgMCA5IDlcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgIDxwYXRoIGQ9XCJNNC41MDk0MSAwQzQuNTY0ODkgMC4wMjI3Mzg0IDQuNTg4NTkgMC4wNzgyNjUyIDQuNjExMzEgMC4xMjk4NDZDNC42MjI2OSAwLjE1OTkgNC42MzMxNCAwLjE5MDExNyA0LjY0MzI5IDAuMjIwNTc1QzQuNjQ3MjYgMC4yMzIyNDcgNC42NTEyMyAwLjI0MzkxOCA0LjY1NTMyIDAuMjU1OTQzQzQuNzA4MDYgMC40MTMwMDUgNC43NTUwNCAwLjU3MTc0OCA0LjgwMjI5IDAuNzMwMzhDNC44MTI5NyAwLjc2NjE5IDQuODIzNjkgMC44MDE5ODcgNC44MzQ0MiAwLjgzNzc4M0M0Ljg4OTA1IDEuMDIwMDQgNC45NDMyNyAxLjIwMjQgNC45OTcxOSAxLjM4NDg0QzUuMDA0NzYgMS40MTA0NyA1LjAxMjM0IDEuNDM2MDkgNS4wMTk5MiAxLjQ2MTcxQzUuMDQxMjggMS41MzM5NSA1LjA2MjYyIDEuNjA2MTkgNS4wODM4MyAxLjY3ODQ3QzUuMTI4NjcgMS44MzEyIDUuMTc0NzMgMS45ODM0NyA1LjIyMzc4IDIuMTM1MDFDNS4yMjgwNyAyLjE0ODI3IDUuMjMyMzYgMi4xNjE1MiA1LjIzNjc3IDIuMTc1MThDNS4zNjQyIDIuNTY1IDUuNTQ0ODIgMi45MTQzNyA1Ljg0MDkgMy4yMTE5NkM1Ljg0ODIzIDMuMjE5NyA1Ljg1NTU2IDMuMjI3NDQgNS44NjMxMiAzLjIzNTQxQzUuOTg5NSAzLjM2NDM3IDYuMTUxNjkgMy40Njc3MSA2LjMxMzggMy41NTExMUM2LjMyMjA2IDMuNTU1NDIgNi4zMzAzMSAzLjU1OTc0IDYuMzM4ODIgMy41NjQxOUM2LjgxNTg3IDMuODA5MjUgNy4zODk1MSAzLjkxNzA0IDcuOTA2MTkgNC4wNjA1QzguMTMyNiA0LjEyMzQgOC4zNTgzIDQuMTg4MjkgOC41ODMxNyA0LjI1NjAzQzguNTk4OTcgNC4yNjA3OSA4LjYxNDc4IDQuMjY1NTQgOC42MzA1OCA0LjI3MDI4QzguNjc3ODQgNC4yODQ0NSA4LjcyNSA0LjI5ODg3IDguNzcyMTEgNC4zMTM0N0M4Ljc4MzEgNC4zMTY3OSA4Ljc5NDA4IDQuMzIwMTEgOC44MDUzOSA0LjMyMzUzQzguODcwMjkgNC4zNDQwNiA4LjkzMjM5IDQuMzY4MjkgOC45ODU2NiA0LjQxMDI3QzkuMDAxOTEgNC40NDQxOCA5LjAwMTkxIDQuNDQ0MTggOC45OTc0OCA0LjQ3ODFDOC45NDU2NCA0LjUyNzM2IDguODk0MiA0LjU1MDQ2IDguODI1NzggNC41NzNDOC44MTYgNC41NzYzMiA4LjgwNjIyIDQuNTc5NjUgOC43OTYxNCA0LjU4MzA4QzguNjgwNjEgNC42MjE4MyA4LjU2MzUxIDQuNjU1NzUgOC40NDYyNiA0LjY4OTM1QzguNDIyMiA0LjY5NjMgOC4zOTgxNCA0LjcwMzI2IDguMzc0MDggNC43MTAyMUM4LjIyNTcxIDQuNzUzMDEgOC4wNzcwOCA0Ljc5NDkgNy45MjgyOSA0LjgzNjMyQzcuNzMyMzIgNC44OTA4OCA3LjUzNjYzIDQuOTQ2MzQgNy4zNDExMyA1LjAwMjQzQzcuMzA5MSA1LjAxMTYyIDcuMjc3MDYgNS4wMjA3OCA3LjI0NTAxIDUuMDI5OTFDNy4wNzY3MSA1LjA3Nzg2IDYuOTA5MjMgNS4xMjc1MyA2Ljc0MzE0IDUuMTgyMDhDNi43MjkzNyA1LjE4NjU5IDYuNzE1NTkgNS4xOTExIDYuNzAxMzkgNS4xOTU3NEM2LjE0NTExIDUuMzgwODIgNS43MjExIDUuNzI2MDkgNS40NTU3MSA2LjIzMDk5QzUuMzEyNjMgNi41MTQ3NSA1LjIyODIzIDYuODIxNjEgNS4xNDIxNCA3LjEyNDQ3QzUuMTE4ODQgNy4yMDYxOSA1LjA5NDA5IDcuMjg3NDUgNS4wNjkwNSA3LjM2ODY5QzUuMDQ5NCA3LjQzMjYxIDUuMDMwMiA3LjQ5NjYzIDUuMDExNDkgNy41NjA4MUM1LjAwOTI2IDcuNTY4NDQgNS4wMDcwMyA3LjU3NjA4IDUuMDA0NzMgNy41ODM5NUM0Ljk5Mzk0IDcuNjIwOTQgNC45ODMxOSA3LjY1NzkzIDQuOTcyNTIgNy42OTQ5NUM0Ljk0NTE5IDcuNzg4NzkgNC45MTU3OCA3Ljg4MTg3IDQuODg1NTUgNy45NzQ4OUM0LjgzMTkxIDguMTQwMjEgNC43ODMxIDguMzA2NzQgNC43MzQ1OSA4LjQ3MzVDNC42NjE0NCA4LjcyNDU3IDQuNjYxNDQgOC43MjQ1NyA0LjYxOTk3IDguODQ1MjdDNC42MTcyMSA4Ljg1MzM3IDQuNjE0NDYgOC44NjE0NyA0LjYxMTYzIDguODY5ODJDNC41OTY0OSA4LjkxMjc4IDQuNTgwOTIgOC45NTIzMyA0LjU1MjI2IDguOTg4N0M0LjUwODY3IDguOTk3ODggNC41MDg2NyA4Ljk5Nzg4IDQuNDY5NTEgOUM0LjQyNDczIDguOTM3NTkgNC4zOTUwOCA4Ljg3NzExIDQuMzcxMzMgOC44MDUwOEM0LjM2Nzg3IDguNzk0ODcgNC4zNjQ0MSA4Ljc4NDY2IDQuMzYwODUgOC43NzQxNUM0LjMxNjg0IDguNjQyNDggNC4yNzc1MSA4LjUwOTQ2IDQuMjM4MTcgOC4zNzY0NkM0LjIyOTE2IDguMzQ2MDQgNC4yMjAxMSA4LjMxNTY0IDQuMjExMDUgOC4yODUyNEM0LjE0MzYgOC4wNTg2MyA0LjA3NzI1IDcuODMxNzQgNC4wMTEwMSA3LjYwNDgxQzMuNzM1MDcgNi40ODIyNCAzLjczNTA3IDYuNDgyMjQgMy4wMzkgNS41NzQ2NkMzLjAyNzg0IDUuNTY1OTYgMy4wMTY2OSA1LjU1NzI2IDMuMDA1MTkgNS41NDgzQzIuNTQ5MTMgNS4xOTkwMiAxLjk0ODM0IDUuMDY5NjkgMS4zOTgxNSA0LjkxODEzQzEuMjYyMDcgNC44ODA2MiAxLjEyNjA1IDQuODQyOTMgMC45OTAwMzIgNC44MDUyM0MwLjk3ODEzOCA0LjgwMTkzIDAuOTc4MTM4IDQuODAxOTMgMC45NjYwMDMgNC43OTg1N0MwLjc2OTgxMSA0Ljc0NDE3IDAuNTczNjc0IDQuNjg5NjMgMC4zNzgyMjQgNC42MzI4M0MwLjM2OTk1NiA0LjYzMDQ1IDAuMzYxNjg4IDQuNjI4MDYgMC4zNTMxNjkgNC42MjU2MUMwLjA1Mjg5ODkgNC41Mzg4MyAwLjA1Mjg5ODkgNC41Mzg4MyAwLjAwMDY0NjUzNyA0LjQ3ODFDLTAuMDAwODMxMjYxIDQuNDUwNTQgLTAuMDAwODMxMjYxIDQuNDUwNTQgMC4wMTI0Njg5IDQuNDIxNTdDMC4wNjcwODM1IDQuMzcwNCAwLjEyMDA3NyA0LjM0ODQ4IDAuMTkyMTYgNC4zMjYxOUMwLjIwMjU5NyA0LjMyMjg0IDAuMjEzMDM0IDQuMzE5NDggMC4yMjM3ODcgNC4zMTYwM0MwLjI1NTc1MyA0LjMwNTgyIDAuMjg3Nzg4IDQuMjk1ODQgMC4zMTk4NTEgNC4yODU5MkMwLjMyOTAwMSA0LjI4MzA1IDAuMzM4MTUxIDQuMjgwMTcgMC4zNDc1NzggNC4yNzcyMkMwLjQxMjI4NSA0LjI1NjkzIDAuNDc3MjI1IDQuMjM3NCAwLjU0MjI1OSA0LjIxODA5QzAuNTU4MjQgNC4yMTMzMiAwLjU1ODI0IDQuMjEzMzIgMC41NzQ1NDQgNC4yMDg0NkMwLjg1MjI2OSA0LjEyNTg3IDEuMTMxODEgNC4wNDkgMS40MTEyNiAzLjk3MTk2QzEuNjE5NSAzLjkxNDU1IDEuODI3MzggMy44NTYxOCAyLjAzNDYgMy43OTU0OEMyLjA0NDEzIDMuNzkyNzEgMi4wNTM2NSAzLjc4OTkzIDIuMDYzNDYgMy43ODcwN0MyLjU0MzUgMy42NDY5NiAzLjAxMjc4IDMuNDQ4MTYgMy4zMjI3NCAzLjA1MzdDMy4zMjczOCAzLjA0Nzg1IDMuMzMyMDIgMy4wNDIgMy4zMzY4IDMuMDM1OTdDMy42ODE5NyAyLjU5ODE1IDMuODE2NTggMi4wNjU3MiAzLjk2Njk1IDEuNTQ2MjFDNC4wMTY0MyAxLjM3NTM0IDQuMDY2NDkgMS4yMDQ2NCA0LjExNjczIDEuMDMzOTlDNC4xMzA2NCAwLjk4NjczMyA0LjE0NDUzIDAuOTM5NDcxIDQuMTU4MzYgMC44OTIxOTRDNC4yMTM5NCAwLjcwMjI4OSA0LjI3MDM1IDAuNTEyNjQyIDQuMzMgMC4zMjM4NjRDNC4zMzU1OCAwLjMwNjE4NiA0LjM0MTE0IDAuMjg4NTAxIDQuMzQ2NjYgMC4yNzA4MDdDNC40MzAxNyAwLjAwMzk4NzYxIDQuNDMwMTcgMC4wMDM5ODc2MSA0LjUwOTQxIDBaXCIgZmlsbD1cIiMwREJEN0RcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk03LjIzNTk3IDAuNTU0ODU5QzcuMjkwMjQgMC42MTM1OTkgNy4zMDEwOSAwLjY4MjYzMSA3LjMxNzk5IDAuNzU3NjM4QzcuMzc0MzYgMC45OTMyNjkgNy40MzkyOSAxLjIwOTkzIDcuNjY0NjcgMS4zNDY4MUM3LjgwMzcxIDEuNDIwMzUgNy45Njk0NCAxLjQ1MzgxIDguMTIzNSAxLjQ4NTQxQzguMTg4NTQgMS40OTkwMiA4LjI0MzQ4IDEuNTE3MDkgOC4yOTkyNCAxLjU1MzIxQzguMzExODEgMS41NzIyOSA4LjMxMTgxIDEuNTcyMjkgOC4zMTEwNyAxLjYwNTQ5QzguMjk4MTQgMS42NDU4OCA4LjI4Njc4IDEuNjU4OSA4LjI1MjY5IDEuNjg1MzNDOC4yMTU0MyAxLjY5NzI2IDguMjE1NDMgMS42OTcyNiA4LjE3MDY4IDEuNzA2NTNDOC4xNTM3NSAxLjcxMDI1IDguMTM2ODMgMS43MTQgOC4xMTk5MiAxLjcxNzc5QzguMTEwODYgMS43MTk4IDguMTAxODEgMS43MjE4MSA4LjA5MjQ3IDEuNzIzODhDNy44MTY5NiAxLjc4NDgyIDcuODE2OTYgMS43ODQ4MiA3LjU3ODgyIDEuOTIyNzNDNy41NzEwOCAxLjkyODY5IDcuNTYzMzMgMS45MzQ2NiA3LjU1NTM2IDEuOTQwOEM3LjM4NTE2IDIuMDg0MzEgNy4zNDkxNiAyLjMyMzAzIDcuMjk3OTMgMi41MjMwMUM3LjI5NDk5IDIuNTMzOTkgNy4yOTIwNiAyLjU0NDk3IDcuMjg5MDMgMi41NTYyOUM3LjI4NjQ5IDIuNTY2MDEgNy4yODM5NSAyLjU3NTczIDcuMjgxMzMgMi41ODU3NUM3LjI3MDI4IDIuNjE1NDQgNy4yNTg4MSAyLjYzNDc5IDcuMjM1OTcgMi42NTc1NEM3LjE3MjM0IDIuNjY1MjcgNy4xNzIzNCAyLjY2NTI3IDcuMTQxMzkgMi42NTc1NEM3LjA5MjE2IDIuNjIxMDYgNy4wODExNCAyLjU3OTUgNy4wNjgyOCAyLjUyMzY1QzcuMDY2MTMgMi41MTUwMSA3LjA2Mzk4IDIuNTA2MzYgNy4wNjE3NiAyLjQ5NzQ1QzcuMDU0ODkgMi40Njk4MyA3LjA0ODI0IDIuNDQyMTcgNy4wNDE2NCAyLjQxNDQ5QzYuOTg5NzkgMi4xOTg5NyA2LjkzMTI2IDEuOTg3NTEgNi43MjQ1MSAxLjg2MTE4QzYuNTYyOTMgMS43NzUwMSA2LjM2NjQ2IDEuNzM0MjYgNi4xODU4NyAxLjcwMTM2QzYuMTM2MzcgMS42OTE1MSA2LjEwODAyIDEuNjc5MTEgNi4wNzczOCAxLjY0MDEyQzYuMDcwNzMgMS42MDA1NSA2LjA3MDczIDEuNjAwNTUgNi4wNzczOCAxLjU2MDk4QzYuMTI0NDcgMS41MTQzNyA2LjE3NDAyIDEuNTAyOTkgNi4yMzc3MiAxLjQ4ODkxQzYuMjU3NzggMS40ODQxNiA2LjI3Nzg0IDEuNDc5MzggNi4yOTc4OSAxLjQ3NDU2QzYuMzA4MjUgMS40NzIwOSA2LjMxODYxIDEuNDY5NjIgNi4zMjkyOSAxLjQ2NzA3QzYuMzgyMTIgMS40NTQwNyA2LjQzNDQzIDEuNDM5NDkgNi40ODY3MyAxLjQyNDYyQzYuNDk2MjMgMS40MjE5OCA2LjUwNTczIDEuNDE5MzUgNi41MTU1MiAxLjQxNjYzQzYuNjIxODIgMS4zODYyNCA2LjcxMzU2IDEuMzQ3MzcgNi43OTg1NCAxLjI3ODM2QzYuODA2NDcgMS4yNzIxMyA2LjgxNDM5IDEuMjY1ODkgNi44MjI1NSAxLjI1OTQ2QzYuOTU0OCAxLjE0NTY1IDYuOTk5NzQgMC45NzQ2NzQgNy4wNDA1MyAwLjgxNTEzNEM3LjA0MzY0IDAuODAzMDIyIDcuMDQ2NzUgMC43OTA5MSA3LjA0OTk1IDAuNzc4NDMyQzcuMDU2MTQgMC43NTQxMDEgNy4wNjIyMiAwLjcyOTc0MyA3LjA2ODE3IDAuNzA1MzU5QzcuMDcyNDMgMC42ODgzOTQgNy4wNzI0MyAwLjY4ODM5NCA3LjA3Njc4IDAuNjcxMDg2QzcuMDc5MjcgMC42NjA5NTEgNy4wODE3NSAwLjY1MDgxNiA3LjA4NDMxIDAuNjQwMzczQzcuMDk1MjEgMC42MDgxMDggNy4xMDk1MiAwLjU4Mjc3MiA3LjEyOTU3IDAuNTU0ODU5QzcuMTY4MSAwLjUzNjQzNSA3LjE5NTE1IDAuNTQ0NzY0IDcuMjM1OTcgMC41NTQ4NTlaXCIgZmlsbD1cIiMwNzVGM0ZcIi8+XG4gICAgICAgICAgPHBhdGggZD1cIk0xLjc5NTQ1IDYuMjQ3MUMxLjgwOTUxIDYuMjQ3MTkgMS44MDk1MSA2LjI0NzE5IDEuODIzODYgNi4yNDcyOUMxLjkyNDc3IDYuMjUwMjIgMS45OTMwNCA2LjI4MTE1IDIuMDY3MzYgNi4zNDYwMUMyLjE1Mzg0IDYuNDM1MzMgMi4xOTM3NyA2LjUzNjExIDIuMTkxNSA2LjY1NjVDMi4xODE3OCA2Ljc1NDEyIDIuMTIxNTggNi44MzkzNSAyLjA0NzczIDYuOTA1MzNDMS45NjA4MSA2Ljk3MjQyIDEuODczMTMgNi45OTQ1OSAxLjc2MjA2IDYuOTkxNDlDMS42Njg0MSA2Ljk4MTA3IDEuNTgwMyA2LjkzODUyIDEuNTEzOTMgNi44NzQ1MUMxLjQzMTM4IDYuNzY2ODEgMS40MDcyNSA2LjY2ODAzIDEuNDE5MzUgNi41MzUzN0MxLjQ0NDMzIDYuNDMwOTIgMS41MTYzNyA2LjM0NjEzIDEuNjA4NSA2LjI4NjY2QzEuNjcyNTEgNi4yNTU2NCAxLjcyMzk5IDYuMjQ2NTIgMS43OTU0NSA2LjI0NzFaXCIgZmlsbD1cIiMwREJEN0RcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIFNlbGYtaGVhbGVkXG4gICAgICA8L3NwYW4+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgY3FhLXJvdW5kZWQtWzRweF0gY3FhLXB5LTAuNSBjcWEtcHgtMSBjcWEtYmctWyM2MzY2RjExQV0gY3FhLW1sLTEgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHlcIiBcbiAgICAgICAgICAgKm5nSWY9XCJzdGVwPy5leGVjdXRlZFJlc3VsdD8udmlkZW9fc3RhcnRfdGltZVwiIFxuICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInSnVtcCB0byB2aWRlbyB0aW1lJ1wiIFxuICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJiZWxvd1wiXG4gICAgICAgICAgIChjbGljayk9XCJvbkp1bXBUb1RpbWVzdGFtcCgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNxYS10ZXh0LVsjNjM2MzYzXSAhY3FhLXRleHQtWzEwcHhdICFjcWEtdy1bMTBweF0gIWNxYS1oLVsxMHB4XVwiPlxuICAgICAgICAgIHBsYXlfYXJyb3dcbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bOHB4XSBjcWEtbGVhZGluZy1bMTJweF0gY3FhLWZvbnQtbm9ybWFsIGNxYS10ZXh0LVsjNjM2MzYzXVwiPlxuICAgICAgICAgIHt7IGZvcm1hdER1cmF0aW9uQ2xvY2soc3RlcD8uZXhlY3V0ZWRSZXN1bHQ/LnZpZGVvX3N0YXJ0X3RpbWUgfHwgMCkgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNEZWJ1Z1wiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTAuNSBjcWEtdGV4dC1bIzlDQTNBRl1cIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhc3RlcD8uaXNTdGVwR3JvdXBDaGlsZHJlblwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkVkaXRcIiAoY2xpY2spPVwib25FZGl0U3RlcCgkZXZlbnQpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5lZGl0PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhc3RlcD8uaXNTdGVwR3JvdXBDaGlsZHJlblwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNxYS1wLTAgY3FhLWJvcmRlci0wIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eSBmb2N1czpjcWEtb3V0bGluZS1ub25lXCIgYXJpYS1sYWJlbD1cIkFkZFwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhZGRTdGVwTWVudVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cIiFjcWEtdGV4dC1bMTRweF0gIWNxYS13LVsxNHB4XSAhY3FhLWgtWzE0cHhdXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtbWVudSAjYWRkU3RlcE1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjcWEtYWRkLXN0ZXAtbWVudVwiIHhQb3NpdGlvbj1cImJlZm9yZVwiIHlQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtICpuZ0Zvcj1cImxldCBvcHQgb2YgYWRkU3RlcE1lbnVPcHRpb25zXCIgKGNsaWNrKT1cIm9uQWRkU3RlcE9wdGlvblNlbGVjdChvcHQsICRldmVudClcIj5cbiAgICAgICAgICAgIHt7IG9wdC5sYWJlbCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwiZWZmZWN0aXZlU3RlcE1vcmVNZW51T3B0aW9ucy5sZW5ndGhcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjcWEtcC0wIGNxYS1ib3JkZXItMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHkgZm9jdXM6Y3FhLW91dGxpbmUtbm9uZVwiIGFyaWEtbGFiZWw9XCJNb3JlIG9wdGlvbnNcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwic3RlcE1vcmVNZW51XCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiIWNxYS10ZXh0LVsxNHB4XSAhY3FhLXctWzE0cHhdICFjcWEtaC1bMTRweF1cIj5tb3JlX3ZlcnQ8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1tZW51ICNzdGVwTW9yZU1lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJjcWEtc3RlcC1tb3JlLW1lbnVcIiB4UG9zaXRpb249XCJiZWZvcmVcIiB5UG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAqbmdGb3I9XCJsZXQgb3B0IG9mIGVmZmVjdGl2ZVN0ZXBNb3JlTWVudU9wdGlvbnNcIiAoY2xpY2spPVwib25TdGVwTW9yZU9wdGlvblNlbGVjdChvcHQsICRldmVudClcIj57eyBvcHQubGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgIDwvZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjOUNBM0FGXVwiPlxuICAgICAgICB7eyBmb3JtYXREdXJhdGlvbihjb25maWc/LmR1cmF0aW9uIHx8IDApIH19XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3ZnIFtjbGFzcy5jcWEtcm90YXRlLTE4MF09XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJjcWEtdHJhbnNpdGlvbi10cmFuc2Zvcm1cIiB3aWR0aD1cIjE0XCIgaGVpZ2h0PVwiMTRcIiB2aWV3Qm94PVwiMCAwIDE0IDE0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHBhdGggZD1cIk0zLjUgNUw3IDguNUwxMC41IDVcIiBzdHJva2U9XCIjOUNBM0FGXCIgc3Ryb2tlLXdpZHRoPVwiMC44MzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRXhwYW5kZWQgQ29udGVudCAtLT5cbiAgPGRpdiAqbmdJZj1cImlzRXhwYW5kZWRcIiBjbGFzcz1cImNxYS1iZy1bI0ZGRkVGOV0gY3FhLW10LTEuNSBjcWEtbWwtOSBjcWEtbXItNiBjcWEtcC00XCIgc3R5bGU9XCJib3JkZXItdG9wOiAxcHggc29saWQgI0U0RTRFNDtcIj5cbiAgICA8IS0tIFByb21wdCBDYXJkIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1pdGVtcy1zdGFydCBjcWEtYmctd2hpdGUgY3FhLXJvdW5kZWQtbGcgY3FhLXAtM1wiIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI0ZFRTY4NVwiPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yIGNxYS1tYi0yXCI+XG4gICAgICAgICAgPGRpdj48c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTUuMzMzMzMgNi42NjY3NUg1LjM0TTggNi42NjY3NUg4LjAwNjY3TTEwLjY2NjcgNi42NjY3NUgxMC42NzMzTTYgMTAuNjY2N0gzLjMzMzMzQzIuOTc5NzEgMTAuNjY2NyAyLjY0MDU3IDEwLjUyNjMgMi4zOTA1MiAxMC4yNzYyQzIuMTQwNDggMTAuMDI2MiAyIDkuNjg3MDQgMiA5LjMzMzQxVjQuMDAwMDhDMiAzLjY0NjQ2IDIuMTQwNDggMy4zMDczMiAyLjM5MDUyIDMuMDU3MjdDMi42NDA1NyAyLjgwNzIyIDIuOTc5NzEgMi42NjY3NSAzLjMzMzMzIDIuNjY2NzVIMTIuNjY2N0MxMy4wMjAzIDIuNjY2NzUgMTMuMzU5NCAyLjgwNzIyIDEzLjYwOTUgMy4wNTcyN0MxMy44NTk1IDMuMzA3MzIgMTQgMy42NDY0NiAxNCA0LjAwMDA4VjkuMzMzNDFDMTQgOS42ODcwNCAxMy44NTk1IDEwLjAyNjIgMTMuNjA5NSAxMC4yNzYyQzEzLjM1OTQgMTAuNTI2MyAxMy4wMjAzIDEwLjY2NjcgMTIuNjY2NyAxMC42NjY3SDkuMzMzMzNMNiAxNC4wMDAxVjEwLjY2NjdaXCIgc3Ryb2tlPVwiI0UxNzEwMFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjQkI0RDAwXSBcIj5QUk9NUFQ8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWc/Lm9wdGltaXplZFJ1blwiIGNsYXNzPVwiY3FhLXB4LTIgY3FhLXB5LVsycHhdIGNxYS1yb3VuZGVkLWZ1bGwgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtcHJpbWFyeSBjcWEtYmctWyNFQkVDRkRdXCI+XG4gICAgICAgICAgICBPcHRpbWl6ZWQgUnVuXG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzBCMEIwQl1cIiBzdHlsZT1cIndvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XCIgW2lubmVySFRNTF09XCJjb25maWc/LnByb21wdFwiPjwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvbiBcbiAgICAgICAgY2xhc3M9XCJjcWEtcC0xLjVcIiBcbiAgICAgICAgKGNsaWNrKT1cImNvcHlQcm9tcHQoKVwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIidDb3B5IHByb21wdCdcIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxuICAgICAgICA8c3ZnIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTUuMzMzMzIgMTAuNjY2N0gzLjk5OTk5QzMuNjQ2MzcgMTAuNjY2NyAzLjMwNzIzIDEwLjUyNjMgMy4wNTcxOCAxMC4yNzYyQzIuODA3MTMgMTAuMDI2MiAyLjY2NjY2IDkuNjg3MDQgMi42NjY2NiA5LjMzMzQxVjQuMDAwMDhDMi42NjY2NiAzLjY0NjQ2IDIuODA3MTMgMy4zMDczMiAzLjA1NzE4IDMuMDU3MjdDMy4zMDcyMyAyLjgwNzIyIDMuNjQ2MzcgMi42NjY3NSAzLjk5OTk5IDIuNjY2NzVIOS4zMzMzMkM5LjY4Njk1IDIuNjY2NzUgMTAuMDI2MSAyLjgwNzIyIDEwLjI3NjEgMy4wNTcyN0MxMC41MjYyIDMuMzA3MzIgMTAuNjY2NyAzLjY0NjQ2IDEwLjY2NjcgNC4wMDAwOFY1LjMzMzQxTTYuNjY2NjYgMTMuMzMzNEgxMkMxMi4zNTM2IDEzLjMzMzQgMTIuNjkyOCAxMy4xOTI5IDEyLjk0MjggMTIuOTQyOUMxMy4xOTI4IDEyLjY5MjggMTMuMzMzMyAxMi4zNTM3IDEzLjMzMzMgMTIuMDAwMVY2LjY2Njc1QzEzLjMzMzMgNi4zMTMxMyAxMy4xOTI4IDUuOTczOTkgMTIuOTQyOCA1LjcyMzk0QzEyLjY5MjggNS40NzM4OSAxMi4zNTM2IDUuMzMzNDEgMTIgNS4zMzM0MUg2LjY2NjY2QzYuMzEzMDMgNS4zMzM0MSA1Ljk3MzkgNS40NzM4OSA1LjcyMzg1IDUuNzIzOTRDNS40NzM4IDUuOTczOTkgNS4zMzMzMiA2LjMxMzEzIDUuMzMzMzIgNi42NjY3NVYxMi4wMDAxQzUuMzMzMzIgMTIuMzUzNyA1LjQ3MzggMTIuNjkyOCA1LjcyMzg1IDEyLjk0MjlDNS45NzM5IDEzLjE5MjkgNi4zMTMwMyAxMy4zMzM0IDYuNjY2NjYgMTMuMzMzNFpcIiBzdHJva2U9XCIjNjM2MzYzXCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBUYWIgTmF2aWdhdGlvbiAtLT5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1mbGV4LXdyYXAgY3FhLW15LTEuNVwiIHN0eWxlPVwiYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNFNEU0RTRcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFRhYignYWN0aW9uLXRyYWNlJylcIlxuICAgICAgICBbbmdDbGFzc109XCJ7JyFjcWEtdGV4dC1bI0JCNEQwMF0nOiBzZWxlY3RlZFRhYiA9PT0gJ2FjdGlvbi10cmFjZSd9XCJcbiAgICAgICAgW25nU3R5bGVdPVwieydib3JkZXItYm90dG9tJzogc2VsZWN0ZWRUYWIgPT09ICdhY3Rpb24tdHJhY2UnID8gJzJweCBzb2xpZCAjRkU5QTAwJyA6ICcycHggc29saWQgdHJhbnNwYXJlbnQnfVwiXG4gICAgICAgIGNsYXNzPVwiY3FhLXB5LTIgY3FhLXB4LTMgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctNCBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyM2MzYzNjNdIGNxYS10cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICBBY3Rpb24gVHJhY2VcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb25maWcgJiYgY29uZmlnLmFjdGlvbnMgJiYgY29uZmlnLmFjdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiY3FhLWJnLVsjRjVGNUY1XSBjcWEtdGV4dC1jdXJyZW50IGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTMuM3B4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXJvdW5kZWQtZnVsbCBjcWEtdy1bMTZweF0gY3FhLWgtWzE2cHhdIGNxYS1taW4tdy1bMTZweF0gY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICB7eyBjb25maWcuYWN0aW9ucy5sZW5ndGggfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RUYWIoJ3BsYW5uZXItdGltZWxpbmUnKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnIWNxYS10ZXh0LVsjQkI0RDAwXSc6IHNlbGVjdGVkVGFiID09PSAncGxhbm5lci10aW1lbGluZSd9XCJcbiAgICAgICAgW25nU3R5bGVdPVwieydib3JkZXItYm90dG9tJzogc2VsZWN0ZWRUYWIgPT09ICdwbGFubmVyLXRpbWVsaW5lJyA/ICcycHggc29saWQgI0ZFOUEwMCcgOiAnMnB4IHNvbGlkIHRyYW5zcGFyZW50J31cIlxuICAgICAgICBjbGFzcz1cImNxYS1weS0yIGNxYS1weC0zIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjUgY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLTQgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXSBjcWEtdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgUGxhbm5lciBUaW1lbGluZVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RUYWIoJ2FpLXJlYXNvbmluZycpXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieychY3FhLXRleHQtWyNCQjREMDBdJzogc2VsZWN0ZWRUYWIgPT09ICdhaS1yZWFzb25pbmcnfVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsnYm9yZGVyLWJvdHRvbSc6IHNlbGVjdGVkVGFiID09PSAnYWktcmVhc29uaW5nJyA/ICcycHggc29saWQgI0ZFOUEwMCcgOiAnMnB4IHNvbGlkIHRyYW5zcGFyZW50J31cIlxuICAgICAgICBjbGFzcz1cImNxYS1weS0yIGNxYS1weC0zIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjUgY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLTQgY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjNjM2MzYzXSBjcWEtdHJhbnNpdGlvbi1jb2xvcnNcIj5cbiAgICAgICAgQUkgUmVhc29uaW5nXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8IS0tIFRhYiBDb250ZW50IC0tPlxuICAgIDwhLS0gQWN0aW9uIFRyYWNlIFRhYiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdhY3Rpb24tdHJhY2UnXCI+XG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjcWEtcm91bmRlZC1tZCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtbXktMS41IGNxYS1wLTIgY3FhLWJnLVsjRUZGNkZGXVwiIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgI0JFREJGRlwiPlxuICAgICAgICA8ZGl2Pjxzdmcgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNOC42NjY2NyA0LjY2Njc1SDE0TTE0IDQuNjY2NzVWMTAuMDAwMU0xNCA0LjY2Njc1TDguNjY2NjcgMTAuMDAwMUw2IDcuMzMzNDFMMiAxMS4zMzM0XCIgc3Ryb2tlPVwiIzE1NURGQ1wiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMxNDQ3RTZdIGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF1cIj5cbiAgICAgICAgICA8Yj57eyBjb25maWc/LmFjdGlvbnM/Lmxlbmd0aCB8fCAwIH19IGFjdGlvbnM8L2I+IFxuICAgICAgICAgIGZyb20gcHJldmlvdXMgcnVuc1xuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0yIGNxYS1teS0xLjVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGNvbmZpZz8uYWN0aW9uczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUFjdGlvbklkXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nSWY9XCJhY3Rpb24/LmRlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY3FhLWZvbnQtaW50ZXIgY3FhLXJvdW5kZWQtbWQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXB4LTIgY3FhLXB5LTFcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGFjdGlvbj8ucmVhc29uaW5nID8gJyNFRUYyRkYnIDogJyNGN0ZBRkMnLFxuICAgICAgICAgICAgICAnYm9yZGVyJzogYWN0aW9uPy5yZWFzb25pbmcgPyAnMXB4IHNvbGlkICNDNEI1RkQnIDogJzFweCBzb2xpZCAjQkVEQkZGJ1xuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhYWN0aW9uPy5yZWFzb25pbmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgcng9XCI4XCIgZmlsbD1cIiNEQkVBRkVcIi8+PHBhdGggZD1cIk01LjA4MzM3IDguNDE2NzVMNi43NTAwNCAxMC4wODM0TDEwLjkxNjcgNS45MTY3NVwiIHN0cm9rZT1cIiMxNTVERkNcIiBzdHJva2Utd2lkdGg9XCIwLjgzMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48L3N2Zz5cbiAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImFjdGlvbj8ucmVhc29uaW5nXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiOFwiIGZpbGw9XCIjZGRkN2Y1XCIvPjxwYXRoIGQ9XCJNNS4wODMzNyA4LjQxNjc1TDYuNzUwMDQgMTAuMDgzNEwxMC45MTY3IDUuOTE2NzVcIiBzdHJva2U9XCIjN0MzQUVEXCIgc3Ryb2tlLXdpZHRoPVwiMC44MzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwhLS0gPG1hdC1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwiIWNxYS13LTQgIWNxYS1oLTQgIWNxYS10ZXh0LVsxNnB4XSBjcWEtdGV4dC15ZWxsb3ctNTAwXCI+XG4gICAgICAgICAgICAgIHt7IGdldEFjdGlvbkljb24oYWN0aW9uLnR5cGUpIH19XG4gICAgICAgICAgICA8L21hdC1pY29uPiAtLT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWFjdGlvbj8ucmVhc29uaW5nXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNFwiIGZpbGw9XCIjRkVGM0M2XCIvPjxwYXRoIGQ9XCJNMTAuNSA5VjUuNUw2IDExSDkuNVYxNC41TDE0IDlIMTAuNVpcIiBzdHJva2U9XCIjRTE3MTAwXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvc3ZnPlxuICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJhY3Rpb24/LnJlYXNvbmluZ1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHJ4PVwiNFwiIGZpbGw9XCIjZGRkN2Y1XCIvPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjgzMTUgMTAuNUgxMS4xNjhNMTAgMy41VjRNMTMuMTgyIDQuODE4TDEyLjgyODUgNS4xNzE1TTE0LjUgOEgxNE02IDhINS41TTcuMTcxNSA1LjE3MTVMNi44MTggNC44MThNOC4yMzIgOS43NjhDNy44ODI0MyA5LjQxODM0IDcuNjQ0NCA4Ljk3Mjg4IDcuNTQ3OTkgOC40ODc5NUM3LjQ1MTU4IDguMDAzMDEgNy41MDExMyA3LjUwMDM4IDcuNjkwMzYgNy4wNDM2MUM3Ljg3OTYgNi41ODY4MyA4LjIwMDAzIDYuMTk2NDIgOC42MTExNCA1LjkyMTc1QzkuMDIyMjUgNS42NDcwNyA5LjUwNTU3IDUuNTAwNDcgMTAgNS41MDA0N0MxMC40OTQ0IDUuNTAwNDcgMTAuOTc3NyA1LjY0NzA3IDExLjM4ODkgNS45MjE3NUMxMS44IDYuMTk2NDIgMTIuMTIwNCA2LjU4NjgzIDEyLjMwOTYgNy4wNDM2MUMxMi40OTg5IDcuNTAwMzggMTIuNTQ4NCA4LjAwMzAxIDEyLjQ1MiA4LjQ4Nzk1QzEyLjM1NTYgOC45NzI4OCAxMi4xMTc2IDkuNDE4MzQgMTEuNzY4IDkuNzY4TDExLjQ5NCAxMC4wNDE1QzExLjMzNzQgMTAuMTk4MiAxMS4yMTMxIDEwLjM4NDIgMTEuMTI4MyAxMC41ODg5QzExLjA0MzYgMTAuNzkzNiAxMSAxMS4wMTI5IDExIDExLjIzNDVWMTEuNUMxMSAxMS43NjUyIDEwLjg5NDYgMTIuMDE5NiAxMC43MDcxIDEyLjIwNzFDMTAuNTE5NiAxMi4zOTQ2IDEwLjI2NTIgMTIuNSAxMCAxMi41QzkuNzM0NzggMTIuNSA5LjQ4MDQzIDEyLjM5NDYgOS4yOTI4OSAxMi4yMDcxQzkuMTA1MzYgMTIuMDE5NiA5IDExLjc2NTIgOSAxMS41VjExLjIzNDVDOSAxMC43ODcgOC44MjIgMTAuMzU3NSA4LjUwNiAxMC4wNDE1TDguMjMyIDkuNzY4WlwiIHN0cm9rZT1cIiM3QzNBRURcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtc2VtaWJvbGRcIiBzdHlsZT1cIndvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XCJcbiAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogYWN0aW9uPy5yZWFzb25pbmcgPyAnIzRDMUQ5NScgOiAnIzBCMEIwQicgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJhY3Rpb24uY29uZmlkZW5jZVwiIGNsYXNzPVwiY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtWzEwcHhdIGNxYS1sZWFkaW5nLVsxNXB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMwMEE2M0VdXCI+XG4gICAgICAgICAgICAgIHt7IGFjdGlvbi5jb25maWRlbmNlIH19JVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bMTBweF0gY3FhLWZvbnQtaW50ZXIgY3FhLWxlYWRpbmctWzE1cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzYzNjM2M11cIj5cbiAgICAgICAgICAgICAge3sgZm9ybWF0RHVyYXRpb24oYWN0aW9uLmR1cmF0aW9uKSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPCEtLSA8ZGl2Pjxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNNC41IDIuNUw4IDZMNC41IDkuNVwiIHN0cm9rZT1cIiM2MzYzNjNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+IC0tPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImlzTGl2ZSAmJiBzaG93VGhpbmtpbmdMb2dcIiBjbGFzcz1cImNxYS1haS1hZ2VudC10aGlua2luZy1sb2cgY3FhLXJvdW5kZWQtbWQgY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTIgY3FhLXB4LTMgY3FhLXB5LTIgY3FhLWJnLVsjRjdGQUZDXSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItWyNCRURCRkZdXCIgc3R5bGU9XCJib3JkZXI6IDFweCBzb2xpZCAjQkVEQkZGO1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtYWktYWdlbnQtdGhpbmtpbmctZG90cyBjcWEtZmxleCBjcWEtZ2FwLTFcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWFpLWFnZW50LXRoaW5raW5nLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWFpLWFnZW50LXRoaW5raW5nLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWFpLWFnZW50LXRoaW5raW5nLWRvdFwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzM0MTU1XVwiPlRoaW5raW5nPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBQbGFubmVyIFRpbWVsaW5lIFRhYiAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdwbGFubmVyLXRpbWVsaW5lJ1wiIGNsYXNzPVwiY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtc20gY3FhLXRleHQtZ3JheS02MDBcIj5cbiAgICAgIFBsYW5uZXIgdGltZWxpbmUgY29udGVudCB3b3VsZCBnbyBoZXJlXG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEFJIFJlYXNvbmluZyBUYWIgLS0+XG4gICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAnYWktcmVhc29uaW5nJ1wiIGNsYXNzPVwiY3FhLWZvbnQtaW50ZXIgY3FhLXRleHQtc20gY3FhLXRleHQtZ3JheS02MDBcIj5cbiAgICAgIEFJIHJlYXNvbmluZyBjb250ZW50IHdvdWxkIGdvIGhlcmVcbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cblxuICAgICAgPCEtLSBTZWxmIEhlYWwgQW5hbHlzaXMgLS0+XG4gICAgPGNxYS1zZWxmLWhlYWwtYW5hbHlzaXMgXG4gICAgICAqbmdJZj1cInNlbGZIZWFsQW5hbHlzaXNcIiBcbiAgICAgIFtpZF09XCJzdGVwPy50ZXN0U3RlcElkXCJcbiAgICAgIFtvcmlnaW5hbExvY2F0b3JdPVwic2VsZkhlYWxBbmFseXNpcy5vcmlnaW5hbExvY2F0b3JcIlxuICAgICAgW2hlYWxlZExvY2F0b3JdPVwic2VsZkhlYWxBbmFseXNpcy5oZWFsZWRMb2NhdG9yXCJcbiAgICAgIFtjb25maWRlbmNlXT1cInNlbGZIZWFsQW5hbHlzaXMuY29uZmlkZW5jZVwiXG4gICAgICBbaGVhbE1ldGhvZF09XCJzZWxmSGVhbEFuYWx5c2lzLmhlYWxNZXRob2RcIlxuICAgICAgW2lzTG9hZGluZ0FjY2VwdF09XCJnZXRTZWxmSGVhbExvYWRpbmdTdGF0ZXNIYW5kbGVyID8gZ2V0U2VsZkhlYWxMb2FkaW5nU3RhdGVzSGFuZGxlcigpLmlzTG9hZGluZ0FjY2VwdD8uW3N0ZXA/LnRlc3RTdGVwSWRdIDogZmFsc2VcIlxuICAgICAgW2lzTG9hZGluZ01vZGlmeUFjY2VwdF09XCJnZXRTZWxmSGVhbExvYWRpbmdTdGF0ZXNIYW5kbGVyID8gZ2V0U2VsZkhlYWxMb2FkaW5nU3RhdGVzSGFuZGxlcigpLmlzTG9hZGluZ01vZGlmeUFjY2VwdD8uW3N0ZXA/LnRlc3RTdGVwSWRdIDogZmFsc2VcIlxuICAgICAgKGFjdGlvbik9XCJvblNlbGZIZWFsQWN0aW9uKCRldmVudClcIj5cbiAgICA8L2NxYS1zZWxmLWhlYWwtYW5hbHlzaXM+XG5cbiAgPCEtLSBUaW1pbmcgQnJlYWtkb3duIC0tPlxuICA8ZGl2ICpuZ0lmPVwiY29uZmlnPy50aW1pbmdCcmVha2Rvd25cIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktZW5kIGNxYS1nYXAtNSBjcWEtcHQtMS41IGNxYS1weC00IGNxYS10ZXh0LVsxMHB4XSBjcWEtbGVhZGluZy1bMTVweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjOUNBM0FGXVwiPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMlwiPlxuICAgICAgPGRpdj48c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj48cGF0aCBkPVwiTTYgMTFDOC43NjE0MiAxMSAxMSA4Ljc2MTQyIDExIDZDMTEgMy4yMzg1OCA4Ljc2MTQyIDEgNiAxQzMuMjM4NTggMSAxIDMuMjM4NTggMSA2QzEgOC43NjE0MiAzLjIzODU4IDExIDYgMTFaXCIgc3Ryb2tlPVwiIzlDQTNBRlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cGF0aCBkPVwiTTYgM1Y2TDggN1wiIHN0cm9rZT1cIiM5Q0EzQUZcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9zdmc+PC9kaXY+XG4gICAgICA8c3Bhbj5UaW1pbmcgYnJlYWtkb3duPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtZGlhbG9nLW11dGVkIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0zXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICBBcHAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1ncmF5LTcwMFwiPnt7IGZvcm1hdER1cmF0aW9uKGNvbmZpZz8udGltaW5nQnJlYWtkb3duPy5hcHAgfHwgMCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+PHN2ZyB3aWR0aD1cIjFcIiBoZWlnaHQ9XCIxMVwiIHZpZXdCb3g9XCIwIDAgMSAxMVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPjxwYXRoIGQ9XCJNLTMuODE0N2UtMDYgMTAuMzJWLTcuMTUyNTZlLTA3SDAuOTU5OTk2VjEwLjMySC0zLjgxNDdlLTA2WlwiIGZpbGw9XCIjRTVFN0VCXCIvPjwvc3ZnPjwvZGl2PlxuICAgICAgPGRpdj5cbiAgICAgICAgVG9vbCA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LWdyYXktNzAwXCI+e3sgZm9ybWF0RHVyYXRpb24oY29uZmlnPy50aW1pbmdCcmVha2Rvd24/LnRvb2wgfHwgMCkgfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVmlldyBNb3JlIEZhaWxlZCBTdGVwIEJ1dHRvbiAtIHNob3duIHdoZW4gZXhwYW5kZWQgYW5kIGZhaWx1cmUgZGV0YWlscyBleGlzdCAtLT5cbiAgPGRpdiAqbmdJZj1cInNob3dWaWV3TW9yZUJ1dHRvblwiIGNsYXNzPVwiY3FhLW10LTIgY3FhLXB4LTRcIj5cbiAgICA8Y3FhLXZpZXctbW9yZS1mYWlsZWQtc3RlcC1idXR0b25cbiAgICAgIFt0aW1pbmdCcmVha2Rvd25dPVwidGltaW5nQnJlYWtkb3duXCJcbiAgICAgIFtzdWJTdGVwc109XCJnZXRTdWJTdGVwc0ZvckZhaWxlZFN0ZXAoKVwiXG4gICAgICBbZmFpbHVyZURldGFpbHNdPVwiZmFpbHVyZURldGFpbHNcIlxuICAgICAgW2lzRXhwYW5kZWRdPVwic2hvd0ZhaWxlZFN0ZXBEZXRhaWxzXCJcbiAgICAgICh2aWV3TW9yZUNsaWNrKT1cIm9uVmlld01vcmVGYWlsZWRTdGVwQ2xpY2soJGV2ZW50KVwiPlxuICAgIDwvY3FhLXZpZXctbW9yZS1mYWlsZWQtc3RlcC1idXR0b24+XG4gIDwvZGl2PlxuXG4gIDwhLS0gVXBkYXRlZCBGYWlsZWQgU3RlcCBDb21wb25lbnQgLSBzaG93biB3aGVuIGJ1dHRvbiBpcyBjbGlja2VkIC0tPlxuICA8ZGl2ICpuZ0lmPVwic2hvd1ZpZXdNb3JlQnV0dG9uICYmIHNob3dGYWlsZWRTdGVwRGV0YWlscyAmJiBmYWlsdXJlRGV0YWlsc1wiIGNsYXNzPVwiY3FhLW10LTIgY3FhLXB4LTRcIj5cbiAgICA8Y3FhLXVwZGF0ZWQtZmFpbGVkLXN0ZXBcbiAgICAgIFt0ZXN0U3RlcFJlc3VsdElkXT1cInRlc3RTdGVwUmVzdWx0SWRcIlxuICAgICAgW3RpbWluZ0JyZWFrZG93bl09XCJ0aW1pbmdCcmVha2Rvd25cIlxuICAgICAgW2V4cGFuZGVkXT1cInRydWVcIlxuICAgICAgW3N1YlN0ZXBzXT1cImdldFN1YlN0ZXBzRm9yRmFpbGVkU3RlcCgpXCJcbiAgICAgIFtmYWlsdXJlRGV0YWlsc109XCJmYWlsdXJlRGV0YWlsc1wiXG4gICAgICBbcmVhc29uaW5nXT1cInJlYXNvbmluZ1wiXG4gICAgICBbY29uZmlkZW5jZV09XCJjb25maWRlbmNlXCJcbiAgICAgIFtpc1VwbG9hZGluZ0Jhc2VsaW5lXT1cImlzVXBsb2FkaW5nQmFzZWxpbmVcIlxuICAgICAgW2lzTWFraW5nQ3VycmVudEJhc2VsaW5lXT1cImlzTWFraW5nQ3VycmVudEJhc2VsaW5lXCJcbiAgICAgIFtpc0xpdmVdPVwiaXNMaXZlXCJcbiAgICAgIChtYWtlQ3VycmVudEJhc2VsaW5lKT1cIm9uTWFrZUN1cnJlbnRCYXNlbGluZSgkZXZlbnQpXCJcbiAgICAgICh1cGxvYWRCYXNlbGluZSk9XCJvblVwbG9hZEJhc2VsaW5lKCRldmVudClcIlxuICAgICAgKGFuYWx5emUpPVwib25BbmFseXplKClcIlxuICAgICAgKHZpZXdGdWxsTG9ncyk9XCJvblZpZXdGdWxsTG9ncygpXCI+XG4gICAgPC9jcWEtdXBkYXRlZC1mYWlsZWQtc3RlcD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|