@six-group/ui-library-angular 0.0.0-insider.c4e8588 → 0.0.0-insider.c8fa9a3

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.
@@ -4,30 +4,6 @@ import { __decorate } from "tslib";
4
4
  import { ChangeDetectionStrategy, Component } from '@angular/core';
5
5
  import { ProxyCmp, proxyOutputs } from './angular-component-lib/utils';
6
6
  import * as i0 from "@angular/core";
7
- export let SetAttributes = class SetAttributes {
8
- constructor(c, r, z) {
9
- this.z = z;
10
- c.detach();
11
- this.el = r.nativeElement;
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SetAttributes, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SetAttributes, selector: "set-attributes", inputs: { value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15
- };
16
- SetAttributes = __decorate([
17
- ProxyCmp({
18
- inputs: ['value']
19
- })
20
- ], SetAttributes);
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SetAttributes, decorators: [{
22
- type: Component,
23
- args: [{
24
- selector: 'set-attributes',
25
- changeDetection: ChangeDetectionStrategy.OnPush,
26
- template: '<ng-content></ng-content>',
27
- // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
28
- inputs: ['value'],
29
- }]
30
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
31
7
  export let SixAlert = class SixAlert {
32
8
  constructor(c, r, z) {
33
9
  this.z = z;
@@ -176,6 +152,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
176
152
  inputs: ['checked', 'disabled', 'errorText', 'errorTextCount', 'indeterminate', 'invalid', 'label', 'name', 'required', 'value'],
177
153
  }]
178
154
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
155
+ export let SixDate = class SixDate {
156
+ constructor(c, r, z) {
157
+ this.z = z;
158
+ c.detach();
159
+ this.el = r.nativeElement;
160
+ proxyOutputs(this, this.el, ['six-change', 'six-blur']);
161
+ }
162
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixDate, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
163
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixDate, selector: "six-date", inputs: { allowedDates: "allowedDates", clearable: "clearable", dateFormat: "dateFormat", debounce: "debounce", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", helpText: "helpText", invalid: "invalid", label: "label", language: "language", max: "max", min: "min", name: "name", placeholder: "placeholder", readonly: "readonly", required: "required", size: "size", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
164
+ };
165
+ SixDate = __decorate([
166
+ ProxyCmp({
167
+ inputs: ['allowedDates', 'clearable', 'dateFormat', 'debounce', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'invalid', 'label', 'language', 'max', 'min', 'name', 'placeholder', 'readonly', 'required', 'size', 'value'],
168
+ methods: ['setFocus']
169
+ })
170
+ ], SixDate);
171
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixDate, decorators: [{
172
+ type: Component,
173
+ args: [{
174
+ selector: 'six-date',
175
+ changeDetection: ChangeDetectionStrategy.OnPush,
176
+ template: '<ng-content></ng-content>',
177
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
178
+ inputs: ['allowedDates', 'clearable', 'dateFormat', 'debounce', 'disabled', 'errorText', 'errorTextCount', 'helpText', 'invalid', 'label', 'language', 'max', 'min', 'name', 'placeholder', 'readonly', 'required', 'size', 'value'],
179
+ }]
180
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
179
181
  export let SixDatepicker = class SixDatepicker {
180
182
  constructor(c, r, z) {
181
183
  this.z = z;
@@ -293,7 +295,7 @@ export let SixDropdown = class SixDropdown {
293
295
  SixDropdown = __decorate([
294
296
  ProxyCmp({
295
297
  inputs: ['asyncFilter', 'autofocusFilter', 'closeOnSelect', 'containingElement', 'disableHideOnEnterAndSpace', 'distance', 'filter', 'filterDebounce', 'filterPlaceholder', 'hoist', 'matchTriggerWidth', 'open', 'options', 'placement', 'skidding', 'virtualScroll'],
296
- methods: ['show', 'hide', 'reposition']
298
+ methods: ['show', 'hide']
297
299
  })
298
300
  ], SixDropdown);
299
301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixDropdown, decorators: [{
@@ -407,11 +409,11 @@ export let SixFileUpload = class SixFileUpload {
407
409
  proxyOutputs(this, this.el, ['six-file-upload-success', 'six-file-upload-failure']);
408
410
  }
409
411
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixFileUpload, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
410
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixFileUpload, selector: "six-file-upload", inputs: { accept: "accept", compact: "compact", disabled: "disabled", label: "label", maxFileSize: "maxFileSize", multiple: "multiple" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
412
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixFileUpload, selector: "six-file-upload", inputs: { accept: "accept", compact: "compact", disabled: "disabled", errorText: "errorText", invalid: "invalid", label: "label", maxFileSize: "maxFileSize", multiple: "multiple", uploading: "uploading" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
411
413
  };
412
414
  SixFileUpload = __decorate([
413
415
  ProxyCmp({
414
- inputs: ['accept', 'compact', 'disabled', 'label', 'maxFileSize', 'multiple']
416
+ inputs: ['accept', 'compact', 'disabled', 'errorText', 'invalid', 'label', 'maxFileSize', 'multiple', 'uploading']
415
417
  })
416
418
  ], SixFileUpload);
417
419
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixFileUpload, decorators: [{
@@ -421,7 +423,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
421
423
  changeDetection: ChangeDetectionStrategy.OnPush,
422
424
  template: '<ng-content></ng-content>',
423
425
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
424
- inputs: ['accept', 'compact', 'disabled', 'label', 'maxFileSize', 'multiple'],
426
+ inputs: ['accept', 'compact', 'disabled', 'errorText', 'invalid', 'label', 'maxFileSize', 'multiple', 'uploading'],
425
427
  }]
426
428
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
427
429
  export let SixFooter = class SixFooter {
@@ -475,15 +477,13 @@ export let SixHeader = class SixHeader {
475
477
  this.z = z;
476
478
  c.detach();
477
479
  this.el = r.nativeElement;
478
- proxyOutputs(this, this.el, ['six-header-app-name-clicked', 'six-header-app-switcher-select', 'six-header-profile-select', 'six-header-hamburger-menu-clicked', 'six-header-logo-clicked', 'six-header-search-field-toggle']);
479
480
  }
480
481
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixHeader, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
481
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixHeader, selector: "six-header", inputs: { clickableLogo: "clickableLogo", hideHamburgerMenu: "hideHamburgerMenu", openHamburgerMenu: "openHamburgerMenu", openSearch: "openSearch", shiftContent: "shiftContent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
482
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixHeader, selector: "six-header", inputs: { openSearch: "openSearch", shiftContent: "shiftContent" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
482
483
  };
483
484
  SixHeader = __decorate([
484
485
  ProxyCmp({
485
- inputs: ['clickableLogo', 'hideHamburgerMenu', 'openHamburgerMenu', 'openSearch', 'shiftContent'],
486
- methods: ['setSearchOpenState', 'getIsSearchOpen']
486
+ inputs: ['openSearch', 'shiftContent']
487
487
  })
488
488
  ], SixHeader);
489
489
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixHeader, decorators: [{
@@ -493,7 +493,79 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
493
493
  changeDetection: ChangeDetectionStrategy.OnPush,
494
494
  template: '<ng-content></ng-content>',
495
495
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
496
- inputs: ['clickableLogo', 'hideHamburgerMenu', 'openHamburgerMenu', 'openSearch', 'shiftContent'],
496
+ inputs: ['openSearch', 'shiftContent'],
497
+ }]
498
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
499
+ export let SixHeaderDropdownItem = class SixHeaderDropdownItem {
500
+ constructor(c, r, z) {
501
+ this.z = z;
502
+ c.detach();
503
+ this.el = r.nativeElement;
504
+ }
505
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixHeaderDropdownItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
506
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixHeaderDropdownItem, selector: "six-header-dropdown-item", inputs: { filter: "filter", filterPlaceholder: "filterPlaceholder" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
507
+ };
508
+ SixHeaderDropdownItem = __decorate([
509
+ ProxyCmp({
510
+ inputs: ['filter', 'filterPlaceholder']
511
+ })
512
+ ], SixHeaderDropdownItem);
513
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixHeaderDropdownItem, decorators: [{
514
+ type: Component,
515
+ args: [{
516
+ selector: 'six-header-dropdown-item',
517
+ changeDetection: ChangeDetectionStrategy.OnPush,
518
+ template: '<ng-content></ng-content>',
519
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
520
+ inputs: ['filter', 'filterPlaceholder'],
521
+ }]
522
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
523
+ export let SixHeaderItem = class SixHeaderItem {
524
+ constructor(c, r, z) {
525
+ this.z = z;
526
+ c.detach();
527
+ this.el = r.nativeElement;
528
+ }
529
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixHeaderItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
530
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixHeaderItem, selector: "six-header-item", inputs: { active: "active" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
531
+ };
532
+ SixHeaderItem = __decorate([
533
+ ProxyCmp({
534
+ inputs: ['active']
535
+ })
536
+ ], SixHeaderItem);
537
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixHeaderItem, decorators: [{
538
+ type: Component,
539
+ args: [{
540
+ selector: 'six-header-item',
541
+ changeDetection: ChangeDetectionStrategy.OnPush,
542
+ template: '<ng-content></ng-content>',
543
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
544
+ inputs: ['active'],
545
+ }]
546
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
547
+ export let SixHeaderMenuButton = class SixHeaderMenuButton {
548
+ constructor(c, r, z) {
549
+ this.z = z;
550
+ c.detach();
551
+ this.el = r.nativeElement;
552
+ }
553
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixHeaderMenuButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
554
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixHeaderMenuButton, selector: "six-header-menu-button", inputs: { caret: "caret", disabled: "disabled", loading: "loading", reset: "reset", submit: "submit" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
555
+ };
556
+ SixHeaderMenuButton = __decorate([
557
+ ProxyCmp({
558
+ inputs: ['caret', 'disabled', 'loading', 'reset', 'submit']
559
+ })
560
+ ], SixHeaderMenuButton);
561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixHeaderMenuButton, decorators: [{
562
+ type: Component,
563
+ args: [{
564
+ selector: 'six-header-menu-button',
565
+ changeDetection: ChangeDetectionStrategy.OnPush,
566
+ template: '<ng-content></ng-content>',
567
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
568
+ inputs: ['caret', 'disabled', 'loading', 'reset', 'submit'],
497
569
  }]
498
570
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
499
571
  export let SixIcon = class SixIcon {
@@ -527,11 +599,11 @@ export let SixIconButton = class SixIconButton {
527
599
  this.el = r.nativeElement;
528
600
  }
529
601
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixIconButton, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
530
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixIconButton, selector: "six-icon-button", inputs: { disabled: "disabled", html: "html", label: "label", name: "name", size: "size" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
602
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixIconButton, selector: "six-icon-button", inputs: { disabled: "disabled", download: "download", href: "href", html: "html", label: "label", name: "name", size: "size", target: "target" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
531
603
  };
532
604
  SixIconButton = __decorate([
533
605
  ProxyCmp({
534
- inputs: ['disabled', 'html', 'label', 'name', 'size']
606
+ inputs: ['disabled', 'download', 'href', 'html', 'label', 'name', 'size', 'target']
535
607
  })
536
608
  ], SixIconButton);
537
609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixIconButton, decorators: [{
@@ -541,7 +613,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
541
613
  changeDetection: ChangeDetectionStrategy.OnPush,
542
614
  template: '<ng-content></ng-content>',
543
615
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
544
- inputs: ['disabled', 'html', 'label', 'name', 'size'],
616
+ inputs: ['disabled', 'download', 'href', 'html', 'label', 'name', 'size', 'target'],
545
617
  }]
546
618
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
547
619
  export let SixInput = class SixInput {
@@ -557,7 +629,7 @@ export let SixInput = class SixInput {
557
629
  SixInput = __decorate([
558
630
  ProxyCmp({
559
631
  inputs: ['autocapitalize', 'autocomplete', 'autocorrect', 'autofocus', 'clearable', 'disabled', 'dropdownSearch', 'errorText', 'errorTextCount', 'helpText', 'inputmode', 'invalid', 'label', 'line', 'max', 'maxlength', 'min', 'minlength', 'name', 'pattern', 'pill', 'placeholder', 'readonly', 'required', 'size', 'spellcheck', 'step', 'togglePassword', 'type', 'value'],
560
- methods: ['setFocus', 'removeFocus', 'select', 'setSelectionRange', 'setRangeText']
632
+ methods: ['setFocus', 'removeFocus', 'select', 'setSelectionRange', 'getSelectionRange', 'setRangeText']
561
633
  })
562
634
  ], SixInput);
563
635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixInput, decorators: [{
@@ -644,6 +716,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
644
716
  inputs: ['columns'],
645
717
  }]
646
718
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
719
+ export let SixLogo = class SixLogo {
720
+ constructor(c, r, z) {
721
+ this.z = z;
722
+ c.detach();
723
+ this.el = r.nativeElement;
724
+ }
725
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixLogo, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
726
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixLogo, selector: "six-logo", inputs: { brand: "brand" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
727
+ };
728
+ SixLogo = __decorate([
729
+ ProxyCmp({
730
+ inputs: ['brand']
731
+ })
732
+ ], SixLogo);
733
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixLogo, decorators: [{
734
+ type: Component,
735
+ args: [{
736
+ selector: 'six-logo',
737
+ changeDetection: ChangeDetectionStrategy.OnPush,
738
+ template: '<ng-content></ng-content>',
739
+ // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
740
+ inputs: ['brand'],
741
+ }]
742
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
647
743
  export let SixMainContainer = class SixMainContainer {
648
744
  constructor(c, r, z) {
649
745
  this.z = z;
@@ -892,14 +988,13 @@ export let SixRoot = class SixRoot {
892
988
  this.z = z;
893
989
  c.detach();
894
990
  this.el = r.nativeElement;
895
- proxyOutputs(this, this.el, ['six-root-collapsed']);
896
991
  }
897
992
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixRoot, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
898
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixRoot, selector: "six-root", inputs: { breakpoint: "breakpoint", padded: "padded", stage: "stage", version: "version" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
993
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixRoot, selector: "six-root", inputs: { padded: "padded", stage: "stage", version: "version" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
899
994
  };
900
995
  SixRoot = __decorate([
901
996
  ProxyCmp({
902
- inputs: ['breakpoint', 'padded', 'stage', 'version']
997
+ inputs: ['padded', 'stage', 'version']
903
998
  })
904
999
  ], SixRoot);
905
1000
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixRoot, decorators: [{
@@ -909,7 +1004,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
909
1004
  changeDetection: ChangeDetectionStrategy.OnPush,
910
1005
  template: '<ng-content></ng-content>',
911
1006
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
912
- inputs: ['breakpoint', 'padded', 'stage', 'version'],
1007
+ inputs: ['padded', 'stage', 'version'],
913
1008
  }]
914
1009
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
915
1010
  export let SixSearchField = class SixSearchField {
@@ -945,11 +1040,11 @@ export let SixSelect = class SixSelect {
945
1040
  proxyOutputs(this, this.el, ['six-select-change', 'six-select-focus', 'six-select-blur']);
946
1041
  }
947
1042
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixSelect, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
948
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixSelect, selector: "six-select", inputs: { asyncFilter: "asyncFilter", autocomplete: "autocomplete", clearable: "clearable", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", helpText: "helpText", hoist: "hoist", inputDebounce: "inputDebounce", invalid: "invalid", label: "label", line: "line", maxTagsVisible: "maxTagsVisible", multiple: "multiple", name: "name", options: "options", pill: "pill", placeholder: "placeholder", required: "required", selectAllButton: "selectAllButton", selectAllText: "selectAllText", size: "size", value: "value", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1043
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixSelect, selector: "six-select", inputs: { asyncFilter: "asyncFilter", autocomplete: "autocomplete", clearable: "clearable", disabled: "disabled", errorText: "errorText", errorTextCount: "errorTextCount", filter: "filter", filterDebounce: "filterDebounce", filterPlaceholder: "filterPlaceholder", helpText: "helpText", hoist: "hoist", inputDebounce: "inputDebounce", invalid: "invalid", label: "label", line: "line", multiple: "multiple", name: "name", options: "options", pill: "pill", placeholder: "placeholder", required: "required", selectAllButton: "selectAllButton", selectAllText: "selectAllText", size: "size", value: "value", virtualScroll: "virtualScroll" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
949
1044
  };
950
1045
  SixSelect = __decorate([
951
1046
  ProxyCmp({
952
- inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'selectAllButton', 'selectAllText', 'size', 'value', 'virtualScroll'],
1047
+ inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'selectAllButton', 'selectAllText', 'size', 'value', 'virtualScroll'],
953
1048
  methods: ['setFocus']
954
1049
  })
955
1050
  ], SixSelect);
@@ -960,7 +1055,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
960
1055
  changeDetection: ChangeDetectionStrategy.OnPush,
961
1056
  template: '<ng-content></ng-content>',
962
1057
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
963
- inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'maxTagsVisible', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'selectAllButton', 'selectAllText', 'size', 'value', 'virtualScroll'],
1058
+ inputs: ['asyncFilter', 'autocomplete', 'clearable', 'disabled', 'errorText', 'errorTextCount', 'filter', 'filterDebounce', 'filterPlaceholder', 'helpText', 'hoist', 'inputDebounce', 'invalid', 'label', 'line', 'multiple', 'name', 'options', 'pill', 'placeholder', 'required', 'selectAllButton', 'selectAllText', 'size', 'value', 'virtualScroll'],
964
1059
  }]
965
1060
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
966
1061
  export let SixSidebar = class SixSidebar {
@@ -996,11 +1091,11 @@ export let SixSidebarItem = class SixSidebarItem {
996
1091
  this.el = r.nativeElement;
997
1092
  }
998
1093
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixSidebarItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
999
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixSidebarItem, selector: "six-sidebar-item", inputs: { disabled: "disabled", href: "href", selected: "selected", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1094
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixSidebarItem, selector: "six-sidebar-item", inputs: { disabled: "disabled", href: "href", icon: "icon", selected: "selected", value: "value" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1000
1095
  };
1001
1096
  SixSidebarItem = __decorate([
1002
1097
  ProxyCmp({
1003
- inputs: ['disabled', 'href', 'selected', 'value']
1098
+ inputs: ['disabled', 'href', 'icon', 'selected', 'value']
1004
1099
  })
1005
1100
  ], SixSidebarItem);
1006
1101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixSidebarItem, decorators: [{
@@ -1010,7 +1105,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1010
1105
  changeDetection: ChangeDetectionStrategy.OnPush,
1011
1106
  template: '<ng-content></ng-content>',
1012
1107
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1013
- inputs: ['disabled', 'href', 'selected', 'value'],
1108
+ inputs: ['disabled', 'href', 'icon', 'selected', 'value'],
1014
1109
  }]
1015
1110
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1016
1111
  export let SixSidebarItemGroup = class SixSidebarItemGroup {
@@ -1044,11 +1139,11 @@ export let SixSpinner = class SixSpinner {
1044
1139
  this.el = r.nativeElement;
1045
1140
  }
1046
1141
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixSpinner, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1047
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixSpinner, selector: "six-spinner", inputs: { six: "six" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1142
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SixSpinner, selector: "six-spinner", inputs: { logo: "logo", six: "six" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1048
1143
  };
1049
1144
  SixSpinner = __decorate([
1050
1145
  ProxyCmp({
1051
- inputs: ['six']
1146
+ inputs: ['logo', 'six']
1052
1147
  })
1053
1148
  ], SixSpinner);
1054
1149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SixSpinner, decorators: [{
@@ -1058,7 +1153,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1058
1153
  changeDetection: ChangeDetectionStrategy.OnPush,
1059
1154
  template: '<ng-content></ng-content>',
1060
1155
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1061
- inputs: ['six'],
1156
+ inputs: ['logo', 'six'],
1062
1157
  }]
1063
1158
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1064
1159
  export let SixStageIndicator = class SixStageIndicator {
@@ -1316,4 +1411,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1316
1411
  inputs: ['content', 'disabled', 'distance', 'open', 'placement', 'skidding', 'trigger'],
1317
1412
  }]
1318
1413
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
1319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFlaEUsV0FBTSxhQUFhLEdBQW5CLE1BQU0sYUFBYTtJQUV4QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLGFBQWE7bUdBQWIsYUFBYSxrRkFKZCwyQkFBMkI7O0FBSTFCLGFBQWE7SUFWekIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO0tBQ2xCLENBQUM7R0FRVyxhQUFhLENBTXpCOzRGQU5ZLGFBQWE7a0JBUHpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQjs7QUF3Qk0sV0FBTSxRQUFRLEdBQWQsTUFBTSxRQUFRO0lBRW5CLFlBQVksQ0FBb0IsRUFBRSxDQUFhLEVBQVksQ0FBUztRQUFULE1BQUMsR0FBRCxDQUFDLENBQVE7UUFDbEUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1gsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENB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bUdBQVYsVUFBVSwrTUFKWCwyQkFBMkI7O0FBSTFCLFVBQVU7SUFYdEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDO1FBQ3ZGLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7S0FDMUIsQ0FBQztHQVFXLFVBQVUsQ0FPdEI7NEZBUFksVUFBVTtrQkFQdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDO2lCQUN4RiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAsIHByb3h5T3V0cHV0cyB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZXQtYXR0cmlidXRlcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0QXR0cmlidXRlcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNldEF0dHJpYnV0ZXMgZXh0ZW5kcyBDb21wb25lbnRzLlNldEF0dHJpYnV0ZXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnZHVyYXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvYXN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtYWxlcnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NhYmxlJywgJ2R1cmF0aW9uJywgJ29wZW4nLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhBbGVydCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1hbGVydC1zaG93JywgJ3NpeC1hbGVydC1hZnRlci1zaG93JywgJ3NpeC1hbGVydC1oaWRlJywgJ3NpeC1hbGVydC1hZnRlci1oaWRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeEFsZXJ0RW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEFsZXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhBbGVydCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGFsZXJ0IG9wZW5zLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBvcGVuZWQuXG4gICAqL1xuICAnc2l4LWFsZXJ0LXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEFsZXJ0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBhbGVydCBvcGVucyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtYWxlcnQtYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QWxlcnRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYWxlcnQgY2xvc2VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LWFsZXJ0LWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEFsZXJ0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBhbGVydCBjbG9zZXMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWFsZXJ0LWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEFsZXJ0RW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsdCcsICdpbWFnZScsICdpbml0aWFscycsICdzaGFwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWF2YXRhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWx0JywgJ2ltYWdlJywgJ2luaXRpYWxzJywgJ3NoYXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEF2YXRhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEF2YXRhciBleHRlbmRzIENvbXBvbmVudHMuU2l4QXZhdGFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3BpbGwnLCAncHVsc2UnLCAndHlwZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwaWxsJywgJ3B1bHNlJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4QmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuU2l4QmFkZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FyZXQnLCAnY2lyY2xlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAnbG9hZGluZycsICduYW1lJywgJ3BpbGwnLCAncmVzZXQnLCAnc2l6ZScsICdzdWJtaXQnLCAndGFyZ2V0JywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FyZXQnLCAnY2lyY2xlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAnbG9hZGluZycsICduYW1lJywgJ3BpbGwnLCAncmVzZXQnLCAnc2l6ZScsICdzdWJtaXQnLCAndGFyZ2V0JywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWJ1dHRvbi1ibHVyJywgJ3NpeC1idXR0b24tZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4QnV0dG9uRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuU2l4QnV0dG9uIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1idXR0b24tYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QnV0dG9uRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGJ1dHRvbiBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtYnV0dG9uLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhCdXR0b25FbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhDYXJkIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhDYXJkIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2luZGV0ZXJtaW5hdGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaW5kZXRlcm1pbmF0ZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4Q2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtY2hlY2tib3gtYmx1cicsICdzaXgtY2hlY2tib3gtY2hhbmdlJywgJ3NpeC1jaGVja2JveC1mb2N1cyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhDaGVja2JveEVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuU2l4Q2hlY2tib3gge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1jaGVja2JveC1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhDaGVja2JveEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgY2hlY2tlZCBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgJ3NpeC1jaGVja2JveC1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeENoZWNrYm94RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LWNoZWNrYm94LWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhDaGVja2JveEVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvd2VkRGF0ZXMnLCAnY2xlYXJhYmxlJywgJ2Nsb3NlT25TZWxlY3QnLCAnY29udGFpbmluZ0VsZW1lbnQnLCAnZGF0ZUZvcm1hdCcsICdkZWJvdW5jZScsICdkZWZhdWx0RGF0ZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaG9pc3QnLCAnaWNvblBvc2l0aW9uJywgJ2lubGluZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAnc2VsZWN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZGF0ZXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3dlZERhdGVzJywgJ2NsZWFyYWJsZScsICdjbG9zZU9uU2VsZWN0JywgJ2NvbnRhaW5pbmdFbGVtZW50JywgJ2RhdGVGb3JtYXQnLCAnZGVib3VuY2UnLCAnZGVmYXVsdERhdGUnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hvaXN0JywgJ2ljb25Qb3NpdGlvbicsICdpbmxpbmUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGUnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ29wZW4nLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEYXRlcGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWRhdGVwaWNrZXItc2VsZWN0JywgJ3NpeC1kYXRlcGlja2VyLWNsZWFyJywgJ3NpeC1kYXRlcGlja2VyLWJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeERhdGVwaWNrZXJTZWxlY3RQYXlsb2FkIGFzIElTaXhEYXRlcGlja2VyU2l4RGF0ZXBpY2tlclNlbGVjdFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeERhdGVwaWNrZXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RGF0ZXBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU2l4RGF0ZXBpY2tlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSBvcHRpb24gZ290IHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC1kYXRlcGlja2VyLXNlbGVjdCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGF0ZXBpY2tlclNpeERhdGVwaWNrZXJTZWxlY3RQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNsZWFyIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICAnc2l4LWRhdGVwaWNrZXItY2xlYXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERhdGVwaWNrZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIG9wdGlvbiBnb3Qgc2VsZWN0ZWQuXG4gICAqL1xuICAnc2l4LWRhdGVwaWNrZXItYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGF0ZXBpY2tlclNpeERhdGVwaWNrZXJTZWxlY3RQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hhc0NvbnRlbnQnLCAnaW5saW5lJywgJ29wZW4nLCAnc2VsZWN0YWJsZUVtcHR5JywgJ3N1bW1hcnknLCAnc3VtbWFyeUljb24nLCAnc3VtbWFyeUljb25TaXplJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZGV0YWlscycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGFzQ29udGVudCcsICdpbmxpbmUnLCAnb3BlbicsICdzZWxlY3RhYmxlRW1wdHknLCAnc3VtbWFyeScsICdzdW1tYXJ5SWNvbicsICdzdW1tYXJ5SWNvblNpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RGV0YWlscyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kZXRhaWxzLXNob3cnLCAnc2l4LWRldGFpbHMtYWZ0ZXItc2hvdycsICdzaXgtZGV0YWlscy1oaWRlJywgJ3NpeC1kZXRhaWxzLWFmdGVyLWhpZGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhEZXRhaWxzIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhEZXRhaWxzIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGV0YWlscyBvcGVucy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgb3BlbmVkLlxuICAgKi9cbiAgJ3NpeC1kZXRhaWxzLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERldGFpbHNFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRldGFpbHMgb3BlbnMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRldGFpbHMtYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkZXRhaWxzIGNsb3Nlcy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC1kZXRhaWxzLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERldGFpbHNFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRldGFpbHMgY2xvc2VzIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kZXRhaWxzLWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERldGFpbHNFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnLCAnbm9IZWFkZXInLCAnb3BlbiddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAnbm9IZWFkZXInLCAnb3BlbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEaWFsb2cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZGlhbG9nLXNob3cnLCAnc2l4LWRpYWxvZy1hZnRlci1zaG93JywgJ3NpeC1kaWFsb2ctaGlkZScsICdzaXgtZGlhbG9nLWFmdGVyLWhpZGUnLCAnc2l4LWRpYWxvZy1pbml0aWFsLWZvY3VzJywgJ3NpeC1kaWFsb2ctb3ZlcmxheS1kaXNtaXNzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeERpYWxvZ0VtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLlNpeERpYWxvZyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRpYWxvZyBvcGVucy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgb3BlbmVkLlxuICAgKi9cbiAgJ3NpeC1kaWFsb2ctc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkaWFsb2cgb3BlbnMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIGNsb3Nlcy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC1kaWFsb2ctaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkaWFsb2cgY2xvc2VzIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kaWFsb2ctYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRpYWxvZyBvcGVucyBhbmQgdGhlIHBhbmVsIGdhaW5zIGZvY3VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgZm9jdXMgYW5kXG5hbGxvdyB5b3UgdG8gc2V0IGl0IG9uIGEgZGlmZmVyZW50IGVsZW1lbnQgaW4gdGhlIGRpYWxvZywgc3VjaCBhcyBhbiBpbnB1dCBvciBidXR0b24uXG4gICAqL1xuICAnc2l4LWRpYWxvZy1pbml0aWFsLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBjbGlja2VkLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgdGhlIGRpYWxvZyBmcm9tIGNsb3NpbmcuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1vdmVybGF5LWRpc21pc3MnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERpYWxvZ0VtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250YWluZWQnLCAnbGFiZWwnLCAnbm9IZWFkZXInLCAnb3BlbicsICdwbGFjZW1lbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kcmF3ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lZCcsICdsYWJlbCcsICdub0hlYWRlcicsICdvcGVuJywgJ3BsYWNlbWVudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEcmF3ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZHJhd2VyLXNob3cnLCAnc2l4LWRyYXdlci1hZnRlci1zaG93JywgJ3NpeC1kcmF3ZXItaGlkZScsICdzaXgtZHJhd2VyLWFmdGVyLWhpZGUnLCAnc2l4LWRyYXdlci1pbml0aWFsLWZvY3VzJywgJ3NpeC1kcmF3ZXItb3ZlcmxheS1kaXNtaXNzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeERyYXdlckVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhEcmF3ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeERyYXdlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRyYXdlciBvcGVucy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgb3BlbmVkLlxuICAgKi9cbiAgJ3NpeC1kcmF3ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkcmF3ZXIgb3BlbnMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRyYXdlci1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJhd2VyIGNsb3Nlcy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC1kcmF3ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBkcmF3ZXIgY2xvc2VzIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kcmF3ZXItYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRyYXdlciBvcGVucyBhbmQgdGhlIHBhbmVsIGdhaW5zIGZvY3VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgZm9jdXMgYW5kXG5hbGxvdyB5b3UgdG8gc2V0IGl0IG9uIGEgZGlmZmVyZW50IGVsZW1lbnQgaW4gdGhlIGRyYXdlciwgc3VjaCBhcyBhbiBpbnB1dCBvciBidXR0b24uXG4gICAqL1xuICAnc2l4LWRyYXdlci1pbml0aWFsLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgb3ZlcmxheSBpcyBjbGlja2VkLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgdGhlIGRyYXdlciBmcm9tIGNsb3NpbmcuXG4gICAqL1xuICAnc2l4LWRyYXdlci1vdmVybGF5LWRpc21pc3MnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyYXdlckVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhc3luY0ZpbHRlcicsICdhdXRvZm9jdXNGaWx0ZXInLCAnY2xvc2VPblNlbGVjdCcsICdjb250YWluaW5nRWxlbWVudCcsICdkaXNhYmxlSGlkZU9uRW50ZXJBbmRTcGFjZScsICdkaXN0YW5jZScsICdmaWx0ZXInLCAnZmlsdGVyRGVib3VuY2UnLCAnZmlsdGVyUGxhY2Vob2xkZXInLCAnaG9pc3QnLCAnbWF0Y2hUcmlnZ2VyV2lkdGgnLCAnb3BlbicsICdvcHRpb25zJywgJ3BsYWNlbWVudCcsICdza2lkZGluZycsICd2aXJ0dWFsU2Nyb2xsJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3JlcG9zaXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXN5bmNGaWx0ZXInLCAnYXV0b2ZvY3VzRmlsdGVyJywgJ2Nsb3NlT25TZWxlY3QnLCAnY29udGFpbmluZ0VsZW1lbnQnLCAnZGlzYWJsZUhpZGVPbkVudGVyQW5kU3BhY2UnLCAnZGlzdGFuY2UnLCAnZmlsdGVyJywgJ2ZpbHRlckRlYm91bmNlJywgJ2ZpbHRlclBsYWNlaG9sZGVyJywgJ2hvaXN0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZW1lbnQnLCAnc2tpZGRpbmcnLCAndmlydHVhbFNjcm9sbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kcm9wZG93bi1zaG93JywgJ3NpeC1kcm9wZG93bi1hZnRlci1zaG93JywgJ3NpeC1kcm9wZG93bi1oaWRlJywgJ3NpeC1kcm9wZG93bi1hZnRlci1oaWRlJywgJ3NpeC1kcm9wZG93bi1hdXRvLWZpbHRlci1maXJlZCcsICdzaXgtYXN5bmMtZmlsdGVyLWZpcmVkJywgJ3NpeC1kcm9wZG93bi1zY3JvbGwnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhEcm9wZG93bkF1dG9GaWx0ZXJQYXlsb2FkIGFzIElTaXhEcm9wZG93blNpeERyb3Bkb3duQXV0b0ZpbHRlclBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhEcm9wZG93bkFzeW5jRmlsdGVyUGF5bG9hZCBhcyBJU2l4RHJvcGRvd25TaXhEcm9wZG93bkFzeW5jRmlsdGVyUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeERyb3Bkb3duU2Nyb2xsUGF5bG9hZCBhcyBJU2l4RHJvcGRvd25TaXhEcm9wZG93blNjcm9sbFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlNpeERyb3Bkb3duIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJvcGRvd24gb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyb3Bkb3duIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kcm9wZG93bi1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93bkVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkcm9wZG93biBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtZHJvcGRvd24taGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyb3Bkb3duIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYXV0byBmaWx0ZXIgaXMgdHJpZ2dlcmVkXG4gICAqL1xuICAnc2l4LWRyb3Bkb3duLWF1dG8tZmlsdGVyLWZpcmVkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93blNpeERyb3Bkb3duQXV0b0ZpbHRlclBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYXN5bmMgZmlsdGVyIGlzIHRyaWdnZXJlZFxuICAgKi9cbiAgJ3NpeC1hc3luYy1maWx0ZXItZmlyZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyb3Bkb3duU2l4RHJvcGRvd25Bc3luY0ZpbHRlclBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzY3JvbGxzIGluc2lkZSBkcm9wZG93biBwYW5lbC5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tc2Nyb2xsJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93blNpeERyb3Bkb3duU2Nyb2xsUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWVycm9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEVycm9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RXJyb3IgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEVycm9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbURlc2NyaXB0aW9uJywgJ2N1c3RvbUljb24nLCAnY3VzdG9tVGl0bGUnLCAnZXJyb3JDb2RlJywgJ2xhbmd1YWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZXJyb3ItcGFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tRGVzY3JpcHRpb24nLCAnY3VzdG9tSWNvbicsICdjdXN0b21UaXRsZScsICdlcnJvckNvZGUnLCAnbGFuZ3VhZ2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RXJyb3JQYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RXJyb3JQYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhFcnJvclBhZ2Uge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1maWxlLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RmlsZUxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhGaWxlTGlzdCBleHRlbmRzIENvbXBvbmVudHMuU2l4RmlsZUxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0ZScsICdpZGVudGlmaWVyJywgJ25hbWUnLCAnbm9kZWxldGUnLCAnbm9kb3dubG9hZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZmlsZS1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RhdGUnLCAnaWRlbnRpZmllcicsICduYW1lJywgJ25vZGVsZXRlJywgJ25vZG93bmxvYWQnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhGaWxlTGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZmlsZS1saXN0LWl0ZW0tZG93bmxvYWQnLCAnc2l4LWZpbGUtbGlzdC1pdGVtLXJlbW92ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4RmlsZUxpc3REb3dubG9hZFBheWxvYWQgYXMgSVNpeEZpbGVMaXN0SXRlbVNpeEZpbGVMaXN0RG93bmxvYWRQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4RmlsZUxpc3RSZW1vdmVQYXlsb2FkIGFzIElTaXhGaWxlTGlzdEl0ZW1TaXhGaWxlTGlzdFJlbW92ZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RmlsZUxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhGaWxlTGlzdEl0ZW0ge1xuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZpbGUgZG93bmxvYWQuXG4gICAqL1xuICAnc2l4LWZpbGUtbGlzdC1pdGVtLWRvd25sb2FkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhGaWxlTGlzdEl0ZW1TaXhGaWxlTGlzdERvd25sb2FkUGF5bG9hZD4+O1xuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZpbGUgcmVtb3ZlLlxuICAgKi9cbiAgJ3NpeC1maWxlLWxpc3QtaXRlbS1yZW1vdmUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEZpbGVMaXN0SXRlbVNpeEZpbGVMaXN0UmVtb3ZlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2NlcHQnLCAnY29tcGFjdCcsICdkaXNhYmxlZCcsICdsYWJlbCcsICdtYXhGaWxlU2l6ZScsICdtdWx0aXBsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWZpbGUtdXBsb2FkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2NlcHQnLCAnY29tcGFjdCcsICdkaXNhYmxlZCcsICdsYWJlbCcsICdtYXhGaWxlU2l6ZScsICdtdWx0aXBsZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhGaWxlVXBsb2FkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWZpbGUtdXBsb2FkLXN1Y2Nlc3MnLCAnc2l4LWZpbGUtdXBsb2FkLWZhaWx1cmUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeEZpbGVVcGxvYWRTdWNjZXNzUGF5bG9hZCBhcyBJU2l4RmlsZVVwbG9hZFNpeEZpbGVVcGxvYWRTdWNjZXNzUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeEZpbGVVcGxvYWRGYWlsdXJlUGF5bG9hZCBhcyBJU2l4RmlsZVVwbG9hZFNpeEZpbGVVcGxvYWRGYWlsdXJlUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhGaWxlVXBsb2FkIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhGaWxlVXBsb2FkIHtcbiAgLyoqXG4gICAqIFRyaWdnZXJzIHdoZW4gYSBmaWxlIGlzIGFkZGVkLlxuICAgKi9cbiAgJ3NpeC1maWxlLXVwbG9hZC1zdWNjZXNzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhGaWxlVXBsb2FkU2l4RmlsZVVwbG9hZFN1Y2Nlc3NQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBUcmlnZ2VycyB3aGVuIGFuIHVwbG9hZGVkIGZpbGUgZG9lc24ndCBtYXRjaCBNSU1FIHR5cGUgb3IgbWF4IGZpbGUgc2l6ZS5cbiAgICovXG4gICdzaXgtZmlsZS11cGxvYWQtZmFpbHVyZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RmlsZVVwbG9hZFNpeEZpbGVVcGxvYWRGYWlsdXJlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEZvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoZWxwVGV4dCcsICdsYWJlbCcsICdyZXF1aXJlZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZ3JvdXAtbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hlbHBUZXh0JywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4R3JvdXBMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEdyb3VwTGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEdyb3VwTGFiZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xpY2thYmxlTG9nbycsICdoaWRlSGFtYnVyZ2VyTWVudScsICdvcGVuSGFtYnVyZ2VyTWVudScsICdvcGVuU2VhcmNoJywgJ3NoaWZ0Q29udGVudCddLFxuICBtZXRob2RzOiBbJ3NldFNlYXJjaE9wZW5TdGF0ZScsICdnZXRJc1NlYXJjaE9wZW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZUxvZ28nLCAnaGlkZUhhbWJ1cmdlck1lbnUnLCAnb3BlbkhhbWJ1cmdlck1lbnUnLCAnb3BlblNlYXJjaCcsICdzaGlmdENvbnRlbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWhlYWRlci1hcHAtbmFtZS1jbGlja2VkJywgJ3NpeC1oZWFkZXItYXBwLXN3aXRjaGVyLXNlbGVjdCcsICdzaXgtaGVhZGVyLXByb2ZpbGUtc2VsZWN0JywgJ3NpeC1oZWFkZXItaGFtYnVyZ2VyLW1lbnUtY2xpY2tlZCcsICdzaXgtaGVhZGVyLWxvZ28tY2xpY2tlZCcsICdzaXgtaGVhZGVyLXNlYXJjaC1maWVsZC10b2dnbGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4SGVhZGVyRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4SGVhZGVyQXBwU3dpdGNoZXJTZWxlY3RQYXlsb2FkIGFzIElTaXhIZWFkZXJTaXhIZWFkZXJBcHBTd2l0Y2hlclNlbGVjdFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhIZWFkZXJQcm9maWxlU2VsZWN0UGF5bG9hZCBhcyBJU2l4SGVhZGVyU2l4SGVhZGVyUHJvZmlsZVNlbGVjdFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhIZWFkZXJTZWFyY2hGaWVsZFRvZ2dsZSBhcyBJU2l4SGVhZGVyU2l4SGVhZGVyU2VhcmNoRmllbGRUb2dnbGUgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhIZWFkZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBuYW1lIG9mIHRoZSBzZWxlY3RlZCBhcHAgaXMgY2xpY2tlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLWFwcC1uYW1lLWNsaWNrZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgbWVudSBpdGVtIGlzIGluIHRoZSBhcHAgc3dpdGNoZXIgbWVudSBpcyBzZWxlY3RlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLWFwcC1zd2l0Y2hlci1zZWxlY3QnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlclNpeEhlYWRlckFwcFN3aXRjaGVyU2VsZWN0UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgbWVudSBpdGVtIGlzIGluIHRoZSBwcm9maWxlIG1lbnUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICAnc2l4LWhlYWRlci1wcm9maWxlLXNlbGVjdCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SGVhZGVyU2l4SGVhZGVyUHJvZmlsZVNlbGVjdFBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaGFtYnVyZ2VyIG1lbnUgaXMgY2xpY2tlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLWhhbWJ1cmdlci1tZW51LWNsaWNrZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBoZWFkZXIgbG9nbyBpcyBjbGlja2VkLlxuICAgKi9cbiAgJ3NpeC1oZWFkZXItbG9nby1jbGlja2VkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhIZWFkZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBzZWFyY2ggZmllbGQgaXMgdG9nZ2xlZC5cbiAgICovXG4gICdzaXgtaGVhZGVyLXNlYXJjaC1maWVsZC10b2dnbGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEhlYWRlclNpeEhlYWRlclNlYXJjaEZpZWxkVG9nZ2xlPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpbGxlZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZmlsbGVkJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEljb24gZXh0ZW5kcyBDb21wb25lbnRzLlNpeEljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaHRtbCcsICdsYWJlbCcsICduYW1lJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1pY29uLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaHRtbCcsICdsYWJlbCcsICduYW1lJywgJ3NpemUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SWNvbkJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEljb25CdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlNpeEljb25CdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2NhcGl0YWxpemUnLCAnYXV0b2NvbXBsZXRlJywgJ2F1dG9jb3JyZWN0JywgJ2F1dG9mb2N1cycsICdjbGVhcmFibGUnLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25TZWFyY2gnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hlbHBUZXh0JywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xpbmUnLCAnbWF4JywgJ21heGxlbmd0aCcsICdtaW4nLCAnbWlubGVuZ3RoJywgJ25hbWUnLCAncGF0dGVybicsICdwaWxsJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3BlbGxjaGVjaycsICdzdGVwJywgJ3RvZ2dsZVBhc3N3b3JkJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cycsICdzZWxlY3QnLCAnc2V0U2VsZWN0aW9uUmFuZ2UnLCAnc2V0UmFuZ2VUZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaW5wdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnY2xlYXJhYmxlJywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duU2VhcmNoJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsaW5lJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICduYW1lJywgJ3BhdHRlcm4nLCAncGlsbCcsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3NwZWxsY2hlY2snLCAnc3RlcCcsICd0b2dnbGVQYXNzd29yZCcsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeElucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWlucHV0LWNoYW5nZScsICdzaXgtaW5wdXQtY2xlYXInLCAnc2l4LWlucHV0LWlucHV0JywgJ3NpeC1pbnB1dC1mb2N1cycsICdzaXgtaW5wdXQtYmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhJbnB1dEVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhJbnB1dCBleHRlbmRzIENvbXBvbmVudHMuU2l4SW5wdXQge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcy4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtaW5wdXQtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJbnB1dEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjbGVhciBidXR0b24gaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgJ3NpeC1pbnB1dC1jbGVhcic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SW5wdXRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCByZWNlaXZlcyBpbnB1dC4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtaW5wdXQtaW5wdXQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeElucHV0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LWlucHV0LWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJbnB1dEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLiBBY2Nlc3MgdGhlIG5ldyB2YWx1ZSB2aWEgZXZlbnQudGFyZ2V0LnZhbHVlLlxuICAgKi9cbiAgJ3NpeC1pbnB1dC1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJbnB1dEVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZWJvdW5jZScsICdpbnRlcnZhbCcsICdpdGVtcycsICdtYXgnLCAnbWluJywgJ3BhZGRlZCcsICdwYWRkaW5nQ2hhcicsICdwYWRkaW5nRGlyZWN0aW9uJywgJ3BhZGRpbmdMZW5ndGgnLCAncm91bmR0cmlwJywgJ3N0ZXAnLCAndGltZW91dCcsICd0eXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaXRlbS1waWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlYm91bmNlJywgJ2ludGVydmFsJywgJ2l0ZW1zJywgJ21heCcsICdtaW4nLCAncGFkZGVkJywgJ3BhZGRpbmdDaGFyJywgJ3BhZGRpbmdEaXJlY3Rpb24nLCAncGFkZGluZ0xlbmd0aCcsICdyb3VuZHRyaXAnLCAnc3RlcCcsICd0aW1lb3V0JywgJ3R5cGUnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SXRlbVBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1pdGVtLXBpY2tlci1jaGFuZ2UnLCAnc2l4LWl0ZW0tcGlja2VyLWNoYW5nZS1kZWJvdW5jZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeEl0ZW1QaWNrZXJDaGFuZ2VQYXlsb2FkIGFzIElTaXhJdGVtUGlja2VyU2l4SXRlbVBpY2tlckNoYW5nZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SXRlbVBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU2l4SXRlbVBpY2tlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGl0ZW0gcGlja2VyJ3MgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgJ3NpeC1pdGVtLXBpY2tlci1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEl0ZW1QaWNrZXJTaXhJdGVtUGlja2VyQ2hhbmdlUGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpdGVtIHBpY2tlcidzIHZhbHVlIGNoYW5nZXMsIGJ1dCBkZWJvdW5jZWRcbiAgICovXG4gICdzaXgtaXRlbS1waWNrZXItY2hhbmdlLWRlYm91bmNlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SXRlbVBpY2tlclNpeEl0ZW1QaWNrZXJDaGFuZ2VQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhbmd1YWdlcycsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWxhbmd1YWdlLXN3aXRjaGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYW5ndWFnZXMnLCAnc2VsZWN0ZWQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TGFuZ3VhZ2VTd2l0Y2hlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1sYW5ndWFnZS1zd2l0Y2hlci1jaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeExhbmd1YWdlU3dpdGNoZXJDaGFuZ2VQYXlsb2FkIGFzIElTaXhMYW5ndWFnZVN3aXRjaGVyU2l4TGFuZ3VhZ2VTd2l0Y2hlckNoYW5nZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4TGFuZ3VhZ2VTd2l0Y2hlciBleHRlbmRzIENvbXBvbmVudHMuU2l4TGFuZ3VhZ2VTd2l0Y2hlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGxhbmd1YWdlIHN3aXRjaGVycyB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICAnc2l4LWxhbmd1YWdlLXN3aXRjaGVyLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4TGFuZ3VhZ2VTd2l0Y2hlclNpeExhbmd1YWdlU3dpdGNoZXJDaGFuZ2VQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbHVtbnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1sYXlvdXQtZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sdW1ucyddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhMYXlvdXRHcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4TGF5b3V0R3JpZCBleHRlbmRzIENvbXBvbmVudHMuU2l4TGF5b3V0R3JpZCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwYWRkZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tYWluLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncGFkZGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1haW5Db250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhNYWluQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhNYWluQ29udGFpbmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVLZXlib2FyZEhhbmRsaW5nJywgJ2l0ZW1TaXplJywgJ2l0ZW1zJywgJ2l0ZW1zU2hvd24nLCAncmVtb3ZlQm94U2hhZG93JywgJ3Njcm9sbGluZ0RlYm91bmNlJywgJ3ZpcnR1YWxTY3JvbGwnXSxcbiAgbWV0aG9kczogWyd0eXBlVG9TZWxlY3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlS2V5Ym9hcmRIYW5kbGluZycsICdpdGVtU2l6ZScsICdpdGVtcycsICdpdGVtc1Nob3duJywgJ3JlbW92ZUJveFNoYWRvdycsICdzY3JvbGxpbmdEZWJvdW5jZScsICd2aXJ0dWFsU2Nyb2xsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtbWVudS1pdGVtLXNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhNZW51SXRlbVNlbGVjdGVkUGF5bG9hZCBhcyBJU2l4TWVudVNpeE1lbnVJdGVtU2VsZWN0ZWRQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLlNpeE1lbnUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgbWVudSBpdGVtIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC1tZW51LWl0ZW0tc2VsZWN0ZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeE1lbnVTaXhNZW51SXRlbVNlbGVjdGVkUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1lbnUtZGl2aWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhNZW51RGl2aWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnVEaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhNZW51RGl2aWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja1R5cGUnLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJywgJ2dldFRleHRMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tUeXBlJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tZW51LWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1lbnVMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnVMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudUxhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1waWN0bycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhQaWN0byB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFBpY3RvIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQaWN0byB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbmRldGVybWluYXRlJywgJ3BlcmNlbnRhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1wcm9ncmVzcy1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2luZGV0ZXJtaW5hdGUnLCAncGVyY2VudGFnZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhQcm9ncmVzc0JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFByb2dyZXNzQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQcm9ncmVzc0JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwZXJjZW50YWdlJywgJ3NpemUnLCAnc3Ryb2tlV2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1wcm9ncmVzcy1yaW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwZXJjZW50YWdlJywgJ3NpemUnLCAnc3Ryb2tlV2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4UHJvZ3Jlc3NSaW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4UHJvZ3Jlc3NSaW5nIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQcm9ncmVzc1Jpbmcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ25hbWUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbmFtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1yYWRpby1ibHVyJywgJ3NpeC1yYWRpby1jaGFuZ2UnLCAnc2l4LXJhZGlvLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFJhZGlvRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhSYWRpbyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhZGlvLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhZGlvRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICAnc2l4LXJhZGlvLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4UmFkaW9FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtcmFkaW8tZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhZGlvRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEZvcm1hdHRlcicsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtcmFuZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEZvcm1hdHRlcicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSYW5nZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1yYW5nZS1jaGFuZ2UnLCAnc2l4LXJhbmdlLWJsdXInLCAnc2l4LXJhbmdlLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFJhbmdlRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhSYW5nZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgJ3NpeC1yYW5nZS1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhbmdlRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhbmdlLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhbmdlRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhbmdlLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhSYW5nZUVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydicmVha3BvaW50JywgJ3BhZGRlZCcsICdzdGFnZScsICd2ZXJzaW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtcm9vdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnJlYWtwb2ludCcsICdwYWRkZWQnLCAnc3RhZ2UnLCAndmVyc2lvbiddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSb290IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXJvb3QtY29sbGFwc2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhSb290Q29sbGFwc2VkUGF5bG9hZCBhcyBJU2l4Um9vdFNpeFJvb3RDb2xsYXBzZWRQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJvb3QgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFJvb3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGRpc3BsYXkgc2l6ZSBpcyB1cGRhdGVkLlxuICAgKi9cbiAgJ3NpeC1yb290LWNvbGxhcHNlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4Um9vdFNpeFJvb3RDb2xsYXBzZWRQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdwbGFjZWhvbGRlcicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNlYXJjaC1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ3BsYWNlaG9sZGVyJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNlYXJjaEZpZWxkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXNlYXJjaC1maWVsZC1jaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeFNlYXJjaEZpZWxkQ2hhbmdlUGF5bG9hZCBhcyBJU2l4U2VhcmNoRmllbGRTaXhTZWFyY2hGaWVsZENoYW5nZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2VhcmNoRmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNlYXJjaEZpZWxkIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIHNlYXJjaCBpcyB0cmlnZ2VyZWRcbiAgICovXG4gICdzaXgtc2VhcmNoLWZpZWxkLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VhcmNoRmllbGRTaXhTZWFyY2hGaWVsZENoYW5nZVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXN5bmNGaWx0ZXInLCAnYXV0b2NvbXBsZXRlJywgJ2NsZWFyYWJsZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnZmlsdGVyJywgJ2ZpbHRlckRlYm91bmNlJywgJ2ZpbHRlclBsYWNlaG9sZGVyJywgJ2hlbHBUZXh0JywgJ2hvaXN0JywgJ2lucHV0RGVib3VuY2UnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsaW5lJywgJ21heFRhZ3NWaXNpYmxlJywgJ211bHRpcGxlJywgJ25hbWUnLCAnb3B0aW9ucycsICdwaWxsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NlbGVjdEFsbEJ1dHRvbicsICdzZWxlY3RBbGxUZXh0JywgJ3NpemUnLCAndmFsdWUnLCAndmlydHVhbFNjcm9sbCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhc3luY0ZpbHRlcicsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdmaWx0ZXInLCAnZmlsdGVyRGVib3VuY2UnLCAnZmlsdGVyUGxhY2Vob2xkZXInLCAnaGVscFRleHQnLCAnaG9pc3QnLCAnaW5wdXREZWJvdW5jZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xpbmUnLCAnbWF4VGFnc1Zpc2libGUnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdvcHRpb25zJywgJ3BpbGwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2VsZWN0QWxsQnV0dG9uJywgJ3NlbGVjdEFsbFRleHQnLCAnc2l6ZScsICd2YWx1ZScsICd2aXJ0dWFsU2Nyb2xsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1zZWxlY3QtY2hhbmdlJywgJ3NpeC1zZWxlY3QtZm9jdXMnLCAnc2l4LXNlbGVjdC1ibHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhTZWxlY3RDaGFuZ2VQYXlsb2FkIGFzIElTaXhTZWxlY3RTaXhTZWxlY3RDaGFuZ2VQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhTZWxlY3RFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTZWxlY3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gICdzaXgtc2VsZWN0LWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VsZWN0U2l4U2VsZWN0Q2hhbmdlUGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zZWxlY3QtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNlbGVjdEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zZWxlY3QtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VsZWN0RW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW4nLCAncG9zaXRpb24nLCAndG9nZ2xlZCcsICd3aWR0aCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZScsICdzaG93JywgJ2hpZGUnLCAnc2VsZWN0SXRlbUJ5SW5kZXgnLCAnc2VsZWN0SXRlbUJ5TmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNpZGViYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW4nLCAncG9zaXRpb24nLCAndG9nZ2xlZCcsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTaWRlYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXNpZGViYXItc2hvdycsICdzaXgtc2lkZWJhci1hZnRlci1zaG93JywgJ3NpeC1zaWRlYmFyLWhpZGUnLCAnc2l4LXNpZGViYXItYWZ0ZXItaGlkZScsICdzaXgtc2lkZWJhci1pbml0aWFsLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFNpZGViYXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2lkZWJhciBleHRlbmRzIENvbXBvbmVudHMuU2l4U2lkZWJhciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNpZGViYXIgb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtc2lkZWJhci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBzaWRlYmFyIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1zaWRlYmFyLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNpZGViYXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2lkZWJhciBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtc2lkZWJhci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBzaWRlYmFyIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtc2lkZWJhci1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNpZGViYXIgb3BlbnMgYW5kIHRoZSBwYW5lbCBnYWlucyBmb2N1cy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGZvY3VzIGFuZFxuYWxsb3cgeW91IHRvIHNldCBpdCBvbiBhIGRpZmZlcmVudCBlbGVtZW50IGluIHRoZSBzaWRlYmFyLCBzdWNoIGFzIGFuIGlucHV0IG9yIGJ1dHRvbi5cbiAgICovXG4gICdzaXgtc2lkZWJhci1pbml0aWFsLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hyZWYnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zaWRlYmFyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hyZWYnLCAnc2VsZWN0ZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U2lkZWJhckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTaWRlYmFySXRlbSBleHRlbmRzIENvbXBvbmVudHMuU2l4U2lkZWJhckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaHJlZicsICdpY29uJywgJ25hbWUnLCAnb3BlbicsICdzdW1tYXJ5SWNvbicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNpZGViYXItaXRlbS1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaHJlZicsICdpY29uJywgJ25hbWUnLCAnb3BlbicsICdzdW1tYXJ5SWNvbicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTaWRlYmFySXRlbUdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2lkZWJhckl0ZW1Hcm91cCBleHRlbmRzIENvbXBvbmVudHMuU2l4U2lkZWJhckl0ZW1Hcm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzaXgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zcGlubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U3Bpbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFNwaW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNwaW5uZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc3RhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zdGFnZS1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3N0YWdlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFN0YWdlSW5kaWNhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U3RhZ2VJbmRpY2F0b3IgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFN0YWdlSW5kaWNhdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc3dpdGNoJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U3dpdGNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXN3aXRjaC1ibHVyJywgJ3NpeC1zd2l0Y2gtY2hhbmdlJywgJ3NpeC1zd2l0Y2gtZm9jdXMnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4U3dpdGNoRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFN3aXRjaCBleHRlbmRzIENvbXBvbmVudHMuU2l4U3dpdGNoIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBsb3NlcyBmb2N1cy5cbiAgICovXG4gICdzaXgtc3dpdGNoLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgY2hlY2tlZCBzdGF0ZSBjaGFuZ2VzLlxuICAgKi9cbiAgJ3NpeC1zd2l0Y2gtY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGJvb2xlYW4+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtc3dpdGNoLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTd2l0Y2hFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Nsb3NhYmxlJywgJ2Rpc2FibGVkJywgJ3BhbmVsJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdjbG9zYWJsZScsICdkaXNhYmxlZCcsICdwYW5lbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUYWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGFiLWNsb3NlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRhYkVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUYWIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRhYiB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRhYiBpcyBjbG9zYWJsZSBhbmQgdGhlIGNsb3NlIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICAnc2l4LXRhYi1jbG9zZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGFiRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ25vU2Nyb2xsQ29udHJvbHMnLCAncGxhY2VtZW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRhYi1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbm9TY3JvbGxDb250cm9scycsICdwbGFjZW1lbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGFiR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGFiLXNob3cnLCAnc2l4LXRhYi1oaWRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhUYWJTaG93UGF5bG9hZCBhcyBJU2l4VGFiR3JvdXBTaXhUYWJTaG93UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeFRhYkhpZGVQYXlsb2FkIGFzIElTaXhUYWJHcm91cFNpeFRhYkhpZGVQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRhYkdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUYWJHcm91cCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSB0YWIgaXMgc2hvd24uXG4gICAqL1xuICAnc2l4LXRhYi1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUYWJHcm91cFNpeFRhYlNob3dQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gYSB0YWIgaXMgaGlkZGVuLlxuICAgKi9cbiAgJ3NpeC10YWItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGFiR3JvdXBTaXhUYWJIaWRlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnbmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRhYi1wYW5lbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ25hbWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGFiUGFuZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUYWJQYW5lbCBleHRlbmRzIENvbXBvbmVudHMuU2l4VGFiUGFuZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ3BpbGwnLCAnc2l6ZScsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGFnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGVhcmFibGUnLCAncGlsbCcsICdzaXplJywgJ3R5cGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGFnIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRhZy1jbGVhciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhUYWdFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGFnIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUYWcge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjbGVhciBidXR0b24gaXMgYWN0aXZhdGVkLlxuICAgKi9cbiAgJ3NpeC10YWctY2xlYXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRhZ0VtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvY2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnYXV0b2NvcnJlY3QnLCAnYXV0b2ZvY3VzJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdtYXhsZW5ndGgnLCAnbWlubGVuZ3RoJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncmVzaXplJywgJ3Jvd3MnLCAnc2l6ZScsICdzcGVsbGNoZWNrJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnLCAnc2VsZWN0JywgJ3NldFNlbGVjdGlvblJhbmdlJywgJ3NldFJhbmdlVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRleHRhcmVhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvY2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnYXV0b2NvcnJlY3QnLCAnYXV0b2ZvY3VzJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdtYXhsZW5ndGgnLCAnbWlubGVuZ3RoJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAncmVzaXplJywgJ3Jvd3MnLCAnc2l6ZScsICdzcGVsbGNoZWNrJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRleHRhcmVhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRleHRhcmVhLWNoYW5nZScsICdzaXgtdGV4dGFyZWEtaW5wdXQnLCAnc2l4LXRleHRhcmVhLWZvY3VzJywgJ3NpeC10ZXh0YXJlYS1ibHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRleHRhcmVhRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUZXh0YXJlYSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyB2YWx1ZSBjaGFuZ2VzLiBBY2Nlc3MgdGhlIG5ldyB2YWx1ZSB2aWEgZXZlbnQudGFyZ2V0LnZhbHVlLlxuICAgKi9cbiAgJ3NpeC10ZXh0YXJlYS1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRleHRhcmVhRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgcmVjZWl2ZXMgaW5wdXQuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LXRleHRhcmVhLWlucHV0JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUZXh0YXJlYUVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC10ZXh0YXJlYS1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGV4dGFyZWFFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBsb3NlcyBmb2N1cy4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtdGV4dGFyZWEtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGV4dGFyZWFFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VhYmxlJywgJ2Rpc2FibGVUb29sdGlwJywgJ2Rpc2FibGVkJywgJ2VsZXZhdGVkJywgJ2ljb25OYW1lJywgJ2xhYmVsJywgJ3NpemUnXSxcbiAgbWV0aG9kczogWydoaWRlJywgJ3Nob3cnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10aWxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zZWFibGUnLCAnZGlzYWJsZVRvb2x0aXAnLCAnZGlzYWJsZWQnLCAnZWxldmF0ZWQnLCAnaWNvbk5hbWUnLCAnbGFiZWwnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUaWxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXRpbGUtY2xvc2VkJywgJ3NpeC10aWxlLXNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRpbGVFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGlsZSBleHRlbmRzIENvbXBvbmVudHMuU2l4VGlsZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRpbGUgd2FzIGNsb3NlZC5cbiAgICovXG4gICdzaXgtdGlsZS1jbG9zZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRpbGVFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdGlsZSBpcyBzZWxlY3RlZC5cbiAgICovXG4gICdzaXgtdGlsZS1zZWxlY3RlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGlsZUVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGVhcmFibGUnLCAnZGVib3VuY2UnLCAnZGVmYXVsdFRpbWUnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2Zvcm1hdCcsICdob2lzdCcsICdpY29uUG9zaXRpb24nLCAnaW5saW5lJywgJ2ludGVydmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdvcGVuJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzZXBhcmF0b3InLCAnc2l6ZScsICd0aW1lb3V0JywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10aW1lcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGVhcmFibGUnLCAnZGVib3VuY2UnLCAnZGVmYXVsdFRpbWUnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2Zvcm1hdCcsICdob2lzdCcsICdpY29uUG9zaXRpb24nLCAnaW5saW5lJywgJ2ludGVydmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdvcGVuJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzZXBhcmF0b3InLCAnc2l6ZScsICd0aW1lb3V0JywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRpbWVwaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGltZXBpY2tlci1jaGFuZ2UnLCAnc2l4LXRpbWVwaWNrZXItY2hhbmdlLWRlYm91bmNlZCcsICdzaXgtdGltZXBpY2tlci1jbGVhciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4VGltZXBpY2tlckNoYW5nZSBhcyBJU2l4VGltZXBpY2tlclNpeFRpbWVwaWNrZXJDaGFuZ2UgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRpbWVwaWNrZXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGltZXBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU2l4VGltZXBpY2tlciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRpbWVwaWNrZXIncyB2YWx1ZSBjaGFuZ2VzXG4gICAqL1xuICAnc2l4LXRpbWVwaWNrZXItY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUaW1lcGlja2VyU2l4VGltZXBpY2tlckNoYW5nZT4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0aW1lcGlja2VyJ3MgdmFsdWUgY2hhbmdlcywgYnV0IGRlYm91bmNlZFxuICAgKi9cbiAgJ3NpeC10aW1lcGlja2VyLWNoYW5nZS1kZWJvdW5jZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRpbWVwaWNrZXJTaXhUaW1lcGlja2VyQ2hhbmdlPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNsZWFyIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICAnc2l4LXRpbWVwaWNrZXItY2xlYXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRpbWVwaWNrZXJFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXNhYmxlZCcsICdkaXN0YW5jZScsICdvcGVuJywgJ3BsYWNlbWVudCcsICdza2lkZGluZycsICd0cmlnZ2VyJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXNhYmxlZCcsICdkaXN0YW5jZScsICdvcGVuJywgJ3BsYWNlbWVudCcsICdza2lkZGluZycsICd0cmlnZ2VyJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdG9vbHRpcC1zaG93JywgJ3NpeC10b29sdGlwLWFmdGVyLXNob3cnLCAnc2l4LXRvb2x0aXAtaGlkZScsICdzaXgtdG9vbHRpcC1hZnRlci1oaWRlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRvb2x0aXBFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuU2l4VG9vbHRpcCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRvb2x0aXAgYmVnaW5zIHRvIHNob3cuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIHNob3duLlxuICAgKi9cbiAgJ3NpeC10b29sdGlwLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRvb2x0aXBFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHRvb2x0aXAgaGFzIHNob3duIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC10b29sdGlwLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRvb2x0aXBFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdG9vbHRpcCBiZWdpbnMgdG8gaGlkZS4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgaGlkZGVuLlxuICAgKi9cbiAgJ3NpeC10b29sdGlwLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRvb2x0aXBFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHRvb2x0aXAgaGFzIGhpZGRlbiBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtdG9vbHRpcC1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUb29sdGlwRW1wdHlQYXlsb2FkPj47XG59XG5cblxuIl19
1414
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvY29tcG9uZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFeEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFnQmhFLFdBQU0sUUFBUSxHQUFkLE1BQU0sUUFBUTtJQUVuQixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMxQixZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQzsrR0FOVSxRQUFRO21HQUFSLFFBQVEscUlBSlQsMkJBQTJCOztBQUkxQixRQUFRO0lBWHBCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUNoRCxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQztLQUNuQyxDQUFDO0dBUVcsUUFBUSxDQU9wQjs0RkFQWSxRQUFRO2tCQVBwQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxN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b3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFByb3h5Q21wLCBwcm94eU91dHB1dHMgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zYWJsZScsICdkdXJhdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9hc3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1hbGVydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2FibGUnLCAnZHVyYXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEFsZXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWFsZXJ0LXNob3cnLCAnc2l4LWFsZXJ0LWFmdGVyLXNob3cnLCAnc2l4LWFsZXJ0LWhpZGUnLCAnc2l4LWFsZXJ0LWFmdGVyLWhpZGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4QWxlcnRFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4QWxlcnQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEFsZXJ0IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYWxlcnQgb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtYWxlcnQtc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QWxlcnRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFsZXJ0IG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1hbGVydC1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhBbGVydEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBhbGVydCBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtYWxlcnQtaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QWxlcnRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGFsZXJ0IGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtYWxlcnQtYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4QWxlcnRFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWx0JywgJ2ltYWdlJywgJ2luaXRpYWxzJywgJ3NoYXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtYXZhdGFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbHQnLCAnaW1hZ2UnLCAnaW5pdGlhbHMnLCAnc2hhcGUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4QXZhdGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4QXZhdGFyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhBdmF0YXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGlsbCcsICdwdWxzZScsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BpbGwnLCAncHVsc2UnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEJhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXJldCcsICdjaXJjbGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnaHJlZicsICdsb2FkaW5nJywgJ25hbWUnLCAncGlsbCcsICdyZXNldCcsICdzaXplJywgJ3N1Ym1pdCcsICd0YXJnZXQnLCAndHlwZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXJldCcsICdjaXJjbGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnaHJlZicsICdsb2FkaW5nJywgJ25hbWUnLCAncGlsbCcsICdyZXNldCcsICdzaXplJywgJ3N1Ym1pdCcsICd0YXJnZXQnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtYnV0dG9uLWJsdXInLCAnc2l4LWJ1dHRvbi1mb2N1cyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhCdXR0b25FbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4QnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhCdXR0b24ge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBidXR0b24gbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LWJ1dHRvbi1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhCdXR0b25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYnV0dG9uIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1idXR0b24tZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEJ1dHRvbkVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4Q2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeENhcmQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaW5kZXRlcm1pbmF0ZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdpbmRldGVybWluYXRlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1jaGVja2JveC1ibHVyJywgJ3NpeC1jaGVja2JveC1jaGFuZ2UnLCAnc2l4LWNoZWNrYm94LWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeENoZWNrYm94RW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeENoZWNrYm94IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhDaGVja2JveCB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LWNoZWNrYm94LWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeENoZWNrYm94RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICAnc2l4LWNoZWNrYm94LWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4Q2hlY2tib3hFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtY2hlY2tib3gtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeENoZWNrYm94RW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93ZWREYXRlcycsICdjbGVhcmFibGUnLCAnZGF0ZUZvcm1hdCcsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaGVscFRleHQnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYW5ndWFnZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZGF0ZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsb3dlZERhdGVzJywgJ2NsZWFyYWJsZScsICdkYXRlRm9ybWF0JywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhbmd1YWdlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeERhdGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtY2hhbmdlJywgJ3NpeC1ibHVyJ10pO1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeERhdGUgZXh0ZW5kcyBDb21wb25lbnRzLlNpeERhdGUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcy5cbkV2ZW50IGRldGFpbCBjb250YWlucyB0aGUgbmV3IGRhdGUgdmFsdWUgaW4gSVNPIGZvcm1hdCAoeXl5eS1NTS1kZCkgb3IgYW4gZW1wdHkgc3RyaW5nIGlmIGNsZWFyZWQuXG4gICAqL1xuICAnc2l4LWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxzdHJpbmcgfCAnJz4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzIG9yIHRoZSBkYXRlIHBpY2tlciBwb3B1cCBpcyBjbG9zZWQuXG5Eb2VzIG5vdCBjb250YWluIGV2ZW50IGRldGFpbHMuXG4gICAqL1xuICAnc2l4LWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsbG93ZWREYXRlcycsICdjbGVhcmFibGUnLCAnY2xvc2VPblNlbGVjdCcsICdjb250YWluaW5nRWxlbWVudCcsICdkYXRlRm9ybWF0JywgJ2RlYm91bmNlJywgJ2RlZmF1bHREYXRlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdob2lzdCcsICdpY29uUG9zaXRpb24nLCAnaW5saW5lJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxlJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvcGVuJywgJ3BsYWNlaG9sZGVyJywgJ3BsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdzZWxlY3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGxvd2VkRGF0ZXMnLCAnY2xlYXJhYmxlJywgJ2Nsb3NlT25TZWxlY3QnLCAnY29udGFpbmluZ0VsZW1lbnQnLCAnZGF0ZUZvcm1hdCcsICdkZWJvdW5jZScsICdkZWZhdWx0RGF0ZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaG9pc3QnLCAnaWNvblBvc2l0aW9uJywgJ2lubGluZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsZScsICdtYXgnLCAnbWluJywgJ25hbWUnLCAnb3BlbicsICdwbGFjZWhvbGRlcicsICdwbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeERhdGVwaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZGF0ZXBpY2tlci1zZWxlY3QnLCAnc2l4LWRhdGVwaWNrZXItY2xlYXInLCAnc2l4LWRhdGVwaWNrZXItYmx1ciddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4RGF0ZXBpY2tlclNlbGVjdFBheWxvYWQgYXMgSVNpeERhdGVwaWNrZXJTaXhEYXRlcGlja2VyU2VsZWN0UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RGF0ZXBpY2tlckVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhEYXRlcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhEYXRlcGlja2VyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIG9wdGlvbiBnb3Qgc2VsZWN0ZWQuXG4gICAqL1xuICAnc2l4LWRhdGVwaWNrZXItc2VsZWN0JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEYXRlcGlja2VyU2l4RGF0ZXBpY2tlclNlbGVjdFBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2xlYXIgYnV0dG9uIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gICdzaXgtZGF0ZXBpY2tlci1jbGVhcic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGF0ZXBpY2tlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgb3B0aW9uIGdvdCBzZWxlY3RlZC5cbiAgICovXG4gICdzaXgtZGF0ZXBpY2tlci1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEYXRlcGlja2VyU2l4RGF0ZXBpY2tlclNlbGVjdFBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGFzQ29udGVudCcsICdpbmxpbmUnLCAnb3BlbicsICdzZWxlY3RhYmxlRW1wdHknLCAnc3VtbWFyeScsICdzdW1tYXJ5SWNvbicsICdzdW1tYXJ5SWNvblNpemUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kZXRhaWxzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdoYXNDb250ZW50JywgJ2lubGluZScsICdvcGVuJywgJ3NlbGVjdGFibGVFbXB0eScsICdzdW1tYXJ5JywgJ3N1bW1hcnlJY29uJywgJ3N1bW1hcnlJY29uU2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEZXRhaWxzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LWRldGFpbHMtc2hvdycsICdzaXgtZGV0YWlscy1hZnRlci1zaG93JywgJ3NpeC1kZXRhaWxzLWhpZGUnLCAnc2l4LWRldGFpbHMtYWZ0ZXItaGlkZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhEZXRhaWxzRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeERldGFpbHMgZXh0ZW5kcyBDb21wb25lbnRzLlNpeERldGFpbHMge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkZXRhaWxzIG9wZW5zLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBvcGVuZWQuXG4gICAqL1xuICAnc2l4LWRldGFpbHMtc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZGV0YWlscyBvcGVucyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZGV0YWlscy1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEZXRhaWxzRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGRldGFpbHMgY2xvc2VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LWRldGFpbHMtaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgZGV0YWlscyBjbG9zZXMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRldGFpbHMtYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGV0YWlsc0VtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdub0hlYWRlcicsICdvcGVuJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZGlhbG9nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdub0hlYWRlcicsICdvcGVuJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeERpYWxvZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kaWFsb2ctc2hvdycsICdzaXgtZGlhbG9nLWFmdGVyLXNob3cnLCAnc2l4LWRpYWxvZy1oaWRlJywgJ3NpeC1kaWFsb2ctYWZ0ZXItaGlkZScsICdzaXgtZGlhbG9nLWluaXRpYWwtZm9jdXMnLCAnc2l4LWRpYWxvZy1vdmVybGF5LWRpc21pc3MnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RGlhbG9nRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeERpYWxvZyBleHRlbmRzIENvbXBvbmVudHMuU2l4RGlhbG9nIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIG9wZW5zLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBvcGVuZWQuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRpYWxvZyBvcGVucyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZGlhbG9nLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERpYWxvZ0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkaWFsb2cgY2xvc2VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRpYWxvZyBjbG9zZXMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRpYWxvZy1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEaWFsb2dFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZGlhbG9nIG9wZW5zIGFuZCB0aGUgcGFuZWwgZ2FpbnMgZm9jdXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBmb2N1cyBhbmRcbmFsbG93IHlvdSB0byBzZXQgaXQgb24gYSBkaWZmZXJlbnQgZWxlbWVudCBpbiB0aGUgZGlhbG9nLCBzdWNoIGFzIGFuIGlucHV0IG9yIGJ1dHRvbi5cbiAgICovXG4gICdzaXgtZGlhbG9nLWluaXRpYWwtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERpYWxvZ0VtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBvdmVybGF5IGlzIGNsaWNrZWQuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCB0aGUgZGlhbG9nIGZyb20gY2xvc2luZy5cbiAgICovXG4gICdzaXgtZGlhbG9nLW92ZXJsYXktZGlzbWlzcyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RGlhbG9nRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lZCcsICdsYWJlbCcsICdub0hlYWRlcicsICdvcGVuJywgJ3BsYWNlbWVudCddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWRyYXdlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVkJywgJ2xhYmVsJywgJ25vSGVhZGVyJywgJ29wZW4nLCAncGxhY2VtZW50J10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeERyYXdlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kcmF3ZXItc2hvdycsICdzaXgtZHJhd2VyLWFmdGVyLXNob3cnLCAnc2l4LWRyYXdlci1oaWRlJywgJ3NpeC1kcmF3ZXItYWZ0ZXItaGlkZScsICdzaXgtZHJhd2VyLWluaXRpYWwtZm9jdXMnLCAnc2l4LWRyYXdlci1vdmVybGF5LWRpc21pc3MnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RHJhd2VyRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeERyYXdlciBleHRlbmRzIENvbXBvbmVudHMuU2l4RHJhd2VyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJhd2VyIG9wZW5zLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBvcGVuZWQuXG4gICAqL1xuICAnc2l4LWRyYXdlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyYXdlciBvcGVucyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZHJhd2VyLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyYXdlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkcmF3ZXIgY2xvc2VzLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBjbG9zZWQuXG4gICAqL1xuICAnc2l4LWRyYXdlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyYXdlciBjbG9zZXMgYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LWRyYXdlci1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcmF3ZXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJhd2VyIG9wZW5zIGFuZCB0aGUgcGFuZWwgZ2FpbnMgZm9jdXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBmb2N1cyBhbmRcbmFsbG93IHlvdSB0byBzZXQgaXQgb24gYSBkaWZmZXJlbnQgZWxlbWVudCBpbiB0aGUgZHJhd2VyLCBzdWNoIGFzIGFuIGlucHV0IG9yIGJ1dHRvbi5cbiAgICovXG4gICdzaXgtZHJhd2VyLWluaXRpYWwtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyYXdlckVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBvdmVybGF5IGlzIGNsaWNrZWQuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCB0aGUgZHJhd2VyIGZyb20gY2xvc2luZy5cbiAgICovXG4gICdzaXgtZHJhd2VyLW92ZXJsYXktZGlzbWlzcyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJhd2VyRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FzeW5jRmlsdGVyJywgJ2F1dG9mb2N1c0ZpbHRlcicsICdjbG9zZU9uU2VsZWN0JywgJ2NvbnRhaW5pbmdFbGVtZW50JywgJ2Rpc2FibGVIaWRlT25FbnRlckFuZFNwYWNlJywgJ2Rpc3RhbmNlJywgJ2ZpbHRlcicsICdmaWx0ZXJEZWJvdW5jZScsICdmaWx0ZXJQbGFjZWhvbGRlcicsICdob2lzdCcsICdtYXRjaFRyaWdnZXJXaWR0aCcsICdvcGVuJywgJ29wdGlvbnMnLCAncGxhY2VtZW50JywgJ3NraWRkaW5nJywgJ3ZpcnR1YWxTY3JvbGwnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXN5bmNGaWx0ZXInLCAnYXV0b2ZvY3VzRmlsdGVyJywgJ2Nsb3NlT25TZWxlY3QnLCAnY29udGFpbmluZ0VsZW1lbnQnLCAnZGlzYWJsZUhpZGVPbkVudGVyQW5kU3BhY2UnLCAnZGlzdGFuY2UnLCAnZmlsdGVyJywgJ2ZpbHRlckRlYm91bmNlJywgJ2ZpbHRlclBsYWNlaG9sZGVyJywgJ2hvaXN0JywgJ21hdGNoVHJpZ2dlcldpZHRoJywgJ29wZW4nLCAnb3B0aW9ucycsICdwbGFjZW1lbnQnLCAnc2tpZGRpbmcnLCAndmlydHVhbFNjcm9sbCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1kcm9wZG93bi1zaG93JywgJ3NpeC1kcm9wZG93bi1hZnRlci1zaG93JywgJ3NpeC1kcm9wZG93bi1oaWRlJywgJ3NpeC1kcm9wZG93bi1hZnRlci1oaWRlJywgJ3NpeC1kcm9wZG93bi1hdXRvLWZpbHRlci1maXJlZCcsICdzaXgtYXN5bmMtZmlsdGVyLWZpcmVkJywgJ3NpeC1kcm9wZG93bi1zY3JvbGwnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhEcm9wZG93bkF1dG9GaWx0ZXJQYXlsb2FkIGFzIElTaXhEcm9wZG93blNpeERyb3Bkb3duQXV0b0ZpbHRlclBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuaW1wb3J0IHR5cGUgeyBTaXhEcm9wZG93bkFzeW5jRmlsdGVyUGF5bG9hZCBhcyBJU2l4RHJvcGRvd25TaXhEcm9wZG93bkFzeW5jRmlsdGVyUGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IFNpeERyb3Bkb3duU2Nyb2xsUGF5bG9hZCBhcyBJU2l4RHJvcGRvd25TaXhEcm9wZG93blNjcm9sbFBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlNpeERyb3Bkb3duIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgZHJvcGRvd24gb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyb3Bkb3duIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1kcm9wZG93bi1hZnRlci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93bkVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBkcm9wZG93biBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtZHJvcGRvd24taGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGRyb3Bkb3duIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tYWZ0ZXItaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4RHJvcGRvd25FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYXV0byBmaWx0ZXIgaXMgdHJpZ2dlcmVkXG4gICAqL1xuICAnc2l4LWRyb3Bkb3duLWF1dG8tZmlsdGVyLWZpcmVkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93blNpeERyb3Bkb3duQXV0b0ZpbHRlclBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgYXN5bmMgZmlsdGVyIGlzIHRyaWdnZXJlZFxuICAgKi9cbiAgJ3NpeC1hc3luYy1maWx0ZXItZmlyZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeERyb3Bkb3duU2l4RHJvcGRvd25Bc3luY0ZpbHRlclBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzY3JvbGxzIGluc2lkZSBkcm9wZG93biBwYW5lbC5cbiAgICovXG4gICdzaXgtZHJvcGRvd24tc2Nyb2xsJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhEcm9wZG93blNpeERyb3Bkb3duU2Nyb2xsUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWVycm9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEVycm9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RXJyb3IgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEVycm9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1c3RvbURlc2NyaXB0aW9uJywgJ2N1c3RvbUljb24nLCAnY3VzdG9tVGl0bGUnLCAnZXJyb3JDb2RlJywgJ2xhbmd1YWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZXJyb3ItcGFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VzdG9tRGVzY3JpcHRpb24nLCAnY3VzdG9tSWNvbicsICdjdXN0b21UaXRsZScsICdlcnJvckNvZGUnLCAnbGFuZ3VhZ2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RXJyb3JQYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RXJyb3JQYWdlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhFcnJvclBhZ2Uge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1maWxlLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4RmlsZUxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhGaWxlTGlzdCBleHRlbmRzIENvbXBvbmVudHMuU2l4RmlsZUxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0ZScsICdpZGVudGlmaWVyJywgJ25hbWUnLCAnbm9kZWxldGUnLCAnbm9kb3dubG9hZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZmlsZS1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RhdGUnLCAnaWRlbnRpZmllcicsICduYW1lJywgJ25vZGVsZXRlJywgJ25vZG93bmxvYWQnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhGaWxlTGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZmlsZS1saXN0LWl0ZW0tZG93bmxvYWQnLCAnc2l4LWZpbGUtbGlzdC1pdGVtLXJlbW92ZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4RmlsZUxpc3REb3dubG9hZFBheWxvYWQgYXMgSVNpeEZpbGVMaXN0SXRlbVNpeEZpbGVMaXN0RG93bmxvYWRQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4RmlsZUxpc3RSZW1vdmVQYXlsb2FkIGFzIElTaXhGaWxlTGlzdEl0ZW1TaXhGaWxlTGlzdFJlbW92ZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4RmlsZUxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhGaWxlTGlzdEl0ZW0ge1xuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZpbGUgZG93bmxvYWQuXG4gICAqL1xuICAnc2l4LWZpbGUtbGlzdC1pdGVtLWRvd25sb2FkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhGaWxlTGlzdEl0ZW1TaXhGaWxlTGlzdERvd25sb2FkUGF5bG9hZD4+O1xuICAvKipcbiAgICogVHJpZ2dlcmVkIG9uIGZpbGUgcmVtb3ZlLlxuICAgKi9cbiAgJ3NpeC1maWxlLWxpc3QtaXRlbS1yZW1vdmUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEZpbGVMaXN0SXRlbVNpeEZpbGVMaXN0UmVtb3ZlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY2NlcHQnLCAnY29tcGFjdCcsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnaW52YWxpZCcsICdsYWJlbCcsICdtYXhGaWxlU2l6ZScsICdtdWx0aXBsZScsICd1cGxvYWRpbmcnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1maWxlLXVwbG9hZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2NvbXBhY3QnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbWF4RmlsZVNpemUnLCAnbXVsdGlwbGUnLCAndXBsb2FkaW5nJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEZpbGVVcGxvYWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtZmlsZS11cGxvYWQtc3VjY2VzcycsICdzaXgtZmlsZS11cGxvYWQtZmFpbHVyZSddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU2l4RmlsZVVwbG9hZFN1Y2Nlc3NQYXlsb2FkIGFzIElTaXhGaWxlVXBsb2FkU2l4RmlsZVVwbG9hZFN1Y2Nlc3NQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4RmlsZVVwbG9hZEZhaWx1cmVQYXlsb2FkIGFzIElTaXhGaWxlVXBsb2FkU2l4RmlsZVVwbG9hZEZhaWx1cmVQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEZpbGVVcGxvYWQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEZpbGVVcGxvYWQge1xuICAvKipcbiAgICogVHJpZ2dlcnMgd2hlbiBhIGZpbGUgaXMgYWRkZWQuXG4gICAqL1xuICAnc2l4LWZpbGUtdXBsb2FkLXN1Y2Nlc3MnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEZpbGVVcGxvYWRTaXhGaWxlVXBsb2FkU3VjY2Vzc1BheWxvYWQ+PjtcbiAgLyoqXG4gICAqIFRyaWdnZXJzIHdoZW4gYW4gdXBsb2FkZWQgZmlsZSBkb2Vzbid0IG1hdGNoIE1JTUUgdHlwZSBvciBtYXggZmlsZSBzaXplLlxuICAgKi9cbiAgJ3NpeC1maWxlLXVwbG9hZC1mYWlsdXJlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhGaWxlVXBsb2FkU2l4RmlsZVVwbG9hZEZhaWx1cmVQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEZvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuU2l4Rm9vdGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hlbHBUZXh0JywgJ2xhYmVsJywgJ3JlcXVpcmVkJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1ncm91cC1sYWJlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaGVscFRleHQnLCAnbGFiZWwnLCAncmVxdWlyZWQnLCAnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhHcm91cExhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4R3JvdXBMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuU2l4R3JvdXBMYWJlbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydvcGVuU2VhcmNoJywgJ3NoaWZ0Q29udGVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnb3BlblNlYXJjaCcsICdzaGlmdENvbnRlbnQnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4SGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhIZWFkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlsdGVyJywgJ2ZpbHRlclBsYWNlaG9sZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaGVhZGVyLWRyb3Bkb3duLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpbHRlcicsICdmaWx0ZXJQbGFjZWhvbGRlciddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhIZWFkZXJEcm9wZG93bkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhIZWFkZXJEcm9wZG93bkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlNpeEhlYWRlckRyb3Bkb3duSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1oZWFkZXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEhlYWRlckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhIZWFkZXJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhIZWFkZXJJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhcmV0JywgJ2Rpc2FibGVkJywgJ2xvYWRpbmcnLCAncmVzZXQnLCAnc3VibWl0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaGVhZGVyLW1lbnUtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYXJldCcsICdkaXNhYmxlZCcsICdsb2FkaW5nJywgJ3Jlc2V0JywgJ3N1Ym1pdCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhIZWFkZXJNZW51QnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SGVhZGVyTWVudUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuU2l4SGVhZGVyTWVudUJ1dHRvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydmaWxsZWQnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpbGxlZCcsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAnaHRtbCcsICdsYWJlbCcsICduYW1lJywgJ3NpemUnLCAndGFyZ2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtaWNvbi1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2hyZWYnLCAnaHRtbCcsICdsYWJlbCcsICduYW1lJywgJ3NpemUnLCAndGFyZ2V0J10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEljb25CdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhJY29uQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhJY29uQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnY2xlYXJhYmxlJywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duU2VhcmNoJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsaW5lJywgJ21heCcsICdtYXhsZW5ndGgnLCAnbWluJywgJ21pbmxlbmd0aCcsICduYW1lJywgJ3BhdHRlcm4nLCAncGlsbCcsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3NwZWxsY2hlY2snLCAnc3RlcCcsICd0b2dnbGVQYXNzd29yZCcsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnLCAnc2VsZWN0JywgJ3NldFNlbGVjdGlvblJhbmdlJywgJ2dldFNlbGVjdGlvblJhbmdlJywgJ3NldFJhbmdlVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvY2FwaXRhbGl6ZScsICdhdXRvY29tcGxldGUnLCAnYXV0b2NvcnJlY3QnLCAnYXV0b2ZvY3VzJywgJ2NsZWFyYWJsZScsICdkaXNhYmxlZCcsICdkcm9wZG93blNlYXJjaCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaGVscFRleHQnLCAnaW5wdXRtb2RlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGluZScsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pbicsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwYXR0ZXJuJywgJ3BpbGwnLCAncGxhY2Vob2xkZXInLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzcGVsbGNoZWNrJywgJ3N0ZXAnLCAndG9nZ2xlUGFzc3dvcmQnLCAndHlwZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhJbnB1dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1pbnB1dC1jaGFuZ2UnLCAnc2l4LWlucHV0LWNsZWFyJywgJ3NpeC1pbnB1dC1pbnB1dCcsICdzaXgtaW5wdXQtZm9jdXMnLCAnc2l4LWlucHV0LWJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4SW5wdXRFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4SW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeElucHV0IHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCdzIHZhbHVlIGNoYW5nZXMuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LWlucHV0LWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SW5wdXRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2xlYXIgYnV0dG9uIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gICdzaXgtaW5wdXQtY2xlYXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeElucHV0RW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgcmVjZWl2ZXMgaW5wdXQuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LWlucHV0LWlucHV0JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJbnB1dEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1pbnB1dC1mb2N1cyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SW5wdXRFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBsb3NlcyBmb2N1cy4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtaW5wdXQtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4SW5wdXRFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVib3VuY2UnLCAnaW50ZXJ2YWwnLCAnaXRlbXMnLCAnbWF4JywgJ21pbicsICdwYWRkZWQnLCAncGFkZGluZ0NoYXInLCAncGFkZGluZ0RpcmVjdGlvbicsICdwYWRkaW5nTGVuZ3RoJywgJ3JvdW5kdHJpcCcsICdzdGVwJywgJ3RpbWVvdXQnLCAndHlwZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LWl0ZW0tcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWJvdW5jZScsICdpbnRlcnZhbCcsICdpdGVtcycsICdtYXgnLCAnbWluJywgJ3BhZGRlZCcsICdwYWRkaW5nQ2hhcicsICdwYWRkaW5nRGlyZWN0aW9uJywgJ3BhZGRpbmdMZW5ndGgnLCAncm91bmR0cmlwJywgJ3N0ZXAnLCAndGltZW91dCcsICd0eXBlJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeEl0ZW1QaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtaXRlbS1waWNrZXItY2hhbmdlJywgJ3NpeC1pdGVtLXBpY2tlci1jaGFuZ2UtZGVib3VuY2VkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhJdGVtUGlja2VyQ2hhbmdlUGF5bG9hZCBhcyBJU2l4SXRlbVBpY2tlclNpeEl0ZW1QaWNrZXJDaGFuZ2VQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeEl0ZW1QaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeEl0ZW1QaWNrZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpdGVtIHBpY2tlcidzIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gICdzaXgtaXRlbS1waWNrZXItY2hhbmdlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhJdGVtUGlja2VyU2l4SXRlbVBpY2tlckNoYW5nZVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaXRlbSBwaWNrZXIncyB2YWx1ZSBjaGFuZ2VzLCBidXQgZGVib3VuY2VkXG4gICAqL1xuICAnc2l4LWl0ZW0tcGlja2VyLWNoYW5nZS1kZWJvdW5jZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeEl0ZW1QaWNrZXJTaXhJdGVtUGlja2VyQ2hhbmdlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYW5ndWFnZXMnLCAnc2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1sYW5ndWFnZS1zd2l0Y2hlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFuZ3VhZ2VzJywgJ3NlbGVjdGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeExhbmd1YWdlU3dpdGNoZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtbGFuZ3VhZ2Utc3dpdGNoZXItY2hhbmdlJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhMYW5ndWFnZVN3aXRjaGVyQ2hhbmdlUGF5bG9hZCBhcyBJU2l4TGFuZ3VhZ2VTd2l0Y2hlclNpeExhbmd1YWdlU3dpdGNoZXJDaGFuZ2VQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeExhbmd1YWdlU3dpdGNoZXIgZXh0ZW5kcyBDb21wb25lbnRzLlNpeExhbmd1YWdlU3dpdGNoZXIge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBsYW5ndWFnZSBzd2l0Y2hlcnMgdmFsdWUgY2hhbmdlc1xuICAgKi9cbiAgJ3NpeC1sYW5ndWFnZS1zd2l0Y2hlci1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeExhbmd1YWdlU3dpdGNoZXJTaXhMYW5ndWFnZVN3aXRjaGVyQ2hhbmdlUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2x1bW5zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtbGF5b3V0LWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbHVtbnMnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TGF5b3V0R3JpZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeExheW91dEdyaWQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeExheW91dEdyaWQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnJhbmQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1sb2dvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydicmFuZCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhMb2dvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4TG9nbyBleHRlbmRzIENvbXBvbmVudHMuU2l4TG9nbyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwYWRkZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tYWluLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncGFkZGVkJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1haW5Db250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhNYWluQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhNYWluQ29udGFpbmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVLZXlib2FyZEhhbmRsaW5nJywgJ2l0ZW1TaXplJywgJ2l0ZW1zJywgJ2l0ZW1zU2hvd24nLCAncmVtb3ZlQm94U2hhZG93JywgJ3Njcm9sbGluZ0RlYm91bmNlJywgJ3ZpcnR1YWxTY3JvbGwnXSxcbiAgbWV0aG9kczogWyd0eXBlVG9TZWxlY3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlS2V5Ym9hcmRIYW5kbGluZycsICdpdGVtU2l6ZScsICdpdGVtcycsICdpdGVtc1Nob3duJywgJ3JlbW92ZUJveFNoYWRvdycsICdzY3JvbGxpbmdEZWJvdW5jZScsICd2aXJ0dWFsU2Nyb2xsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtbWVudS1pdGVtLXNlbGVjdGVkJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhNZW51SXRlbVNlbGVjdGVkUGF5bG9hZCBhcyBJU2l4TWVudVNpeE1lbnVJdGVtU2VsZWN0ZWRQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLlNpeE1lbnUge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIGEgbWVudSBpdGVtIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC1tZW51LWl0ZW0tc2VsZWN0ZWQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeE1lbnVTaXhNZW51SXRlbVNlbGVjdGVkUGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1lbnUtZGl2aWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhNZW51RGl2aWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnVEaXZpZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhNZW51RGl2aWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja1R5cGUnLCAnY2hlY2tlZCcsICdkaXNhYmxlZCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJywgJ2dldFRleHRMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tUeXBlJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4TWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1tZW51LWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeE1lbnVMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeE1lbnVMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuU2l4TWVudUxhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1waWN0bycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhQaWN0byB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFBpY3RvIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQaWN0byB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbmRldGVybWluYXRlJywgJ3BlcmNlbnRhZ2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1wcm9ncmVzcy1iYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2luZGV0ZXJtaW5hdGUnLCAncGVyY2VudGFnZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhQcm9ncmVzc0JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFByb2dyZXNzQmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQcm9ncmVzc0JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwZXJjZW50YWdlJywgJ3NpemUnLCAnc3Ryb2tlV2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1wcm9ncmVzcy1yaW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwZXJjZW50YWdlJywgJ3NpemUnLCAnc3Ryb2tlV2lkdGgnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4UHJvZ3Jlc3NSaW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4UHJvZ3Jlc3NSaW5nIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhQcm9ncmVzc1Jpbmcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdpbnZhbGlkJywgJ25hbWUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXJhZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2ludmFsaWQnLCAnbmFtZScsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1yYWRpby1ibHVyJywgJ3NpeC1yYWRpby1jaGFuZ2UnLCAnc2l4LXJhZGlvLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFJhZGlvRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhSYWRpbyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhZGlvLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhZGlvRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICAnc2l4LXJhZGlvLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4UmFkaW9FbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCBnYWlucyBmb2N1cy5cbiAgICovXG4gICdzaXgtcmFkaW8tZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhZGlvRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEZvcm1hdHRlcicsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJywgJ3JlbW92ZUZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtcmFuZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdoZWxwVGV4dCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZXF1aXJlZCcsICdzdGVwJywgJ3Rvb2x0aXAnLCAndG9vbHRpcEZvcm1hdHRlcicsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhSYW5nZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1yYW5nZS1jaGFuZ2UnLCAnc2l4LXJhbmdlLWJsdXInLCAnc2l4LXJhbmdlLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFJhbmdlRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhSYW5nZSB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyB2YWx1ZSBjaGFuZ2VzLlxuICAgKi9cbiAgJ3NpeC1yYW5nZS1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhbmdlRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgbG9zZXMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhbmdlLWJsdXInOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFJhbmdlRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXJhbmdlLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhSYW5nZUVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwYWRkZWQnLCAnc3RhZ2UnLCAndmVyc2lvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXJvb3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BhZGRlZCcsICdzdGFnZScsICd2ZXJzaW9uJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFJvb3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhSb290IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhSb290IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkaXNhYmxlZCcsICdwbGFjZWhvbGRlcicsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNlYXJjaC1maWVsZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xlYXJhYmxlJywgJ2RlYm91bmNlJywgJ2Rpc2FibGVkJywgJ3BsYWNlaG9sZGVyJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNlYXJjaEZpZWxkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXNlYXJjaC1maWVsZC1jaGFuZ2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeFNlYXJjaEZpZWxkQ2hhbmdlUGF5bG9hZCBhcyBJU2l4U2VhcmNoRmllbGRTaXhTZWFyY2hGaWVsZENoYW5nZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2VhcmNoRmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNlYXJjaEZpZWxkIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIHNlYXJjaCBpcyB0cmlnZ2VyZWRcbiAgICovXG4gICdzaXgtc2VhcmNoLWZpZWxkLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VhcmNoRmllbGRTaXhTZWFyY2hGaWVsZENoYW5nZVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXN5bmNGaWx0ZXInLCAnYXV0b2NvbXBsZXRlJywgJ2NsZWFyYWJsZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnZmlsdGVyJywgJ2ZpbHRlckRlYm91bmNlJywgJ2ZpbHRlclBsYWNlaG9sZGVyJywgJ2hlbHBUZXh0JywgJ2hvaXN0JywgJ2lucHV0RGVib3VuY2UnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsaW5lJywgJ211bHRpcGxlJywgJ25hbWUnLCAnb3B0aW9ucycsICdwaWxsJywgJ3BsYWNlaG9sZGVyJywgJ3JlcXVpcmVkJywgJ3NlbGVjdEFsbEJ1dHRvbicsICdzZWxlY3RBbGxUZXh0JywgJ3NpemUnLCAndmFsdWUnLCAndmlydHVhbFNjcm9sbCddLFxuICBtZXRob2RzOiBbJ3NldEZvY3VzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhc3luY0ZpbHRlcicsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yVGV4dCcsICdlcnJvclRleHRDb3VudCcsICdmaWx0ZXInLCAnZmlsdGVyRGVib3VuY2UnLCAnZmlsdGVyUGxhY2Vob2xkZXInLCAnaGVscFRleHQnLCAnaG9pc3QnLCAnaW5wdXREZWJvdW5jZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xpbmUnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdvcHRpb25zJywgJ3BpbGwnLCAncGxhY2Vob2xkZXInLCAncmVxdWlyZWQnLCAnc2VsZWN0QWxsQnV0dG9uJywgJ3NlbGVjdEFsbFRleHQnLCAnc2l6ZScsICd2YWx1ZScsICd2aXJ0dWFsU2Nyb2xsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC1zZWxlY3QtY2hhbmdlJywgJ3NpeC1zZWxlY3QtZm9jdXMnLCAnc2l4LXNlbGVjdC1ibHVyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhTZWxlY3RDaGFuZ2VQYXlsb2FkIGFzIElTaXhTZWxlY3RTaXhTZWxlY3RDaGFuZ2VQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhTZWxlY3RFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTZWxlY3Qge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sJ3MgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gICdzaXgtc2VsZWN0LWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VsZWN0U2l4U2VsZWN0Q2hhbmdlUGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zZWxlY3QtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNlbGVjdEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zZWxlY3QtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4U2VsZWN0RW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW4nLCAncG9zaXRpb24nLCAndG9nZ2xlZCcsICd3aWR0aCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZScsICdzaG93JywgJ2hpZGUnLCAnc2VsZWN0SXRlbUJ5SW5kZXgnLCAnc2VsZWN0SXRlbUJ5TmFtZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNpZGViYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW4nLCAncG9zaXRpb24nLCAndG9nZ2xlZCcsICd3aWR0aCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTaWRlYmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJveHlPdXRwdXRzKHRoaXMsIHRoaXMuZWwsIFsnc2l4LXNpZGViYXItc2hvdycsICdzaXgtc2lkZWJhci1hZnRlci1zaG93JywgJ3NpeC1zaWRlYmFyLWhpZGUnLCAnc2l4LXNpZGViYXItYWZ0ZXItaGlkZScsICdzaXgtc2lkZWJhci1pbml0aWFsLWZvY3VzJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFNpZGViYXJFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2lkZWJhciBleHRlbmRzIENvbXBvbmVudHMuU2l4U2lkZWJhciB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNpZGViYXIgb3BlbnMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIG9wZW5lZC5cbiAgICovXG4gICdzaXgtc2lkZWJhci1zaG93JzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBzaWRlYmFyIG9wZW5zIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC1zaWRlYmFyLWFmdGVyLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFNpZGViYXJFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgc2lkZWJhciBjbG9zZXMuIENhbGxpbmcgYGV2ZW50LnByZXZlbnREZWZhdWx0KClgIHdpbGwgcHJldmVudCBpdCBmcm9tIGJlaW5nIGNsb3NlZC5cbiAgICovXG4gICdzaXgtc2lkZWJhci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBzaWRlYmFyIGNsb3NlcyBhbmQgYWxsIHRyYW5zaXRpb25zIGFyZSBjb21wbGV0ZS5cbiAgICovXG4gICdzaXgtc2lkZWJhci1hZnRlci1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNpZGViYXIgb3BlbnMgYW5kIHRoZSBwYW5lbCBnYWlucyBmb2N1cy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGZvY3VzIGFuZFxuYWxsb3cgeW91IHRvIHNldCBpdCBvbiBhIGRpZmZlcmVudCBlbGVtZW50IGluIHRoZSBzaWRlYmFyLCBzdWNoIGFzIGFuIGlucHV0IG9yIGJ1dHRvbi5cbiAgICovXG4gICdzaXgtc2lkZWJhci1pbml0aWFsLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhTaWRlYmFyRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdzZWxlY3RlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXNpZGViYXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ3NlbGVjdGVkJywgJ3ZhbHVlJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFNpZGViYXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U2lkZWJhckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNpZGViYXJJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hyZWYnLCAnaWNvbicsICduYW1lJywgJ29wZW4nLCAnc3VtbWFyeUljb24nLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zaWRlYmFyLWl0ZW0tZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hyZWYnLCAnaWNvbicsICduYW1lJywgJ29wZW4nLCAnc3VtbWFyeUljb24nLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U2lkZWJhckl0ZW1Hcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFNpZGViYXJJdGVtR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFNpZGViYXJJdGVtR3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbG9nbycsICdzaXgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zcGlubmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsb2dvJywgJ3NpeCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTcGlubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U3Bpbm5lciBleHRlbmRzIENvbXBvbmVudHMuU2l4U3Bpbm5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzdGFnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXN0YWdlLWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc3RhZ2UnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4U3RhZ2VJbmRpY2F0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhTdGFnZUluZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuU2l4U3RhZ2VJbmRpY2F0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncmVtb3ZlRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC1zd2l0Y2gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhTd2l0Y2gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtc3dpdGNoLWJsdXInLCAnc2l4LXN3aXRjaC1jaGFuZ2UnLCAnc2l4LXN3aXRjaC1mb2N1cyddKTtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgRW1wdHlQYXlsb2FkIGFzIElTaXhTd2l0Y2hFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4U3dpdGNoIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhTd2l0Y2gge1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zd2l0Y2gtYmx1cic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxib29sZWFuPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wncyBjaGVja2VkIHN0YXRlIGNoYW5nZXMuXG4gICAqL1xuICAnc2l4LXN3aXRjaC1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Ym9vbGVhbj4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGdhaW5zIGZvY3VzLlxuICAgKi9cbiAgJ3NpeC1zd2l0Y2gtZm9jdXMnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFN3aXRjaEVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnY2xvc2FibGUnLCAnZGlzYWJsZWQnLCAncGFuZWwnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2Nsb3NhYmxlJywgJ2Rpc2FibGVkJywgJ3BhbmVsJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRhYiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10YWItY2xvc2UnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VGFiRW1wdHlQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRhYiBleHRlbmRzIENvbXBvbmVudHMuU2l4VGFiIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdGFiIGlzIGNsb3NhYmxlIGFuZCB0aGUgY2xvc2UgYnV0dG9uIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gICdzaXgtdGFiLWNsb3NlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUYWJFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbm9TY3JvbGxDb250cm9scycsICdwbGFjZW1lbnQnXSxcbiAgbWV0aG9kczogWydzaG93J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGFiLWdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydub1Njcm9sbENvbnRyb2xzJywgJ3BsYWNlbWVudCddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUYWJHcm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10YWItc2hvdycsICdzaXgtdGFiLWhpZGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFNpeFRhYlNob3dQYXlsb2FkIGFzIElTaXhUYWJHcm91cFNpeFRhYlNob3dQYXlsb2FkIH0gZnJvbSAnQHNpeC1ncm91cC91aS1saWJyYXJ5JztcbmltcG9ydCB0eXBlIHsgU2l4VGFiSGlkZVBheWxvYWQgYXMgSVNpeFRhYkdyb3VwU2l4VGFiSGlkZVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGFiR3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRhYkdyb3VwIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIHRhYiBpcyBzaG93bi5cbiAgICovXG4gICdzaXgtdGFiLXNob3cnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRhYkdyb3VwU2l4VGFiU2hvd1BheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiBhIHRhYiBpcyBoaWRkZW4uXG4gICAqL1xuICAnc2l4LXRhYi1oaWRlJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUYWJHcm91cFNpeFRhYkhpZGVQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICduYW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGFiLXBhbmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnbmFtZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUYWJQYW5lbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFNpeFRhYlBhbmVsIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUYWJQYW5lbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGVhcmFibGUnLCAncGlsbCcsICdzaXplJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdwaWxsJywgJ3NpemUnLCAndHlwZSddLFxufSlcbmV4cG9ydCBjbGFzcyBTaXhUYWcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGFnLWNsZWFyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBFbXB0eVBheWxvYWQgYXMgSVNpeFRhZ0VtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUYWcgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRhZyB7XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNsZWFyIGJ1dHRvbiBpcyBhY3RpdmF0ZWQuXG4gICAqL1xuICAnc2l4LXRhZy1jbGVhcic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGFnRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hlbHBUZXh0JywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heGxlbmd0aCcsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyZXNpemUnLCAncm93cycsICdzaXplJywgJ3NwZWxsY2hlY2snLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdyZW1vdmVGb2N1cycsICdzZWxlY3QnLCAnc2V0U2VsZWN0aW9uUmFuZ2UnLCAnc2V0UmFuZ2VUZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzaXgtdGV4dGFyZWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9jYXBpdGFsaXplJywgJ2F1dG9jb21wbGV0ZScsICdhdXRvY29ycmVjdCcsICdhdXRvZm9jdXMnLCAnZGlzYWJsZWQnLCAnZXJyb3JUZXh0JywgJ2Vycm9yVGV4dENvdW50JywgJ2hlbHBUZXh0JywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ21heGxlbmd0aCcsICdtaW5sZW5ndGgnLCAnbmFtZScsICdwbGFjZWhvbGRlcicsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyZXNpemUnLCAncm93cycsICdzaXplJywgJ3NwZWxsY2hlY2snLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGV4dGFyZWEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGV4dGFyZWEtY2hhbmdlJywgJ3NpeC10ZXh0YXJlYS1pbnB1dCcsICdzaXgtdGV4dGFyZWEtZm9jdXMnLCAnc2l4LXRleHRhcmVhLWJsdXInXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VGV4dGFyZWFFbXB0eVBheWxvYWQgfSBmcm9tICdAc2l4LWdyb3VwL3VpLWxpYnJhcnknO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU2l4VGV4dGFyZWEgZXh0ZW5kcyBDb21wb25lbnRzLlNpeFRleHRhcmVhIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCdzIHZhbHVlIGNoYW5nZXMuIEFjY2VzcyB0aGUgbmV3IHZhbHVlIHZpYSBldmVudC50YXJnZXQudmFsdWUuXG4gICAqL1xuICAnc2l4LXRleHRhcmVhLWNoYW5nZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGV4dGFyZWFFbXB0eVBheWxvYWQ+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY29udHJvbCByZWNlaXZlcyBpbnB1dC4gQWNjZXNzIHRoZSBuZXcgdmFsdWUgdmlhIGV2ZW50LnRhcmdldC52YWx1ZS5cbiAgICovXG4gICdzaXgtdGV4dGFyZWEtaW5wdXQnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRleHRhcmVhRW1wdHlQYXlsb2FkPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNvbnRyb2wgZ2FpbnMgZm9jdXMuXG4gICAqL1xuICAnc2l4LXRleHRhcmVhLWZvY3VzJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUZXh0YXJlYUVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBjb250cm9sIGxvc2VzIGZvY3VzLiBBY2Nlc3MgdGhlIG5ldyB2YWx1ZSB2aWEgZXZlbnQudGFyZ2V0LnZhbHVlLlxuICAgKi9cbiAgJ3NpeC10ZXh0YXJlYS1ibHVyJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUZXh0YXJlYUVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zZWFibGUnLCAnZGlzYWJsZVRvb2x0aXAnLCAnZGlzYWJsZWQnLCAnZWxldmF0ZWQnLCAnaWNvbk5hbWUnLCAnbGFiZWwnLCAnc2l6ZSddLFxuICBtZXRob2RzOiBbJ2hpZGUnLCAnc2hvdyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRpbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlYWJsZScsICdkaXNhYmxlVG9vbHRpcCcsICdkaXNhYmxlZCcsICdlbGV2YXRlZCcsICdpY29uTmFtZScsICdsYWJlbCcsICdzaXplJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNpeFRpbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgICBwcm94eU91dHB1dHModGhpcywgdGhpcy5lbCwgWydzaXgtdGlsZS1jbG9zZWQnLCAnc2l4LXRpbGUtc2VsZWN0ZWQnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VGlsZUVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUaWxlIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUaWxlIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdGlsZSB3YXMgY2xvc2VkLlxuICAgKi9cbiAgJ3NpeC10aWxlLWNsb3NlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGlsZUVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0aWxlIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgJ3NpeC10aWxlLXNlbGVjdGVkJzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTaXhUaWxlRW1wdHlQYXlsb2FkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkZWZhdWx0VGltZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnZm9ybWF0JywgJ2hvaXN0JywgJ2ljb25Qb3NpdGlvbicsICdpbmxpbmUnLCAnaW50ZXJ2YWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ29wZW4nLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NlcGFyYXRvcicsICdzaXplJywgJ3RpbWVvdXQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2l4LXRpbWVwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsZWFyYWJsZScsICdkZWJvdW5jZScsICdkZWZhdWx0VGltZScsICdkaXNhYmxlZCcsICdlcnJvclRleHQnLCAnZXJyb3JUZXh0Q291bnQnLCAnZm9ybWF0JywgJ2hvaXN0JywgJ2ljb25Qb3NpdGlvbicsICdpbmxpbmUnLCAnaW50ZXJ2YWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICduYW1lJywgJ29wZW4nLCAncGxhY2Vob2xkZXInLCAncGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NlcGFyYXRvcicsICdzaXplJywgJ3RpbWVvdXQnLCAndmFsdWUnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VGltZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10aW1lcGlja2VyLWNoYW5nZScsICdzaXgtdGltZXBpY2tlci1jaGFuZ2UtZGVib3VuY2VkJywgJ3NpeC10aW1lcGlja2VyLWNsZWFyJ10pO1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTaXhUaW1lcGlja2VyQ2hhbmdlIGFzIElTaXhUaW1lcGlja2VyU2l4VGltZXBpY2tlckNoYW5nZSB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VGltZXBpY2tlckVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUaW1lcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUaW1lcGlja2VyIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdGltZXBpY2tlcidzIHZhbHVlIGNoYW5nZXNcbiAgICovXG4gICdzaXgtdGltZXBpY2tlci1jaGFuZ2UnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRpbWVwaWNrZXJTaXhUaW1lcGlja2VyQ2hhbmdlPj47XG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHRpbWVwaWNrZXIncyB2YWx1ZSBjaGFuZ2VzLCBidXQgZGVib3VuY2VkXG4gICAqL1xuICAnc2l4LXRpbWVwaWNrZXItY2hhbmdlLWRlYm91bmNlZCc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGltZXBpY2tlclNpeFRpbWVwaWNrZXJDaGFuZ2U+PjtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2xlYXIgYnV0dG9uIGlzIGFjdGl2YXRlZC5cbiAgICovXG4gICdzaXgtdGltZXBpY2tlci1jbGVhcic6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VGltZXBpY2tlckVtcHR5UGF5bG9hZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250ZW50JywgJ2Rpc2FibGVkJywgJ2Rpc3RhbmNlJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NraWRkaW5nJywgJ3RyaWdnZXInXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpeC10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2Rpc2FibGVkJywgJ2Rpc3RhbmNlJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NraWRkaW5nJywgJ3RyaWdnZXInXSxcbn0pXG5leHBvcnQgY2xhc3MgU2l4VG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICAgIHByb3h5T3V0cHV0cyh0aGlzLCB0aGlzLmVsLCBbJ3NpeC10b29sdGlwLXNob3cnLCAnc2l4LXRvb2x0aXAtYWZ0ZXItc2hvdycsICdzaXgtdG9vbHRpcC1oaWRlJywgJ3NpeC10b29sdGlwLWFmdGVyLWhpZGUnXSk7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IEVtcHR5UGF5bG9hZCBhcyBJU2l4VG9vbHRpcEVtcHR5UGF5bG9hZCB9IGZyb20gJ0BzaXgtZ3JvdXAvdWktbGlicmFyeSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTaXhUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5TaXhUb29sdGlwIHtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgdG9vbHRpcCBiZWdpbnMgdG8gc2hvdy4gQ2FsbGluZyBgZXZlbnQucHJldmVudERlZmF1bHQoKWAgd2lsbCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgc2hvd24uXG4gICAqL1xuICAnc2l4LXRvb2x0aXAtc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VG9vbHRpcEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgdG9vbHRpcCBoYXMgc2hvd24gYW5kIGFsbCB0cmFuc2l0aW9ucyBhcmUgY29tcGxldGUuXG4gICAqL1xuICAnc2l4LXRvb2x0aXAtYWZ0ZXItc2hvdyc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VG9vbHRpcEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSB0b29sdGlwIGJlZ2lucyB0byBoaWRlLiBDYWxsaW5nIGBldmVudC5wcmV2ZW50RGVmYXVsdCgpYCB3aWxsIHByZXZlbnQgaXQgZnJvbSBiZWluZyBoaWRkZW4uXG4gICAqL1xuICAnc2l4LXRvb2x0aXAtaGlkZSc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU2l4VG9vbHRpcEVtcHR5UGF5bG9hZD4+O1xuICAvKipcbiAgICogRW1pdHRlZCBhZnRlciB0aGUgdG9vbHRpcCBoYXMgaGlkZGVuIGFuZCBhbGwgdHJhbnNpdGlvbnMgYXJlIGNvbXBsZXRlLlxuICAgKi9cbiAgJ3NpeC10b29sdGlwLWFmdGVyLWhpZGUnOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVNpeFRvb2x0aXBFbXB0eVBheWxvYWQ+Pjtcbn1cblxuXG4iXX0=