monkey-style-guide 2.0.127 → 2.0.130

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.
@@ -124,7 +124,7 @@ mecx-form-field {
124
124
  text-align: center;
125
125
 
126
126
  & > span {
127
- padding-top: 6px;
127
+ padding: 1px;
128
128
  color: map-get(map-get($mecx-theme, contrast), main);
129
129
  background: map-get($mecx-theme, main);
130
130
  border-bottom-left-radius: 8px;
@@ -829,3 +829,46 @@ monkey-button-avatar {
829
829
  }
830
830
  }
831
831
  }
832
+
833
+ monkey-button-loading {
834
+ .mecx-button-primary {
835
+ @extend .mecx-button;
836
+ justify-content: flex-start !important;
837
+ align-items: flex-start !important;
838
+ padding: 0px !important;
839
+
840
+ &__theme {
841
+ color: map-get(map-get($mecx-theme, contrast), 400);
842
+ background: map-get($mecx-theme, 400);
843
+ background-position: center;
844
+
845
+ &:hover:not(:disabled) {
846
+ background-position: center;
847
+ transition: background 0.8s;
848
+ background: map-get($mecx-theme, 400)
849
+ radial-gradient(circle, transparent 1%, map-get($mecx-theme, 400) 1%) center/15000%;
850
+ }
851
+
852
+ &:active:not(:disabled) {
853
+ background-color: map-get($mecx-theme, 100);
854
+ background-size: 100%;
855
+ transition: background 0s;
856
+ }
857
+
858
+ mecx-button-progress-info {
859
+ width: 100%;
860
+ height: 100%;
861
+ background-color: map-get($mecx-theme, 100);
862
+ font-size: 10px;
863
+ display: flex;
864
+ text-align: center;
865
+
866
+ & > span {
867
+ padding: 1px;
868
+ color: map-get(map-get($mecx-theme, contrast), main);
869
+ background: map-get($mecx-theme, main);
870
+ }
871
+ }
872
+ }
873
+ }
874
+ }
@@ -0,0 +1,78 @@
1
+ /**************************
2
+ * Copyright Monkey Exchange. All Rights Reserved
3
+ * This style guide was developed by Monkey Exchange Team
4
+ * MIT Licence
5
+ **************************/
6
+ import { Component, ViewEncapsulation, Input } from '@angular/core';
7
+ import { MonkeyUtils } from '../../core/utils';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/common";
10
+ export class MonkeyButtonLoadingComponent {
11
+ constructor() {
12
+ this.size = 'md';
13
+ this._id = `mecx-button-loading-${MonkeyUtils.getRandomString(10)}`;
14
+ }
15
+ }
16
+ MonkeyButtonLoadingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
+ MonkeyButtonLoadingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.0", type: MonkeyButtonLoadingComponent, selector: "monkey-button-loading", inputs: { label: "label", type: "type", color: "color", size: "size", progress: "progress", totalProgress: "totalProgress" }, ngImport: i0, template: `
18
+ <button
19
+ [ngClass]="
20
+ 'mecx-button-' +
21
+ type +
22
+ ' mecx-button-' +
23
+ type +
24
+ '__' +
25
+ color +
26
+ ' no-icon' +
27
+ ' ' +
28
+ size
29
+ "
30
+ type="button"
31
+ [id]="_id"
32
+ >
33
+ <mecx-button-progress-info>
34
+ <span [style.width.%]="progress"> {{ progress }}%</span>
35
+ </mecx-button-progress-info>
36
+ </button>
37
+ `, isInline: true, directives: [{ type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None });
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonLoadingComponent, decorators: [{
39
+ type: Component,
40
+ args: [{
41
+ selector: 'monkey-button-loading',
42
+ template: `
43
+ <button
44
+ [ngClass]="
45
+ 'mecx-button-' +
46
+ type +
47
+ ' mecx-button-' +
48
+ type +
49
+ '__' +
50
+ color +
51
+ ' no-icon' +
52
+ ' ' +
53
+ size
54
+ "
55
+ type="button"
56
+ [id]="_id"
57
+ >
58
+ <mecx-button-progress-info>
59
+ <span [style.width.%]="progress"> {{ progress }}%</span>
60
+ </mecx-button-progress-info>
61
+ </button>
62
+ `,
63
+ encapsulation: ViewEncapsulation.None
64
+ }]
65
+ }], propDecorators: { label: [{
66
+ type: Input
67
+ }], type: [{
68
+ type: Input
69
+ }], color: [{
70
+ type: Input
71
+ }], size: [{
72
+ type: Input
73
+ }], progress: [{
74
+ type: Input
75
+ }], totalProgress: [{
76
+ type: Input
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWxvYWRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLWxvYWRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OzRCQUk0QjtBQUM1QixPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQTJCL0MsTUFBTSxPQUFPLDRCQUE0QjtJQXpCekM7UUE2QlcsU0FBSSxHQUF1QixJQUFJLENBQUM7UUFJbEMsUUFBRyxHQUFHLHVCQUF1QixXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7S0FDdkU7O3lIQVRZLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLDJMQXZCN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBb0JSOzJGQUdTLDRCQUE0QjtrQkF6QnhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQW9CUjtvQkFDRixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OEJBRVUsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTW9ua2V5VXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbW9ua2V5LWJ1dHRvbi1sb2FkaW5nJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBbbmdDbGFzc109XCJcclxuICAgICAgICAnbWVjeC1idXR0b24tJyArXHJcbiAgICAgICAgdHlwZSArXHJcbiAgICAgICAgJyBtZWN4LWJ1dHRvbi0nICtcclxuICAgICAgICB0eXBlICtcclxuICAgICAgICAnX18nICtcclxuICAgICAgICBjb2xvciArXHJcbiAgICAgICAgJyBuby1pY29uJyArXHJcbiAgICAgICAgJyAnICtcclxuICAgICAgICBzaXplXHJcbiAgICAgIFwiXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBbaWRdPVwiX2lkXCJcclxuICAgID5cclxuICAgICAgPG1lY3gtYnV0dG9uLXByb2dyZXNzLWluZm8+XHJcbiAgICAgICAgPHNwYW4gW3N0eWxlLndpZHRoLiVdPVwicHJvZ3Jlc3NcIj4ge3sgcHJvZ3Jlc3MgfX0lPC9zcGFuPlxyXG4gICAgICA8L21lY3gtYnV0dG9uLXByb2dyZXNzLWluZm8+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlCdXR0b25Mb2FkaW5nQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcclxuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbWQnIHwgJ2xnJyA9ICdtZCc7XHJcbiAgQElucHV0KCkgcHJvZ3Jlc3M6IG51bWJlcjtcclxuICBASW5wdXQoKSB0b3RhbFByb2dyZXNzOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBfaWQgPSBgbWVjeC1idXR0b24tbG9hZGluZy0ke01vbmtleVV0aWxzLmdldFJhbmRvbVN0cmluZygxMCl9YDtcclxufVxyXG4iXX0=
@@ -5,19 +5,36 @@ import { MonkeyButtonAvatarComponent } from './button-avatar.component';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
7
  import { MonkeyIconModule } from '../icon/icon.module';
8
+ import { MonkeyButtonLoadingComponent } from './button-loading.component';
8
9
  import * as i0 from "@angular/core";
9
10
  export class MonkeyButtonModule {
10
11
  }
11
12
  MonkeyButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- MonkeyButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, declarations: [MonkeyButtonComponent, MonkeyButtonDropdownComponent, MonkeyButtonAvatarComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyIconModule], exports: [MonkeyButtonComponent, MonkeyButtonDropdownComponent, MonkeyButtonAvatarComponent] });
13
+ MonkeyButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, declarations: [MonkeyButtonComponent,
14
+ MonkeyButtonDropdownComponent,
15
+ MonkeyButtonLoadingComponent,
16
+ MonkeyButtonAvatarComponent], imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyIconModule], exports: [MonkeyButtonComponent,
17
+ MonkeyButtonDropdownComponent,
18
+ MonkeyButtonLoadingComponent,
19
+ MonkeyButtonAvatarComponent] });
13
20
  MonkeyButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, imports: [[CommonModule, FormsModule, ReactiveFormsModule, MonkeyIconModule]] });
14
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImport: i0, type: MonkeyButtonModule, decorators: [{
15
22
  type: NgModule,
16
23
  args: [{
17
- declarations: [MonkeyButtonComponent, MonkeyButtonDropdownComponent, MonkeyButtonAvatarComponent],
24
+ declarations: [
25
+ MonkeyButtonComponent,
26
+ MonkeyButtonDropdownComponent,
27
+ MonkeyButtonLoadingComponent,
28
+ MonkeyButtonAvatarComponent
29
+ ],
18
30
  imports: [CommonModule, FormsModule, ReactiveFormsModule, MonkeyIconModule],
19
- exports: [MonkeyButtonComponent, MonkeyButtonDropdownComponent, MonkeyButtonAvatarComponent],
20
- schemas: [NO_ERRORS_SCHEMA],
31
+ exports: [
32
+ MonkeyButtonComponent,
33
+ MonkeyButtonDropdownComponent,
34
+ MonkeyButtonLoadingComponent,
35
+ MonkeyButtonAvatarComponent
36
+ ],
37
+ schemas: [NO_ERRORS_SCHEMA]
21
38
  }]
22
39
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQVF2RCxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBTGQscUJBQXFCLEVBQUUsNkJBQTZCLEVBQUUsMkJBQTJCLGFBQ3RGLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLGFBQ2hFLHFCQUFxQixFQUFFLDZCQUE2QixFQUFFLDJCQUEyQjtnSEFHaEYsa0JBQWtCLFlBSnBCLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQzsyRkFJaEUsa0JBQWtCO2tCQU45QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixFQUFFLDZCQUE2QixFQUFFLDJCQUEyQixDQUFDO29CQUNqRyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDO29CQUMzRSxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSw2QkFBNkIsRUFBRSwyQkFBMkIsQ0FBQztvQkFDNUYsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE5PX0VSUk9SU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTW9ua2V5QnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW9ua2V5QnV0dG9uRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb25rZXlCdXR0b25BdmF0YXJDb21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi1hdmF0YXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vbmtleUljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uL2ljb24ubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbTW9ua2V5QnV0dG9uQ29tcG9uZW50LCBNb25rZXlCdXR0b25Ecm9wZG93bkNvbXBvbmVudCwgTW9ua2V5QnV0dG9uQXZhdGFyQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTW9ua2V5SWNvbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW01vbmtleUJ1dHRvbkNvbXBvbmVudCwgTW9ua2V5QnV0dG9uRHJvcGRvd25Db21wb25lbnQsIE1vbmtleUJ1dHRvbkF2YXRhckNvbXBvbmVudF0sXHJcbiAgc2NoZW1hczogW05PX0VSUk9SU19TQ0hFTUFdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9ua2V5QnV0dG9uTW9kdWxlIHt9XHJcbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQWtCMUUsTUFBTSxPQUFPLGtCQUFrQjs7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQWQzQixxQkFBcUI7UUFDckIsNkJBQTZCO1FBQzdCLDRCQUE0QjtRQUM1QiwyQkFBMkIsYUFFbkIsWUFBWSxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsYUFFeEUscUJBQXFCO1FBQ3JCLDZCQUE2QjtRQUM3Qiw0QkFBNEI7UUFDNUIsMkJBQTJCO2dIQUlsQixrQkFBa0IsWUFUcEIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixDQUFDOzJGQVNoRSxrQkFBa0I7a0JBaEI5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixxQkFBcUI7d0JBQ3JCLDZCQUE2Qjt3QkFDN0IsNEJBQTRCO3dCQUM1QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLENBQUM7b0JBQzNFLE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7d0JBQ3JCLDZCQUE2Qjt3QkFDN0IsNEJBQTRCO3dCQUM1QiwyQkFBMkI7cUJBQzVCO29CQUNELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1vbmtleUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vbmtleUJ1dHRvbkRyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24tZHJvcGRvd24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTW9ua2V5QnV0dG9uQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi9idXR0b24tYXZhdGFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNb25rZXlJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pY29uLm1vZHVsZSc7XHJcbmltcG9ydCB7IE1vbmtleUJ1dHRvbkxvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi1sb2FkaW5nLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgTW9ua2V5QnV0dG9uQ29tcG9uZW50LFxyXG4gICAgTW9ua2V5QnV0dG9uRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBNb25rZXlCdXR0b25Mb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgTW9ua2V5QnV0dG9uQXZhdGFyQ29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTW9ua2V5SWNvbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgTW9ua2V5QnV0dG9uQ29tcG9uZW50LFxyXG4gICAgTW9ua2V5QnV0dG9uRHJvcGRvd25Db21wb25lbnQsXHJcbiAgICBNb25rZXlCdXR0b25Mb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgTW9ua2V5QnV0dG9uQXZhdGFyQ29tcG9uZW50XHJcbiAgXSxcclxuICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleUJ1dHRvbk1vZHVsZSB7fVxyXG4iXX0=
@@ -1,5 +1,6 @@
1
1
  export * from './button.component';
2
2
  export * from './button-dropdown.component';
3
+ export * from './button-loading.component';
3
4
  export * from './button-avatar.component';
4
5
  export * from './button.module';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9idXR0b24tZHJvcGRvd24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9idXR0b24tYXZhdGFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLm1vZHVsZSc7Il19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2J1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi1kcm9wZG93bi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi1sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uLWF2YXRhci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2J1dHRvbi5tb2R1bGUnO1xyXG4iXX0=
@@ -175,43 +175,37 @@ export class MonkeyDateRangePickerComponent {
175
175
  return day?.isSame(endDate);
176
176
  }
177
177
  selectedDate(day) {
178
- try {
179
- if (this._disabled)
178
+ if (this._disabled)
179
+ return;
180
+ const { _dateForm, _minDate } = this;
181
+ let dayFormatted = day.format('YYYY-MM-DD');
182
+ if (_minDate) {
183
+ const firstDay = moment(_minDate);
184
+ if (day.isBefore(firstDay.subtract(1, 'day')))
180
185
  return;
181
- const { _dateForm, _minDate } = this;
182
- let dayFormatted = day.format('YYYY-MM-DD');
183
- if (_minDate) {
184
- const firstDay = moment(_minDate);
185
- if (day.isBefore(firstDay.subtract(1, 'day')))
186
- return;
187
- }
188
- if (_dateForm.valid) {
189
- this.clearDates();
190
- }
191
- let { startDate, endDate } = _dateForm.value;
192
- if (startDate) {
193
- if (moment(startDate).isAfter(moment(dayFormatted))) {
194
- endDate = startDate;
195
- startDate = dayFormatted;
196
- }
197
- else {
198
- endDate = dayFormatted;
199
- }
200
- }
201
- else
186
+ }
187
+ if (_dateForm.valid) {
188
+ this.clearDates();
189
+ }
190
+ let { startDate, endDate } = _dateForm.value;
191
+ if (startDate) {
192
+ if (moment(startDate).isAfter(moment(dayFormatted))) {
193
+ endDate = startDate;
202
194
  startDate = dayFormatted;
203
- if (startDate) {
204
- _dateForm.get('startDate').patchValue(startDate);
205
195
  }
206
- if (endDate) {
207
- _dateForm.get('endDate').patchValue(endDate);
196
+ else {
197
+ endDate = dayFormatted;
208
198
  }
209
- console.log(_dateForm.value);
210
- this.writeValue(_dateForm.value);
211
199
  }
212
- catch (e) {
213
- console.log(e);
200
+ else
201
+ startDate = dayFormatted;
202
+ if (startDate) {
203
+ _dateForm.get('startDate').patchValue(startDate);
204
+ }
205
+ if (endDate) {
206
+ _dateForm.get('endDate').patchValue(endDate);
214
207
  }
208
+ this.writeValue(_dateForm.value);
215
209
  }
216
210
  selectRangeOfDays(days) {
217
211
  if (this._disabled)
@@ -585,4 +579,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
585
579
  }], value: [{
586
580
  type: Input
587
581
  }] } });
588
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBRVYsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7Ozs7O0FBRWxDLE1BQU0sTUFBTSxHQUFRLE9BQU8sQ0FBQztBQTBLNUIsTUFBTSxPQUFPLDhCQUE4QjtJQXNDekMsWUFBb0IsRUFBZSxFQUFVLEdBQXNCO1FBQS9DLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXBDMUQsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFlM0Isb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFNdEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFckMsVUFBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxrQkFBYSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkpUOzJGQVdVLDhCQUE4QjtrQkF4SzFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJKVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDOzRCQUM3RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCxZQUFZO3FCQUNiO2lCQUNGO2tJQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFZRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRixPQUFPO3NCQURWLEtBQUs7Z0JBS0ksUUFBUTtzQkFBakIsTUFBTTtnQkFtR0gsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcclxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXHJcbiAqIE1JVCBMaWNlbmNlXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgZm9yd2FyZFJlZixcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtR3JvdXAsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuXHJcbmNvbnN0IG1vbWVudDogYW55ID0gbW9tZW50XztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbW9ua2V5LWRhdGUtcmFuZ2UtcGlja2VyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogX2Rpc2FibGVkIH1cIiBbaWRdPVwiX2lkXCI+XHJcbiAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWhlYWRlcj5cclxuICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICB7eyBsYWJlbCB9fVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGhlbHBlcj5cclxuICAgICAgICAgIHt7IGhlbHBlck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2hlbHBlcj5cclxuICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWhlYWRlcj5cclxuICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtYm9keT5cclxuICAgICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlciBjbGFzcz1cImZpcnN0LWRhdGUtcmFuZ2VcIj5cclxuICAgICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWhlYWRlcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FsZW5kYXItcHJldmlvdXNcIlxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgICAgICBpY29uPVwiYXJyb3ctbGVmdC0xNlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGVydGlhcnlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzTW9udGgoKVwiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgteWVhci10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgaTE4bj8ubW9udGhzPy5bX2RhdGVGaXJzdC5mb3JtYXQoJ00nKV0gfX1cclxuICAgICAgICAgICAgICAgIHt7IF9kYXRlRmlyc3QuZm9ybWF0KCdZWVlZJykgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1uZXh0XCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwidGhlbWVcIlxyXG4gICAgICAgICAgICAgICAgaWNvbj1cImFycm93LXJpZ2h0LTE2XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXJ0aWFyeVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dE1vbnRoKClcIlxyXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L21vbmtleS1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2Vlay1kYXlcIiAqbmdGb3I9XCJsZXQgZGF5IG9mIFsxLCAyLCAzLCA0LCA1LCA2LCA3XVwiPlxyXG4gICAgICAgICAgICAgICAge3sgaTE4bj8uZGF5cz8uW2RheV19fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyPlxyXG4gICAgICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItYm9keT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLXdlZWtcIiAqbmdGb3I9XCJsZXQgd2VlayBvZiBfZGF5c0FyckZpcnN0XCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aC1kYXlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkRGF0ZShkYXkpXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgaW5hY3RpdmU6ICFkYXkgfHwgaXNEaXNhYmxlZChkYXkpLFxyXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZDogaXNTZWxlY3RlZChkYXkpLFxyXG4gICAgICAgICAgICAgICAgICB0b2RheTogdG9kYXlDaGVjayhkYXkpLFxyXG4gICAgICAgICAgICAgICAgICAnZmlyc3Qtc2VsZWN0ZWQnOiBpc0ZpcnN0U2VsZWN0ZWQoZGF5KSxcclxuICAgICAgICAgICAgICAgICAgJ2xhc3Qtc2VsZWN0ZWQnOiBpc0xhc3RTZWxlY3RlZChkYXkpXHJcbiAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2Vla1wiXHJcbiAgICAgICAgICAgICAgICAjZGl2T25lXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgZGF5Py5kYXRlKCkgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItYm9keT5cclxuICAgICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXI+XHJcblxyXG4gICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyIGNsYXNzPVwic2Vjb25kLWRhdGUtcmFuZ2VcIj5cclxuICAgICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWhlYWRlcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLXllYXItdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIHt7IGkxOG4/Lm1vbnRocz8uW19kYXRlU2Vjb25kLmZvcm1hdCgnTScpXSB9fVxyXG4gICAgICAgICAgICAgICAge3sgX2RhdGVTZWNvbmQuZm9ybWF0KCdZWVlZJykgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1wcmV2aW91c1wiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgICAgICAgIGljb249XCJhcnJvdy1yaWdodC0xNlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGVydGlhcnlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRNb250aCgpXCJcclxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndlZWstZGF5XCIgKm5nRm9yPVwibGV0IGRheSBvZiBbMSwgMiwgMywgNCwgNSwgNiwgN11cIj5cclxuICAgICAgICAgICAgICAgIHt7IGkxOG4/LmRheXM/LltkYXldfX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWhlYWRlcj5cclxuICAgICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWJvZHk+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC13ZWVrXCIgKm5nRm9yPVwibGV0IHdlZWsgb2YgX2RheXNBcnJTZWNvbmRcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLWRheVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWREYXRlKGRheSlcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICBpbmFjdGl2ZTogIWRheSB8fCBpc0Rpc2FibGVkKGRheSksXHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkKGRheSksXHJcbiAgICAgICAgICAgICAgICAgIHRvZGF5OiB0b2RheUNoZWNrKGRheSksXHJcbiAgICAgICAgICAgICAgICAgICdmaXJzdC1zZWxlY3RlZCc6IGlzRmlyc3RTZWxlY3RlZChkYXkpLFxyXG4gICAgICAgICAgICAgICAgICAnbGFzdC1zZWxlY3RlZCc6IGlzTGFzdFNlbGVjdGVkKGRheSlcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXk/LmRhdGUoKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ib2R5PlxyXG4gICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWJvZHk+XHJcbiAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWluZm8+XHJcbiAgICAgICAgPGluZm8+XHJcbiAgICAgICAgICB7eyBpbmZvTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvaW5mbz5cclxuICAgICAgICA8ZXJyb3I+XHJcbiAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Vycm9yPlxyXG4gICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtaW5mbz5cclxuICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtYWN0aW9uIFtjbGFzcy5lcnJvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tZGF5c1wiPlxyXG4gICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFuZ2VPZkRheXMoMzApXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGkxOG4/LmFjdGlvbnM/LlsnMzAnXSB9fVxyXG4gICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFuZ2VPZkRheXMoNjApXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGkxOG4/LmFjdGlvbnM/LlsnNjAnXSB9fVxyXG4gICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFuZ2VPZkRheXMoOTApXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGkxOG4/LmFjdGlvbnM/LlsnOTAnXSB9fVxyXG4gICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtb25rZXktYnV0dG9uXHJcbiAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvVG9kYXkoKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBpMThuPy50b2RheSB9fVxyXG4gICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cclxuICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWFjdGlvbj5cclxuICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ncm91cD5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNb25rZXlEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBDdXJyZW5jeVBpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleURhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVscGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaTE4bjoge1xyXG4gICAgbW9udGhzOiB7XHJcbiAgICAgIFtzOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICB9O1xyXG4gICAgZGF5czoge1xyXG4gICAgICBbczogc3RyaW5nXTogc3RyaW5nO1xyXG4gICAgfTtcclxuICAgIGFjdGlvbnM6IHtcclxuICAgICAgW3M6IHN0cmluZ106IHN0cmluZztcclxuICAgIH07XHJcbiAgICB0b2RheTogc3RyaW5nO1xyXG4gIH07XHJcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBtb3ZlRGF5c0ZvcndhcmQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG1pbkRhdGUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fbWluRGF0ZSA9ICF0aGlzLm1vdmVEYXlzRm9yd2FyZCA/IG51bGwgOiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwcml2YXRlIHRvZGF5ID0gbW9tZW50KCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgcHJpdmF0ZSBvbk1vZGVsQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Nb2RlbFRvdWNoZWQgPSAodmFsdWU6IGFueSkgPT4ge307XHJcblxyXG4gIHB1YmxpYyBfZGF0ZUZpcnN0ID0gbW9tZW50KCk7XHJcbiAgcHVibGljIF9kYXRlU2Vjb25kID0gbW9tZW50KCkuYWRkKDEsICdNJyk7XHJcbiAgcHVibGljIF9pZDogc3RyaW5nID0gYG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItJHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMTApfWA7XHJcbiAgcHVibGljIF9kYXlzQXJyRmlyc3QgPSBbXTtcclxuICBwdWJsaWMgX2RheXNBcnJTZWNvbmQgPSBbXTtcclxuICBwdWJsaWMgX2RhdGVGb3JtOiBGb3JtR3JvdXA7XHJcbiAgcHVibGljIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBfbWluRGF0ZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHRoaXMuaW5pdERhdGVSYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RGF0ZVJhbmdlKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLl9kYXRlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzdGFydERhdGU6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgZW5kRGF0ZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDYWxlbmRhcihtb250aDogYW55KSB7XHJcbiAgICBsZXQgZmlyc3REYXkgPSBtb21lbnQobW9udGgpLnN0YXJ0T2YoJ00nKTtcclxuICAgIGxldCBsYXN0RGF5ID0gbW9tZW50KG1vbnRoKS5lbmRPZignTScpO1xyXG4gICAgbGV0IGRheXMgPSBBcnJheS5hcHBseShudWxsLCB7IGxlbmd0aDogbW9udGguZGF5c0luTW9udGgoKSB9KVxyXG4gICAgICAubWFwKE51bWJlci5jYWxsLCBOdW1iZXIpXHJcbiAgICAgIC5tYXAoKG46IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoZmlyc3REYXkpLmFkZChuLCAnZCcpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBsZXQgbiA9IDA7XHJcbiAgICB3aGlsZSAobiA8IGZpcnN0RGF5LndlZWtkYXkoKSkge1xyXG4gICAgICBkYXlzLnVuc2hpZnQobnVsbCk7XHJcbiAgICAgIG4rKztcclxuICAgIH1cclxuICAgIG4gPSAwO1xyXG4gICAgd2hpbGUgKG4gPCA3IC0gbGFzdERheS53ZWVrZGF5KCkpIHtcclxuICAgICAgZGF5cy5wdXNoKG51bGwpO1xyXG4gICAgICBuKys7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGluZGV4ID0gMTtcclxuICAgIGxldCBncm91cCA9IFtdO1xyXG4gICAgbGV0IGdyb3VwZWQgPSBbXTtcclxuXHJcbiAgICBPYmplY3QuZW50cmllcyhkYXlzKS5tYXAoKFtrZXksIHZhbHVlXTogW3N0cmluZywgYW55XSkgPT4ge1xyXG4gICAgICBpZiAoaW5kZXggPiA3KSB7XHJcbiAgICAgICAgaW5kZXggPSAxO1xyXG4gICAgICAgIGdyb3VwZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgZ3JvdXAgPSBbXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZ3JvdXAucHVzaCh2YWx1ZSk7XHJcbiAgICAgIGluZGV4Kys7XHJcbiAgICB9KTtcclxuICAgIGdyb3VwZWQucHVzaChncm91cCk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkKCkge1xyXG4gICAgdGhpcy5fZGF5c0FyckZpcnN0ID0gdGhpcy5jcmVhdGVDYWxlbmRhcih0aGlzLl9kYXRlRmlyc3QpO1xyXG4gICAgdGhpcy5fZGF5c0FyclNlY29uZCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZVNlY29uZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyRGF0ZXMoKSB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuX2RhdGVGb3JtLnNldFZhbHVlKHsgc3RhcnREYXRlOiBudWxsLCBlbmREYXRlOiBudWxsIH0pO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX2RhdGVGb3JtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9Ub2RheSgpIHtcclxuICAgIHRoaXMuX2RhdGVGaXJzdCA9IG1vbWVudCgpO1xyXG4gICAgdGhpcy5fZGF0ZVNlY29uZCA9IG1vbWVudCgpLmFkZCgxLCAnTScpO1xyXG4gICAgdGhpcy5idWlsZCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJ1aWxkKCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB2YWx1ZSAmJlxyXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdzdGFydERhdGUnKSAmJlxyXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdlbmREYXRlJylcclxuICAgICkge1xyXG4gICAgICB0aGlzLl9kYXRlRm9ybS5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMuX2RhdGVGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5vbk1vZGVsVG91Y2hlZCh0aGlzLl9kYXRlRm9ybS52YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGVGb3JtLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbmV4dE1vbnRoKCkge1xyXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLl9kYXRlRmlyc3QuYWRkKDEsICdNJyk7XHJcbiAgICB0aGlzLl9kYXRlU2Vjb25kLmFkZCgxLCAnTScpO1xyXG5cclxuICAgIHRoaXMuX2RheXNBcnJGaXJzdCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZUZpcnN0KTtcclxuICAgIHRoaXMuX2RheXNBcnJTZWNvbmQgPSB0aGlzLmNyZWF0ZUNhbGVuZGFyKHRoaXMuX2RhdGVTZWNvbmQpO1xyXG4gIH1cclxuXHJcbiAgcHJldmlvdXNNb250aCgpIHtcclxuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fZGF0ZUZpcnN0LnN1YnRyYWN0KDEsICdNJyk7XHJcbiAgICB0aGlzLl9kYXRlU2Vjb25kLnN1YnRyYWN0KDEsICdNJyk7XHJcblxyXG4gICAgdGhpcy5fZGF5c0FyckZpcnN0ID0gdGhpcy5jcmVhdGVDYWxlbmRhcih0aGlzLl9kYXRlRmlyc3QpO1xyXG4gICAgdGhpcy5fZGF5c0FyclNlY29uZCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZVNlY29uZCk7XHJcbiAgfVxyXG5cclxuICB0b2RheUNoZWNrKGRheTogYW55KSB7XHJcbiAgICBpZiAoIWRheSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1vbWVudCgpLmZvcm1hdCgnTCcpID09PSBkYXkuZm9ybWF0KCdMJyk7XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkKGRheTogYW55KSB7XHJcbiAgICBpZiAoIWRheSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHN0YXJ0RGF0ZU1vbWVudCA9IG1vbWVudCh0aGlzLl9kYXRlRm9ybS52YWx1ZS5zdGFydERhdGUsICdZWVlZLU1NLUREJyk7XHJcbiAgICBsZXQgZW5kRGF0ZU1vbWVudCA9IG1vbWVudCh0aGlzLl9kYXRlRm9ybS52YWx1ZS5lbmREYXRlLCAnWVlZWS1NTS1ERCcpO1xyXG5cclxuICAgIGlmICh0aGlzLl9kYXRlRm9ybS52YWxpZCkge1xyXG4gICAgICByZXR1cm4gc3RhcnREYXRlTW9tZW50LmlzU2FtZU9yQmVmb3JlKGRheSkgJiYgZW5kRGF0ZU1vbWVudC5pc1NhbWVPckFmdGVyKGRheSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2RhdGVGb3JtLmdldCgnc3RhcnREYXRlJykudmFsaWQpIHtcclxuICAgICAgcmV0dXJuIHN0YXJ0RGF0ZU1vbWVudC5pc1NhbWUoZGF5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRGlzYWJsZWQoZGF5KSB7XHJcbiAgICBjb25zdCB7IF9taW5EYXRlIH0gPSB0aGlzO1xyXG4gICAgaWYgKF9taW5EYXRlKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0RGF5ID0gbW9tZW50KF9taW5EYXRlKTtcclxuICAgICAgcmV0dXJuIGRheS5pc0JlZm9yZShmaXJzdERheS5zdWJ0cmFjdCgxLCAnZGF5JykpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNGaXJzdFNlbGVjdGVkKGRheSkge1xyXG4gICAgY29uc3QgeyBfZGF0ZUZvcm0gfSA9IHRoaXM7XHJcbiAgICBjb25zdCB7IHN0YXJ0RGF0ZSB9ID0gX2RhdGVGb3JtLnZhbHVlO1xyXG4gICAgcmV0dXJuIGRheT8uaXNTYW1lKHN0YXJ0RGF0ZSk7XHJcbiAgfVxyXG5cclxuICBpc0xhc3RTZWxlY3RlZChkYXk6IGFueSkge1xyXG4gICAgY29uc3QgeyBfZGF0ZUZvcm0gfSA9IHRoaXM7XHJcbiAgICBjb25zdCB7IGVuZERhdGUgfSA9IF9kYXRlRm9ybS52YWx1ZTtcclxuICAgIHJldHVybiBkYXk/LmlzU2FtZShlbmREYXRlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkRGF0ZShkYXk6IGFueSkge1xyXG4gICAgdHJ5e1xyXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSByZXR1cm47XHJcbiAgICBjb25zdCB7IF9kYXRlRm9ybSwgX21pbkRhdGUgfSA9IHRoaXM7XHJcbiAgICBsZXQgZGF5Rm9ybWF0dGVkID0gZGF5LmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG5cclxuICAgIGlmIChfbWluRGF0ZSkge1xyXG4gICAgICBjb25zdCBmaXJzdERheSA9IG1vbWVudChfbWluRGF0ZSk7XHJcbiAgICAgIGlmIChkYXkuaXNCZWZvcmUoZmlyc3REYXkuc3VidHJhY3QoMSwgJ2RheScpKSkgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChfZGF0ZUZvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy5jbGVhckRhdGVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHsgc3RhcnREYXRlLCBlbmREYXRlIH0gPSBfZGF0ZUZvcm0udmFsdWU7XHJcbiAgICBpZiAoc3RhcnREYXRlKSB7XHJcbiAgICAgIGlmIChtb21lbnQoc3RhcnREYXRlKS5pc0FmdGVyKG1vbWVudChkYXlGb3JtYXR0ZWQpKSkge1xyXG4gICAgICAgIGVuZERhdGUgPSBzdGFydERhdGU7XHJcbiAgICAgICAgc3RhcnREYXRlID0gZGF5Rm9ybWF0dGVkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVuZERhdGUgPSBkYXlGb3JtYXR0ZWQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBzdGFydERhdGUgPSBkYXlGb3JtYXR0ZWQ7XHJcblxyXG4gICAgaWYgKHN0YXJ0RGF0ZSkge1xyXG4gICAgICBfZGF0ZUZvcm0uZ2V0KCdzdGFydERhdGUnKS5wYXRjaFZhbHVlKHN0YXJ0RGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGVuZERhdGUpIHtcclxuICAgICAgX2RhdGVGb3JtLmdldCgnZW5kRGF0ZScpLnBhdGNoVmFsdWUoZW5kRGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc29sZS5sb2coX2RhdGVGb3JtLnZhbHVlKVxyXG4gICAgdGhpcy53cml0ZVZhbHVlKF9kYXRlRm9ybS52YWx1ZSk7XHJcbiAgfWNhdGNoKGUpe1xyXG4gICAgY29uc29sZS5sb2coZSlcclxuICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSYW5nZU9mRGF5cyhkYXlzOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgY29uc3QgeyBfZGF0ZUZvcm0sIF9taW5EYXRlLCB0b2RheSwgbW92ZURheXNGb3J3YXJkIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgeyBzdGFydERhdGUgfSA9IF9kYXRlRm9ybS52YWx1ZTtcclxuXHJcbiAgICBjb25zdCBmaXJzdERheSA9IG1vbWVudChzdGFydERhdGUgfHwgX21pbkRhdGUgfHwgdG9kYXkpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgY29uc3QgbWV0aG9kID0gbW92ZURheXNGb3J3YXJkID8gJ2FkZCcgOiAnc3VidHJhY3QnO1xyXG4gICAgY29uc3QgbGFzdERheSA9IG1vbWVudChmaXJzdERheSlbbWV0aG9kXShkYXlzLCAnZGF5JykuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICBcclxuICAgIGlmKG1vdmVEYXlzRm9yd2FyZCl7XHJcbiAgICAgIF9kYXRlRm9ybS5nZXQoJ3N0YXJ0RGF0ZScpLnBhdGNoVmFsdWUoZmlyc3REYXkpO1xyXG4gICAgICBfZGF0ZUZvcm0uZ2V0KCdlbmREYXRlJykucGF0Y2hWYWx1ZShsYXN0RGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF9kYXRlRm9ybS5nZXQoJ3N0YXJ0RGF0ZScpLnBhdGNoVmFsdWUobGFzdERheSk7XHJcbiAgICAgIF9kYXRlRm9ybS5nZXQoJ2VuZERhdGUnKS5wYXRjaFZhbHVlKGZpcnN0RGF5KTtcclxuICAgIH1cclxuICAgIHRoaXMud3JpdGVWYWx1ZShfZGF0ZUZvcm0udmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
582
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci9kYXRlLXJhbmdlLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixVQUFVLEVBRVYsTUFBTSxFQUNOLFlBQVksRUFDWixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUlMLGlCQUFpQixFQUNqQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7Ozs7O0FBRWxDLE1BQU0sTUFBTSxHQUFRLE9BQU8sQ0FBQztBQTBLNUIsTUFBTSxPQUFPLDhCQUE4QjtJQXNDekMsWUFBb0IsRUFBZSxFQUFVLEdBQXNCO1FBQS9DLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXBDMUQsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFlM0Isb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFNdEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFckMsVUFBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxrQkFBYSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDbkMsbUJBQWMsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FB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OzJGQVdVLDhCQUE4QjtrQkF4SzFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJKVDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDOzRCQUM3RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRCxZQUFZO3FCQUNiO2lCQUNGO2tJQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFZRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRixPQUFPO3NCQURWLEtBQUs7Z0JBS0ksUUFBUTtzQkFBakIsTUFBTTtnQkFtR0gsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcclxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXHJcbiAqIE1JVCBMaWNlbmNlXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgZm9yd2FyZFJlZixcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcclxuICBGb3JtQnVpbGRlcixcclxuICBGb3JtR3JvdXAsXHJcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgVmFsaWRhdG9ycyxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vbmtleVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcclxuXHJcbmNvbnN0IG1vbWVudDogYW55ID0gbW9tZW50XztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbW9ua2V5LWRhdGUtcmFuZ2UtcGlja2VyJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogX2Rpc2FibGVkIH1cIiBbaWRdPVwiX2lkXCI+XHJcbiAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWhlYWRlcj5cclxuICAgICAgICA8bGFiZWw+XHJcbiAgICAgICAgICB7eyBsYWJlbCB9fVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPGhlbHBlcj5cclxuICAgICAgICAgIHt7IGhlbHBlck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2hlbHBlcj5cclxuICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWhlYWRlcj5cclxuICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtYm9keT5cclxuICAgICAgICA8bWVjeC1kYXRlLXJhbmdlLXBpY2tlciBjbGFzcz1cImZpcnN0LWRhdGUtcmFuZ2VcIj5cclxuICAgICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWhlYWRlcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FsZW5kYXItcHJldmlvdXNcIlxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgICAgICBpY29uPVwiYXJyb3ctbGVmdC0xNlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGVydGlhcnlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzTW9udGgoKVwiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgteWVhci10aXRsZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgaTE4bj8ubW9udGhzPy5bX2RhdGVGaXJzdC5mb3JtYXQoJ00nKV0gfX1cclxuICAgICAgICAgICAgICAgIHt7IF9kYXRlRmlyc3QuZm9ybWF0KCdZWVlZJykgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1uZXh0XCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwidGhlbWVcIlxyXG4gICAgICAgICAgICAgICAgaWNvbj1cImFycm93LXJpZ2h0LTE2XCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXJ0aWFyeVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dE1vbnRoKClcIlxyXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L21vbmtleS1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2Vla1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2Vlay1kYXlcIiAqbmdGb3I9XCJsZXQgZGF5IG9mIFsxLCAyLCAzLCA0LCA1LCA2LCA3XVwiPlxyXG4gICAgICAgICAgICAgICAge3sgaTE4bj8uZGF5cz8uW2RheV19fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItaGVhZGVyPlxyXG4gICAgICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItYm9keT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLXdlZWtcIiAqbmdGb3I9XCJsZXQgd2VlayBvZiBfZGF5c0FyckZpcnN0XCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtb250aC1kYXlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkRGF0ZShkYXkpXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgaW5hY3RpdmU6ICFkYXkgfHwgaXNEaXNhYmxlZChkYXkpLFxyXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZDogaXNTZWxlY3RlZChkYXkpLFxyXG4gICAgICAgICAgICAgICAgICB0b2RheTogdG9kYXlDaGVjayhkYXkpLFxyXG4gICAgICAgICAgICAgICAgICAnZmlyc3Qtc2VsZWN0ZWQnOiBpc0ZpcnN0U2VsZWN0ZWQoZGF5KSxcclxuICAgICAgICAgICAgICAgICAgJ2xhc3Qtc2VsZWN0ZWQnOiBpc0xhc3RTZWxlY3RlZChkYXkpXHJcbiAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXkgb2Ygd2Vla1wiXHJcbiAgICAgICAgICAgICAgICAjZGl2T25lXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3sgZGF5Py5kYXRlKCkgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItYm9keT5cclxuICAgICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXI+XHJcblxyXG4gICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyIGNsYXNzPVwic2Vjb25kLWRhdGUtcmFuZ2VcIj5cclxuICAgICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWhlYWRlcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLXRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLXllYXItdGl0bGVcIj5cclxuICAgICAgICAgICAgICAgIHt7IGkxOG4/Lm1vbnRocz8uW19kYXRlU2Vjb25kLmZvcm1hdCgnTScpXSB9fVxyXG4gICAgICAgICAgICAgICAge3sgX2RhdGVTZWNvbmQuZm9ybWF0KCdZWVlZJykgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bW9ua2V5LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1wcmV2aW91c1wiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgICAgICAgIGljb249XCJhcnJvdy1yaWdodC0xNlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwidGVydGlhcnlcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRNb250aCgpXCJcclxuICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndlZWtcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndlZWstZGF5XCIgKm5nRm9yPVwibGV0IGRheSBvZiBbMSwgMiwgMywgNCwgNSwgNiwgN11cIj5cclxuICAgICAgICAgICAgICAgIHt7IGkxOG4/LmRheXM/LltkYXldfX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWhlYWRlcj5cclxuICAgICAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWJvZHk+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC13ZWVrXCIgKm5nRm9yPVwibGV0IHdlZWsgb2YgX2RheXNBcnJTZWNvbmRcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vbnRoLWRheVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0ZWREYXRlKGRheSlcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICBpbmFjdGl2ZTogIWRheSB8fCBpc0Rpc2FibGVkKGRheSksXHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBpc1NlbGVjdGVkKGRheSksXHJcbiAgICAgICAgICAgICAgICAgIHRvZGF5OiB0b2RheUNoZWNrKGRheSksXHJcbiAgICAgICAgICAgICAgICAgICdmaXJzdC1zZWxlY3RlZCc6IGlzRmlyc3RTZWxlY3RlZChkYXkpLFxyXG4gICAgICAgICAgICAgICAgICAnbGFzdC1zZWxlY3RlZCc6IGlzTGFzdFNlbGVjdGVkKGRheSlcclxuICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRheSBvZiB3ZWVrXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyBkYXk/LmRhdGUoKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ib2R5PlxyXG4gICAgICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlcj5cclxuICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWJvZHk+XHJcbiAgICAgIDxtZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWluZm8+XHJcbiAgICAgICAgPGluZm8+XHJcbiAgICAgICAgICB7eyBpbmZvTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvaW5mbz5cclxuICAgICAgICA8ZXJyb3I+XHJcbiAgICAgICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Vycm9yPlxyXG4gICAgICA8L21lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtaW5mbz5cclxuICAgICAgPG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItZ3JvdXAtYWN0aW9uIFtjbGFzcy5lcnJvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tZGF5c1wiPlxyXG4gICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFuZ2VPZkRheXMoMzApXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGkxOG4/LmFjdGlvbnM/LlsnMzAnXSB9fVxyXG4gICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFuZ2VPZkRheXMoNjApXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGkxOG4/LmFjdGlvbnM/LlsnNjAnXSB9fVxyXG4gICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgICAgPG1vbmtleS1idXR0b25cclxuICAgICAgICAgICAgY29sb3I9XCJ0aGVtZVwiXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UmFuZ2VPZkRheXMoOTApXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGkxOG4/LmFjdGlvbnM/LlsnOTAnXSB9fVxyXG4gICAgICAgICAgPC9tb25rZXktYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxtb25rZXktYnV0dG9uXHJcbiAgICAgICAgICBjb2xvcj1cInRoZW1lXCJcclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvVG9kYXkoKVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBpMThuPy50b2RheSB9fVxyXG4gICAgICAgIDwvbW9ua2V5LWJ1dHRvbj5cclxuICAgICAgPC9tZWN4LWRhdGUtcmFuZ2UtcGlja2VyLWdyb3VwLWFjdGlvbj5cclxuICAgIDwvbWVjeC1kYXRlLXJhbmdlLXBpY2tlci1ncm91cD5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNb25rZXlEYXRlUmFuZ2VQaWNrZXJDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBDdXJyZW5jeVBpcGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vbmtleURhdGVSYW5nZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVscGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgaTE4bjoge1xyXG4gICAgbW9udGhzOiB7XHJcbiAgICAgIFtzOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICB9O1xyXG4gICAgZGF5czoge1xyXG4gICAgICBbczogc3RyaW5nXTogc3RyaW5nO1xyXG4gICAgfTtcclxuICAgIGFjdGlvbnM6IHtcclxuICAgICAgW3M6IHN0cmluZ106IHN0cmluZztcclxuICAgIH07XHJcbiAgICB0b2RheTogc3RyaW5nO1xyXG4gIH07XHJcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBtb3ZlRGF5c0ZvcndhcmQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG1pbkRhdGUodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5fbWluRGF0ZSA9ICF0aGlzLm1vdmVEYXlzRm9yd2FyZCA/IG51bGwgOiB2YWx1ZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBwcml2YXRlIHRvZGF5ID0gbW9tZW50KCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgcHJpdmF0ZSBvbk1vZGVsQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Nb2RlbFRvdWNoZWQgPSAodmFsdWU6IGFueSkgPT4ge307XHJcblxyXG4gIHB1YmxpYyBfZGF0ZUZpcnN0ID0gbW9tZW50KCk7XHJcbiAgcHVibGljIF9kYXRlU2Vjb25kID0gbW9tZW50KCkuYWRkKDEsICdNJyk7XHJcbiAgcHVibGljIF9pZDogc3RyaW5nID0gYG1lY3gtZGF0ZS1yYW5nZS1waWNrZXItJHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMTApfWA7XHJcbiAgcHVibGljIF9kYXlzQXJyRmlyc3QgPSBbXTtcclxuICBwdWJsaWMgX2RheXNBcnJTZWNvbmQgPSBbXTtcclxuICBwdWJsaWMgX2RhdGVGb3JtOiBGb3JtR3JvdXA7XHJcbiAgcHVibGljIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBfbWluRGF0ZSA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHRoaXMuaW5pdERhdGVSYW5nZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RGF0ZVJhbmdlKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLl9kYXRlRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzdGFydERhdGU6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgZW5kRGF0ZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDYWxlbmRhcihtb250aDogYW55KSB7XHJcbiAgICBsZXQgZmlyc3REYXkgPSBtb21lbnQobW9udGgpLnN0YXJ0T2YoJ00nKTtcclxuICAgIGxldCBsYXN0RGF5ID0gbW9tZW50KG1vbnRoKS5lbmRPZignTScpO1xyXG4gICAgbGV0IGRheXMgPSBBcnJheS5hcHBseShudWxsLCB7IGxlbmd0aDogbW9udGguZGF5c0luTW9udGgoKSB9KVxyXG4gICAgICAubWFwKE51bWJlci5jYWxsLCBOdW1iZXIpXHJcbiAgICAgIC5tYXAoKG46IG51bWJlcikgPT4ge1xyXG4gICAgICAgIHJldHVybiBtb21lbnQoZmlyc3REYXkpLmFkZChuLCAnZCcpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICBsZXQgbiA9IDA7XHJcbiAgICB3aGlsZSAobiA8IGZpcnN0RGF5LndlZWtkYXkoKSkge1xyXG4gICAgICBkYXlzLnVuc2hpZnQobnVsbCk7XHJcbiAgICAgIG4rKztcclxuICAgIH1cclxuICAgIG4gPSAwO1xyXG4gICAgd2hpbGUgKG4gPCA3IC0gbGFzdERheS53ZWVrZGF5KCkpIHtcclxuICAgICAgZGF5cy5wdXNoKG51bGwpO1xyXG4gICAgICBuKys7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGluZGV4ID0gMTtcclxuICAgIGxldCBncm91cCA9IFtdO1xyXG4gICAgbGV0IGdyb3VwZWQgPSBbXTtcclxuXHJcbiAgICBPYmplY3QuZW50cmllcyhkYXlzKS5tYXAoKFtrZXksIHZhbHVlXTogW3N0cmluZywgYW55XSkgPT4ge1xyXG4gICAgICBpZiAoaW5kZXggPiA3KSB7XHJcbiAgICAgICAgaW5kZXggPSAxO1xyXG4gICAgICAgIGdyb3VwZWQucHVzaChncm91cCk7XHJcbiAgICAgICAgZ3JvdXAgPSBbXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZ3JvdXAucHVzaCh2YWx1ZSk7XHJcbiAgICAgIGluZGV4Kys7XHJcbiAgICB9KTtcclxuICAgIGdyb3VwZWQucHVzaChncm91cCk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkKCkge1xyXG4gICAgdGhpcy5fZGF5c0FyckZpcnN0ID0gdGhpcy5jcmVhdGVDYWxlbmRhcih0aGlzLl9kYXRlRmlyc3QpO1xyXG4gICAgdGhpcy5fZGF5c0FyclNlY29uZCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZVNlY29uZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyRGF0ZXMoKSB7XHJcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuX2RhdGVGb3JtLnNldFZhbHVlKHsgc3RhcnREYXRlOiBudWxsLCBlbmREYXRlOiBudWxsIH0pO1xyXG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMuX2RhdGVGb3JtLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG5hdmlnYXRlVG9Ub2RheSgpIHtcclxuICAgIHRoaXMuX2RhdGVGaXJzdCA9IG1vbWVudCgpO1xyXG4gICAgdGhpcy5fZGF0ZVNlY29uZCA9IG1vbWVudCgpLmFkZCgxLCAnTScpO1xyXG4gICAgdGhpcy5idWlsZCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJ1aWxkKCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKFxyXG4gICAgICB2YWx1ZSAmJlxyXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdzdGFydERhdGUnKSAmJlxyXG4gICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodmFsdWUsICdlbmREYXRlJylcclxuICAgICkge1xyXG4gICAgICB0aGlzLl9kYXRlRm9ybS5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMuX2RhdGVGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5vbk1vZGVsVG91Y2hlZCh0aGlzLl9kYXRlRm9ybS52YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsZWFyRGF0ZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGVGb3JtLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbmV4dE1vbnRoKCkge1xyXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLl9kYXRlRmlyc3QuYWRkKDEsICdNJyk7XHJcbiAgICB0aGlzLl9kYXRlU2Vjb25kLmFkZCgxLCAnTScpO1xyXG5cclxuICAgIHRoaXMuX2RheXNBcnJGaXJzdCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZUZpcnN0KTtcclxuICAgIHRoaXMuX2RheXNBcnJTZWNvbmQgPSB0aGlzLmNyZWF0ZUNhbGVuZGFyKHRoaXMuX2RhdGVTZWNvbmQpO1xyXG4gIH1cclxuXHJcbiAgcHJldmlvdXNNb250aCgpIHtcclxuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5fZGF0ZUZpcnN0LnN1YnRyYWN0KDEsICdNJyk7XHJcbiAgICB0aGlzLl9kYXRlU2Vjb25kLnN1YnRyYWN0KDEsICdNJyk7XHJcblxyXG4gICAgdGhpcy5fZGF5c0FyckZpcnN0ID0gdGhpcy5jcmVhdGVDYWxlbmRhcih0aGlzLl9kYXRlRmlyc3QpO1xyXG4gICAgdGhpcy5fZGF5c0FyclNlY29uZCA9IHRoaXMuY3JlYXRlQ2FsZW5kYXIodGhpcy5fZGF0ZVNlY29uZCk7XHJcbiAgfVxyXG5cclxuICB0b2RheUNoZWNrKGRheTogYW55KSB7XHJcbiAgICBpZiAoIWRheSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1vbWVudCgpLmZvcm1hdCgnTCcpID09PSBkYXkuZm9ybWF0KCdMJyk7XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkKGRheTogYW55KSB7XHJcbiAgICBpZiAoIWRheSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHN0YXJ0RGF0ZU1vbWVudCA9IG1vbWVudCh0aGlzLl9kYXRlRm9ybS52YWx1ZS5zdGFydERhdGUsICdZWVlZLU1NLUREJyk7XHJcbiAgICBsZXQgZW5kRGF0ZU1vbWVudCA9IG1vbWVudCh0aGlzLl9kYXRlRm9ybS52YWx1ZS5lbmREYXRlLCAnWVlZWS1NTS1ERCcpO1xyXG5cclxuICAgIGlmICh0aGlzLl9kYXRlRm9ybS52YWxpZCkge1xyXG4gICAgICByZXR1cm4gc3RhcnREYXRlTW9tZW50LmlzU2FtZU9yQmVmb3JlKGRheSkgJiYgZW5kRGF0ZU1vbWVudC5pc1NhbWVPckFmdGVyKGRheSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2RhdGVGb3JtLmdldCgnc3RhcnREYXRlJykudmFsaWQpIHtcclxuICAgICAgcmV0dXJuIHN0YXJ0RGF0ZU1vbWVudC5pc1NhbWUoZGF5KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzRGlzYWJsZWQoZGF5KSB7XHJcbiAgICBjb25zdCB7IF9taW5EYXRlIH0gPSB0aGlzO1xyXG4gICAgaWYgKF9taW5EYXRlKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0RGF5ID0gbW9tZW50KF9taW5EYXRlKTtcclxuICAgICAgcmV0dXJuIGRheS5pc0JlZm9yZShmaXJzdERheS5zdWJ0cmFjdCgxLCAnZGF5JykpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNGaXJzdFNlbGVjdGVkKGRheSkge1xyXG4gICAgY29uc3QgeyBfZGF0ZUZvcm0gfSA9IHRoaXM7XHJcbiAgICBjb25zdCB7IHN0YXJ0RGF0ZSB9ID0gX2RhdGVGb3JtLnZhbHVlO1xyXG4gICAgcmV0dXJuIGRheT8uaXNTYW1lKHN0YXJ0RGF0ZSk7XHJcbiAgfVxyXG5cclxuICBpc0xhc3RTZWxlY3RlZChkYXk6IGFueSkge1xyXG4gICAgY29uc3QgeyBfZGF0ZUZvcm0gfSA9IHRoaXM7XHJcbiAgICBjb25zdCB7IGVuZERhdGUgfSA9IF9kYXRlRm9ybS52YWx1ZTtcclxuICAgIHJldHVybiBkYXk/LmlzU2FtZShlbmREYXRlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkRGF0ZShkYXk6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSByZXR1cm47XHJcbiAgICBjb25zdCB7IF9kYXRlRm9ybSwgX21pbkRhdGUgfSA9IHRoaXM7XHJcbiAgICBsZXQgZGF5Rm9ybWF0dGVkID0gZGF5LmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG5cclxuICAgIGlmIChfbWluRGF0ZSkge1xyXG4gICAgICBjb25zdCBmaXJzdERheSA9IG1vbWVudChfbWluRGF0ZSk7XHJcbiAgICAgIGlmIChkYXkuaXNCZWZvcmUoZmlyc3REYXkuc3VidHJhY3QoMSwgJ2RheScpKSkgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChfZGF0ZUZvcm0udmFsaWQpIHtcclxuICAgICAgdGhpcy5jbGVhckRhdGVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHsgc3RhcnREYXRlLCBlbmREYXRlIH0gPSBfZGF0ZUZvcm0udmFsdWU7XHJcbiAgICBpZiAoc3RhcnREYXRlKSB7XHJcbiAgICAgIGlmIChtb21lbnQoc3RhcnREYXRlKS5pc0FmdGVyKG1vbWVudChkYXlGb3JtYXR0ZWQpKSkge1xyXG4gICAgICAgIGVuZERhdGUgPSBzdGFydERhdGU7XHJcbiAgICAgICAgc3RhcnREYXRlID0gZGF5Rm9ybWF0dGVkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVuZERhdGUgPSBkYXlGb3JtYXR0ZWQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBzdGFydERhdGUgPSBkYXlGb3JtYXR0ZWQ7XHJcblxyXG4gICAgaWYgKHN0YXJ0RGF0ZSkge1xyXG4gICAgICBfZGF0ZUZvcm0uZ2V0KCdzdGFydERhdGUnKS5wYXRjaFZhbHVlKHN0YXJ0RGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGVuZERhdGUpIHtcclxuICAgICAgX2RhdGVGb3JtLmdldCgnZW5kRGF0ZScpLnBhdGNoVmFsdWUoZW5kRGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy53cml0ZVZhbHVlKF9kYXRlRm9ybS52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSYW5nZU9mRGF5cyhkYXlzOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgY29uc3QgeyBfZGF0ZUZvcm0sIF9taW5EYXRlLCB0b2RheSwgbW92ZURheXNGb3J3YXJkIH0gPSB0aGlzO1xyXG4gICAgY29uc3QgeyBzdGFydERhdGUgfSA9IF9kYXRlRm9ybS52YWx1ZTtcclxuXHJcbiAgICBjb25zdCBmaXJzdERheSA9IG1vbWVudChzdGFydERhdGUgfHwgX21pbkRhdGUgfHwgdG9kYXkpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgY29uc3QgbWV0aG9kID0gbW92ZURheXNGb3J3YXJkID8gJ2FkZCcgOiAnc3VidHJhY3QnO1xyXG4gICAgY29uc3QgbGFzdERheSA9IG1vbWVudChmaXJzdERheSlbbWV0aG9kXShkYXlzLCAnZGF5JykuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICBcclxuICAgIGlmKG1vdmVEYXlzRm9yd2FyZCl7XHJcbiAgICAgIF9kYXRlRm9ybS5nZXQoJ3N0YXJ0RGF0ZScpLnBhdGNoVmFsdWUoZmlyc3REYXkpO1xyXG4gICAgICBfZGF0ZUZvcm0uZ2V0KCdlbmREYXRlJykucGF0Y2hWYWx1ZShsYXN0RGF5KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIF9kYXRlRm9ybS5nZXQoJ3N0YXJ0RGF0ZScpLnBhdGNoVmFsdWUobGFzdERheSk7XHJcbiAgICAgIF9kYXRlRm9ybS5nZXQoJ2VuZERhdGUnKS5wYXRjaFZhbHVlKGZpcnN0RGF5KTtcclxuICAgIH1cclxuICAgIHRoaXMud3JpdGVWYWx1ZShfZGF0ZUZvcm0udmFsdWUpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -52,15 +52,19 @@ export class MonkeyInputComponent {
52
52
  return `${value}`.replace(new RegExp(/0/, 'g'), '');
53
53
  }
54
54
  formatValue(value) {
55
- const { settings } = this;
56
- if (this.currency) {
55
+ const { settings, type, currency, percent } = this;
56
+ if (currency) {
57
57
  if (!value || !this.replaceZero(value))
58
58
  return '';
59
59
  return this.currencyPipe.transform(value, settings?.currency?.code || 'BRL', '', '1.2-2', settings?.currency?.locale || 'pt-BR');
60
60
  }
61
- else if (this.percent) {
61
+ else if (percent) {
62
62
  return `${value}`;
63
63
  }
64
+ else if (type === 'date') {
65
+ //return `${value}`.substring(0,10);
66
+ return value;
67
+ }
64
68
  return value;
65
69
  }
66
70
  handleSymbol() {
@@ -377,4 +381,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.0", ngImpor
377
381
  type: HostListener,
378
382
  args: ['click']
379
383
  }] } });
380
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFHWixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBaUcvQyxNQUFNLE9BQU8sb0JBQW9CO0lBdUMvQixZQUNVLFlBQTBCLEVBQzFCLGVBQWdELEVBQ2hELEdBQXNCO1FBRnRCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQztRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXpDdkIsU0FBSSxHQUFXLGNBQWMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRS9ELGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBT3pCLGNBQVMsR0FBVyxHQUFHLENBQUM7UUFReEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFJckMsa0JBQWEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ25DLG1CQUFjLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENB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SztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQWlCUCxXQUFXO3NCQUhWLFNBQVM7dUJBQUMsYUFBYSxFQUFFO3dCQUN4QixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkErRUcsS0FBSztzQkFEUixLQUFLO2dCQStCTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIElucHV0LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIE9uSW5pdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UsIE1vbmtleVN0eWxlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9jb3JlJztcclxuaW1wb3J0IHsgTW9ua2V5VXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbW9ua2V5LWlucHV0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1lY3gtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBfZGlzYWJsZWQgfVwiIFtpZF09XCJfaWRcIj5cclxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1oZWFkZXI+XHJcbiAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAge3sgbGFiZWwgfX1cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxoZWxwZXI+XHJcbiAgICAgICAgICB7eyBoZWxwZXJNZXNzYWdlIH19XHJcbiAgICAgICAgPC9oZWxwZXI+XHJcbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLWhlYWRlcj5cclxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1ib2R5IFtjbGFzcy5lcnJvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKVwiPlxyXG4gICAgICAgIDxtb25rZXktaWNvblxyXG4gICAgICAgICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICAgICAgICBbY29sb3JdPVwiZXJyb3JNZXNzYWdlPy50cmltKCkgPyAnI2ZhMzgzOCcgOiAnIzRCNEE1MydcIlxyXG4gICAgICAgICAgKm5nSWY9XCJpY29uXCJcclxuICAgICAgICA+PC9tb25rZXktaWNvbj5cclxuICAgICAgICA8c3ltYm9sPlxyXG4gICAgICAgICAge3sgX3N5bWJvbCB9fVxyXG4gICAgICAgIDwvc3ltYm9sPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2VWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJfZm9ybWF0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICAgICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gICAgICAgICAgKm5nSWY9XCJtYXNrICYmIHByZWZpeFwiXHJcbiAgICAgICAgICAjbW9ua2V5SW5wdXRcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2VWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgIFtpZF09XCJuYW1lXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiX2Zvcm1hdGVkVmFsdWVcIlxyXG4gICAgICAgICAgKGtleXByZXNzKT1cIm9uS2V5UHJlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICAgICAgKm5nSWY9XCJtYXNrICYmICFwcmVmaXhcIlxyXG4gICAgICAgICAgI21vbmtleUlucHV0XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbaWRdPVwibmFtZVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9mb3JtYXRlZFZhbHVlXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcbiAgICAgICAgICAqbmdJZj1cIiFtYXNrICYmICFwcmVmaXhcIlxyXG4gICAgICAgICAgW21heF09XCJtYXhEYXRlVG9kYXkgPyBfbWF4RGF0ZVRvZGF5IDogbnVsbFwiXHJcbiAgICAgICAgICAjbW9ua2V5SW5wdXRcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxtb25rZXktaWNvblxyXG4gICAgICAgICAgaWNvbj1cImV5ZS1vcGVuLTE2XCJcclxuICAgICAgICAgIFtjb2xvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKSA/ICcjZmEzODM4JyA6ICcjNEI0QTUzJ1wiXHJcbiAgICAgICAgICAqbmdJZj1cIl9vbGRUeXBlID09PSAncGFzc3dvcmQnICYmIHR5cGUgPT09ICd0ZXh0J1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25TaG93QW5kSGlkZVBhc3N3b3JkKClcIlxyXG4gICAgICAgID48L21vbmtleS1pY29uPlxyXG4gICAgICAgIDxtb25rZXktaWNvblxyXG4gICAgICAgICAgaWNvbj1cImV5ZS1jbG9zZWQtMTZcIlxyXG4gICAgICAgICAgW2NvbG9yXT1cImVycm9yTWVzc2FnZT8udHJpbSgpID8gJyNmYTM4MzgnIDogJyM0QjRBNTMnXCJcclxuICAgICAgICAgICpuZ0lmPVwiX29sZFR5cGUgPT09ICdwYXNzd29yZCcgJiYgdHlwZSA9PT0gJ3Bhc3N3b3JkJ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25TaG93QW5kSGlkZVBhc3N3b3JkKClcIlxyXG4gICAgICAgID48L21vbmtleS1pY29uPlxyXG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1ib2R5PlxyXG4gICAgICA8bWVjeC1mb3JtLWZpZWxkLWZvb3Rlcj5cclxuICAgICAgICA8aW5mbz5cclxuICAgICAgICAgIHt7IGluZm9NZXNzYWdlIH19XHJcbiAgICAgICAgPC9pbmZvPlxyXG4gICAgICAgIDxlcnJvcj5cclxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvZXJyb3I+XHJcbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLWZvb3Rlcj5cclxuICAgIDwvbWVjeC1mb3JtLWZpZWxkPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vbmtleUlucHV0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgQ3VycmVuY3lQaXBlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9IGBtZWN4LWlucHV0LSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDEwKX1gO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVscGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXNrOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXIgPSAyNTU7XHJcbiAgQElucHV0KCkgb25seU51bWJlcjogYW55O1xyXG4gIEBJbnB1dCgpIG9ubHlBbHBoYU51bWVyaWM6IGFueTtcclxuICBASW5wdXQoKSB1cHBlckNhc2U6IGFueTtcclxuICBASW5wdXQoKSBsb3dlckNhc2U6IGFueTtcclxuICBASW5wdXQoKSBjYXBpdGFsaXplOiBhbnk7XHJcbiAgQElucHV0KCkgY3VycmVuY3k6IGFueTtcclxuICBASW5wdXQoKSBwZXJjZW50OiBhbnk7XHJcbiAgQElucHV0KCkgbWF4RGF0ZVRvZGF5ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgc2V0dGluZ3M6IE1vbmtleVN0eWxlU2V0dGluZ3M7XHJcbiAgcHJpdmF0ZSBoYW5kbGVkVmFsdWU6IGFueTtcclxuICBwcml2YXRlIG9uTW9kZWxDaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XHJcbiAgcHJpdmF0ZSBvbk1vZGVsVG91Y2hlZCA9ICh2YWx1ZTogYW55KSA9PiB7fTtcclxuXHJcbiAgcHVibGljIF9pZDogc3RyaW5nID0gYG1lY3gtaW5wdXQtJHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMTApfWA7XHJcbiAgcHVibGljIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBfb2xkVHlwZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBfZm9ybWF0ZWRWYWx1ZTogYW55O1xyXG4gIHB1YmxpYyBfbWF4RGF0ZVRvZGF5ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XHJcbiAgcHVibGljIF9zeW1ib2wgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnbW9ua2V5SW5wdXQnLCB7XHJcbiAgICBzdGF0aWM6IHRydWUsXHJcbiAgfSlcclxuICBtb25rZXlJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGN1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxyXG4gICAgcHJpdmF0ZSBzZXR0aW5nc1NlcnZpY2U6IE1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVmFsdWUodmFsdWU6IGFueSwgYXBwbHkgPSBmYWxzZSk6IGFueSB7XHJcbiAgICBpZiAodGhpcy5vbmx5TnVtYmVyKSB7XHJcbiAgICAgIHJldHVybiBNb25rZXlVdGlscy5oYW5kbGVPbmx5TnVtYmVycyhgJHt2YWx1ZX1gKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbmx5QWxwaGFOdW1lcmljKSByZXR1cm4gTW9ua2V5VXRpbHMuaGFuZGxlT25seUFscGhhTnVtZXJpYyhgJHt2YWx1ZX1gKTtcclxuICAgIGVsc2UgaWYgKHRoaXMudXBwZXJDYXNlKSByZXR1cm4gYCR7dmFsdWV9YC50b1VwcGVyQ2FzZSgpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5sb3dlckNhc2UpIHJldHVybiBgJHt2YWx1ZX1gLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBlbHNlIGlmICh0aGlzLmNhcGl0YWxpemUpIHJldHVybiBNb25rZXlVdGlscy5jYXBpdGFsaXplKGAke3ZhbHVlfWAudG9VcHBlckNhc2UoKSk7XHJcbiAgICBlbHNlIGlmICh0aGlzLmN1cnJlbmN5IHx8IHRoaXMucGVyY2VudCkge1xyXG4gICAgICByZXR1cm4gTW9ua2V5VXRpbHMuaGFuZGxlT25seU51bWJlcnMoYCR7dmFsdWV9YCkgLyAoYXBwbHkgPyAxMDAgOiAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlcGxhY2VaZXJvKHZhbHVlOiBhbnkpIHtcclxuICAgIHJldHVybiBgJHt2YWx1ZX1gLnJlcGxhY2UobmV3IFJlZ0V4cCgvMC8sICdnJyksICcnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0VmFsdWUodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCB7IHNldHRpbmdzIH0gPSB0aGlzO1xyXG4gICAgaWYgKHRoaXMuY3VycmVuY3kpIHtcclxuICAgICAgaWYgKCF2YWx1ZSB8fCAhdGhpcy5yZXBsYWNlWmVybyh2YWx1ZSkpIHJldHVybiAnJztcclxuICAgICAgcmV0dXJuIHRoaXMuY3VycmVuY3lQaXBlLnRyYW5zZm9ybShcclxuICAgICAgICB2YWx1ZSxcclxuICAgICAgICBzZXR0aW5ncz8uY3VycmVuY3k/LmNvZGUgfHwgJ0JSTCcsXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgJzEuMi0yJyxcclxuICAgICAgICBzZXR0aW5ncz8uY3VycmVuY3k/LmxvY2FsZSB8fCAncHQtQlInXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucGVyY2VudCkge1xyXG4gICAgICByZXR1cm4gYCR7dmFsdWV9YDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVN5bWJvbCgpIHtcclxuICAgIGNvbnN0IHsgc2V0dGluZ3MgfSA9IHRoaXM7XHJcbiAgICBpZiAodGhpcy5jdXJyZW5jeSkge1xyXG4gICAgICB0aGlzLl9zeW1ib2wgPSB7XHJcbiAgICAgICAgQlJMOiAnUiQnLFxyXG4gICAgICAgIENMUDogJ0NMUCcsXHJcbiAgICAgIH1bc2V0dGluZ3M/LmN1cnJlbmN5Py5jb2RlIHx8ICdCUkwnXTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5wZXJjZW50KSB7XHJcbiAgICAgIHRoaXMuX3N5bWJvbCA9ICclJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgeyBzZXR0aW5nc1NlcnZpY2UgfSA9IHRoaXM7XHJcbiAgICB0aGlzLl9vbGRUeXBlID0gdGhpcy50eXBlO1xyXG4gICAgc2V0dGluZ3NTZXJ2aWNlLnNldHRpbmdzKCkuc3Vic2NyaWJlKCh2YWw6IE1vbmtleVN0eWxlU2V0dGluZ3MpID0+IHtcclxuICAgICAgdGhpcy5zZXR0aW5ncyA9IHZhbDtcclxuICAgICAgdGhpcy5oYW5kbGVTeW1ib2woKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuaGFuZGxlZFZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLl9mb3JtYXRlZFZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy5oYW5kbGVkVmFsdWUpO1xyXG4gICAgdGhpcy5vbk1vZGVsVG91Y2hlZCh0aGlzLmhhbmRsZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsdWUoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLmhhbmRsZWRWYWx1ZTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgb25DaGFuZ2VWYWx1ZShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX2Zvcm1hdGVkVmFsdWU7XHJcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGhhbmRsZWQgPSB0aGlzLmhhbmRsZVZhbHVlKHZhbHVlLCB0cnVlKTtcclxuICAgIHRoaXMud3JpdGVWYWx1ZShoYW5kbGVkKTtcclxuICAgIHRoaXMub25DaGFuZ2UubmV4dChoYW5kbGVkKTtcclxuICB9XHJcblxyXG4gIG9uU2hvd0FuZEhpZGVQYXNzd29yZCgpIHtcclxuICAgIHRoaXMudHlwZSA9IHRoaXMudHlwZSA9PT0gJ3Bhc3N3b3JkJyA/ICd0ZXh0JyA6ICdwYXNzd29yZCc7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgb25DbGljaygpIHtcclxuICAgIGRvY3VtZW50Py5nZXRFbGVtZW50QnlJZCh0aGlzLl9pZCk/LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpbnB1dCcpPy5bMF0/LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBvbktleVByZXNzKGV2ZW50OiBhbnkpIHtcclxuICAgIGxldCBwYXR0ZXJuID0gbnVsbDtcclxuICAgIGNvbnN0IGNtcCA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlO1xyXG4gICAgY29uc3QgaW5wdXRDaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSk7XHJcbiAgICBpZiAodGhpcy5jdXJyZW5jeSB8fCB0aGlzLm9ubHlOdW1iZXIgfHwgdGhpcy5wZXJjZW50KSB7XHJcbiAgICAgIHBhdHRlcm4gPSAvWzAtOV0vO1xyXG4gICAgICBpZiAoIXRoaXMub25seU51bWJlciAmJiBpbnB1dENoYXIgPT09ICcwJyAmJiAhdGhpcy5yZXBsYWNlWmVybyhjbXApKSB7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbmx5QWxwaGFOdW1lcmljKSB7XHJcbiAgICAgIHBhdHRlcm4gPSAvW14wLTlBLVphLXpdLztcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGF0dGVybiAmJiAhcGF0dGVybi50ZXN0KGlucHV0Q2hhcikpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlL3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NEJBSTRCO0FBQzVCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQixLQUFLLEVBQ0wsVUFBVSxFQUNWLFlBQVksRUFHWixNQUFNLEVBQ04sWUFBWSxFQUNaLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBaUcvQyxNQUFNLE9BQU8sb0JBQW9CO0lBdUMvQixZQUNVLFlBQTBCLEVBQzFCLGVBQWdELEVBQ2hELEdBQXNCO1FBRnRCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQztRQUNoRCxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXpDdkIsU0FBSSxHQUFXLGNBQWMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRS9ELGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBQzNCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBT3pCLGNBQVMsR0FBVyxHQUFHLENBQUM7UUFReEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDcEIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFJckMsa0JBQWEsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBQ25DLG1CQUFjLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENB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O3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQWlCUCxXQUFXO3NCQUhWLFNBQVM7dUJBQUMsYUFBYSxFQUFFO3dCQUN4QixNQUFNLEVBQUUsSUFBSTtxQkFDYjtnQkFrRkcsS0FBSztzQkFEUixLQUFLO2dCQStCTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXHJcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxyXG4gKiBNSVQgTGljZW5jZVxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiovXHJcbmltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIElucHV0LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIE9uSW5pdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UsIE1vbmtleVN0eWxlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9jb3JlJztcclxuaW1wb3J0IHsgTW9ua2V5VXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbW9ua2V5LWlucHV0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1lY3gtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBfZGlzYWJsZWQgfVwiIFtpZF09XCJfaWRcIj5cclxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1oZWFkZXI+XHJcbiAgICAgICAgPGxhYmVsPlxyXG4gICAgICAgICAge3sgbGFiZWwgfX1cclxuICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgIDxoZWxwZXI+XHJcbiAgICAgICAgICB7eyBoZWxwZXJNZXNzYWdlIH19XHJcbiAgICAgICAgPC9oZWxwZXI+XHJcbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLWhlYWRlcj5cclxuICAgICAgPG1lY3gtZm9ybS1maWVsZC1ib2R5IFtjbGFzcy5lcnJvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKVwiPlxyXG4gICAgICAgIDxtb25rZXktaWNvblxyXG4gICAgICAgICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICAgICAgICBbY29sb3JdPVwiZXJyb3JNZXNzYWdlPy50cmltKCkgPyAnI2ZhMzgzOCcgOiAnIzRCNEE1MydcIlxyXG4gICAgICAgICAgKm5nSWY9XCJpY29uXCJcclxuICAgICAgICA+PC9tb25rZXktaWNvbj5cclxuICAgICAgICA8c3ltYm9sPlxyXG4gICAgICAgICAge3sgX3N5bWJvbCB9fVxyXG4gICAgICAgIDwvc3ltYm9sPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2VWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgW2lkXT1cIm5hbWVcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJfZm9ybWF0ZWRWYWx1ZVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICAgICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gICAgICAgICAgKm5nSWY9XCJtYXNrICYmIHByZWZpeFwiXHJcbiAgICAgICAgICAjbW9ua2V5SW5wdXRcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAoaW5wdXQpPVwib25DaGFuZ2VWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICAgIFtpZF09XCJuYW1lXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiX2Zvcm1hdGVkVmFsdWVcIlxyXG4gICAgICAgICAgKGtleXByZXNzKT1cIm9uS2V5UHJlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiX2Rpc2FibGVkXCJcclxuICAgICAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICAgICAgKm5nSWY9XCJtYXNrICYmICFwcmVmaXhcIlxyXG4gICAgICAgICAgI21vbmtleUlucHV0XHJcbiAgICAgICAgLz5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxyXG4gICAgICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIm9uQ2hhbmdlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAgICAgICBbaWRdPVwibmFtZVwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cIl9mb3JtYXRlZFZhbHVlXCJcclxuICAgICAgICAgIChrZXlwcmVzcyk9XCJvbktleVByZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIl9kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcbiAgICAgICAgICAqbmdJZj1cIiFtYXNrICYmICFwcmVmaXhcIlxyXG4gICAgICAgICAgW21heF09XCJtYXhEYXRlVG9kYXkgPyBfbWF4RGF0ZVRvZGF5IDogbnVsbFwiXHJcbiAgICAgICAgICAjbW9ua2V5SW5wdXRcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxtb25rZXktaWNvblxyXG4gICAgICAgICAgaWNvbj1cImV5ZS1vcGVuLTE2XCJcclxuICAgICAgICAgIFtjb2xvcl09XCJlcnJvck1lc3NhZ2U/LnRyaW0oKSA/ICcjZmEzODM4JyA6ICcjNEI0QTUzJ1wiXHJcbiAgICAgICAgICAqbmdJZj1cIl9vbGRUeXBlID09PSAncGFzc3dvcmQnICYmIHR5cGUgPT09ICd0ZXh0J1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25TaG93QW5kSGlkZVBhc3N3b3JkKClcIlxyXG4gICAgICAgID48L21vbmtleS1pY29uPlxyXG4gICAgICAgIDxtb25rZXktaWNvblxyXG4gICAgICAgICAgaWNvbj1cImV5ZS1jbG9zZWQtMTZcIlxyXG4gICAgICAgICAgW2NvbG9yXT1cImVycm9yTWVzc2FnZT8udHJpbSgpID8gJyNmYTM4MzgnIDogJyM0QjRBNTMnXCJcclxuICAgICAgICAgICpuZ0lmPVwiX29sZFR5cGUgPT09ICdwYXNzd29yZCcgJiYgdHlwZSA9PT0gJ3Bhc3N3b3JkJ1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwib25TaG93QW5kSGlkZVBhc3N3b3JkKClcIlxyXG4gICAgICAgID48L21vbmtleS1pY29uPlxyXG4gICAgICA8L21lY3gtZm9ybS1maWVsZC1ib2R5PlxyXG4gICAgICA8bWVjeC1mb3JtLWZpZWxkLWZvb3Rlcj5cclxuICAgICAgICA8aW5mbz5cclxuICAgICAgICAgIHt7IGluZm9NZXNzYWdlIH19XHJcbiAgICAgICAgPC9pbmZvPlxyXG4gICAgICAgIDxlcnJvcj5cclxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxyXG4gICAgICAgIDwvZXJyb3I+XHJcbiAgICAgIDwvbWVjeC1mb3JtLWZpZWxkLWZvb3Rlcj5cclxuICAgIDwvbWVjeC1mb3JtLWZpZWxkPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1vbmtleUlucHV0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgQ3VycmVuY3lQaXBlLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb25rZXlJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9IGBtZWN4LWlucHV0LSR7TW9ua2V5VXRpbHMuZ2V0UmFuZG9tU3RyaW5nKDEwKX1gO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVscGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGljb246IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaW5mb01lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZztcclxuICBASW5wdXQoKSBtYXNrOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXIgPSAyNTU7XHJcbiAgQElucHV0KCkgb25seU51bWJlcjogYW55O1xyXG4gIEBJbnB1dCgpIG9ubHlBbHBoYU51bWVyaWM6IGFueTtcclxuICBASW5wdXQoKSB1cHBlckNhc2U6IGFueTtcclxuICBASW5wdXQoKSBsb3dlckNhc2U6IGFueTtcclxuICBASW5wdXQoKSBjYXBpdGFsaXplOiBhbnk7XHJcbiAgQElucHV0KCkgY3VycmVuY3k6IGFueTtcclxuICBASW5wdXQoKSBwZXJjZW50OiBhbnk7XHJcbiAgQElucHV0KCkgbWF4RGF0ZVRvZGF5ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIHByaXZhdGUgc2V0dGluZ3M6IE1vbmtleVN0eWxlU2V0dGluZ3M7XHJcbiAgcHJpdmF0ZSBoYW5kbGVkVmFsdWU6IGFueTtcclxuICBwcml2YXRlIG9uTW9kZWxDaGFuZ2UgPSAodmFsdWU6IGFueSkgPT4ge307XHJcbiAgcHJpdmF0ZSBvbk1vZGVsVG91Y2hlZCA9ICh2YWx1ZTogYW55KSA9PiB7fTtcclxuXHJcbiAgcHVibGljIF9pZDogc3RyaW5nID0gYG1lY3gtaW5wdXQtJHtNb25rZXlVdGlscy5nZXRSYW5kb21TdHJpbmcoMTApfWA7XHJcbiAgcHVibGljIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBfb2xkVHlwZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBfZm9ybWF0ZWRWYWx1ZTogYW55O1xyXG4gIHB1YmxpYyBfbWF4RGF0ZVRvZGF5ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF07XHJcbiAgcHVibGljIF9zeW1ib2wgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnbW9ua2V5SW5wdXQnLCB7XHJcbiAgICBzdGF0aWM6IHRydWUsXHJcbiAgfSlcclxuICBtb25rZXlJbnB1dDogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGN1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxyXG4gICAgcHJpdmF0ZSBzZXR0aW5nc1NlcnZpY2U6IE1vbmtleVN0eWxlR3VpZGVTZXR0aW5nc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVmFsdWUodmFsdWU6IGFueSwgYXBwbHkgPSBmYWxzZSk6IGFueSB7XHJcbiAgICBpZiAodGhpcy5vbmx5TnVtYmVyKSB7XHJcbiAgICAgIHJldHVybiBNb25rZXlVdGlscy5oYW5kbGVPbmx5TnVtYmVycyhgJHt2YWx1ZX1gKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vbmx5QWxwaGFOdW1lcmljKSByZXR1cm4gTW9ua2V5VXRpbHMuaGFuZGxlT25seUFscGhhTnVtZXJpYyhgJHt2YWx1ZX1gKTtcclxuICAgIGVsc2UgaWYgKHRoaXMudXBwZXJDYXNlKSByZXR1cm4gYCR7dmFsdWV9YC50b1VwcGVyQ2FzZSgpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5sb3dlckNhc2UpIHJldHVybiBgJHt2YWx1ZX1gLnRvTG93ZXJDYXNlKCk7XHJcbiAgICBlbHNlIGlmICh0aGlzLmNhcGl0YWxpemUpIHJldHVybiBNb25rZXlVdGlscy5jYXBpdGFsaXplKGAke3ZhbHVlfWAudG9VcHBlckNhc2UoKSk7XHJcbiAgICBlbHNlIGlmICh0aGlzLmN1cnJlbmN5IHx8IHRoaXMucGVyY2VudCkge1xyXG4gICAgICByZXR1cm4gTW9ua2V5VXRpbHMuaGFuZGxlT25seU51bWJlcnMoYCR7dmFsdWV9YCkgLyAoYXBwbHkgPyAxMDAgOiAxKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlcGxhY2VaZXJvKHZhbHVlOiBhbnkpIHtcclxuICAgIHJldHVybiBgJHt2YWx1ZX1gLnJlcGxhY2UobmV3IFJlZ0V4cCgvMC8sICdnJyksICcnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0VmFsdWUodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCB7IHNldHRpbmdzLCB0eXBlLCBjdXJyZW5jeSwgcGVyY2VudCB9ID0gdGhpcztcclxuICAgIGlmIChjdXJyZW5jeSkge1xyXG4gICAgICBpZiAoIXZhbHVlIHx8ICF0aGlzLnJlcGxhY2VaZXJvKHZhbHVlKSkgcmV0dXJuICcnO1xyXG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW5jeVBpcGUudHJhbnNmb3JtKFxyXG4gICAgICAgIHZhbHVlLFxyXG4gICAgICAgIHNldHRpbmdzPy5jdXJyZW5jeT8uY29kZSB8fCAnQlJMJyxcclxuICAgICAgICAnJyxcclxuICAgICAgICAnMS4yLTInLFxyXG4gICAgICAgIHNldHRpbmdzPy5jdXJyZW5jeT8ubG9jYWxlIHx8ICdwdC1CUidcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAocGVyY2VudCkge1xyXG4gICAgICByZXR1cm4gYCR7dmFsdWV9YDtcclxuICAgIH1lbHNlIGlmKHR5cGUgPT09ICdkYXRlJyl7XHJcbiAgICAgIC8vcmV0dXJuIGAke3ZhbHVlfWAuc3Vic3RyaW5nKDAsMTApO1xyXG4gICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVTeW1ib2woKSB7XHJcbiAgICBjb25zdCB7IHNldHRpbmdzIH0gPSB0aGlzO1xyXG4gICAgaWYgKHRoaXMuY3VycmVuY3kpIHtcclxuICAgICAgdGhpcy5fc3ltYm9sID0ge1xyXG4gICAgICAgIEJSTDogJ1IkJyxcclxuICAgICAgICBDTFA6ICdDTFAnLFxyXG4gICAgICB9W3NldHRpbmdzPy5jdXJyZW5jeT8uY29kZSB8fCAnQlJMJ107XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucGVyY2VudCkge1xyXG4gICAgICB0aGlzLl9zeW1ib2wgPSAnJSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IHsgc2V0dGluZ3NTZXJ2aWNlIH0gPSB0aGlzO1xyXG4gICAgdGhpcy5fb2xkVHlwZSA9IHRoaXMudHlwZTtcclxuICAgIHNldHRpbmdzU2VydmljZS5zZXR0aW5ncygpLnN1YnNjcmliZSgodmFsOiBNb25rZXlTdHlsZVNldHRpbmdzKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0dGluZ3MgPSB2YWw7XHJcbiAgICAgIHRoaXMuaGFuZGxlU3ltYm9sKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCB2YWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLmhhbmRsZWRWYWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fZm9ybWF0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUodmFsdWUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMuaGFuZGxlZFZhbHVlKTtcclxuICAgIHRoaXMub25Nb2RlbFRvdWNoZWQodGhpcy5oYW5kbGVkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVkVmFsdWU7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlVmFsdWUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9mb3JtYXRlZFZhbHVlO1xyXG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBjb25zdCBoYW5kbGVkID0gdGhpcy5oYW5kbGVWYWx1ZSh2YWx1ZSwgdHJ1ZSk7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUoaGFuZGxlZCk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLm5leHQoaGFuZGxlZCk7XHJcbiAgfVxyXG5cclxuICBvblNob3dBbmRIaWRlUGFzc3dvcmQoKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0aGlzLnR5cGUgPT09ICdwYXNzd29yZCcgPyAndGV4dCcgOiAncGFzc3dvcmQnO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxyXG4gIG9uQ2xpY2soKSB7XHJcbiAgICBkb2N1bWVudD8uZ2V0RWxlbWVudEJ5SWQodGhpcy5faWQpPy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKT8uWzBdPy5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgb25LZXlQcmVzcyhldmVudDogYW55KSB7XHJcbiAgICBsZXQgcGF0dGVybiA9IG51bGw7XHJcbiAgICBjb25zdCBjbXAgPSBldmVudD8udGFyZ2V0Py52YWx1ZTtcclxuICAgIGNvbnN0IGlucHV0Q2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpO1xyXG4gICAgaWYgKHRoaXMuY3VycmVuY3kgfHwgdGhpcy5vbmx5TnVtYmVyIHx8IHRoaXMucGVyY2VudCkge1xyXG4gICAgICBwYXR0ZXJuID0gL1swLTldLztcclxuICAgICAgaWYgKCF0aGlzLm9ubHlOdW1iZXIgJiYgaW5wdXRDaGFyID09PSAnMCcgJiYgIXRoaXMucmVwbGFjZVplcm8oY21wKSkge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub25seUFscGhhTnVtZXJpYykge1xyXG4gICAgICBwYXR0ZXJuID0gL1teMC05QS1aYS16XS87XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBhdHRlcm4gJiYgIXBhdHRlcm4udGVzdChpbnB1dENoYXIpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==