@huntsman-cancer-institute/cod 17.3.4 → 17.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,6 +9,7 @@ import * as i0 from "@angular/core";
9
9
  * the attribute definition.
10
10
  */
11
11
  export declare class AttributeAbsoluteComponent extends AttributeBase {
12
+ hciNgAttributeAbsoluteInputDisplayName: string;
12
13
  nativeSelectComponent: NativeSelectComponent;
13
14
  constructor(attributeService: AttributeService, elementRef: ElementRef, renderer: Renderer2, modalService: NgbModal);
14
15
  ngOnInit(): void;
@@ -8,6 +8,7 @@ import * as i0 from "@angular/core";
8
8
  * This is different from the flex attribute because components such as the grid need extra configuration for editing.
9
9
  */
10
10
  export declare class AttributeEditComponent extends AttributeBase {
11
+ hciNgAttributeAbsoluteInputDisplayName: string;
11
12
  constructor(attributeService: AttributeService, elementRef: ElementRef, renderer: Renderer2, modalService: NgbModal);
12
13
  init(): void;
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<AttributeEditComponent, never>;
@@ -10,6 +10,7 @@ import * as i0 from "@angular/core";
10
10
  * column size.
11
11
  */
12
12
  export declare class AttributeFlexComponent extends AttributeBase {
13
+ hciNgAttributeAbsoluteInputDisplayName: string;
13
14
  constructor(attributeService: AttributeService, elementRef: ElementRef, renderer: Renderer2, modalService: NgbModal);
14
15
  ngAfterViewInit(): void;
15
16
  /**
@@ -19,6 +19,7 @@ import * as i8 from "./attribute-edit.component";
19
19
  export class AttributeAbsoluteComponent extends AttributeBase {
20
20
  constructor(attributeService, elementRef, renderer, modalService) {
21
21
  super(attributeService, elementRef, renderer, modalService);
22
+ this.hciNgAttributeAbsoluteInputDisplayName = "";
22
23
  }
23
24
  ngOnInit() {
24
25
  super.ngOnInit();
@@ -28,6 +29,9 @@ export class AttributeAbsoluteComponent extends AttributeBase {
28
29
  }
29
30
  ngAfterViewInit() {
30
31
  this.refresh();
32
+ if (this.attribute && this.attribute.displayName) {
33
+ this.hciNgAttributeAbsoluteInputDisplayName = this.attribute.displayName;
34
+ }
31
35
  }
32
36
  /**
33
37
  * In the absolute case, upon refresh reset the position and size of the attribute.
@@ -130,7 +134,7 @@ export class AttributeAbsoluteComponent extends AttributeBase {
130
134
  [ngModel]="attributeValues[0].valueString"
131
135
  (ngModelChange)="valueStringChange($event)"
132
136
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
133
- class="form-control"/>
137
+ class="form-control"attr.aria-label="hci-ng-attribute-absolute-input-string-{{hciNgAttributeAbsoluteInputDisplayName}}"/>
134
138
  </div>
135
139
  <div *ngIf="(attribute.h > 25)" class="d-flex flex-grow-1">
136
140
  <textarea
@@ -181,7 +185,7 @@ export class AttributeAbsoluteComponent extends AttributeBase {
181
185
  [checked]="attributeValues[0].valueString === 'Y'"
182
186
  (change)="valueCheckboxChange($event)"
183
187
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
184
- class="form-control"/>
188
+ class="form-control" attr.aria-label="hci-ng-attribute-absolute-input-checkbox-{{hciNgAttributeAbsoluteInputDisplayName}}"/>
185
189
  </div>
186
190
  </div>
187
191
  </ng-container>
@@ -199,7 +203,7 @@ export class AttributeAbsoluteComponent extends AttributeBase {
199
203
  [ngModel]="attributeValues[0].valueNumeric"
200
204
  (ngModelChange)="valueNumericChange($event)"
201
205
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
202
- class="form-control"/>
206
+ class="form-control" attr.aria-label="hci-ng-attribute-absolute-input-numeric-{{hciNgAttributeAbsoluteInputDisplayName}}"/>
203
207
  </div>
204
208
  </div>
205
209
  </ng-container>
@@ -217,7 +221,7 @@ export class AttributeAbsoluteComponent extends AttributeBase {
217
221
  [ngModel]="attributeValues[0].valueInteger"
218
222
  (ngModelChange)="valueIntegerChange($event)"
219
223
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
220
- class="form-control"/>
224
+ class="form-control" attr.aria-label="hci-ng-attribute-absolute-input-integer-{{hciNgAttributeAbsoluteInputDisplayName}}"/>
221
225
  </div>
222
226
  </div>
223
227
  </ng-container>
@@ -237,7 +241,7 @@ export class AttributeAbsoluteComponent extends AttributeBase {
237
241
  (ngModelChange)="valueDateChange($event)"
238
242
  [matDatepicker]="valueDate"
239
243
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
240
- class="form-control">
244
+ class="form-control" attr.aria-label="hci-ng-attribute-absolute-input-date-{{hciNgAttributeAbsoluteInputDisplayName}}">
241
245
  <mat-datepicker-toggle matSuffix [for]="valueDate" class="cod-dp-toggle"></mat-datepicker-toggle>
242
246
  <mat-datepicker #valueDate></mat-datepicker>
243
247
  </div>
@@ -259,7 +263,7 @@ export class AttributeAbsoluteComponent extends AttributeBase {
259
263
  [(ngModel)]="attributeValues[0].date"
260
264
  (ngModelChange)="valueDateChange($event)"
261
265
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
262
- [ngxMatDatetimePicker]="dtpicker">
266
+ [ngxMatDatetimePicker]="dtpicker" attr.aria-label="hci-ng-attribute-absolute-input-date-time-{{hciNgAttributeAbsoluteInputDisplayName}}">
263
267
  <mat-datepicker-toggle matSuffix [for]="dtpicker" class="cod-dp-toggle"></mat-datepicker-toggle>
264
268
  <ngx-mat-datetime-picker #dtpicker [showSeconds]="true"></ngx-mat-datetime-picker>
265
269
  </div>
@@ -347,9 +351,9 @@ export class AttributeAbsoluteComponent extends AttributeBase {
347
351
  [checked]="attributeChoice.value"
348
352
  (change)="valueMultiChoiceChange(attributeChoice)"
349
353
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
350
- class="form-control checkbox"/>
354
+ class="form-control checkbox" attr.aria-label="hci-ng-attribute-absolute-input-choice-multiple-{{attributeChoice.choice}}"/>
351
355
  <div class="cod-label ps-1">
352
- {{attributeChoice.choice}}
356
+ {{ attributeChoice.choice }}
353
357
  </div>
354
358
  </div>
355
359
  </ng-container>
@@ -372,9 +376,9 @@ export class AttributeAbsoluteComponent extends AttributeBase {
372
376
  [checked]="entry.checked"
373
377
  (change)="valueMultiDictChange(entry)"
374
378
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
375
- class="form-control checkbox" />
379
+ class="form-control checkbox" attr.aria-label="hci-ng-attribute-absolute-input-dictionary-multiple-{{entry.display}}"/>
376
380
  <div class="cod-label ps-1">
377
- {{entry.display}}
381
+ {{ entry.display }}
378
382
  </div>
379
383
  </div>
380
384
  </ng-container>
@@ -524,7 +528,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
524
528
  [ngModel]="attributeValues[0].valueString"
525
529
  (ngModelChange)="valueStringChange($event)"
526
530
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
527
- class="form-control"/>
531
+ class="form-control"attr.aria-label="hci-ng-attribute-absolute-input-string-{{hciNgAttributeAbsoluteInputDisplayName}}"/>
528
532
  </div>
529
533
  <div *ngIf="(attribute.h > 25)" class="d-flex flex-grow-1">
530
534
  <textarea
@@ -575,7 +579,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
575
579
  [checked]="attributeValues[0].valueString === 'Y'"
576
580
  (change)="valueCheckboxChange($event)"
577
581
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
578
- class="form-control"/>
582
+ class="form-control" attr.aria-label="hci-ng-attribute-absolute-input-checkbox-{{hciNgAttributeAbsoluteInputDisplayName}}"/>
579
583
  </div>
580
584
  </div>
581
585
  </ng-container>
@@ -593,7 +597,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
593
597
  [ngModel]="attributeValues[0].valueNumeric"
594
598
  (ngModelChange)="valueNumericChange($event)"
595
599
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
596
- class="form-control"/>
600
+ class="form-control" attr.aria-label="hci-ng-attribute-absolute-input-numeric-{{hciNgAttributeAbsoluteInputDisplayName}}"/>
597
601
  </div>
598
602
  </div>
599
603
  </ng-container>
@@ -611,7 +615,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
611
615
  [ngModel]="attributeValues[0].valueInteger"
612
616
  (ngModelChange)="valueIntegerChange($event)"
613
617
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
614
- class="form-control"/>
618
+ class="form-control" attr.aria-label="hci-ng-attribute-absolute-input-integer-{{hciNgAttributeAbsoluteInputDisplayName}}"/>
615
619
  </div>
616
620
  </div>
617
621
  </ng-container>
@@ -631,7 +635,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
631
635
  (ngModelChange)="valueDateChange($event)"
632
636
  [matDatepicker]="valueDate"
633
637
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
634
- class="form-control">
638
+ class="form-control" attr.aria-label="hci-ng-attribute-absolute-input-date-{{hciNgAttributeAbsoluteInputDisplayName}}">
635
639
  <mat-datepicker-toggle matSuffix [for]="valueDate" class="cod-dp-toggle"></mat-datepicker-toggle>
636
640
  <mat-datepicker #valueDate></mat-datepicker>
637
641
  </div>
@@ -653,7 +657,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
653
657
  [(ngModel)]="attributeValues[0].date"
654
658
  (ngModelChange)="valueDateChange($event)"
655
659
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
656
- [ngxMatDatetimePicker]="dtpicker">
660
+ [ngxMatDatetimePicker]="dtpicker" attr.aria-label="hci-ng-attribute-absolute-input-date-time-{{hciNgAttributeAbsoluteInputDisplayName}}">
657
661
  <mat-datepicker-toggle matSuffix [for]="dtpicker" class="cod-dp-toggle"></mat-datepicker-toggle>
658
662
  <ngx-mat-datetime-picker #dtpicker [showSeconds]="true"></ngx-mat-datetime-picker>
659
663
  </div>
@@ -741,9 +745,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
741
745
  [checked]="attributeChoice.value"
742
746
  (change)="valueMultiChoiceChange(attributeChoice)"
743
747
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
744
- class="form-control checkbox"/>
748
+ class="form-control checkbox" attr.aria-label="hci-ng-attribute-absolute-input-choice-multiple-{{attributeChoice.choice}}"/>
745
749
  <div class="cod-label ps-1">
746
- {{attributeChoice.choice}}
750
+ {{ attributeChoice.choice }}
747
751
  </div>
748
752
  </div>
749
753
  </ng-container>
@@ -766,9 +770,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
766
770
  [checked]="entry.checked"
767
771
  (change)="valueMultiDictChange(entry)"
768
772
  [disabled]="!editInline || attribute.isCalculated === 'Y'"
769
- class="form-control checkbox" />
773
+ class="form-control checkbox" attr.aria-label="hci-ng-attribute-absolute-input-dictionary-multiple-{{entry.display}}"/>
770
774
  <div class="cod-label ps-1">
771
- {{entry.display}}
775
+ {{ entry.display }}
772
776
  </div>
773
777
  </div>
774
778
  </ng-container>
@@ -878,6 +882,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
878
882
  `, styles: [".hci-cod button.mat-icon-button.mat-button-base{height:20px;width:20px;line-height:unset}.btn-ga{padding:0;height:18px;width:18px}.ga-icon{font-size:.9em;vertical-align:top}.hci-cod .mat-datepicker-toggle-default-icon{height:20px;width:20px}\n"] }]
879
883
  }], ctorParameters: () => [{ type: i1.AttributeService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i2.NgbModal }], propDecorators: { nativeSelectComponent: [{
880
884
  type: ViewChild,
881
- args: ["nativeSelectRef", { static: true }]
885
+ args: ['nativeSelectRef', { static: true }]
882
886
  }] } });
883
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLWFic29sdXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZC9zcmMvY29tcG9uZW50cy9hdHRyaWJ1dGUtYWJzb2x1dGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7QUFFdkU7OztHQUdHO0FBeWFILE1BQU0sT0FBTywwQkFBMkIsU0FBUSxhQUFhO0lBSzNELFlBQ0UsZ0JBQWtDLEVBQ2xDLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLFlBQXNCO1FBRXRCLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZHLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJ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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzWUM7NkpBZ0NMLHFCQUFxQjtzQkFEcEIsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuaW1wb3J0IHtOZ2JNb2RhbH0gZnJvbSBcIkBuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwXCI7XHJcbmltcG9ydCB7QXR0cmlidXRlQmFzZX0gZnJvbSBcIi4vYXR0cmlidXRlLWJhc2VcIjtcclxuaW1wb3J0IHtBdHRyaWJ1dGVTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvYXR0cmlidXRlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtOYXRpdmVTZWxlY3RDb21wb25lbnR9IGZyb20gXCJAaHVudHNtYW4tY2FuY2VyLWluc3RpdHV0ZS9pbnB1dFwiO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBhdHRyaWJ1dGUgZm9yIGFic29sdXRlIHBvc2l0aW9uaW5nLiAgVGhpcyBjb21wb25lbnQgaGFzIGl0cyB3aWR0aCwgaGVpZ2h0LCB4IGFuZCB5IHBvc2l0aW9uaW5nIHNldCBiYXNlZCB1cG9uXHJcbiAqIHRoZSBhdHRyaWJ1dGUgZGVmaW5pdGlvbi5cclxuICovXHJcbkBDb21wb25lbnQoXHJcbiAge1xyXG4gICAgc2VsZWN0b3I6IFwiaGNpLWF0dHJpYnV0ZS1hYnNvbHV0ZVwiLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHRlbXBsYXRlOlxyXG4gICAgICBgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyYWctc2VsZWN0XCIgc3R5bGU9XCJcIj48L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBMaW5lIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSAnTElORSdcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBjb2QtdHlwZS1saW5lIGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggY29kLWxpbmUgbWUtMSBtdC1hdXRvIG1iLWF1dG8gZmxleC1zaHJpbmstMFwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggbWUtMSBjb2QtbGFiZWwgZmxleC1zaHJpbmstMFwiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggY29kLWxpbmUgZ3JvdyBtdC1hdXRvIG1iLWF1dG9cIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIExhYmVsIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSAnTEFCRUwnXCI+XHJcbiAgICAgICAgICA8ZGl2ICNpbnB1dFJlZiAjYXR0cmlidXRlUmVmXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtbGFiZWwgbXQtYXV0byBtYi1hdXRvXCI+XHJcbiAgICAgICAgICAgICAge3thdHRyaWJ1dGUuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFN0cmluZyAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZSA9PT0gJ1MnXCI+XHJcbiAgICAgICAgICA8ZGl2ICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29kLXR5cGUtcyBpLWhlaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGF0dHJpYnV0ZS5oIDw9IDI1KVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAjaW5wdXRSZWZcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZVN0cmluZ0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdElubGluZSB8fCBhdHRyaWJ1dGUuaXNDYWxjdWxhdGVkID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIi8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGF0dHJpYnV0ZS5oID4gMjUpXCIgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgICAgICAgICNpbnB1dFJlZlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgc3BlbGxjaGVjaz1cInNwZWxsY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgbGFuZz1cImVuXCJcclxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZVN0cmluZ0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdElubGluZSB8fCBhdHRyaWJ1dGUuaXNDYWxjdWxhdGVkID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgICA8L3RleHRhcmVhPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFRleHQgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdUWFQnXCI+XHJcbiAgICAgICAgICA8ZGl2ICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29kLXR5cGUtdHh0IGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAjaW5wdXRSZWZcclxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICBzcGVsbGNoZWNrPVwic3BlbGxjaGVja1wiXHJcbiAgICAgICAgICAgIGxhbmc9XCJlblwiXHJcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZUxvbmdUZXh0LnRleHREYXRhXCJcclxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVUZXh0Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgIDwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gQ2hlY2tib3ggLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdDQidcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBjb2QtdHlwZS1jYiBpLWhlaWdodCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kaXNwbGF5TmFtZVwiIGNsYXNzPVwiZC1mbGV4IGNvZC1yaWdodC1sYWJlbFwiIFtzdHlsZS53aWR0aF09XCInbWF4LWNvbnRlbnQnXCI+XHJcbiAgICAgICAgICAgICAge3thdHRyaWJ1dGUuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAjaW5wdXRSZWYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTEgYWxpZ24taXRlbXMtY2VudGVyIG1lLTFcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInZhbHVlQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdElubGluZSB8fCBhdHRyaWJ1dGUuaXNDYWxjdWxhdGVkID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBOdW1lcmljIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSAnTidcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1uIGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgI2lucHV0UmVmXHJcbiAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVOdW1lcmljXCJcclxuICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVOdW1lcmljQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIi8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gSW50ZWdlciAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZSA9PT0gJ0knXCI+XHJcbiAgICAgICAgICA8ZGl2ICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29kLXR5cGUtaSBpLWhlaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0ICNpbnB1dFJlZlxyXG4gICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlSW50ZWdlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlSW50ZWdlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0SW5saW5lIHx8IGF0dHJpYnV0ZS5pc0NhbGN1bGF0ZWQgPT09ICdZJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIERhdGUgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdEJ1wiPlxyXG4gICAgICAgICAgPGRpdiAjYXR0cmlidXRlUmVmXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvZC10eXBlLWQgaS1oZWlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kaXNwbGF5TmFtZVwiIGNsYXNzPVwiZC1mbGV4IGNvZC10b3AtbGFiZWwgbWUtMVwiIFtzdHlsZS53aWR0aF09XCInbWF4LWNvbnRlbnQnXCI+XHJcbiAgICAgICAgICAgICAge3thdHRyaWJ1dGUuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCAjaW5wdXRSZWZcclxuICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInZhbHVlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlRGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwidmFsdWVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0SW5saW5lIHx8IGF0dHJpYnV0ZS5pc0NhbGN1bGF0ZWQgPT09ICdZJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJ2YWx1ZURhdGVcIiBjbGFzcz1cImNvZC1kcC10b2dnbGVcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3ZhbHVlRGF0ZT48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIERhdGUgVGltZSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZSA9PT0gJ0RUJ1wiPlxyXG4gICAgICAgICAgPGRpdiAjYXR0cmlidXRlUmVmXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvZC10eXBlLWR0IGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgI2lucHV0UmVmXHJcbiAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWx1ZURhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImF0dHJpYnV0ZVZhbHVlc1swXS5kYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVEYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgW25neE1hdERhdGV0aW1lUGlja2VyXT1cImR0cGlja2VyXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkdHBpY2tlclwiIGNsYXNzPVwiY29kLWRwLXRvZ2dsZVwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgIDxuZ3gtbWF0LWRhdGV0aW1lLXBpY2tlciAjZHRwaWNrZXIgW3Nob3dTZWNvbmRzXT1cInRydWVcIj48L25neC1tYXQtZGF0ZXRpbWUtcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIEJvb2xlYW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdCJ1wiPlxyXG4gICAgICAgICAgPGRpdiAjYXR0cmlidXRlUmVmXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvZC10eXBlLWIgaS1oZWlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kaXNwbGF5TmFtZVwiIGNsYXNzPVwiZC1mbGV4IGNvZC10b3AtbGFiZWwgbWUtMVwiIFtzdHlsZS53aWR0aF09XCInbWF4LWNvbnRlbnQnXCI+XHJcbiAgICAgICAgICAgICAge3thdHRyaWJ1dGUuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3QgI2lucHV0UmVmXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVTdHJpbmdDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGVkaXQtcmVuZGVyZXJcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidW5kZWZpbmVkXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIidZJ1wiIFtzZWxlY3RlZF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmcgPT09ICdZJ1wiPlllczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCInTidcIiBbc2VsZWN0ZWRdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID09PSAnTidcIj5Obzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIEV4dGVuZGVkIEJvb2xlYW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdFQidcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1lYiBpLWhlaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdCAjaW5wdXRSZWZcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZVN0cmluZ0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdElubGluZSB8fCBhdHRyaWJ1dGUuaXNDYWxjdWxhdGVkID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZWRpdC1yZW5kZXJlclwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiJ1knXCI+WWVzPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIidOJ1wiPk5vPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIidVJ1wiPlVua25vd248L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBDaG9pY2U6IFNpbmdsZSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZSA9PT0gJ0FDJyAmJiBhdHRyaWJ1dGUuaXNNdWx0aVZhbHVlID09PSAnTidcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1hYy1uIGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICA8c2VsZWN0ICNpbnB1dFJlZlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiKGF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZUF0dHJpYnV0ZUNob2ljZSk/YXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlQXR0cmlidXRlQ2hvaWNlLmlkQXR0cmlidXRlQ2hvaWNlOnVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNob2ljZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdElubGluZSB8fCBhdHRyaWJ1dGUuaXNDYWxjdWxhdGVkID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZWRpdC1yZW5kZXJlclwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGF0dHJpYnV0ZUNob2ljZSBvZiBhdHRyaWJ1dGVDaG9pY2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwiYXR0cmlidXRlQ2hvaWNlLmlkQXR0cmlidXRlQ2hvaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGF0dHJpYnV0ZUNob2ljZS5jaG9pY2UgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIENob2ljZTogTXVsdGkgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdBQycgJiYgYXR0cmlidXRlLmlzTXVsdGlWYWx1ZSA9PT0gJ1knXCI+XHJcbiAgICAgICAgICA8ZGl2ICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29kLXR5cGUtYWMteSBpLWhlaWdodFwiXHJcbiAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiBpbmhlcml0O1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHktYXV0b1wiIHN0eWxlPVwicm93LWdhcDogNXB4XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXR0cmlidXRlQ2hvaWNlIG9mIGF0dHJpYnV0ZUNob2ljZXNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImF0dHJpYnV0ZUNob2ljZS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInZhbHVlTXVsdGlDaG9pY2VDaGFuZ2UoYXR0cmlidXRlQ2hvaWNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGNoZWNrYm94XCIvPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29kLWxhYmVsIHBzLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2F0dHJpYnV0ZUNob2ljZS5jaG9pY2V9fVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDwhLS0gRGljdGlvbmFyeTogTXVsdGkgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdESUNUJyAmJiBhdHRyaWJ1dGUuaXNNdWx0aVZhbHVlID09PSAnWSdcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1hYy15IGktaGVpZ2h0XCJcclxuICAgICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IGluaGVyaXQ7XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4geS1hdXRvXCIgc3R5bGU9XCJyb3ctZ2FwOiA1cHhcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBkaWN0aW9uYXJ5RW50cmllc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXNocmluay0wXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiZW50cnkuY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInZhbHVlTXVsdGlEaWN0Q2hhbmdlKGVudHJ5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGNoZWNrYm94XCIgLz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvZC1sYWJlbCBwcy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tlbnRyeS5kaXNwbGF5fX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj4gICBcclxuXHJcbiAgICAgICAgPCEtLSBEaWN0aW9uYXJ5IC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSAnRElDVCcgJiYgYXR0cmlidXRlLmlzTXVsdGlWYWx1ZSA9PT0gJ04nXCI+XHJcbiAgICAgICAgICA8ZGl2ICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29kLXR5cGUtZGljdCBpLWhlaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdCAjaW5wdXRSZWZcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZUlkRGljdGlvbmFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZURpY3RDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGVkaXQtcmVuZGVyZXJcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidW5kZWZpbmVkXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBlbnRyeSBvZiBkaWN0aW9uYXJ5RW50cmllc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1ZhbHVlXT1cImVudHJ5LnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGVudHJ5LmRpc3BsYXkgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIEdyaWQgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdHQSdcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1nYSBpLWhlaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmlkQXR0cmlidXRlXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAge3thdHRyaWJ1dGUuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJlZGl0SW5saW5lXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogYXV0bztcIiBjbGFzcz1cInBzLTIgcGItMlwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZ2FcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiKCF0aGlzLmF0dHJpYnV0ZVNlcnZpY2UuZWRpdEJ1dHRvbnNFbmFibGVkKVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRHcmlkUm93KGVkaXRHcmlkTW9kYWwsIGF0dHJpYnV0ZS5pZEF0dHJpYnV0ZSlcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2EtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBmYS14c1wiPjwvaT5cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWdhXCJcclxuICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIighdGhpcy5hdHRyaWJ1dGVTZXJ2aWNlLmVkaXRCdXR0b25zRW5hYmxlZClcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlR3JpZFJvdyhhdHRyaWJ1dGUuaWRBdHRyaWJ1dGUpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdhLWljb25cIj5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLW1pbnVzIGZhLXhzXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxhZy1ncmlkLWFuZ3VsYXIgI2dyaWRDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncmlkUmVhZHkpPVwidGhpcy5vbkdyaWRSZWFkeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbFVwZGF0ZWQpPVwib25Nb2RlbFVwZGF0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ3JpZFNpemVDaGFuZ2VkKT1cIm9uR3JpZFNpemVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvd0RvdWJsZUNsaWNrZWQpPVwiZWRpdEdyaWRSb3coZWRpdEdyaWRNb2RhbCwgYXR0cmlidXRlLmlkQXR0cmlidXRlLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtncmlkT3B0aW9uc109XCJ0aGlzLmdyaWRPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dTZWxlY3Rpb25dPVwiJ3NpbmdsZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbkRlZnNdPVwiZ3JpZENvbHVtbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd0RhdGFdPVwiZ3JpZERhdGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImF0dHJpYnV0ZS53ICsgJ3B4J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImF0dHJpYnV0ZS5oICsgJ3B4J1wiPlxyXG4gICAgICAgICAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2VkaXRHcmlkTW9kYWwgbGV0LWNsb3NlPVwiY2xvc2VcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAge3thdHRyaWJ1dGUuZGlzcGxheU5hbWV9fSBHcmlkIFJvd1xyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBkLWZsZXggZmxleC1jb2x1bW4gaGNpLWNvZC1lZGl0XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGF0dHJpYnV0ZSBvZiBlZGl0R3JvdXBSb3dBdHRyaWJ1dGVzXCI+XHJcbiAgICAgICAgICAgICAgPGhjaS1hdHRyaWJ1dGUtZWRpdCBbaWRdPVwiJ2VkaXQtaWQtYXR0cmlidXRlLScgKyBhdHRyaWJ1dGUuaWRBdHRyaWJ1dGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyb3VwQXR0cmlidXRlUm93SWRdPVwiZWRpdEdyb3VwQXR0cmlidXRlUm93SWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHJpYnV0ZV09XCJhdHRyaWJ1dGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdHRyaWJ1dGVcIj48L2hjaS1hdHRyaWJ1dGUtZWRpdD5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIoIXRoaXMuYXR0cmlidXRlU2VydmljZS5lZGl0QnV0dG9uc0VuYWJsZWQpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKCdTYXZlJylcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgU2F2ZVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKCdDYW5jZWwnKVwiXHJcbiAgICAgICAgICAgID5DYW5jZWxcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICBgXHJcbiAgICAsXHJcbiAgICBzdHlsZXM6IFtcclxuICAgICAgYFxyXG4gICAgICAgIC5oY2ktY29kIGJ1dHRvbi5tYXQtaWNvbi1idXR0b24ubWF0LWJ1dHRvbi1iYXNlIHtcclxuICAgICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgICAgbGluZS1oZWlnaHQ6IHVuc2V0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmJ0bi1nYSB7XHJcbiAgICAgICAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICAgICAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgICB3aWR0aDogMThweDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5nYS1pY29uIHtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogLjllbTtcclxuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaGNpLWNvZCAubWF0LWRhdGVwaWNrZXItdG9nZ2xlLWRlZmF1bHQtaWNvbiB7XHJcbiAgICAgICAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICAgICAgICB3aWR0aDogMjBweDtcclxuICAgICAgICB9XHJcbiAgICAgIGBcclxuICAgIF1cclxuICB9XHJcbilcclxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZUFic29sdXRlQ29tcG9uZW50IGV4dGVuZHMgQXR0cmlidXRlQmFzZSB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJuYXRpdmVTZWxlY3RSZWZcIiwge3N0YXRpYzogdHJ1ZX0pXHJcbiAgbmF0aXZlU2VsZWN0Q29tcG9uZW50OiBOYXRpdmVTZWxlY3RDb21wb25lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgYXR0cmlidXRlU2VydmljZTogQXR0cmlidXRlU2VydmljZSxcclxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbFxyXG4gICkge1xyXG4gICAgc3VwZXIoYXR0cmlidXRlU2VydmljZSwgZWxlbWVudFJlZiwgcmVuZGVyZXIsIG1vZGFsU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZWRpdElubGluZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJtb3VzZW1vdmVcIiwgKGV2ZW50KSA9PiB0aGlzLm9uTW91c2VNb3ZlKGV2ZW50KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZnJlc2goKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluIHRoZSBhYnNvbHV0ZSBjYXNlLCB1cG9uIHJlZnJlc2ggcmVzZXQgdGhlIHBvc2l0aW9uIGFuZCBzaXplIG9mIHRoZSBhdHRyaWJ1dGUuXHJcbiAgICovXHJcbiAgcmVmcmVzaCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLnJlZnJlc2goKTtcclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcInBvc2l0aW9uXCIsIFwiYWJzb2x1dGVcIik7XHJcblxyXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlLnggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImxlZnRcIiwgdGhpcy5hdHRyaWJ1dGUueCArIFwicHhcIik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGUueSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gXCJMSU5FXCIpIHtcclxuICAgICAgICAvLyBJdCBhcHBlYXJzIHRoZSBsZWdhY3kgbWV0YWJ1aWxkZXIgb2Zmc2V0IGxpbmVzIGJ5IDggcGl4ZWxzXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJ0b3BcIiwgKHRoaXMuYXR0cmlidXRlLnkgLSA4KSArIFwicHhcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJ0b3BcIiwgdGhpcy5hdHRyaWJ1dGUueSArIFwicHhcIik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBDaGVja2JveGVzIGRvbid0IG5lZWQgYSB3aWR0aCwgdGhlIHNlbGVjdCBib3JkZXIgc2hvdWxkIGJlIHRoZSBzaXplIG9mIGl0cyBsYWJlbFxyXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlLncgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSAhPT0gXCJDQlwiKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwid2lkdGhcIiwgdGhpcy5hdHRyaWJ1dGUudyArIFwicHhcIik7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZSA9PT0gXCJMSU5FXCIpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJoZWlnaHRcIiwgXCIxNnB4XCIpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmF0dHJpYnV0ZS5oICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKCF0aGlzLmVkaXRJbmxpbmUpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImhlaWdodFwiLCB0aGlzLmF0dHJpYnV0ZS5oICsgXCJweFwiKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnB1dFJlZiAmJiB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudCwgXCJoZWlnaHRcIiwgdGhpcy5hdHRyaWJ1dGUuaCArIFwicHhcIik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubmF0aXZlU2VsZWN0UmVmKSB7XHJcbiAgICAgICAgdGhpcy5uYXRpdmVTZWxlY3RSZWYuc2V0SGVpZ2h0KHRoaXMuYXR0cmlidXRlLmgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5hdHRyaWJ1dGUuaXNNdWx0aVZhbHVlID09PSAnWScpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgdGhpcy5hdHRyaWJ1dGUuaCArICdweCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIGN1cnNvciBzdHlsaW5nIHdoZW4gdGhlIG1vdXNlIGlzIG92ZXIgdGhlIHNlbGVjdGVkIGF0dHJpYnV0ZS5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB7TW91c2VFdmVudH0gZXZlbnRcclxuICAgKi9cclxuICBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhcInNlbGVjdGVkXCIpKSB7XHJcbiAgICAgIGxldCBzeDogbnVtYmVyID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdDtcclxuICAgICAgbGV0IHN5OiBudW1iZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3A7XHJcblxyXG4gICAgICBpZiAoTWF0aC5hYnMoZXZlbnQuY2xpZW50WCAtIChzeCArIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoKSkgPD0gMTApIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImUtcmVzaXplXCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIGlmIChNYXRoLmFicyhldmVudC5jbGllbnRZIC0gKHN5ICsgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0KSkgPD0gNikge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwibi1yZXNpemVcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJlLXJlc2l6ZVwiKTtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwibi1yZXNpemVcIik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
887
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLWFic29sdXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZC9zcmMvY29tcG9uZW50cy9hdHRyaWJ1dGUtYWJzb2x1dGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQ2YsVUFBVSxFQUNWLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7QUFFdkU7OztHQUdHO0FBeWFILE1BQU0sT0FBTywwQkFBMkIsU0FBUSxhQUFhO0lBTTNELFlBQ0UsZ0JBQWtDLEVBQ2xDLFVBQXNCLEVBQ3RCLFFBQW1CLEVBQ25CLFlBQXNCO1FBRXRCLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBVjlELDJDQUFzQyxHQUFHLEVBQUUsQ0FBQztJQVc1QyxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2RyxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqRCxJQUFJLENBQUMsc0NBQXNDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7UUFDM0UsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTlFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3pGLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDbEUsNkRBQTZEO2dCQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUM5RixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ3hGLENBQUM7UUFDSCxDQUFDO1FBRUQsbUZBQW1GO1FBQ25GLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbEcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzFGLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzRixDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN6RixDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzRixDQUFDO1FBRUgsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLEtBQWlCO1FBQzNCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ2pFLElBQUksRUFBRSxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsSUFBSSxDQUFDO1lBQzVFLElBQUksRUFBRSxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDO1lBRTNFLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3JGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNsRSxPQUFPO1lBQ1QsQ0FBQztpQkFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUM1RixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDbEUsT0FBTztZQUNULENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdkUsQ0FBQzs4R0FoR1UsMEJBQTBCO2tHQUExQiwwQkFBMEIsNk5BbmFqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc1lDOzsyRkE2Qk0sMEJBQTBCO2tCQXhhdEMsU0FBUzsrQkFFSSx3QkFBd0IsaUJBQ25CLGlCQUFpQixDQUFDLElBQUksWUFFbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXNZQzs2SkFpQ0wscUJBQXFCO3NCQURwQixTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQge05nYk1vZGFsfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHtBdHRyaWJ1dGVCYXNlfSBmcm9tIFwiLi9hdHRyaWJ1dGUtYmFzZVwiO1xyXG5pbXBvcnQge0F0dHJpYnV0ZVNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9hdHRyaWJ1dGUuc2VydmljZVwiO1xyXG5pbXBvcnQge05hdGl2ZVNlbGVjdENvbXBvbmVudH0gZnJvbSBcIkBodW50c21hbi1jYW5jZXItaW5zdGl0dXRlL2lucHV0XCI7XHJcblxyXG4vKipcclxuICogVGhlIGF0dHJpYnV0ZSBmb3IgYWJzb2x1dGUgcG9zaXRpb25pbmcuICBUaGlzIGNvbXBvbmVudCBoYXMgaXRzIHdpZHRoLCBoZWlnaHQsIHggYW5kIHkgcG9zaXRpb25pbmcgc2V0IGJhc2VkIHVwb25cclxuICogdGhlIGF0dHJpYnV0ZSBkZWZpbml0aW9uLlxyXG4gKi9cclxuQENvbXBvbmVudChcclxuICB7XHJcbiAgICBzZWxlY3RvcjogXCJoY2ktYXR0cmlidXRlLWFic29sdXRlXCIsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgdGVtcGxhdGU6XHJcbiAgICAgIGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJhZy1zZWxlY3RcIiBzdHlsZT1cIlwiPjwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIExpbmUgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdMSU5FJ1wiPlxyXG4gICAgICAgICAgPGRpdiAjYXR0cmlidXRlUmVmXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtcm93IGNvZC10eXBlLWxpbmUgaS1oZWlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBjb2QtbGluZSBtZS0xIG10LWF1dG8gbWItYXV0byBmbGV4LXNocmluay0wXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBtZS0xIGNvZC1sYWJlbCBmbGV4LXNocmluay0wXCI+XHJcbiAgICAgICAgICAgICAge3thdHRyaWJ1dGUuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBjb2QtbGluZSBncm93IG10LWF1dG8gbWItYXV0b1wiPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gTGFiZWwgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdMQUJFTCdcIj5cclxuICAgICAgICAgIDxkaXYgI2lucHV0UmVmICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kaXNwbGF5TmFtZVwiIGNsYXNzPVwiZC1mbGV4IGNvZC1sYWJlbCBtdC1hdXRvIG1iLWF1dG9cIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gU3RyaW5nIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSAnUydcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1zIGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoYXR0cmlidXRlLmggPD0gMjUpXCIgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICNpbnB1dFJlZlxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nXCJcclxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlU3RyaW5nQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0SW5saW5lIHx8IGF0dHJpYnV0ZS5pc0NhbGN1bGF0ZWQgPT09ICdZJ1wiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiYXR0ci5hcmlhLWxhYmVsPVwiaGNpLW5nLWF0dHJpYnV0ZS1hYnNvbHV0ZS1pbnB1dC1zdHJpbmcte3toY2lOZ0F0dHJpYnV0ZUFic29sdXRlSW5wdXREaXNwbGF5TmFtZX19XCIvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIihhdHRyaWJ1dGUuaCA+IDI1KVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgICAgICAjaW5wdXRSZWZcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJzcGVsbGNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGxhbmc9XCJlblwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmdcIlxyXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVTdHJpbmdDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICAgICAgPC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBUZXh0IC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSAnVFhUJ1wiPlxyXG4gICAgICAgICAgPGRpdiAjYXR0cmlidXRlUmVmXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvZC10eXBlLXR4dCBpLWhlaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgICAgI2lucHV0UmVmXHJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgc3BlbGxjaGVjaz1cInNwZWxsY2hlY2tcIlxyXG4gICAgICAgICAgICBsYW5nPVwiZW5cIlxyXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVMb25nVGV4dC50ZXh0RGF0YVwiXHJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlVGV4dENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0SW5saW5lIHx8IGF0dHJpYnV0ZS5pc0NhbGN1bGF0ZWQgPT09ICdZJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICA8L3RleHRhcmVhPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIENoZWNrYm94IC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSAnQ0InXCI+XHJcbiAgICAgICAgICA8ZGl2ICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgY29kLXR5cGUtY2IgaS1oZWlnaHQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtcmlnaHQtbGFiZWxcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgI2lucHV0UmVmIGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xIGFsaWduLWl0ZW1zLWNlbnRlciBtZS0xXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZyA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ2YWx1ZUNoZWNrYm94Q2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBhdHRyLmFyaWEtbGFiZWw9XCJoY2ktbmctYXR0cmlidXRlLWFic29sdXRlLWlucHV0LWNoZWNrYm94LXt7aGNpTmdBdHRyaWJ1dGVBYnNvbHV0ZUlucHV0RGlzcGxheU5hbWV9fVwiLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBOdW1lcmljIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSAnTidcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1uIGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgI2lucHV0UmVmXHJcbiAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVOdW1lcmljXCJcclxuICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVOdW1lcmljQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBhdHRyLmFyaWEtbGFiZWw9XCJoY2ktbmctYXR0cmlidXRlLWFic29sdXRlLWlucHV0LW51bWVyaWMte3toY2lOZ0F0dHJpYnV0ZUFic29sdXRlSW5wdXREaXNwbGF5TmFtZX19XCIvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIEludGVnZXIgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdJJ1wiPlxyXG4gICAgICAgICAgPGRpdiAjYXR0cmlidXRlUmVmXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvZC10eXBlLWkgaS1oZWlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kaXNwbGF5TmFtZVwiIGNsYXNzPVwiZC1mbGV4IGNvZC10b3AtbGFiZWwgbWUtMVwiIFtzdHlsZS53aWR0aF09XCInbWF4LWNvbnRlbnQnXCI+XHJcbiAgICAgICAgICAgICAge3thdHRyaWJ1dGUuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCAjaW5wdXRSZWZcclxuICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZUludGVnZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUludGVnZXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdElubGluZSB8fCBhdHRyaWJ1dGUuaXNDYWxjdWxhdGVkID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIGF0dHIuYXJpYS1sYWJlbD1cImhjaS1uZy1hdHRyaWJ1dGUtYWJzb2x1dGUtaW5wdXQtaW50ZWdlci17e2hjaU5nQXR0cmlidXRlQWJzb2x1dGVJbnB1dERpc3BsYXlOYW1lfX1cIi8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gRGF0ZSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZSA9PT0gJ0QnXCI+XHJcbiAgICAgICAgICA8ZGl2ICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29kLXR5cGUtZCBpLWhlaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0ICNpbnB1dFJlZlxyXG4gICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICBuYW1lPVwidmFsdWVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVEYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJ2YWx1ZURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBhdHRyLmFyaWEtbGFiZWw9XCJoY2ktbmctYXR0cmlidXRlLWFic29sdXRlLWlucHV0LWRhdGUte3toY2lOZ0F0dHJpYnV0ZUFic29sdXRlSW5wdXREaXNwbGF5TmFtZX19XCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJ2YWx1ZURhdGVcIiBjbGFzcz1cImNvZC1kcC10b2dnbGVcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3ZhbHVlRGF0ZT48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIERhdGUgVGltZSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZSA9PT0gJ0RUJ1wiPlxyXG4gICAgICAgICAgPGRpdiAjYXR0cmlidXRlUmVmXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvZC10eXBlLWR0IGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgI2lucHV0UmVmXHJcbiAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ2YWx1ZURhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImF0dHJpYnV0ZVZhbHVlc1swXS5kYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVEYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgW25neE1hdERhdGV0aW1lUGlja2VyXT1cImR0cGlja2VyXCIgYXR0ci5hcmlhLWxhYmVsPVwiaGNpLW5nLWF0dHJpYnV0ZS1hYnNvbHV0ZS1pbnB1dC1kYXRlLXRpbWUte3toY2lOZ0F0dHJpYnV0ZUFic29sdXRlSW5wdXREaXNwbGF5TmFtZX19XCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJkdHBpY2tlclwiIGNsYXNzPVwiY29kLWRwLXRvZ2dsZVwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgICAgIDxuZ3gtbWF0LWRhdGV0aW1lLXBpY2tlciAjZHRwaWNrZXIgW3Nob3dTZWNvbmRzXT1cInRydWVcIj48L25neC1tYXQtZGF0ZXRpbWUtcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIEJvb2xlYW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdCJ1wiPlxyXG4gICAgICAgICAgPGRpdiAjYXR0cmlidXRlUmVmXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvZC10eXBlLWIgaS1oZWlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImF0dHJpYnV0ZS5kaXNwbGF5TmFtZVwiIGNsYXNzPVwiZC1mbGV4IGNvZC10b3AtbGFiZWwgbWUtMVwiIFtzdHlsZS53aWR0aF09XCInbWF4LWNvbnRlbnQnXCI+XHJcbiAgICAgICAgICAgICAge3thdHRyaWJ1dGUuZGlzcGxheU5hbWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWdyb3ctMVwiPlxyXG4gICAgICAgICAgICAgIDxzZWxlY3QgI2lucHV0UmVmXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidmFsdWVTdHJpbmdDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGVkaXQtcmVuZGVyZXJcIj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwidW5kZWZpbmVkXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIidZJ1wiIFtzZWxlY3RlZF09XCJhdHRyaWJ1dGVWYWx1ZXNbMF0udmFsdWVTdHJpbmcgPT09ICdZJ1wiPlllczwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCInTidcIiBbc2VsZWN0ZWRdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlU3RyaW5nID09PSAnTidcIj5Obzwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIEV4dGVuZGVkIEJvb2xlYW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdFQidcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1lYiBpLWhlaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPHNlbGVjdCAjaW5wdXRSZWZcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZVN0cmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZVN0cmluZ0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdElubGluZSB8fCBhdHRyaWJ1dGUuaXNDYWxjdWxhdGVkID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZWRpdC1yZW5kZXJlclwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiJ1knXCI+WWVzPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIidOJ1wiPk5vPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIidVJ1wiPlVua25vd248L29wdGlvbj5cclxuICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBDaG9pY2U6IFNpbmdsZSAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZSA9PT0gJ0FDJyAmJiBhdHRyaWJ1dGUuaXNNdWx0aVZhbHVlID09PSAnTidcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1hYy1uIGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICA8c2VsZWN0ICNpbnB1dFJlZlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiKGF0dHJpYnV0ZVZhbHVlc1swXS52YWx1ZUF0dHJpYnV0ZUNob2ljZSk/YXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlQXR0cmlidXRlQ2hvaWNlLmlkQXR0cmlidXRlQ2hvaWNlOnVuZGVmaW5lZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNob2ljZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdElubGluZSB8fCBhdHRyaWJ1dGUuaXNDYWxjdWxhdGVkID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZWRpdC1yZW5kZXJlclwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGF0dHJpYnV0ZUNob2ljZSBvZiBhdHRyaWJ1dGVDaG9pY2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwiYXR0cmlidXRlQ2hvaWNlLmlkQXR0cmlidXRlQ2hvaWNlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGF0dHJpYnV0ZUNob2ljZS5jaG9pY2UgfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIENob2ljZTogTXVsdGkgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdBQycgJiYgYXR0cmlidXRlLmlzTXVsdGlWYWx1ZSA9PT0gJ1knXCI+XHJcbiAgICAgICAgICA8ZGl2ICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29kLXR5cGUtYWMteSBpLWhlaWdodFwiXHJcbiAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiBpbmhlcml0O1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHktYXV0b1wiIHN0eWxlPVwicm93LWdhcDogNXB4XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXR0cmlidXRlQ2hvaWNlIG9mIGF0dHJpYnV0ZUNob2ljZXNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImF0dHJpYnV0ZUNob2ljZS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInZhbHVlTXVsdGlDaG9pY2VDaGFuZ2UoYXR0cmlidXRlQ2hvaWNlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVkaXRJbmxpbmUgfHwgYXR0cmlidXRlLmlzQ2FsY3VsYXRlZCA9PT0gJ1knXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGNoZWNrYm94XCIgYXR0ci5hcmlhLWxhYmVsPVwiaGNpLW5nLWF0dHJpYnV0ZS1hYnNvbHV0ZS1pbnB1dC1jaG9pY2UtbXVsdGlwbGUte3thdHRyaWJ1dGVDaG9pY2UuY2hvaWNlfX1cIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2QtbGFiZWwgcHMtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGF0dHJpYnV0ZUNob2ljZS5jaG9pY2UgfX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICBcclxuICAgICAgICA8IS0tIERpY3Rpb25hcnk6IE11bHRpIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSAnRElDVCcgJiYgYXR0cmlidXRlLmlzTXVsdGlWYWx1ZSA9PT0gJ1knXCI+XHJcbiAgICAgICAgICA8ZGl2ICNhdHRyaWJ1dGVSZWZcclxuICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29kLXR5cGUtYWMteSBpLWhlaWdodFwiXHJcbiAgICAgICAgICAgICAgIHN0eWxlPVwiaGVpZ2h0OiBpbmhlcml0O1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYXR0cmlidXRlLmRpc3BsYXlOYW1lXCIgY2xhc3M9XCJkLWZsZXggY29kLXRvcC1sYWJlbCBtZS0xXCIgW3N0eWxlLndpZHRoXT1cIidtYXgtY29udGVudCdcIj5cclxuICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIHktYXV0b1wiIHN0eWxlPVwicm93LWdhcDogNXB4XCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZW50cnkgb2YgZGljdGlvbmFyeUVudHJpZXNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImVudHJ5LmNoZWNrZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ2YWx1ZU11bHRpRGljdENoYW5nZShlbnRyeSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlZGl0SW5saW5lIHx8IGF0dHJpYnV0ZS5pc0NhbGN1bGF0ZWQgPT09ICdZJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBjaGVja2JveFwiIGF0dHIuYXJpYS1sYWJlbD1cImhjaS1uZy1hdHRyaWJ1dGUtYWJzb2x1dGUtaW5wdXQtZGljdGlvbmFyeS1tdWx0aXBsZS17e2VudHJ5LmRpc3BsYXl9fVwiLz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvZC1sYWJlbCBwcy0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgZW50cnkuZGlzcGxheSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPiAgIFxyXG5cclxuICAgICAgICA8IS0tIERpY3Rpb25hcnkgLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUgPT09ICdESUNUJyAmJiBhdHRyaWJ1dGUuaXNNdWx0aVZhbHVlID09PSAnTidcIj5cclxuICAgICAgICAgIDxkaXYgI2F0dHJpYnV0ZVJlZlxyXG4gICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2QtdHlwZS1kaWN0IGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuZGlzcGxheU5hbWVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIHt7YXR0cmlidXRlLmRpc3BsYXlOYW1lfX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgICAgICA8c2VsZWN0ICNpbnB1dFJlZlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYXR0cmlidXRlVmFsdWVzWzBdLnZhbHVlSWREaWN0aW9uYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInZhbHVlRGljdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZWRpdElubGluZSB8fCBhdHRyaWJ1dGUuaXNDYWxjdWxhdGVkID09PSAnWSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZWRpdC1yZW5kZXJlclwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJ1bmRlZmluZWRcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGVudHJ5IG9mIGRpY3Rpb25hcnlFbnRyaWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwiZW50cnkudmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAge3sgZW50cnkuZGlzcGxheSB9fVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwhLS0gR3JpZCAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZSA9PT0gJ0dBJ1wiPlxyXG4gICAgICAgICAgPGRpdiAjYXR0cmlidXRlUmVmIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvZC10eXBlLWdhIGktaGVpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhdHRyaWJ1dGUuaWRBdHRyaWJ1dGVcIiBjbGFzcz1cImQtZmxleCBjb2QtdG9wLWxhYmVsIG1lLTFcIiBbc3R5bGUud2lkdGhdPVwiJ21heC1jb250ZW50J1wiPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVkaXRJbmxpbmVcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiBhdXRvO1wiIGNsYXNzPVwicHMtMiBwYi0yXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0bi1nYVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIoIXRoaXMuYXR0cmlidXRlU2VydmljZS5lZGl0QnV0dG9uc0VuYWJsZWQpXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFkZEdyaWRSb3coZWRpdEdyaWRNb2RhbCwgYXR0cmlidXRlLmlkQXR0cmlidXRlKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnYS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzIGZhLXhzXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4tZ2FcIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiKCF0aGlzLmF0dHJpYnV0ZVNlcnZpY2UuZWRpdEJ1dHRvbnNFbmFibGVkKVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVHcmlkUm93KGF0dHJpYnV0ZS5pZEF0dHJpYnV0ZSlcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2EtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXMgZmEteHNcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtZ3Jvdy0xXCI+XHJcbiAgICAgICAgICAgICAgPGFnLWdyaWQtYW5ndWxhciAjZ3JpZENvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZy10aGVtZS1iYWxoYW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdyaWRSZWFkeSk9XCJ0aGlzLm9uR3JpZFJlYWR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsVXBkYXRlZCk9XCJvbk1vZGVsVXBkYXRlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChncmlkU2l6ZUNoYW5nZWQpPVwib25HcmlkU2l6ZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocm93RG91YmxlQ2xpY2tlZCk9XCJlZGl0R3JpZFJvdyhlZGl0R3JpZE1vZGFsLCBhdHRyaWJ1dGUuaWRBdHRyaWJ1dGUsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dyaWRPcHRpb25zXT1cInRoaXMuZ3JpZE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd1NlbGVjdGlvbl09XCInc2luZ2xlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uRGVmc109XCJncmlkQ29sdW1uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcm93RGF0YV09XCJncmlkRGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiYXR0cmlidXRlLncgKyAncHgnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiYXR0cmlidXRlLmggKyAncHgnXCI+XHJcbiAgICAgICAgICAgICAgPC9hZy1ncmlkLWFuZ3VsYXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZWRpdEdyaWRNb2RhbCBsZXQtY2xvc2U9XCJjbG9zZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICB7e2F0dHJpYnV0ZS5kaXNwbGF5TmFtZX19IEdyaWQgUm93XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGQtZmxleCBmbGV4LWNvbHVtbiBoY2ktY29kLWVkaXRcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXR0cmlidXRlIG9mIGVkaXRHcm91cFJvd0F0dHJpYnV0ZXNcIj5cclxuICAgICAgICAgICAgICA8aGNpLWF0dHJpYnV0ZS1lZGl0IFtpZF09XCInZWRpdC1pZC1hdHRyaWJ1dGUtJyArIGF0dHJpYnV0ZS5pZEF0dHJpYnV0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZ3JvdXBBdHRyaWJ1dGVSb3dJZF09XCJlZGl0R3JvdXBBdHRyaWJ1dGVSb3dJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0cmlidXRlXT1cImF0dHJpYnV0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF0dHJpYnV0ZVwiPjwvaGNpLWF0dHJpYnV0ZS1lZGl0PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIighdGhpcy5hdHRyaWJ1dGVTZXJ2aWNlLmVkaXRCdXR0b25zRW5hYmxlZClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoJ1NhdmUnKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBTYXZlXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoJ0NhbmNlbCcpXCJcclxuICAgICAgICAgICAgPkNhbmNlbFxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIGBcclxuICAgICxcclxuICAgIHN0eWxlczogW1xyXG4gICAgICBgXHJcbiAgICAgICAgLmhjaS1jb2QgYnV0dG9uLm1hdC1pY29uLWJ1dHRvbi5tYXQtYnV0dG9uLWJhc2Uge1xyXG4gICAgICAgICAgaGVpZ2h0OiAyMHB4O1xyXG4gICAgICAgICAgd2lkdGg6IDIwcHg7XHJcbiAgICAgICAgICBsaW5lLWhlaWdodDogdW5zZXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuYnRuLWdhIHtcclxuICAgICAgICAgIHBhZGRpbmc6IDBweDtcclxuICAgICAgICAgIGhlaWdodDogMThweDtcclxuICAgICAgICAgIHdpZHRoOiAxOHB4O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmdhLWljb24ge1xyXG4gICAgICAgICAgZm9udC1zaXplOiAuOWVtO1xyXG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5oY2ktY29kIC5tYXQtZGF0ZXBpY2tlci10b2dnbGUtZGVmYXVsdC1pY29uIHtcclxuICAgICAgICAgIGhlaWdodDogMjBweDtcclxuICAgICAgICAgIHdpZHRoOiAyMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgYFxyXG4gICAgXVxyXG4gIH1cclxuKVxyXG5leHBvcnQgY2xhc3MgQXR0cmlidXRlQWJzb2x1dGVDb21wb25lbnQgZXh0ZW5kcyBBdHRyaWJ1dGVCYXNlIHtcclxuXHJcbiAgaGNpTmdBdHRyaWJ1dGVBYnNvbHV0ZUlucHV0RGlzcGxheU5hbWUgPSBcIlwiO1xyXG4gIEBWaWV3Q2hpbGQoJ25hdGl2ZVNlbGVjdFJlZicsIHtzdGF0aWM6IHRydWV9KVxyXG4gIG5hdGl2ZVNlbGVjdENvbXBvbmVudDogTmF0aXZlU2VsZWN0Q29tcG9uZW50O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGF0dHJpYnV0ZVNlcnZpY2U6IEF0dHJpYnV0ZVNlcnZpY2UsXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIG1vZGFsU2VydmljZTogTmdiTW9kYWxcclxuICApIHtcclxuICAgIHN1cGVyKGF0dHJpYnV0ZVNlcnZpY2UsIGVsZW1lbnRSZWYsIHJlbmRlcmVyLCBtb2RhbFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmVkaXRJbmxpbmUpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwibW91c2Vtb3ZlXCIsIChldmVudCkgPT4gdGhpcy5vbk1vdXNlTW92ZShldmVudCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWZyZXNoKCk7XHJcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGUgJiYgdGhpcy5hdHRyaWJ1dGUuZGlzcGxheU5hbWUpIHtcclxuICAgICAgdGhpcy5oY2lOZ0F0dHJpYnV0ZUFic29sdXRlSW5wdXREaXNwbGF5TmFtZSA9IHRoaXMuYXR0cmlidXRlLmRpc3BsYXlOYW1lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW4gdGhlIGFic29sdXRlIGNhc2UsIHVwb24gcmVmcmVzaCByZXNldCB0aGUgcG9zaXRpb24gYW5kIHNpemUgb2YgdGhlIGF0dHJpYnV0ZS5cclxuICAgKi9cclxuICByZWZyZXNoKCk6IHZvaWQge1xyXG4gICAgc3VwZXIucmVmcmVzaCgpO1xyXG5cclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwicG9zaXRpb25cIiwgXCJhYnNvbHV0ZVwiKTtcclxuXHJcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGUueCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwibGVmdFwiLCB0aGlzLmF0dHJpYnV0ZS54ICsgXCJweFwiKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmF0dHJpYnV0ZS55ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMuYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpID09PSBcIkxJTkVcIikge1xyXG4gICAgICAgIC8vIEl0IGFwcGVhcnMgdGhlIGxlZ2FjeSBtZXRhYnVpbGRlciBvZmZzZXQgbGluZXMgYnkgOCBwaXhlbHNcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcInRvcFwiLCAodGhpcy5hdHRyaWJ1dGUueSAtIDgpICsgXCJweFwiKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcInRvcFwiLCB0aGlzLmF0dHJpYnV0ZS55ICsgXCJweFwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIENoZWNrYm94ZXMgZG9uJ3QgbmVlZCBhIHdpZHRoLCB0aGUgc2VsZWN0IGJvcmRlciBzaG91bGQgYmUgdGhlIHNpemUgb2YgaXRzIGxhYmVsXHJcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGUudyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpICE9PSBcIkNCXCIpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJ3aWR0aFwiLCB0aGlzLmF0dHJpYnV0ZS53ICsgXCJweFwiKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5hdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlID09PSBcIkxJTkVcIikge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImhlaWdodFwiLCBcIjE2cHhcIik7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXR0cmlidXRlLmggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAoIXRoaXMuZWRpdElubGluZSkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiaGVpZ2h0XCIsIHRoaXMuYXR0cmlidXRlLmggKyBcInB4XCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucHV0UmVmICYmIHRoaXMuaW5wdXRSZWYubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dFJlZi5uYXRpdmVFbGVtZW50LCBcImhlaWdodFwiLCB0aGlzLmF0dHJpYnV0ZS5oICsgXCJweFwiKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5uYXRpdmVTZWxlY3RSZWYpIHtcclxuICAgICAgICB0aGlzLm5hdGl2ZVNlbGVjdFJlZi5zZXRIZWlnaHQodGhpcy5hdHRyaWJ1dGUuaCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmF0dHJpYnV0ZS5pc011bHRpVmFsdWUgPT09ICdZJykge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCB0aGlzLmF0dHJpYnV0ZS5oICsgJ3B4Jyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgY3Vyc29yIHN0eWxpbmcgd2hlbiB0aGUgbW91c2UgaXMgb3ZlciB0aGUgc2VsZWN0ZWQgYXR0cmlidXRlLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtNb3VzZUV2ZW50fSBldmVudFxyXG4gICAqL1xyXG4gIG9uTW91c2VNb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKFwic2VsZWN0ZWRcIikpIHtcclxuICAgICAgbGV0IHN4OiBudW1iZXIgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0O1xyXG4gICAgICBsZXQgc3k6IG51bWJlciA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcclxuXHJcbiAgICAgIGlmIChNYXRoLmFicyhldmVudC5jbGllbnRYIC0gKHN4ICsgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpKSA8PSAxMCkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwiZS1yZXNpemVcIik7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9IGVsc2UgaWYgKE1hdGguYWJzKGV2ZW50LmNsaWVudFkgLSAoc3kgKyB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQpKSA8PSA2KSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJuLXJlc2l6ZVwiKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBcImUtcmVzaXplXCIpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgXCJuLXJlc2l6ZVwiKTtcclxuICB9XHJcbn1cclxuIl19
@@ -42,7 +42,7 @@ export class AttributeDefaultComponent {
42
42
  class="form-control"
43
43
  [id]="id"
44
44
  [name]="name"
45
- [(ngModel)]="value">
45
+ [(ngModel)]="value" attr.aria-label="hci-ng-string-attribute-default-{{name}}">
46
46
  </ng-container>
47
47
 
48
48
  <!-- Text -->
@@ -64,7 +64,7 @@ export class AttributeDefaultComponent {
64
64
  [id]="id"
65
65
  [name]="name"
66
66
  [(ngModel)]="value"
67
- [checked]="value && value.toUpperCase() === 'Y'">
67
+ [checked]="value && value.toUpperCase() === 'Y'" attr.aria-label="hci-ng-checkbox-attribute default-{{name}}">
68
68
  </ng-container>
69
69
 
70
70
  <!-- Numeric -->
@@ -73,7 +73,7 @@ export class AttributeDefaultComponent {
73
73
  class="form-control"
74
74
  [id]="id"
75
75
  [name]="name"
76
- [(ngModel)]="value">
76
+ [(ngModel)]="value" attr.aria-label="hci-ng-numeric-attribute default-{{name}}">
77
77
  </ng-container>
78
78
 
79
79
  <!-- Integer -->
@@ -82,7 +82,7 @@ export class AttributeDefaultComponent {
82
82
  class="form-control"
83
83
  [id]="id"
84
84
  [name]="name"
85
- [(ngModel)]="value">
85
+ [(ngModel)]="value" attr.aria-label="hci-ng-number-attribute default-{{name}}">
86
86
  </ng-container>
87
87
 
88
88
  <!-- Date -->
@@ -91,7 +91,7 @@ export class AttributeDefaultComponent {
91
91
  class="form-control"
92
92
  [id]="id"
93
93
  [name]="name"
94
- [(ngModel)]="value">
94
+ [(ngModel)]="value" attr.aria-label="hci-ng-date-attribute default-{{name}}">
95
95
  </ng-container>
96
96
 
97
97
  <!-- Date Time -->
@@ -100,7 +100,7 @@ export class AttributeDefaultComponent {
100
100
  class="form-control"
101
101
  [id]="id"
102
102
  [name]="name"
103
- [(ngModel)]="value">
103
+ [(ngModel)]="value" attr.aria-label="hci-ng-date-time-attribute default-{{name}}">
104
104
  </ng-container>
105
105
 
106
106
  <!-- Boolean -->
@@ -146,7 +146,7 @@ export class AttributeDefaultComponent {
146
146
  class="form-control"
147
147
  [id]="id"
148
148
  [name]="name"
149
- disabled>
149
+ disabled attr.aria-label="hci-ng-choice-multiple-attribute default-{{name}}">
150
150
  </ng-container>
151
151
 
152
152
  <!-- Dictionary -->
@@ -164,7 +164,7 @@ export class AttributeDefaultComponent {
164
164
  class="form-control"
165
165
  [id]="id"
166
166
  [name]="name"
167
- disabled>
167
+ disabled attr.aria-label="hci-ng-grid-attribute default-{{name}}">
168
168
  </ng-container>
169
169
  `, isInline: true }); }
170
170
  }
@@ -179,7 +179,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
179
179
  class="form-control"
180
180
  [id]="id"
181
181
  [name]="name"
182
- [(ngModel)]="value">
182
+ [(ngModel)]="value" attr.aria-label="hci-ng-string-attribute-default-{{name}}">
183
183
  </ng-container>
184
184
 
185
185
  <!-- Text -->
@@ -201,7 +201,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
201
201
  [id]="id"
202
202
  [name]="name"
203
203
  [(ngModel)]="value"
204
- [checked]="value && value.toUpperCase() === 'Y'">
204
+ [checked]="value && value.toUpperCase() === 'Y'" attr.aria-label="hci-ng-checkbox-attribute default-{{name}}">
205
205
  </ng-container>
206
206
 
207
207
  <!-- Numeric -->
@@ -210,7 +210,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
210
210
  class="form-control"
211
211
  [id]="id"
212
212
  [name]="name"
213
- [(ngModel)]="value">
213
+ [(ngModel)]="value" attr.aria-label="hci-ng-numeric-attribute default-{{name}}">
214
214
  </ng-container>
215
215
 
216
216
  <!-- Integer -->
@@ -219,7 +219,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
219
219
  class="form-control"
220
220
  [id]="id"
221
221
  [name]="name"
222
- [(ngModel)]="value">
222
+ [(ngModel)]="value" attr.aria-label="hci-ng-number-attribute default-{{name}}">
223
223
  </ng-container>
224
224
 
225
225
  <!-- Date -->
@@ -228,7 +228,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
228
228
  class="form-control"
229
229
  [id]="id"
230
230
  [name]="name"
231
- [(ngModel)]="value">
231
+ [(ngModel)]="value" attr.aria-label="hci-ng-date-attribute default-{{name}}">
232
232
  </ng-container>
233
233
 
234
234
  <!-- Date Time -->
@@ -237,7 +237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
237
237
  class="form-control"
238
238
  [id]="id"
239
239
  [name]="name"
240
- [(ngModel)]="value">
240
+ [(ngModel)]="value" attr.aria-label="hci-ng-date-time-attribute default-{{name}}">
241
241
  </ng-container>
242
242
 
243
243
  <!-- Boolean -->
@@ -283,7 +283,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
283
283
  class="form-control"
284
284
  [id]="id"
285
285
  [name]="name"
286
- disabled>
286
+ disabled attr.aria-label="hci-ng-choice-multiple-attribute default-{{name}}">
287
287
  </ng-container>
288
288
 
289
289
  <!-- Dictionary -->
@@ -301,7 +301,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
301
301
  class="form-control"
302
302
  [id]="id"
303
303
  [name]="name"
304
- disabled>
304
+ disabled attr.aria-label="hci-ng-grid-attribute default-{{name}}">
305
305
  </ng-container>
306
306
  `,
307
307
  providers: [
@@ -319,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
319
319
  }], attribute: [{
320
320
  type: Input
321
321
  }] } });
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kL3NyYy9jb21wb25lbnRzL2F0dHJpYnV0ZS1kZWZhdWx0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQWtKdkUsTUFBTSxPQUFPLHlCQUF5QjtJQVdwQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLEtBQUssQ0FBQyxDQUFTO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVEO1FBckJBLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFNcEIsYUFBUSxHQUFRLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDL0IsY0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQWNYLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFFbkIsVUFBVSxDQUFDLENBQVM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0FyQ1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsNEdBUnpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztnQkFDeEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQTFJUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtSVQ7OzJGQVNVLHlCQUF5QjtrQkE5SXJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1JVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGO3dEQUtVLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmltcG9ydCB7R3JhcGhpY2FsQXR0cmlidXRlfSBmcm9tIFwiLi4vbW9kZWwvZ3JhcGhpY2FsLWF0dHJpYnV0ZS5lbnRpdHlcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1hdHRyaWJ1dGUtZGVmYXVsdFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8IS0tIFN0cmluZyAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlLnRvVXBwZXJDYXNlKCkgPT09ICdTJ1wiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBUZXh0IC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ1RYVCdcIj5cclxuICAgICAgPHRleHRhcmVhIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgIHNwZWxsY2hlY2s9XCJzcGVsbGNoZWNrXCJcclxuICAgICAgICAgICAgICAgIGxhbmc9XCJlblwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCI+XHJcbiAgICAgIDwvdGV4dGFyZWE+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIENoZWNrYm94IC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ0NCJ1wiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgW2NoZWNrZWRdPVwidmFsdWUgJiYgdmFsdWUudG9VcHBlckNhc2UoKSA9PT0gJ1knXCI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIE51bWVyaWMgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpID09PSAnTidcIj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBJbnRlZ2VyIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ0knXCI+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gRGF0ZSAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlLnRvVXBwZXJDYXNlKCkgPT09ICdEJ1wiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cImRhdGVcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBEYXRlIFRpbWUgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpID09PSAnRFQnXCI+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIEJvb2xlYW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpID09PSAnQidcIj5cclxuICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGVkaXQtcmVuZGVyZXJcIlxyXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIj5cclxuICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIidZJ1wiIFtzZWxlY3RlZF09XCJ2YWx1ZSAmJiB2YWx1ZS50b1VwcGVyQ2FzZSgpID09PSAnWSdcIj5ZPC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCInTidcIiBbc2VsZWN0ZWRdPVwidmFsdWUgJiYgdmFsdWUudG9VcHBlckNhc2UoKSA9PT0gJ04nXCI+Tjwvb3B0aW9uPlxyXG4gICAgICA8L3NlbGVjdD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gRXh0ZW5kZWQgQm9vbGVhbiAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlLnRvVXBwZXJDYXNlKCkgPT09ICdFQidcIj5cclxuICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBlZGl0LXJlbmRlcmVyXCJcclxuICAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIj5cclxuICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIidZJ1wiIFtzZWxlY3RlZF09XCJ2YWx1ZSAmJiB2YWx1ZS50b1VwcGVyQ2FzZSgpID09PSAnWSdcIj5ZPC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCInTidcIiBbc2VsZWN0ZWRdPVwidmFsdWUgJiYgdmFsdWUudG9VcHBlckNhc2UoKSA9PT0gJ04nXCI+Tjwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiJ1UnXCIgW3NlbGVjdGVkXT1cInZhbHVlICYmIHZhbHVlLnRvVXBwZXJDYXNlKCkgPT09ICdVJ1wiPlU8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIENob2ljZTogU2luZ2xlIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ0FDJyAmJiBhdHRyaWJ1dGUuaXNNdWx0aVZhbHVlLnRvVXBwZXJDYXNlKCkgPT09ICdOJ1wiPlxyXG4gICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGVkaXQtcmVuZGVyZXJcIlxyXG4gICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGF0dHJpYnV0ZUNob2ljZSBvZiBhdHRyaWJ1dGUuYXR0cmlidXRlQ2hvaWNlc1wiXHJcbiAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJhdHRyaWJ1dGVDaG9pY2VcIlxyXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInZhbHVlICYmIHZhbHVlLnRvVXBwZXJDYXNlKCkgPT09IGF0dHJpYnV0ZUNob2ljZS5pZEF0dHJpYnV0ZUNob2ljZS50b1N0cmluZygpLnRvVXBwZXJDYXNlKClcIj5cclxuICAgICAgICAgIHt7IGF0dHJpYnV0ZUNob2ljZS5jaG9pY2UgfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIENob2ljZTogTXVsdGkgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpID09PSAnQUMnICYmIGF0dHJpYnV0ZS5pc011bHRpVmFsdWUudG9VcHBlckNhc2UoKSA9PT0gJ1knXCI+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgICBkaXNhYmxlZD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gRGljdGlvbmFyeSAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlLnRvVXBwZXJDYXNlKCkgPT09ICdESUNUJ1wiPlxyXG4gICAgICA8aGNpLW5hdGl2ZS1zZWxlY3QgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cImF0dHJpYnV0ZS5hdHRyaWJ1dGVEaWN0aW9uYXJ5LmNsYXNzTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiPlxyXG4gICAgICA8L2hjaS1uYXRpdmUtc2VsZWN0PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBHcmlkIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ0dBJ1wiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgZGlzYWJsZWQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXR0cmlidXRlRGVmYXVsdENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR0cmlidXRlRGVmYXVsdENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgX3ZhbHVlOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSBhdHRyaWJ1dGU6IEdyYXBoaWNhbEF0dHJpYnV0ZTtcclxuXHJcbiAgb25DaGFuZ2U6IGFueSA9IChfOiBhbnkpID0+IHt9O1xyXG4gIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH07XHJcblxyXG4gIHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICBpZiAodiAhPT0gdGhpcy52YWx1ZSkge1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XHJcbiAgICAgIHRoaXMub25DaGFuZ2Uodik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge31cclxuXHJcbiAgd3JpdGVWYWx1ZSh2OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3ZhbHVlID0gdjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcbn1cclxuIl19
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLWRlZmF1bHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kL3NyYy9jb21wb25lbnRzL2F0dHJpYnV0ZS1kZWZhdWx0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFM0QsT0FBTyxFQUF1QixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQWtKdkUsTUFBTSxPQUFPLHlCQUF5QjtJQVdwQyxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFJLEtBQUssQ0FBQyxDQUFTO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVEO1FBckJBLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFNcEIsYUFBUSxHQUFRLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDL0IsY0FBUyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQWNYLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFFbkIsVUFBVSxDQUFDLENBQVM7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0FyQ1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsNEdBUnpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztnQkFDeEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQTFJUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtSVQ7OzJGQVNVLHlCQUF5QjtrQkE5SXJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1JVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGO3dEQUtVLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmltcG9ydCB7R3JhcGhpY2FsQXR0cmlidXRlfSBmcm9tIFwiLi4vbW9kZWwvZ3JhcGhpY2FsLWF0dHJpYnV0ZS5lbnRpdHlcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1hdHRyaWJ1dGUtZGVmYXVsdFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8IS0tIFN0cmluZyAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlLnRvVXBwZXJDYXNlKCkgPT09ICdTJ1wiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIGF0dHIuYXJpYS1sYWJlbD1cImhjaS1uZy1zdHJpbmctYXR0cmlidXRlLWRlZmF1bHQte3tuYW1lfX1cIj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gVGV4dCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlLnRvVXBwZXJDYXNlKCkgPT09ICdUWFQnXCI+XHJcbiAgICAgIDx0ZXh0YXJlYSB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICBzcGVsbGNoZWNrPVwic3BlbGxjaGVja1wiXHJcbiAgICAgICAgICAgICAgICBsYW5nPVwiZW5cIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiPlxyXG4gICAgICA8L3RleHRhcmVhPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBDaGVja2JveCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlLnRvVXBwZXJDYXNlKCkgPT09ICdDQidcIj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgIFtjaGVja2VkXT1cInZhbHVlICYmIHZhbHVlLnRvVXBwZXJDYXNlKCkgPT09ICdZJ1wiIGF0dHIuYXJpYS1sYWJlbD1cImhjaS1uZy1jaGVja2JveC1hdHRyaWJ1dGUgZGVmYXVsdC17e25hbWV9fVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBOdW1lcmljIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ04nXCI+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIiBhdHRyLmFyaWEtbGFiZWw9XCJoY2ktbmctbnVtZXJpYy1hdHRyaWJ1dGUgZGVmYXVsdC17e25hbWV9fVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBJbnRlZ2VyIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ0knXCI+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIiBhdHRyLmFyaWEtbGFiZWw9XCJoY2ktbmctbnVtYmVyLWF0dHJpYnV0ZSBkZWZhdWx0LXt7bmFtZX19XCI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIERhdGUgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpID09PSAnRCdcIj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJkYXRlXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcclxuICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIiBhdHRyLmFyaWEtbGFiZWw9XCJoY2ktbmctZGF0ZS1hdHRyaWJ1dGUgZGVmYXVsdC17e25hbWV9fVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBEYXRlIFRpbWUgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpID09PSAnRFQnXCI+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwiZGF0ZVwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCIgYXR0ci5hcmlhLWxhYmVsPVwiaGNpLW5nLWRhdGUtdGltZS1hdHRyaWJ1dGUgZGVmYXVsdC17e25hbWV9fVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBCb29sZWFuIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ0InXCI+XHJcbiAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBlZGl0LXJlbmRlcmVyXCJcclxuICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCI+XHJcbiAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCInWSdcIiBbc2VsZWN0ZWRdPVwidmFsdWUgJiYgdmFsdWUudG9VcHBlckNhc2UoKSA9PT0gJ1knXCI+WTwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiJ04nXCIgW3NlbGVjdGVkXT1cInZhbHVlICYmIHZhbHVlLnRvVXBwZXJDYXNlKCkgPT09ICdOJ1wiPk48L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIEV4dGVuZGVkIEJvb2xlYW4gLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpID09PSAnRUInXCI+XHJcbiAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgZWRpdC1yZW5kZXJlclwiXHJcbiAgICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCI+XHJcbiAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCInWSdcIiBbc2VsZWN0ZWRdPVwidmFsdWUgJiYgdmFsdWUudG9VcHBlckNhc2UoKSA9PT0gJ1knXCI+WTwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwiJ04nXCIgW3NlbGVjdGVkXT1cInZhbHVlICYmIHZhbHVlLnRvVXBwZXJDYXNlKCkgPT09ICdOJ1wiPk48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIidVJ1wiIFtzZWxlY3RlZF09XCJ2YWx1ZSAmJiB2YWx1ZS50b1VwcGVyQ2FzZSgpID09PSAnVSdcIj5VPC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBDaG9pY2U6IFNpbmdsZSAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdHRyaWJ1dGUuY29kZUF0dHJpYnV0ZURhdGFUeXBlLnRvVXBwZXJDYXNlKCkgPT09ICdBQycgJiYgYXR0cmlidXRlLmlzTXVsdGlWYWx1ZS50b1VwcGVyQ2FzZSgpID09PSAnTidcIj5cclxuICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBlZGl0LXJlbmRlcmVyXCJcclxuICAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIj5cclxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBhdHRyaWJ1dGVDaG9pY2Ugb2YgYXR0cmlidXRlLmF0dHJpYnV0ZUNob2ljZXNcIlxyXG4gICAgICAgICAgICAgICAgW25nVmFsdWVdPVwiYXR0cmlidXRlQ2hvaWNlXCJcclxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJ2YWx1ZSAmJiB2YWx1ZS50b1VwcGVyQ2FzZSgpID09PSBhdHRyaWJ1dGVDaG9pY2UuaWRBdHRyaWJ1dGVDaG9pY2UudG9TdHJpbmcoKS50b1VwcGVyQ2FzZSgpXCI+XHJcbiAgICAgICAgICB7eyBhdHRyaWJ1dGVDaG9pY2UuY2hvaWNlIH19XHJcbiAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgIDwvc2VsZWN0PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBDaG9pY2U6IE11bHRpIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ0FDJyAmJiBhdHRyaWJ1dGUuaXNNdWx0aVZhbHVlLnRvVXBwZXJDYXNlKCkgPT09ICdZJ1wiPlxyXG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgZGlzYWJsZWQgYXR0ci5hcmlhLWxhYmVsPVwiaGNpLW5nLWNob2ljZS1tdWx0aXBsZS1hdHRyaWJ1dGUgZGVmYXVsdC17e25hbWV9fVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBEaWN0aW9uYXJ5IC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImF0dHJpYnV0ZS5jb2RlQXR0cmlidXRlRGF0YVR5cGUudG9VcHBlckNhc2UoKSA9PT0gJ0RJQ1QnXCI+XHJcbiAgICAgIDxoY2ktbmF0aXZlLXNlbGVjdCBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVdPVwiYXR0cmlidXRlLmF0dHJpYnV0ZURpY3Rpb25hcnkuY2xhc3NOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCI+XHJcbiAgICAgIDwvaGNpLW5hdGl2ZS1zZWxlY3Q+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIEdyaWQgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXR0cmlidXRlLmNvZGVBdHRyaWJ1dGVEYXRhVHlwZS50b1VwcGVyQ2FzZSgpID09PSAnR0EnXCI+XHJcbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgICBkaXNhYmxlZCBhdHRyLmFyaWEtbGFiZWw9XCJoY2ktbmctZ3JpZC1hdHRyaWJ1dGUgZGVmYXVsdC17e25hbWV9fVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF0dHJpYnV0ZURlZmF1bHRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZURlZmF1bHRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIF92YWx1ZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYXR0cmlidXRlOiBHcmFwaGljYWxBdHRyaWJ1dGU7XHJcblxyXG4gIG9uQ2hhbmdlOiBhbnkgPSAoXzogYW55KSA9PiB7fTtcclxuICBvblRvdWNoZWQ6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9O1xyXG5cclxuICBzZXQgdmFsdWUodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgaWYgKHYgIT09IHRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIHdyaXRlVmFsdWUodjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl92YWx1ZSA9IHY7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG59XHJcbiJdfQ==