@hitsoft/e-donusum 100.1.9-Edo-Test → 100.1.11-Edo-Test

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.
@@ -1,12 +1,11 @@
1
1
  import { CoreModule } from '@abp/ng.core';
2
2
  import { ThemeSharedModule } from '@abp/ng.theme.shared';
3
3
  import { NgModule } from '@angular/core';
4
- import { FormsModule } from '@angular/forms';
5
4
  import { NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, } from '@ng-bootstrap/ng-bootstrap';
6
5
  import { NgxValidateCoreModule } from '@ngx-validate/core';
7
6
  import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
8
7
  import { PageModule } from '@abp/ng.components/page';
9
- import { DxCheckBoxModule, DxDataGridModule, DxDateBoxModule, DxDropDownBoxModule, DxHtmlEditorModule, DxLookupModule, DxNumberBoxModule, DxPopupModule, DxRadioGroupModule, DxSelectBoxModule, DxTabPanelModule, DxTemplateModule, DxTextAreaModule, DxTextBoxModule } from 'devextreme-angular';
8
+ import { DxDataGridModule, DxDateBoxModule, DxDropDownBoxModule, DxHtmlEditorModule, DxLookupModule, DxPopupModule, DxRadioGroupModule, DxSelectBoxModule, DxTabPanelModule, DxTemplateModule, DxTextAreaModule, DxTextBoxModule } from 'devextreme-angular';
10
9
  import { HitInboundInvoiceComponent } from './hit-inbound-invoice.component';
11
10
  import { HitInboundInvoiceRoutingModule } from './hit-inbound-invoice-routing.module';
12
11
  import * as i0 from "@angular/core";
@@ -33,10 +32,7 @@ HitInboundInvoiceModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
33
32
  DxDateBoxModule,
34
33
  DxTemplateModule,
35
34
  DxDropDownBoxModule,
36
- DxPopupModule,
37
- DxNumberBoxModule,
38
- DxCheckBoxModule,
39
- FormsModule] });
35
+ DxPopupModule] });
40
36
  HitInboundInvoiceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitInboundInvoiceModule, imports: [CoreModule,
41
37
  ThemeSharedModule,
42
38
  CommercialUiModule,
@@ -57,10 +53,7 @@ HitInboundInvoiceModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
57
53
  DxDateBoxModule,
58
54
  DxTemplateModule,
59
55
  DxDropDownBoxModule,
60
- DxPopupModule,
61
- DxNumberBoxModule,
62
- DxCheckBoxModule,
63
- FormsModule] });
56
+ DxPopupModule] });
64
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitInboundInvoiceModule, decorators: [{
65
58
  type: NgModule,
66
59
  args: [{
@@ -86,14 +79,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
86
79
  DxDateBoxModule,
87
80
  DxTemplateModule,
88
81
  DxDropDownBoxModule,
89
- DxPopupModule,
90
- DxNumberBoxModule,
91
- DxCheckBoxModule,
92
- FormsModule
82
+ DxPopupModule
93
83
  ],
94
84
  }]
95
85
  }] });
96
86
  export function loadHitInboundInvoiceModuleAsChild() {
97
87
  return Promise.resolve(HitInboundInvoiceModule);
98
88
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWluYm91bmQtaW52b2ljZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9jb21wb25lbnRzL2hpdC1pbmJvdW5kLWludm9pY2VzL2hpdC1pbmJvdW5kLWludm9pY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsaUJBQWlCLEdBQ2xCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdsUyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUErQnRGLE1BQU0sT0FBTyx1QkFBdUI7O29IQUF2Qix1QkFBdUI7cUhBQXZCLHVCQUF1QixpQkE1Qm5CLDBCQUEwQixhQUV2QyxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLFVBQVU7UUFDViw4QkFBOEI7UUFDOUIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLFdBQVc7cUhBR0YsdUJBQXVCLFlBMUJoQyxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2Ysa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixjQUFjO1FBQ2QsZ0JBQWdCO1FBQ2hCLFVBQVU7UUFDViw4QkFBOEI7UUFDOUIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLFdBQVc7MkZBR0YsdUJBQXVCO2tCQTdCbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDMUMsT0FBTyxFQUFFO3dCQUNQLFVBQVU7d0JBQ1YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLDhCQUE4Qjt3QkFDOUIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixXQUFXO3FCQUNaO2lCQUNGOztBQUdELE1BQU0sVUFBVSxrQ0FBa0M7SUFDaEQsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBUaGVtZVNoYXJlZE1vZHVsZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgTmdiQ29sbGFwc2VNb2R1bGUsXHJcbiAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICBOZ2JEcm9wZG93bk1vZHVsZSxcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5neFZhbGlkYXRlQ29yZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvbW1lcmNpYWxVaU1vZHVsZSB9IGZyb20gJ0B2b2xvL2FicC5jb21tZXJjaWFsLm5nLnVpJztcclxuaW1wb3J0IHsgUGFnZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29tcG9uZW50cy9wYWdlJztcclxuaW1wb3J0IHsgRHhDaGVja0JveE1vZHVsZSwgRHhEYXRhR3JpZE1vZHVsZSwgRHhEYXRlQm94TW9kdWxlLCBEeERyb3BEb3duQm94TW9kdWxlLCBEeEh0bWxFZGl0b3JNb2R1bGUsIER4TG9va3VwTW9kdWxlLCBEeE51bWJlckJveE1vZHVsZSwgRHhQb3B1cE1vZHVsZSwgRHhSYWRpb0dyb3VwTW9kdWxlLCBEeFNlbGVjdEJveE1vZHVsZSwgRHhUYWJQYW5lbE1vZHVsZSwgRHhUZW1wbGF0ZU1vZHVsZSwgRHhUZXh0QXJlYU1vZHVsZSwgRHhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IGR4VGV4dEJveCBmcm9tICdkZXZleHRyZW1lL3VpL3RleHRfYm94JztcclxuaW1wb3J0IHsgSHRtbFBhcnNlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcclxuaW1wb3J0IHsgSGl0SW5ib3VuZEludm9pY2VDb21wb25lbnQgfSBmcm9tICcuL2hpdC1pbmJvdW5kLWludm9pY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSGl0SW5ib3VuZEludm9pY2VSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9oaXQtaW5ib3VuZC1pbnZvaWNlLXJvdXRpbmcubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbSGl0SW5ib3VuZEludm9pY2VDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVNb2R1bGUsXHJcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcclxuICAgIENvbW1lcmNpYWxVaU1vZHVsZSxcclxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgIE5nYkNvbGxhcHNlTW9kdWxlLFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgRHhEYXRhR3JpZE1vZHVsZSxcclxuICAgIER4VGV4dEFyZWFNb2R1bGUsXHJcbiAgICBEeFRleHRCb3hNb2R1bGUsXHJcbiAgICBEeEh0bWxFZGl0b3JNb2R1bGUsXHJcbiAgICBEeFNlbGVjdEJveE1vZHVsZSxcclxuICAgIER4TG9va3VwTW9kdWxlLFxyXG4gICAgRHhUYWJQYW5lbE1vZHVsZSxcclxuICAgIFBhZ2VNb2R1bGUsXHJcbiAgICBIaXRJbmJvdW5kSW52b2ljZVJvdXRpbmdNb2R1bGUsXHJcbiAgICBEeFJhZGlvR3JvdXBNb2R1bGUsXHJcbiAgICBEeERhdGVCb3hNb2R1bGUsXHJcbiAgICBEeFRlbXBsYXRlTW9kdWxlLFxyXG4gICAgRHhEcm9wRG93bkJveE1vZHVsZSxcclxuICAgIER4UG9wdXBNb2R1bGUsXHJcbiAgICBEeE51bWJlckJveE1vZHVsZSxcclxuICAgIER4Q2hlY2tCb3hNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRJbmJvdW5kSW52b2ljZU1vZHVsZSB7fVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRIaXRJbmJvdW5kSW52b2ljZU1vZHVsZUFzQ2hpbGQoKSB7XHJcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShIaXRJbmJvdW5kSW52b2ljZU1vZHVsZSk7XHJcbn1cclxuIl19
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWluYm91bmQtaW52b2ljZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lLWRvbnVzdW0vc3JjL2xpYi9jb21wb25lbnRzL2hpdC1pbmJvdW5kLWludm9pY2VzL2hpdC1pbmJvdW5kLWludm9pY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixpQkFBaUIsR0FDbEIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRzdQLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOztBQTRCdEYsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1QjtxSEFBdkIsdUJBQXVCLGlCQXpCbkIsMEJBQTBCLGFBRXZDLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLDhCQUE4QjtRQUM5QixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsYUFBYTtxSEFHSix1QkFBdUIsWUF2QmhDLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixrQkFBa0I7UUFDbEIsaUJBQWlCO1FBQ2pCLGNBQWM7UUFDZCxnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLDhCQUE4QjtRQUM5QixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsYUFBYTsyRkFHSix1QkFBdUI7a0JBMUJuQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDBCQUEwQixDQUFDO29CQUMxQyxPQUFPLEVBQUU7d0JBQ1AsVUFBVTt3QkFDVixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFVBQVU7d0JBQ1YsOEJBQThCO3dCQUM5QixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGFBQWE7cUJBQ2Q7aUJBQ0Y7O0FBR0QsTUFBTSxVQUFVLGtDQUFrQztJQUNoRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE5nYkNvbGxhcHNlTW9kdWxlLFxyXG4gIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgTmdiRHJvcGRvd25Nb2R1bGUsXHJcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tZXJjaWFsVWlNb2R1bGUgfSBmcm9tICdAdm9sby9hYnAuY29tbWVyY2lhbC5uZy51aSc7XHJcbmltcG9ydCB7IFBhZ2VNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvbXBvbmVudHMvcGFnZSc7XHJcbmltcG9ydCB7IER4RGF0YUdyaWRNb2R1bGUsIER4RGF0ZUJveE1vZHVsZSwgRHhEcm9wRG93bkJveE1vZHVsZSwgRHhIdG1sRWRpdG9yTW9kdWxlLCBEeExvb2t1cE1vZHVsZSwgRHhQb3B1cE1vZHVsZSwgRHhSYWRpb0dyb3VwTW9kdWxlLCBEeFNlbGVjdEJveE1vZHVsZSwgRHhUYWJQYW5lbE1vZHVsZSwgRHhUZW1wbGF0ZU1vZHVsZSwgRHhUZXh0QXJlYU1vZHVsZSwgRHhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyJztcclxuaW1wb3J0IGR4VGV4dEJveCBmcm9tICdkZXZleHRyZW1lL3VpL3RleHRfYm94JztcclxuaW1wb3J0IHsgSHRtbFBhcnNlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcclxuaW1wb3J0IHsgSGl0SW5ib3VuZEludm9pY2VDb21wb25lbnQgfSBmcm9tICcuL2hpdC1pbmJvdW5kLWludm9pY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSGl0SW5ib3VuZEludm9pY2VSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9oaXQtaW5ib3VuZC1pbnZvaWNlLXJvdXRpbmcubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbSGl0SW5ib3VuZEludm9pY2VDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvcmVNb2R1bGUsXHJcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcclxuICAgIENvbW1lcmNpYWxVaU1vZHVsZSxcclxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgIE5nYkNvbGxhcHNlTW9kdWxlLFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgRHhEYXRhR3JpZE1vZHVsZSxcclxuICAgIER4VGV4dEFyZWFNb2R1bGUsXHJcbiAgICBEeFRleHRCb3hNb2R1bGUsXHJcbiAgICBEeEh0bWxFZGl0b3JNb2R1bGUsXHJcbiAgICBEeFNlbGVjdEJveE1vZHVsZSxcclxuICAgIER4TG9va3VwTW9kdWxlLFxyXG4gICAgRHhUYWJQYW5lbE1vZHVsZSxcclxuICAgIFBhZ2VNb2R1bGUsXHJcbiAgICBIaXRJbmJvdW5kSW52b2ljZVJvdXRpbmdNb2R1bGUsXHJcbiAgICBEeFJhZGlvR3JvdXBNb2R1bGUsXHJcbiAgICBEeERhdGVCb3hNb2R1bGUsXHJcbiAgICBEeFRlbXBsYXRlTW9kdWxlLFxyXG4gICAgRHhEcm9wRG93bkJveE1vZHVsZSxcclxuICAgIER4UG9wdXBNb2R1bGVcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0SW5ib3VuZEludm9pY2VNb2R1bGUge31cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkSGl0SW5ib3VuZEludm9pY2VNb2R1bGVBc0NoaWxkKCkge1xyXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoSGl0SW5ib3VuZEludm9pY2VNb2R1bGUpO1xyXG59XHJcbiJdfQ==
@@ -3,7 +3,6 @@ import { DateAdapter } from '@abp/ng.theme.shared/extensions';
3
3
  import { ChangeDetectionStrategy, Component, EventEmitter, Injectable, Input, Output, } from '@angular/core';
4
4
  import { Validators } from '@angular/forms';
5
5
  import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
6
- import { finalize, tap } from 'rxjs';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@abp/ng.core";
9
8
  import * as i2 from "../../proxy/params-integrators";
@@ -22,6 +21,7 @@ export class HitParamsIntegratorComponent {
22
21
  this.hitParamsIntegratorsService = hitParamsIntegratorsService;
23
22
  this.toasterService = toasterService;
24
23
  this.hitEntegratorsService = hitEntegratorsService;
24
+ this.URL_PATTERN = /^(https?:\/\/)([\w-]+\.)+[\w-]{2,}([:\/?#][^\s]*)?$/;
25
25
  this.submitButtonDisabled = false;
26
26
  this.connectionTestButtonDisabled = false;
27
27
  this.IsSubmitButtonHidden = false;
@@ -32,7 +32,7 @@ export class HitParamsIntegratorComponent {
32
32
  this.getParamsIntegrator(true, '');
33
33
  }
34
34
  buildForm() {
35
- const { serviceUser, servicePassword, eInvoiceGBLabel, eInvoicePKLabel, eDispatchGBLabel, eDispatchPKLabel, eArchiveGBLabel, eArchivePKLabel, emmGBLabel, emmPKLabel, branchId, } = this.paramsIntegratorDtoWithNavigationPropertiesDto?.paramsIntegrator || {};
35
+ const { serviceUser, servicePassword, eInvoiceGBLabel, eInvoicePKLabel, eDispatchGBLabel, eDispatchPKLabel, eArchiveGBLabel, eArchivePKLabel, emmGBLabel, emmPKLabel, eInvoiceApiUrl, eDespatchApiUrl, eArchiveApiUrl, emmApiUrl, branchId, } = this.paramsIntegratorDtoWithNavigationPropertiesDto?.paramsIntegrator || {};
36
36
  this.formParamsIntegrator = this.fb.group({
37
37
  serviceUser: [serviceUser ?? null, [Validators.required, Validators.maxLength(64)]],
38
38
  servicePassword: [servicePassword ?? null, [Validators.required, Validators.maxLength(64)]],
@@ -50,11 +50,14 @@ export class HitParamsIntegratorComponent {
50
50
  // eArchivePKLabel: [eArchivePKLabel ?? null, [Validators.required, Validators.maxLength(256)]],
51
51
  // emmGBLabel: [emmGBLabel ?? null, [Validators.required, Validators.maxLength(256)]],
52
52
  // emmPKLabel: [emmPKLabel ?? null, [Validators.required, Validators.maxLength(256)]],
53
+ eInvoiceApiUrl: [eInvoiceApiUrl ?? null, [Validators.maxLength(512), Validators.pattern(this.URL_PATTERN)]],
54
+ eDespatchApiUrl: [eDespatchApiUrl ?? null, [Validators.maxLength(512), Validators.pattern(this.URL_PATTERN)]],
55
+ eArchiveApiUrl: [eArchiveApiUrl ?? null, [Validators.maxLength(512), Validators.pattern(this.URL_PATTERN)]],
56
+ emmApiUrl: [emmApiUrl ?? null, [Validators.maxLength(512), Validators.pattern(this.URL_PATTERN)]],
53
57
  branchId: [branchId ?? null, []],
54
58
  });
55
59
  }
56
60
  async submitForm() {
57
- debugger;
58
61
  if (this.formParamsIntegrator.invalid) {
59
62
  window.scroll({
60
63
  top: 0,
@@ -65,40 +68,52 @@ export class HitParamsIntegratorComponent {
65
68
  this.valid.emit(false);
66
69
  return;
67
70
  }
68
- // if (
69
- // this.paramsGeneralDtoPart1.isBranch &&
70
- // this.formParamsIntegrator.controls.branchId.value == undefined
71
- // ) {
72
- // this.toasterService.error('eDonusum::PleaseSelectBranch');
73
- // this.valid.emit(false);
74
- // return;
75
- // }
76
- this.formParamsIntegrator.controls.branchId.setValue(null);
77
71
  this.submitButtonDisabled = true;
78
- // this.toasterService.info('eDonusum::TransactionStarted');
79
- debugger;
80
- const request = this.paramsIntegratorDtoWithNavigationPropertiesDto
72
+ try {
73
+ const saved = await this.saveParamsIntegrator();
74
+ if (!saved) {
75
+ this.valid.emit(false);
76
+ return;
77
+ }
78
+ const testResult = await this.runConnectionTest();
79
+ this.valid.emit(testResult);
80
+ }
81
+ finally {
82
+ this.submitButtonDisabled = false;
83
+ }
84
+ }
85
+ saveParamsIntegrator() {
86
+ this.formParamsIntegrator.controls.branchId.setValue(null);
87
+ const request$ = this.paramsIntegratorDtoWithNavigationPropertiesDto
81
88
  ? this.service.update(this.paramsIntegratorDtoWithNavigationPropertiesDto.paramsIntegrator.id, {
82
89
  ...this.formParamsIntegrator.value,
83
90
  })
84
91
  : this.service.create(this.formParamsIntegrator.value);
85
- let response = await this.connectionTest();
86
- if (!response)
87
- return;
88
- request
89
- .pipe(finalize(() => {
90
- this.submitButtonDisabled = false;
91
- }), tap(() => { }))
92
- .subscribe(async () => {
93
- // this.toasterService.success('eDonusum::TransactionSuccessful');
94
- debugger;
95
- await this.getParamsIntegrator(false, this.paramsIntegratorDtoWithNavigationPropertiesDto?.branch
96
- ? this.paramsIntegratorDtoWithNavigationPropertiesDto.branch.id
97
- : '00000000-0000-0000-0000-000000000000');
98
- this.valid.emit(true);
99
- }, err => {
100
- this.toasterService.error('eDonusum::TransactionUnsuccessful');
101
- this.valid.emit(false);
92
+ return new Promise((resolve) => {
93
+ request$.subscribe(async () => {
94
+ await this.getParamsIntegrator(false, this.paramsIntegratorDtoWithNavigationPropertiesDto?.branch
95
+ ? this.paramsIntegratorDtoWithNavigationPropertiesDto.branch.id
96
+ : '00000000-0000-0000-0000-000000000000');
97
+ resolve(true);
98
+ }, () => {
99
+ this.toasterService.error('eDonusum::TransactionUnsuccessful');
100
+ resolve(false);
101
+ });
102
+ });
103
+ }
104
+ async runConnectionTest() {
105
+ const request = this.formParamsIntegrator.value;
106
+ return await this.hitEntegratorsService.connectionTest(request).then(data => {
107
+ if (data) {
108
+ this.toasterService.success('eDonusum::ConnectionSuccessful');
109
+ return true;
110
+ }
111
+ else {
112
+ this.toasterService.error(data?.message);
113
+ return false;
114
+ }
115
+ }).catch(() => {
116
+ return false;
102
117
  });
103
118
  }
104
119
  async getParamsIntegrator(buildForm = false, branchId) {
@@ -129,33 +144,29 @@ export class HitParamsIntegratorComponent {
129
144
  // });
130
145
  // }
131
146
  async connectionTest() {
147
+ if (this.formParamsIntegrator.invalid) {
148
+ this.toasterService.error('eDonusum::FillRequiredFields');
149
+ return false;
150
+ }
132
151
  this.connectionTestButtonDisabled = true;
133
- if (this.formParamsIntegrator.controls.branchId?.value == '')
134
- this.formParamsIntegrator.controls.branchId.setValue('00000000-0000-0000-0000-000000000000');
135
- let request = this.formParamsIntegrator.value;
136
- return await this.hitEntegratorsService.connectionTest(request).then(data => {
137
- this.connectionTestButtonDisabled = false;
138
- this.submitButtonDisabled = false;
139
- if (data) {
140
- this.toasterService.success('eDonusum::ConnectionSuccessful');
141
- return true;
142
- }
143
- else {
144
- this.toasterService.error(data.message);
152
+ try {
153
+ const saved = await this.saveParamsIntegrator();
154
+ if (!saved)
145
155
  return false;
146
- }
147
- }).finally(() => {
156
+ return await this.runConnectionTest();
157
+ }
158
+ finally {
148
159
  this.connectionTestButtonDisabled = false;
149
160
  this.submitButtonDisabled = false;
150
- });
161
+ }
151
162
  }
152
163
  }
153
164
  HitParamsIntegratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitParamsIntegratorComponent, deps: [{ token: i1.ListService }, { token: i1.TrackByService }, { token: i2.ParamsIntegratorService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }, { token: i5.HitParamsIntegratorsService }, { token: i3.ToasterService }, { token: i6.HitEntegratorsService }], target: i0.ɵɵFactoryTarget.Component });
154
- HitParamsIntegratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitParamsIntegratorComponent, selector: "hit-params-integrator", inputs: { paramsGeneralDtoPart1: "paramsGeneralDtoPart1", IsSubmitButtonHidden: "IsSubmitButtonHidden" }, outputs: { valid: "valid" }, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formParamsIntegrator\" id=\"params-integrator\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <!-- <div class=\"row\" *ngIf=\"paramsGeneralDtoPart1?.isBranch\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-branch-id\">\r\n {{ 'eDonusum::Branch' | abpLocalization }} *\r\n </label>\r\n\r\n <abp-lookup-select cid=\"params-integrator-branch-id\" formControlName=\"branchId\"\r\n [getFn]=\"service.getBranchLookup\" (change)=\"branchOnChange()\"></abp-lookup-select>\r\n </div>\r\n </div>\r\n </div> -->\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-service-user\">\r\n {{ 'eDonusum::ServiceUser' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-service-user\" formControlName=\"serviceUser\" class=\"form-control\"\r\n maxlength=\"64\" autofocus />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-service-password\">\r\n {{ 'eDonusum::ServicePassword' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-service-password\" formControlName=\"servicePassword\"\r\n class=\"form-control\" maxlength=\"64\" type=\"password\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-gblabel\">\r\n {{ 'eDonusum::EInvoiceGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-gblabel\" formControlName=\"eInvoiceGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-pklabel\">\r\n {{ 'eDonusum::EInvoicePKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-pklabel\" formControlName=\"eInvoicePKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edispatch-gblabel\">\r\n {{ 'eDonusum::EDispatchGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-edispatch-gblabel\" formControlName=\"eDispatchGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edispatch-pklabel\">\r\n {{ 'eDonusum::EDispatchPKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-edispatch-pklabel\" formControlName=\"eDispatchPKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-gblabel\">\r\n {{ 'eDonusum::EArchiveGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-gblabel\" formControlName=\"eArchiveGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-pklabel\">\r\n {{ 'eDonusum::EArchivePKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-pklabel\" formControlName=\"eArchivePKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div> -->\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 text-lg-end\">\r\n <button class=\"btn btn-primary me-2\" type=\"button\" [disabled]=\"connectionTestButtonDisabled\" (click)=\"connectionTest()\">{{\r\n 'eDonusum::ConnectionTest' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"params-integrator\"\r\n [disabled]=\"submitButtonDisabled\" [hidden]=\"IsSubmitButtonHidden\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
165
+ HitParamsIntegratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: HitParamsIntegratorComponent, selector: "hit-params-integrator", inputs: { paramsGeneralDtoPart1: "paramsGeneralDtoPart1", IsSubmitButtonHidden: "IsSubmitButtonHidden" }, outputs: { valid: "valid" }, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formParamsIntegrator\" id=\"params-integrator\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <!-- <div class=\"row\" *ngIf=\"paramsGeneralDtoPart1?.isBranch\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-branch-id\">\r\n {{ 'eDonusum::Branch' | abpLocalization }} *\r\n </label>\r\n\r\n <abp-lookup-select cid=\"params-integrator-branch-id\" formControlName=\"branchId\"\r\n [getFn]=\"service.getBranchLookup\" (change)=\"branchOnChange()\"></abp-lookup-select>\r\n </div>\r\n </div>\r\n </div> -->\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-service-user\">\r\n {{ 'eDonusum::ServiceUser' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-service-user\" formControlName=\"serviceUser\" class=\"form-control\"\r\n maxlength=\"64\" autofocus />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-service-password\">\r\n {{ 'eDonusum::ServicePassword' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-service-password\" formControlName=\"servicePassword\"\r\n class=\"form-control\" maxlength=\"64\" type=\"password\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-gblabel\">\r\n {{ 'eDonusum::EInvoiceGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-gblabel\" formControlName=\"eInvoiceGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-pklabel\">\r\n {{ 'eDonusum::EInvoicePKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-pklabel\" formControlName=\"eInvoicePKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edispatch-gblabel\">\r\n {{ 'eDonusum::EDispatchGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-edispatch-gblabel\" formControlName=\"eDispatchGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edispatch-pklabel\">\r\n {{ 'eDonusum::EDispatchPKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-edispatch-pklabel\" formControlName=\"eDispatchPKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-api-url\">\r\n {{ 'eDonusum::EInvoiceApiUrl' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-api-url\" formControlName=\"eInvoiceApiUrl\"\r\n class=\"form-control\" maxlength=\"512\"\r\n [class.is-invalid]=\"formParamsIntegrator.get('eInvoiceApiUrl')?.invalid && (formParamsIntegrator.get('eInvoiceApiUrl')?.touched || formParamsIntegrator.get('eInvoiceApiUrl')?.dirty)\" />\r\n <div class=\"invalid-feedback\">{{ 'eDonusum::InvalidUrlFormat' | abpLocalization }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edespatch-api-url\">\r\n {{ 'eDonusum::EDespatchApiUrl' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"params-integrator-edespatch-api-url\" formControlName=\"eDespatchApiUrl\"\r\n class=\"form-control\" maxlength=\"512\"\r\n [class.is-invalid]=\"formParamsIntegrator.get('eDespatchApiUrl')?.invalid && (formParamsIntegrator.get('eDespatchApiUrl')?.touched || formParamsIntegrator.get('eDespatchApiUrl')?.dirty)\" />\r\n <div class=\"invalid-feedback\">{{ 'eDonusum::InvalidUrlFormat' | abpLocalization }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-api-url\">\r\n {{ 'eDonusum::EArchiveApiUrl' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-api-url\" formControlName=\"eArchiveApiUrl\"\r\n class=\"form-control\" maxlength=\"512\"\r\n [class.is-invalid]=\"formParamsIntegrator.get('eArchiveApiUrl')?.invalid && (formParamsIntegrator.get('eArchiveApiUrl')?.touched || formParamsIntegrator.get('eArchiveApiUrl')?.dirty)\" />\r\n <div class=\"invalid-feedback\">{{ 'eDonusum::InvalidUrlFormat' | abpLocalization }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-emm-api-url\">\r\n {{ 'eDonusum::EmmApiUrl' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"params-integrator-emm-api-url\" formControlName=\"emmApiUrl\"\r\n class=\"form-control\" maxlength=\"512\"\r\n [class.is-invalid]=\"formParamsIntegrator.get('emmApiUrl')?.invalid && (formParamsIntegrator.get('emmApiUrl')?.touched || formParamsIntegrator.get('emmApiUrl')?.dirty)\" />\r\n <div class=\"invalid-feedback\">{{ 'eDonusum::InvalidUrlFormat' | abpLocalization }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-gblabel\">\r\n {{ 'eDonusum::EArchiveGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-gblabel\" formControlName=\"eArchiveGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-pklabel\">\r\n {{ 'eDonusum::EArchivePKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-pklabel\" formControlName=\"eArchivePKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div> -->\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 text-lg-end\">\r\n <button class=\"btn btn-primary me-2\" type=\"button\"\r\n [disabled]=\"connectionTestButtonDisabled || formParamsIntegrator.invalid\"\r\n (click)=\"connectionTest()\">{{\r\n 'eDonusum::ConnectionTest' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"params-integrator\"\r\n [disabled]=\"submitButtonDisabled || formParamsIntegrator.invalid\" [hidden]=\"IsSubmitButtonHidden\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.AutofocusDirective, selector: "[autofocus]", inputs: ["autofocus"] }, { kind: "directive", type: i1.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "component", type: i3.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i7.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
155
166
  HitParamsIntegratorComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitParamsIntegratorComponent, providedIn: 'root' });
156
167
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitParamsIntegratorComponent, decorators: [{
157
168
  type: Component,
158
- args: [{ selector: 'hit-params-integrator', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formParamsIntegrator\" id=\"params-integrator\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <!-- <div class=\"row\" *ngIf=\"paramsGeneralDtoPart1?.isBranch\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-branch-id\">\r\n {{ 'eDonusum::Branch' | abpLocalization }} *\r\n </label>\r\n\r\n <abp-lookup-select cid=\"params-integrator-branch-id\" formControlName=\"branchId\"\r\n [getFn]=\"service.getBranchLookup\" (change)=\"branchOnChange()\"></abp-lookup-select>\r\n </div>\r\n </div>\r\n </div> -->\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-service-user\">\r\n {{ 'eDonusum::ServiceUser' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-service-user\" formControlName=\"serviceUser\" class=\"form-control\"\r\n maxlength=\"64\" autofocus />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-service-password\">\r\n {{ 'eDonusum::ServicePassword' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-service-password\" formControlName=\"servicePassword\"\r\n class=\"form-control\" maxlength=\"64\" type=\"password\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-gblabel\">\r\n {{ 'eDonusum::EInvoiceGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-gblabel\" formControlName=\"eInvoiceGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-pklabel\">\r\n {{ 'eDonusum::EInvoicePKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-pklabel\" formControlName=\"eInvoicePKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edispatch-gblabel\">\r\n {{ 'eDonusum::EDispatchGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-edispatch-gblabel\" formControlName=\"eDispatchGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edispatch-pklabel\">\r\n {{ 'eDonusum::EDispatchPKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-edispatch-pklabel\" formControlName=\"eDispatchPKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-gblabel\">\r\n {{ 'eDonusum::EArchiveGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-gblabel\" formControlName=\"eArchiveGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-pklabel\">\r\n {{ 'eDonusum::EArchivePKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-pklabel\" formControlName=\"eArchivePKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div> -->\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 text-lg-end\">\r\n <button class=\"btn btn-primary me-2\" type=\"button\" [disabled]=\"connectionTestButtonDisabled\" (click)=\"connectionTest()\">{{\r\n 'eDonusum::ConnectionTest' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"params-integrator\"\r\n [disabled]=\"submitButtonDisabled\" [hidden]=\"IsSubmitButtonHidden\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
169
+ args: [{ selector: 'hit-params-integrator', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<div class=\"card\">\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"formParamsIntegrator\" id=\"params-integrator\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <!-- <div class=\"row\" *ngIf=\"paramsGeneralDtoPart1?.isBranch\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-branch-id\">\r\n {{ 'eDonusum::Branch' | abpLocalization }} *\r\n </label>\r\n\r\n <abp-lookup-select cid=\"params-integrator-branch-id\" formControlName=\"branchId\"\r\n [getFn]=\"service.getBranchLookup\" (change)=\"branchOnChange()\"></abp-lookup-select>\r\n </div>\r\n </div>\r\n </div> -->\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-service-user\">\r\n {{ 'eDonusum::ServiceUser' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-service-user\" formControlName=\"serviceUser\" class=\"form-control\"\r\n maxlength=\"64\" autofocus />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-service-password\">\r\n {{ 'eDonusum::ServicePassword' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-service-password\" formControlName=\"servicePassword\"\r\n class=\"form-control\" maxlength=\"64\" type=\"password\"/>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-gblabel\">\r\n {{ 'eDonusum::EInvoiceGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-gblabel\" formControlName=\"eInvoiceGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-pklabel\">\r\n {{ 'eDonusum::EInvoicePKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-pklabel\" formControlName=\"eInvoicePKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edispatch-gblabel\">\r\n {{ 'eDonusum::EDispatchGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-edispatch-gblabel\" formControlName=\"eDispatchGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edispatch-pklabel\">\r\n {{ 'eDonusum::EDispatchPKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-edispatch-pklabel\" formControlName=\"eDispatchPKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-einvoice-api-url\">\r\n {{ 'eDonusum::EInvoiceApiUrl' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"params-integrator-einvoice-api-url\" formControlName=\"eInvoiceApiUrl\"\r\n class=\"form-control\" maxlength=\"512\"\r\n [class.is-invalid]=\"formParamsIntegrator.get('eInvoiceApiUrl')?.invalid && (formParamsIntegrator.get('eInvoiceApiUrl')?.touched || formParamsIntegrator.get('eInvoiceApiUrl')?.dirty)\" />\r\n <div class=\"invalid-feedback\">{{ 'eDonusum::InvalidUrlFormat' | abpLocalization }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-edespatch-api-url\">\r\n {{ 'eDonusum::EDespatchApiUrl' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"params-integrator-edespatch-api-url\" formControlName=\"eDespatchApiUrl\"\r\n class=\"form-control\" maxlength=\"512\"\r\n [class.is-invalid]=\"formParamsIntegrator.get('eDespatchApiUrl')?.invalid && (formParamsIntegrator.get('eDespatchApiUrl')?.touched || formParamsIntegrator.get('eDespatchApiUrl')?.dirty)\" />\r\n <div class=\"invalid-feedback\">{{ 'eDonusum::InvalidUrlFormat' | abpLocalization }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-api-url\">\r\n {{ 'eDonusum::EArchiveApiUrl' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-api-url\" formControlName=\"eArchiveApiUrl\"\r\n class=\"form-control\" maxlength=\"512\"\r\n [class.is-invalid]=\"formParamsIntegrator.get('eArchiveApiUrl')?.invalid && (formParamsIntegrator.get('eArchiveApiUrl')?.touched || formParamsIntegrator.get('eArchiveApiUrl')?.dirty)\" />\r\n <div class=\"invalid-feedback\">{{ 'eDonusum::InvalidUrlFormat' | abpLocalization }}</div>\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-emm-api-url\">\r\n {{ 'eDonusum::EmmApiUrl' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"params-integrator-emm-api-url\" formControlName=\"emmApiUrl\"\r\n class=\"form-control\" maxlength=\"512\"\r\n [class.is-invalid]=\"formParamsIntegrator.get('emmApiUrl')?.invalid && (formParamsIntegrator.get('emmApiUrl')?.touched || formParamsIntegrator.get('emmApiUrl')?.dirty)\" />\r\n <div class=\"invalid-feedback\">{{ 'eDonusum::InvalidUrlFormat' | abpLocalization }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- <div class=\"row\">\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-gblabel\">\r\n {{ 'eDonusum::EArchiveGBLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-gblabel\" formControlName=\"eArchiveGBLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n <div class=\"col-sm-6\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"params-integrator-earchive-pklabel\">\r\n {{ 'eDonusum::EArchivePKLabel' | abpLocalization }} *\r\n </label>\r\n\r\n <input id=\"params-integrator-earchive-pklabel\" formControlName=\"eArchivePKLabel\"\r\n class=\"form-control\" maxlength=\"256\" />\r\n </div>\r\n </div>\r\n </div> -->\r\n </form>\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 text-lg-end\">\r\n <button class=\"btn btn-primary me-2\" type=\"button\"\r\n [disabled]=\"connectionTestButtonDisabled || formParamsIntegrator.invalid\"\r\n (click)=\"connectionTest()\">{{\r\n 'eDonusum::ConnectionTest' | abpLocalization }}</button>\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"params-integrator\"\r\n [disabled]=\"submitButtonDisabled || formParamsIntegrator.invalid\" [hidden]=\"IsSubmitButtonHidden\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
159
170
  }, {
160
171
  type: Injectable,
161
172
  args: [{
@@ -168,4 +179,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
168
179
  }], valid: [{
169
180
  type: Output
170
181
  }] } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXBhcmFtcy1pbnRlZ3JhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LXBhcmFtcy1pbnRlZ3JhdG9ycy9oaXQtcGFyYW1zLWludGVncmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtcGFyYW1zLWludGVncmF0b3JzL2hpdC1wYXJhbXMtaW50ZWdyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFdBQVcsRUFBa0MsTUFBTSxjQUFjLENBQUM7QUFFOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7O0FBa0JyQyxNQUFNLE9BQU8sNEJBQTRCO0lBaUJ2QyxZQUNrQixJQUFpQixFQUNqQixLQUFxQixFQUNyQixPQUFnQyxFQUN4QyxZQUFpQyxFQUNqQyxFQUFlLEVBQ04sMkJBQXdELEVBQ3hELGNBQThCLEVBQzlCLHFCQUE0QztRQVA3QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFx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RSx1QkFBdUIsbUJBQ2hCLHVCQUF1QixDQUFDLE9BQU8sYUFDckMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQzs7a0JBSTdFLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU0sRUFBRSw0QkFBNEI7aUJBQ2pEOzRVQVlVLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUksS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUJQLCBkb3dubG9hZEJsb2IsIExpc3RTZXJ2aWNlLCBQYWdlZFJlc3VsdER0bywgVHJhY2tCeVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdGFibGUsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEhpdFBhcmFtc0ludGVncmF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtcGFyYW1zLWludGVncmF0b3JzL2hpdC1wYXJhbXMtaW50ZWdyYXRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBQYXJhbXNJbnRlZ3JhdG9yU2VydmljZSxcclxuICBQYXJhbXNJbnRlZ3JhdG9yV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvLFxyXG59IGZyb20gJy4uLy4uL3Byb3h5L3BhcmFtcy1pbnRlZ3JhdG9ycyc7XHJcbmltcG9ydCB7IFBhcmFtc0dlbmVyYWxEdG8gfSBmcm9tICcuLi8uLi9wcm94eS9wYXJhbXMtZ2VuZXJhbHMnO1xyXG5pbXBvcnQgeyBIaXRFbnRlZ3JhdG9yc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9oaXQtcHJveHkvaGl0LWVudGVncmF0b3JzL2hpdC1lbnRlZ3JhdG9yLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2hpdC1wYXJhbXMtaW50ZWdyYXRvcicsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2hpdC1wYXJhbXMtaW50ZWdyYXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxufSlcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JywgLy8gU2VydmlzIGdpYmkgZ2xvYmFsIHNhxJ9sYXJcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdFBhcmFtc0ludGVncmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGZvcm1QYXJhbXNJbnRlZ3JhdG9yOiBGb3JtR3JvdXA7XHJcblxyXG4gIHBhcmFtc0ludGVncmF0b3JEdG9XaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG8/OiBQYXJhbXNJbnRlZ3JhdG9yV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvO1xyXG5cclxuICBzdWJtaXRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gIGNvbm5lY3Rpb25UZXN0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgc2NlbmFyaW9UeXBlRGF0YVNvdXJjZTogYW55O1xyXG4gIGRvY3VtZW50VHlwZURhdGFTb3VyY2U6IGFueTtcclxuXHJcbiAgQElucHV0KCkgcGFyYW1zR2VuZXJhbER0b1BhcnQxOiBQYXJhbXNHZW5lcmFsRHRvO1xyXG5cclxuICBASW5wdXQoKSBJc1N1Ym1pdEJ1dHRvbkhpZGRlbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgdmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlYWRvbmx5IGxpc3Q6IExpc3RTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWNrOiBUcmFja0J5U2VydmljZSxcclxuICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlOiBQYXJhbXNJbnRlZ3JhdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpdFBhcmFtc0ludGVncmF0b3JzU2VydmljZTogSGl0UGFyYW1zSW50ZWdyYXRvcnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b2FzdGVyU2VydmljZTogVG9hc3RlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhpdEVudGVncmF0b3JzU2VydmljZTogSGl0RW50ZWdyYXRvcnNTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG5cclxuICAgIHRoaXMuZ2V0UGFyYW1zSW50ZWdyYXRvcih0cnVlLCAnJyk7XHJcbiAgfVxyXG5cclxuICBidWlsZEZvcm0oKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHNlcnZpY2VVc2VyLFxyXG4gICAgICBzZXJ2aWNlUGFzc3dvcmQsXHJcbiAgICAgIGVJbnZvaWNlR0JMYWJlbCxcclxuICAgICAgZUludm9pY2VQS0xhYmVsLFxyXG4gICAgICBlRGlzcGF0Y2hHQkxhYmVsLFxyXG4gICAgICBlRGlzcGF0Y2hQS0xhYmVsLFxyXG4gICAgICBlQXJjaGl2ZUdCTGFiZWwsXHJcbiAgICAgIGVBcmNoaXZlUEtMYWJlbCxcclxuICAgICAgZW1tR0JMYWJlbCxcclxuICAgICAgZW1tUEtMYWJlbCxcclxuICAgICAgYnJhbmNoSWQsXHJcbiAgICB9ID0gdGhpcy5wYXJhbXNJbnRlZ3JhdG9yRHRvV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvPy5wYXJhbXNJbnRlZ3JhdG9yIHx8IHt9O1xyXG5cclxuICAgIHRoaXMuZm9ybVBhcmFtc0ludGVncmF0b3IgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgc2VydmljZVVzZXI6IFtzZXJ2aWNlVXNlciA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXHJcbiAgICAgIHNlcnZpY2VQYXNzd29yZDogW3NlcnZpY2VQYXNzd29yZCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNjQpXV0sXHJcbiAgICAgIGVJbnZvaWNlR0JMYWJlbDogW2VJbnZvaWNlR0JMYWJlbCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxyXG4gICAgICBlSW52b2ljZVBLTGFiZWw6IFtlSW52b2ljZVBLTGFiZWwgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcclxuICAgICAgZURpc3BhdGNoR0JMYWJlbDogW1xyXG4gICAgICAgIGVEaXNwYXRjaEdCTGFiZWwgPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV0sXHJcbiAgICAgIF0sXHJcbiAgICAgIGVEaXNwYXRjaFBLTGFiZWw6IFtcclxuICAgICAgICBlRGlzcGF0Y2hQS0xhYmVsID8/IG51bGwsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildLFxyXG4gICAgICBdLFxyXG4gICAgICAvLyBlQXJjaGl2ZUdCTGFiZWw6IFtlQXJjaGl2ZUdCTGFiZWwgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcclxuICAgICAgLy8gZUFyY2hpdmVQS0xhYmVsOiBbZUFyY2hpdmVQS0xhYmVsID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXHJcbiAgICAgIC8vIGVtbUdCTGFiZWw6IFtlbW1HQkxhYmVsID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXHJcbiAgICAgIC8vIGVtbVBLTGFiZWw6IFtlbW1QS0xhYmVsID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXHJcbiAgICAgIGJyYW5jaElkOiBbYnJhbmNoSWQgPz8gbnVsbCwgW11dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzdWJtaXRGb3JtKCkge1xyXG4gICAgZGVidWdnZXI7XHJcbiAgICBpZiAodGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci5pbnZhbGlkKSB7XHJcbiAgICAgIHdpbmRvdy5zY3JvbGwoe1xyXG4gICAgICAgIHRvcDogMCxcclxuICAgICAgICBsZWZ0OiAwLFxyXG4gICAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKCdlRG9udXN1bTo6RmlsbFJlcXVpcmVkRmllbGRzJyk7XHJcbiAgICAgIHRoaXMudmFsaWQuZW1pdChmYWxzZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBpZiAoXHJcbiAgICAvLyAgIHRoaXMucGFyYW1zR2VuZXJhbER0b1BhcnQxLmlzQnJhbmNoICYmXHJcbiAgICAvLyAgIHRoaXMuZm9ybVBhcmFtc0ludGVncmF0b3IuY29udHJvbHMuYnJhbmNoSWQudmFsdWUgPT0gdW5kZWZpbmVkXHJcbiAgICAvLyApIHtcclxuICAgIC8vICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcignZURvbnVzdW06OlBsZWFzZVNlbGVjdEJyYW5jaCcpO1xyXG4gICAgLy8gICB0aGlzLnZhbGlkLmVtaXQoZmFsc2UpO1xyXG4gICAgLy8gICByZXR1cm47XHJcbiAgICAvLyB9XHJcblxyXG4gICAgdGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci5jb250cm9scy5icmFuY2hJZC5zZXRWYWx1ZShudWxsKTtcclxuXHJcbiAgICB0aGlzLnN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuXHJcbiAgICAvLyB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmluZm8oJ2VEb251c3VtOjpUcmFuc2FjdGlvblN0YXJ0ZWQnKTtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHRoaXMucGFyYW1zSW50ZWdyYXRvckR0b1dpdGhOYXZpZ2F0aW9uUHJvcGVydGllc0R0b1xyXG4gICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUoXHJcbiAgICAgICAgdGhpcy5wYXJhbXNJbnRlZ3JhdG9yRHRvV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvLnBhcmFtc0ludGVncmF0b3IuaWQsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgLi4udGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci52YWx1ZSxcclxuICAgICAgICB9XHJcbiAgICAgIClcclxuICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybVBhcmFtc0ludGVncmF0b3IudmFsdWUpO1xyXG5cclxuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY29ubmVjdGlvblRlc3QoKTtcclxuXHJcbiAgICBpZiAoIXJlc3BvbnNlKSByZXR1cm47XHJcblxyXG4gICAgcmVxdWVzdFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFwKCgpID0+IHsgfSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIGFzeW5jICgpID0+IHtcclxuICAgICAgICAgIC8vIHRoaXMudG9hc3RlclNlcnZpY2Uuc3VjY2VzcygnZURvbnVzdW06OlRyYW5zYWN0aW9uU3VjY2Vzc2Z1bCcpO1xyXG4gICAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldFBhcmFtc0ludGVncmF0b3IoXHJcbiAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICAgICB0aGlzLnBhcmFtc0ludGVncmF0b3JEdG9XaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG8/LmJyYW5jaFxyXG4gICAgICAgICAgICAgID8gdGhpcy5wYXJhbXNJbnRlZ3JhdG9yRHRvV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvLmJyYW5jaC5pZFxyXG4gICAgICAgICAgICAgIDogJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCdcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgdGhpcy52YWxpZC5lbWl0KHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoJ2VEb251c3VtOjpUcmFuc2FjdGlvblVuc3VjY2Vzc2Z1bCcpO1xyXG5cclxuICAgICAgICAgIHRoaXMudmFsaWQuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0UGFyYW1zSW50ZWdyYXRvcihidWlsZEZvcm06IGJvb2xlYW4gPSBmYWxzZSwgYnJhbmNoSWQpIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5oaXRQYXJhbXNJbnRlZ3JhdG9yc1NlcnZpY2UuZ2V0UGFyYW1zSW50ZWdyYXRvcihicmFuY2hJZCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICBkZWJ1Z2dlcjtcclxuICAgICAgdGhpcy5wYXJhbXNJbnRlZ3JhdG9yRHRvV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvID0gZGF0YTtcclxuXHJcbiAgICAgIGlmIChidWlsZEZvcm0pIHRoaXMuYnVpbGRGb3JtKCk7XHJcblxyXG4gICAgICB0aGlzLmZvcm1QYXJhbXNJbnRlZ3JhdG9yLmNvbnRyb2xzLmJyYW5jaElkLnNldFZhbHVlKGJyYW5jaElkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlZEJyYW5jaChkYXRhOiBQYXJhbXNHZW5lcmFsRHRvKSB7XHJcbiAgICB0aGlzLnBhcmFtc0dlbmVyYWxEdG9QYXJ0MSA9IGRhdGE7XHJcblxyXG4gICAgaWYgKCFkYXRhPy5pc0JyYW5jaCkgdGhpcy5nZXRQYXJhbXNJbnRlZ3JhdG9yKHRydWUsICcnKTtcclxuICB9XHJcblxyXG4gIGJyYW5jaE9uQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5nZXRQYXJhbXNJbnRlZ3JhdG9yKHRydWUsIHRoaXMuZm9ybVBhcmFtc0ludGVncmF0b3IuY29udHJvbHMuYnJhbmNoSWQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29ubmVjdGlvblRlc3QoKSB7XHJcbiAgLy8gICBpZiAodGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci5jb250cm9scy5icmFuY2hJZC52YWx1ZSA9PSAnJylcclxuICAvLyAgICAgdGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci5jb250cm9scy5icmFuY2hJZC5zZXRWYWx1ZSgnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJyk7XHJcblxyXG4gIC8vICAgbGV0IHJlcXVlc3QgPSB0aGlzLmZvcm1QYXJhbXNJbnRlZ3JhdG9yLnZhbHVlO1xyXG5cclxuICAvLyAgIHRoaXMuaGl0RW50ZWdyYXRvcnNTZXJ2aWNlLmNvbm5lY3Rpb25UZXN0KHJlcXVlc3QpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAvLyAgICAgdGhpcy52YWxpZC5lbWl0KGRhdGEpO1xyXG5cclxuICAvLyAgICAgcmV0dXJuIGRhdGE7XHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIGFzeW5jIGNvbm5lY3Rpb25UZXN0KCkge1xyXG4gICAgdGhpcy5jb25uZWN0aW9uVGVzdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci5jb250cm9scy5icmFuY2hJZD8udmFsdWUgPT0gJycpXHJcbiAgICAgIHRoaXMuZm9ybVBhcmFtc0ludGVncmF0b3IuY29udHJvbHMuYnJhbmNoSWQuc2V0VmFsdWUoJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCcpO1xyXG5cclxuICAgIGxldCByZXF1ZXN0ID0gdGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci52YWx1ZTtcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5oaXRFbnRlZ3JhdG9yc1NlcnZpY2UuY29ubmVjdGlvblRlc3QocmVxdWVzdCkudGhlbihkYXRhID0+IHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uVGVzdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ2VEb251c3VtOjpDb25uZWN0aW9uU3VjY2Vzc2Z1bCcpO1xyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKGRhdGEubWVzc2FnZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSkuZmluYWxseSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY29ubmVjdGlvblRlc3RCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1QYXJhbXNJbnRlZ3JhdG9yXCIgaWQ9XCJwYXJhbXMtaW50ZWdyYXRvclwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIiB2YWxpZGF0ZU9uU3VibWl0PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInBhcmFtc0dlbmVyYWxEdG9QYXJ0MT8uaXNCcmFuY2hcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1icmFuY2gtaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QnJhbmNoJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YWJwLWxvb2t1cC1zZWxlY3QgY2lkPVwicGFyYW1zLWludGVncmF0b3ItYnJhbmNoLWlkXCIgZm9ybUNvbnRyb2xOYW1lPVwiYnJhbmNoSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dldEZuXT1cInNlcnZpY2UuZ2V0QnJhbmNoTG9va3VwXCIgKGNoYW5nZSk9XCJicmFuY2hPbkNoYW5nZSgpXCI+PC9hYnAtbG9va3VwLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1zZXJ2aWNlLXVzZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U2VydmljZVVzZXInIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInBhcmFtcy1pbnRlZ3JhdG9yLXNlcnZpY2UtdXNlclwiIGZvcm1Db250cm9sTmFtZT1cInNlcnZpY2VVc2VyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNjRcIiBhdXRvZm9jdXMgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInBhcmFtcy1pbnRlZ3JhdG9yLXNlcnZpY2UtcGFzc3dvcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U2VydmljZVBhc3N3b3JkJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJwYXJhbXMtaW50ZWdyYXRvci1zZXJ2aWNlLXBhc3N3b3JkXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VydmljZVBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNjRcIiB0eXBlPVwicGFzc3dvcmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1laW52b2ljZS1nYmxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVJbnZvaWNlR0JMYWJlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGFyYW1zLWludGVncmF0b3ItZWludm9pY2UtZ2JsYWJlbFwiIGZvcm1Db250cm9sTmFtZT1cImVJbnZvaWNlR0JMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjI1NlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1laW52b2ljZS1wa2xhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVJbnZvaWNlUEtMYWJlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGFyYW1zLWludGVncmF0b3ItZWludm9pY2UtcGtsYWJlbFwiIGZvcm1Db250cm9sTmFtZT1cImVJbnZvaWNlUEtMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjI1NlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1lZGlzcGF0Y2gtZ2JsYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFRGlzcGF0Y2hHQkxhYmVsJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJwYXJhbXMtaW50ZWdyYXRvci1lZGlzcGF0Y2gtZ2JsYWJlbFwiIGZvcm1Db250cm9sTmFtZT1cImVEaXNwYXRjaEdCTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBtYXhsZW5ndGg9XCIyNTZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyYW1zLWludGVncmF0b3ItZWRpc3BhdGNoLXBrbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RURpc3BhdGNoUEtMYWJlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGFyYW1zLWludGVncmF0b3ItZWRpc3BhdGNoLXBrbGFiZWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlRGlzcGF0Y2hQS0xhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiMjU2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyYW1zLWludGVncmF0b3ItZWFyY2hpdmUtZ2JsYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFQXJjaGl2ZUdCTGFiZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInBhcmFtcy1pbnRlZ3JhdG9yLWVhcmNoaXZlLWdibGFiZWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlQXJjaGl2ZUdCTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBtYXhsZW5ndGg9XCIyNTZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyYW1zLWludGVncmF0b3ItZWFyY2hpdmUtcGtsYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFQXJjaGl2ZVBLTGFiZWwnIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInBhcmFtcy1pbnRlZ3JhdG9yLWVhcmNoaXZlLXBrbGFiZWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlQXJjaGl2ZVBLTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBtYXhsZW5ndGg9XCIyNTZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIHRleHQtbGctZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG1lLTJcIiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cImNvbm5lY3Rpb25UZXN0QnV0dG9uRGlzYWJsZWRcIiAoY2xpY2spPVwiY29ubmVjdGlvblRlc3QoKVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgJ2VEb251c3VtOjpDb25uZWN0aW9uVGVzdCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgYnV0dG9uVHlwZT1cInN1Ym1pdFwiIGZvcm1OYW1lPVwicGFyYW1zLWludGVncmF0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzdWJtaXRCdXR0b25EaXNhYmxlZFwiIFtoaWRkZW5dPVwiSXNTdWJtaXRCdXR0b25IaWRkZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2FicC1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LXBhcmFtcy1pbnRlZ3JhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2UtZG9udXN1bS9zcmMvbGliL2NvbXBvbmVudHMvaGl0LXBhcmFtcy1pbnRlZ3JhdG9ycy9oaXQtcGFyYW1zLWludGVncmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvY29tcG9uZW50cy9oaXQtcGFyYW1zLWludGVncmF0b3JzL2hpdC1wYXJhbXMtaW50ZWdyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFdBQVcsRUFBa0MsTUFBTSxjQUFjLENBQUM7QUFFOUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBa0I1RCxNQUFNLE9BQU8sNEJBQTRCO0lBbUJ2QyxZQUNrQixJQUFpQixFQUNqQixLQUFxQixFQUNyQixPQUFnQyxFQUN4QyxZQUFpQyxFQUNqQyxFQUFlLEVBQ04sMkJBQXdELEVBQ3hELGNBQThCLEVBQzlCLHFCQUE0QztRQVA3QyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ04sZ0NBQTJCLEdBQTNCLDJCQUEy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ImltcG9ydCB7IEFCUCwgZG93bmxvYWRCbG9iLCBMaXN0U2VydmljZSwgUGFnZWRSZXN1bHREdG8sIFRyYWNrQnlTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uU2VydmljZSwgVG9hc3RlclNlcnZpY2UgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3RhYmxlLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlQWRhcHRlciB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgSGl0UGFyYW1zSW50ZWdyYXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaGl0LXByb3h5L2hpdC1wYXJhbXMtaW50ZWdyYXRvcnMvaGl0LXBhcmFtcy1pbnRlZ3JhdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFBhcmFtc0ludGVncmF0b3JTZXJ2aWNlLFxyXG4gIFBhcmFtc0ludGVncmF0b3JXaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG8sXHJcbn0gZnJvbSAnLi4vLi4vcHJveHkvcGFyYW1zLWludGVncmF0b3JzJztcclxuaW1wb3J0IHsgUGFyYW1zR2VuZXJhbER0byB9IGZyb20gJy4uLy4uL3Byb3h5L3BhcmFtcy1nZW5lcmFscyc7XHJcbmltcG9ydCB7IEhpdEVudGVncmF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uL2hpdC1wcm94eS9oaXQtZW50ZWdyYXRvcnMvaGl0LWVudGVncmF0b3Iuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaGl0LXBhcmFtcy1pbnRlZ3JhdG9yJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcbiAgcHJvdmlkZXJzOiBbTGlzdFNlcnZpY2UsIHsgcHJvdmlkZTogTmdiRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXRlQWRhcHRlciB9XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGl0LXBhcmFtcy1pbnRlZ3JhdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZXM6IFtdLFxyXG59KVxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLCAvLyBTZXJ2aXMgZ2liaSBnbG9iYWwgc2HEn2xhclxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGl0UGFyYW1zSW50ZWdyYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBVUkxfUEFUVEVSTiA9IC9eKGh0dHBzPzpcXC9cXC8pKFtcXHctXStcXC4pK1tcXHctXXsyLH0oWzpcXC8/I11bXlxcc10qKT8kLztcclxuXHJcbiAgZm9ybVBhcmFtc0ludGVncmF0b3I6IEZvcm1Hcm91cDtcclxuXHJcbiAgcGFyYW1zSW50ZWdyYXRvckR0b1dpdGhOYXZpZ2F0aW9uUHJvcGVydGllc0R0bz86IFBhcmFtc0ludGVncmF0b3JXaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG87XHJcblxyXG4gIHN1Ym1pdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgY29ubmVjdGlvblRlc3RCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBzY2VuYXJpb1R5cGVEYXRhU291cmNlOiBhbnk7XHJcbiAgZG9jdW1lbnRUeXBlRGF0YVNvdXJjZTogYW55O1xyXG5cclxuICBASW5wdXQoKSBwYXJhbXNHZW5lcmFsRHRvUGFydDE6IFBhcmFtc0dlbmVyYWxEdG87XHJcblxyXG4gIEBJbnB1dCgpIElzU3VibWl0QnV0dG9uSGlkZGVuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSB2YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IFBhcmFtc0ludGVncmF0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGl0UGFyYW1zSW50ZWdyYXRvcnNTZXJ2aWNlOiBIaXRQYXJhbXNJbnRlZ3JhdG9yc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaGl0RW50ZWdyYXRvcnNTZXJ2aWNlOiBIaXRFbnRlZ3JhdG9yc1NlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYnVpbGRGb3JtKCk7XHJcblxyXG4gICAgdGhpcy5nZXRQYXJhbXNJbnRlZ3JhdG9yKHRydWUsICcnKTtcclxuICB9XHJcblxyXG4gIGJ1aWxkRm9ybSgpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgc2VydmljZVVzZXIsXHJcbiAgICAgIHNlcnZpY2VQYXNzd29yZCxcclxuICAgICAgZUludm9pY2VHQkxhYmVsLFxyXG4gICAgICBlSW52b2ljZVBLTGFiZWwsXHJcbiAgICAgIGVEaXNwYXRjaEdCTGFiZWwsXHJcbiAgICAgIGVEaXNwYXRjaFBLTGFiZWwsXHJcbiAgICAgIGVBcmNoaXZlR0JMYWJlbCxcclxuICAgICAgZUFyY2hpdmVQS0xhYmVsLFxyXG4gICAgICBlbW1HQkxhYmVsLFxyXG4gICAgICBlbW1QS0xhYmVsLFxyXG4gICAgICBlSW52b2ljZUFwaVVybCxcclxuICAgICAgZURlc3BhdGNoQXBpVXJsLFxyXG4gICAgICBlQXJjaGl2ZUFwaVVybCxcclxuICAgICAgZW1tQXBpVXJsLFxyXG4gICAgICBicmFuY2hJZCxcclxuICAgIH0gPSB0aGlzLnBhcmFtc0ludGVncmF0b3JEdG9XaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG8/LnBhcmFtc0ludGVncmF0b3IgfHwge307XHJcblxyXG4gICAgdGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvciA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzZXJ2aWNlVXNlcjogW3NlcnZpY2VVc2VyID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg2NCldXSxcclxuICAgICAgc2VydmljZVBhc3N3b3JkOiBbc2VydmljZVBhc3N3b3JkID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg2NCldXSxcclxuICAgICAgZUludm9pY2VHQkxhYmVsOiBbZUludm9pY2VHQkxhYmVsID8/IG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXV0sXHJcbiAgICAgIGVJbnZvaWNlUEtMYWJlbDogW2VJbnZvaWNlUEtMYWJlbCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxyXG4gICAgICBlRGlzcGF0Y2hHQkxhYmVsOiBbXHJcbiAgICAgICAgZURpc3BhdGNoR0JMYWJlbCA/PyBudWxsLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyNTYpXSxcclxuICAgICAgXSxcclxuICAgICAgZURpc3BhdGNoUEtMYWJlbDogW1xyXG4gICAgICAgIGVEaXNwYXRjaFBLTGFiZWwgPz8gbnVsbCxcclxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV0sXHJcbiAgICAgIF0sXHJcbiAgICAgIC8vIGVBcmNoaXZlR0JMYWJlbDogW2VBcmNoaXZlR0JMYWJlbCA/PyBudWxsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU2KV1dLFxyXG4gICAgICAvLyBlQXJjaGl2ZVBLTGFiZWw6IFtlQXJjaGl2ZVBLTGFiZWwgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcclxuICAgICAgLy8gZW1tR0JMYWJlbDogW2VtbUdCTGFiZWwgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcclxuICAgICAgLy8gZW1tUEtMYWJlbDogW2VtbVBLTGFiZWwgPz8gbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildXSxcclxuICAgICAgZUludm9pY2VBcGlVcmw6IFtlSW52b2ljZUFwaVVybCA/PyBudWxsLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTEyKSwgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuVVJMX1BBVFRFUk4pXV0sXHJcbiAgICAgIGVEZXNwYXRjaEFwaVVybDogW2VEZXNwYXRjaEFwaVVybCA/PyBudWxsLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTEyKSwgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuVVJMX1BBVFRFUk4pXV0sXHJcbiAgICAgIGVBcmNoaXZlQXBpVXJsOiBbZUFyY2hpdmVBcGlVcmwgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDUxMiksIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLlVSTF9QQVRURVJOKV1dLFxyXG4gICAgICBlbW1BcGlVcmw6IFtlbW1BcGlVcmwgPz8gbnVsbCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDUxMiksIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLlVSTF9QQVRURVJOKV1dLFxyXG4gICAgICBicmFuY2hJZDogW2JyYW5jaElkID8/IG51bGwsIFtdXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgc3VibWl0Rm9ybSgpIHtcclxuICAgIGlmICh0aGlzLmZvcm1QYXJhbXNJbnRlZ3JhdG9yLmludmFsaWQpIHtcclxuICAgICAgd2luZG93LnNjcm9sbCh7XHJcbiAgICAgICAgdG9wOiAwLFxyXG4gICAgICAgIGxlZnQ6IDAsXHJcbiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoJ2VEb251c3VtOjpGaWxsUmVxdWlyZWRGaWVsZHMnKTtcclxuICAgICAgdGhpcy52YWxpZC5lbWl0KGZhbHNlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3VibWl0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5zYXZlUGFyYW1zSW50ZWdyYXRvcigpO1xyXG4gICAgICBpZiAoIXNhdmVkKSB7XHJcbiAgICAgICAgdGhpcy52YWxpZC5lbWl0KGZhbHNlKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHRlc3RSZXN1bHQgPSBhd2FpdCB0aGlzLnJ1bkNvbm5lY3Rpb25UZXN0KCk7XHJcbiAgICAgIHRoaXMudmFsaWQuZW1pdCh0ZXN0UmVzdWx0KTtcclxuICAgIH0gZmluYWxseSB7XHJcbiAgICAgIHRoaXMuc3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2F2ZVBhcmFtc0ludGVncmF0b3IoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLmZvcm1QYXJhbXNJbnRlZ3JhdG9yLmNvbnRyb2xzLmJyYW5jaElkLnNldFZhbHVlKG51bGwpO1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QkID0gdGhpcy5wYXJhbXNJbnRlZ3JhdG9yRHRvV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvXHJcbiAgICAgID8gdGhpcy5zZXJ2aWNlLnVwZGF0ZShcclxuICAgICAgICB0aGlzLnBhcmFtc0ludGVncmF0b3JEdG9XaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG8ucGFyYW1zSW50ZWdyYXRvci5pZCxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAuLi50aGlzLmZvcm1QYXJhbXNJbnRlZ3JhdG9yLnZhbHVlLFxyXG4gICAgICAgIH1cclxuICAgICAgKVxyXG4gICAgICA6IHRoaXMuc2VydmljZS5jcmVhdGUodGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci52YWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICAgIHJlcXVlc3QkLnN1YnNjcmliZShcclxuICAgICAgICBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLmdldFBhcmFtc0ludGVncmF0b3IoXHJcbiAgICAgICAgICAgIGZhbHNlLFxyXG4gICAgICAgICAgICB0aGlzLnBhcmFtc0ludGVncmF0b3JEdG9XaXRoTmF2aWdhdGlvblByb3BlcnRpZXNEdG8/LmJyYW5jaFxyXG4gICAgICAgICAgICAgID8gdGhpcy5wYXJhbXNJbnRlZ3JhdG9yRHRvV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvLmJyYW5jaC5pZFxyXG4gICAgICAgICAgICAgIDogJzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2FzdGVyU2VydmljZS5lcnJvcignZURvbnVzdW06OlRyYW5zYWN0aW9uVW5zdWNjZXNzZnVsJyk7XHJcbiAgICAgICAgICByZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcnVuQ29ubmVjdGlvblRlc3QoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci52YWx1ZTtcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5oaXRFbnRlZ3JhdG9yc1NlcnZpY2UuY29ubmVjdGlvblRlc3QocmVxdWVzdCkudGhlbihkYXRhID0+IHtcclxuICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLnN1Y2Nlc3MoJ2VEb251c3VtOjpDb25uZWN0aW9uU3VjY2Vzc2Z1bCcpO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3RlclNlcnZpY2UuZXJyb3IoZGF0YT8ubWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoKSA9PiB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0UGFyYW1zSW50ZWdyYXRvcihidWlsZEZvcm06IGJvb2xlYW4gPSBmYWxzZSwgYnJhbmNoSWQpIHtcclxuICAgIGRlYnVnZ2VyO1xyXG4gICAgdGhpcy5oaXRQYXJhbXNJbnRlZ3JhdG9yc1NlcnZpY2UuZ2V0UGFyYW1zSW50ZWdyYXRvcihicmFuY2hJZCkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICBkZWJ1Z2dlcjtcclxuICAgICAgdGhpcy5wYXJhbXNJbnRlZ3JhdG9yRHRvV2l0aE5hdmlnYXRpb25Qcm9wZXJ0aWVzRHRvID0gZGF0YTtcclxuXHJcbiAgICAgIGlmIChidWlsZEZvcm0pIHRoaXMuYnVpbGRGb3JtKCk7XHJcblxyXG4gICAgICB0aGlzLmZvcm1QYXJhbXNJbnRlZ3JhdG9yLmNvbnRyb2xzLmJyYW5jaElkLnNldFZhbHVlKGJyYW5jaElkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlZEJyYW5jaChkYXRhOiBQYXJhbXNHZW5lcmFsRHRvKSB7XHJcbiAgICB0aGlzLnBhcmFtc0dlbmVyYWxEdG9QYXJ0MSA9IGRhdGE7XHJcblxyXG4gICAgaWYgKCFkYXRhPy5pc0JyYW5jaCkgdGhpcy5nZXRQYXJhbXNJbnRlZ3JhdG9yKHRydWUsICcnKTtcclxuICB9XHJcblxyXG4gIGJyYW5jaE9uQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5nZXRQYXJhbXNJbnRlZ3JhdG9yKHRydWUsIHRoaXMuZm9ybVBhcmFtc0ludGVncmF0b3IuY29udHJvbHMuYnJhbmNoSWQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29ubmVjdGlvblRlc3QoKSB7XHJcbiAgLy8gICBpZiAodGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci5jb250cm9scy5icmFuY2hJZC52YWx1ZSA9PSAnJylcclxuICAvLyAgICAgdGhpcy5mb3JtUGFyYW1zSW50ZWdyYXRvci5jb250cm9scy5icmFuY2hJZC5zZXRWYWx1ZSgnMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwJyk7XHJcblxyXG4gIC8vICAgbGV0IHJlcXVlc3QgPSB0aGlzLmZvcm1QYXJhbXNJbnRlZ3JhdG9yLnZhbHVlO1xyXG5cclxuICAvLyAgIHRoaXMuaGl0RW50ZWdyYXRvcnNTZXJ2aWNlLmNvbm5lY3Rpb25UZXN0KHJlcXVlc3QpLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAvLyAgICAgdGhpcy52YWxpZC5lbWl0KGRhdGEpO1xyXG5cclxuICAvLyAgICAgcmV0dXJuIGRhdGE7XHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIGFzeW5jIGNvbm5lY3Rpb25UZXN0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybVBhcmFtc0ludGVncmF0b3IuaW52YWxpZCkge1xyXG4gICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKCdlRG9udXN1bTo6RmlsbFJlcXVpcmVkRmllbGRzJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbm5lY3Rpb25UZXN0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IHNhdmVkID0gYXdhaXQgdGhpcy5zYXZlUGFyYW1zSW50ZWdyYXRvcigpO1xyXG4gICAgICBpZiAoIXNhdmVkKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ydW5Db25uZWN0aW9uVGVzdCgpO1xyXG4gICAgfSBmaW5hbGx5IHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uVGVzdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3VibWl0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1QYXJhbXNJbnRlZ3JhdG9yXCIgaWQ9XCJwYXJhbXMtaW50ZWdyYXRvclwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIiB2YWxpZGF0ZU9uU3VibWl0PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInBhcmFtc0dlbmVyYWxEdG9QYXJ0MT8uaXNCcmFuY2hcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1icmFuY2gtaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6QnJhbmNoJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YWJwLWxvb2t1cC1zZWxlY3QgY2lkPVwicGFyYW1zLWludGVncmF0b3ItYnJhbmNoLWlkXCIgZm9ybUNvbnRyb2xOYW1lPVwiYnJhbmNoSWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2dldEZuXT1cInNlcnZpY2UuZ2V0QnJhbmNoTG9va3VwXCIgKGNoYW5nZSk9XCJicmFuY2hPbkNoYW5nZSgpXCI+PC9hYnAtbG9va3VwLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1zZXJ2aWNlLXVzZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U2VydmljZVVzZXInIHwgYWJwTG9jYWxpemF0aW9uIH19ICpcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInBhcmFtcy1pbnRlZ3JhdG9yLXNlcnZpY2UtdXNlclwiIGZvcm1Db250cm9sTmFtZT1cInNlcnZpY2VVc2VyXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiNjRcIiBhdXRvZm9jdXMgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInBhcmFtcy1pbnRlZ3JhdG9yLXNlcnZpY2UtcGFzc3dvcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6U2VydmljZVBhc3N3b3JkJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJwYXJhbXMtaW50ZWdyYXRvci1zZXJ2aWNlLXBhc3N3b3JkXCIgZm9ybUNvbnRyb2xOYW1lPVwic2VydmljZVBhc3N3b3JkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNjRcIiB0eXBlPVwicGFzc3dvcmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1laW52b2ljZS1nYmxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVJbnZvaWNlR0JMYWJlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGFyYW1zLWludGVncmF0b3ItZWludm9pY2UtZ2JsYWJlbFwiIGZvcm1Db250cm9sTmFtZT1cImVJbnZvaWNlR0JMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjI1NlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1laW52b2ljZS1wa2xhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVJbnZvaWNlUEtMYWJlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGFyYW1zLWludGVncmF0b3ItZWludm9pY2UtcGtsYWJlbFwiIGZvcm1Db250cm9sTmFtZT1cImVJbnZvaWNlUEtMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjI1NlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1lZGlzcGF0Y2gtZ2JsYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFRGlzcGF0Y2hHQkxhYmVsJyB8IGFicExvY2FsaXphdGlvbiB9fSAqXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJwYXJhbXMtaW50ZWdyYXRvci1lZGlzcGF0Y2gtZ2JsYWJlbFwiIGZvcm1Db250cm9sTmFtZT1cImVEaXNwYXRjaEdCTGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBtYXhsZW5ndGg9XCIyNTZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyYW1zLWludGVncmF0b3ItZWRpc3BhdGNoLXBrbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RURpc3BhdGNoUEtMYWJlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGFyYW1zLWludGVncmF0b3ItZWRpc3BhdGNoLXBrbGFiZWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlRGlzcGF0Y2hQS0xhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiMjU2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInBhcmFtcy1pbnRlZ3JhdG9yLWVpbnZvaWNlLWFwaS11cmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdlRG9udXN1bTo6RUludm9pY2VBcGlVcmwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJwYXJhbXMtaW50ZWdyYXRvci1laW52b2ljZS1hcGktdXJsXCIgZm9ybUNvbnRyb2xOYW1lPVwiZUludm9pY2VBcGlVcmxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBtYXhsZW5ndGg9XCI1MTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiZm9ybVBhcmFtc0ludGVncmF0b3IuZ2V0KCdlSW52b2ljZUFwaVVybCcpPy5pbnZhbGlkICYmIChmb3JtUGFyYW1zSW50ZWdyYXRvci5nZXQoJ2VJbnZvaWNlQXBpVXJsJyk/LnRvdWNoZWQgfHwgZm9ybVBhcmFtc0ludGVncmF0b3IuZ2V0KCdlSW52b2ljZUFwaVVybCcpPy5kaXJ0eSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPnt7ICdlRG9udXN1bTo6SW52YWxpZFVybEZvcm1hdCcgfCBhYnBMb2NhbGl6YXRpb24gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInBhcmFtcy1pbnRlZ3JhdG9yLWVkZXNwYXRjaC1hcGktdXJsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVEZXNwYXRjaEFwaVVybCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInBhcmFtcy1pbnRlZ3JhdG9yLWVkZXNwYXRjaC1hcGktdXJsXCIgZm9ybUNvbnRyb2xOYW1lPVwiZURlc3BhdGNoQXBpVXJsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImZvcm1QYXJhbXNJbnRlZ3JhdG9yLmdldCgnZURlc3BhdGNoQXBpVXJsJyk/LmludmFsaWQgJiYgKGZvcm1QYXJhbXNJbnRlZ3JhdG9yLmdldCgnZURlc3BhdGNoQXBpVXJsJyk/LnRvdWNoZWQgfHwgZm9ybVBhcmFtc0ludGVncmF0b3IuZ2V0KCdlRGVzcGF0Y2hBcGlVcmwnKT8uZGlydHkpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj57eyAnZURvbnVzdW06OkludmFsaWRVcmxGb3JtYXQnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1lYXJjaGl2ZS1hcGktdXJsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVBcmNoaXZlQXBpVXJsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGFyYW1zLWludGVncmF0b3ItZWFyY2hpdmUtYXBpLXVybFwiIGZvcm1Db250cm9sTmFtZT1cImVBcmNoaXZlQXBpVXJsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbWF4bGVuZ3RoPVwiNTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImZvcm1QYXJhbXNJbnRlZ3JhdG9yLmdldCgnZUFyY2hpdmVBcGlVcmwnKT8uaW52YWxpZCAmJiAoZm9ybVBhcmFtc0ludGVncmF0b3IuZ2V0KCdlQXJjaGl2ZUFwaVVybCcpPy50b3VjaGVkIHx8IGZvcm1QYXJhbXNJbnRlZ3JhdG9yLmdldCgnZUFyY2hpdmVBcGlVcmwnKT8uZGlydHkpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIj57eyAnZURvbnVzdW06OkludmFsaWRVcmxGb3JtYXQnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1lbW0tYXBpLXVybFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2VEb251c3VtOjpFbW1BcGlVcmwnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJwYXJhbXMtaW50ZWdyYXRvci1lbW0tYXBpLXVybFwiIGZvcm1Db250cm9sTmFtZT1cImVtbUFwaVVybFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjUxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJmb3JtUGFyYW1zSW50ZWdyYXRvci5nZXQoJ2VtbUFwaVVybCcpPy5pbnZhbGlkICYmIChmb3JtUGFyYW1zSW50ZWdyYXRvci5nZXQoJ2VtbUFwaVVybCcpPy50b3VjaGVkIHx8IGZvcm1QYXJhbXNJbnRlZ3JhdG9yLmdldCgnZW1tQXBpVXJsJyk/LmRpcnR5KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+e3sgJ2VEb251c3VtOjpJbnZhbGlkVXJsRm9ybWF0JyB8IGFicExvY2FsaXphdGlvbiB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1lYXJjaGl2ZS1nYmxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVBcmNoaXZlR0JMYWJlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGFyYW1zLWludGVncmF0b3ItZWFyY2hpdmUtZ2JsYWJlbFwiIGZvcm1Db250cm9sTmFtZT1cImVBcmNoaXZlR0JMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjI1NlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJhbXMtaW50ZWdyYXRvci1lYXJjaGl2ZS1wa2xhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnZURvbnVzdW06OkVBcmNoaXZlUEtMYWJlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX0gKlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicGFyYW1zLWludGVncmF0b3ItZWFyY2hpdmUtcGtsYWJlbFwiIGZvcm1Db250cm9sTmFtZT1cImVBcmNoaXZlUEtMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiIG1heGxlbmd0aD1cIjI1NlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgdGV4dC1sZy1lbmRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbWUtMlwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25uZWN0aW9uVGVzdEJ1dHRvbkRpc2FibGVkIHx8IGZvcm1QYXJhbXNJbnRlZ3JhdG9yLmludmFsaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb25uZWN0aW9uVGVzdCgpXCI+e3tcclxuICAgICAgICAgICAgICAgICAgICAnZURvbnVzdW06OkNvbm5lY3Rpb25UZXN0JyB8IGFicExvY2FsaXphdGlvbiB9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBidXR0b25UeXBlPVwic3VibWl0XCIgZm9ybU5hbWU9XCJwYXJhbXMtaW50ZWdyYXRvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInN1Ym1pdEJ1dHRvbkRpc2FibGVkIHx8IGZvcm1QYXJhbXNJbnRlZ3JhdG9yLmludmFsaWRcIiBbaGlkZGVuXT1cIklzU3VibWl0QnV0dG9uSGlkZGVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgICAgPC9hYnAtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -84,28 +84,6 @@ export class HitInboundInvoiceService {
84
84
  url: `/api/e-donusum/invoices/create-multiple-empty-drafts`,
85
85
  body: requestDto
86
86
  }, { apiName: this.apiName });
87
- // Manuel Kalem Ekle - XML fatura satırlarını getir
88
- this.getInvoiceXmlLines = (invoiceId) => this.restService.request({
89
- method: 'GET',
90
- url: `/api/e-donusum/invoices/get-invoice-xml-lines/${invoiceId}`,
91
- }, { apiName: this.apiName });
92
- // SAP OITM - Kalem listesi
93
- this.getItems = (searchText) => this.restService.request({
94
- method: 'GET',
95
- url: '/api/e-donusum/invoices/get-items',
96
- params: { searchText: searchText }
97
- }, { apiName: this.apiName });
98
- // SAP OVTG - Vergi grupları
99
- this.getTaxGroups = (category) => this.restService.request({
100
- method: 'GET',
101
- url: '/api/e-donusum/invoices/get-tax-groups',
102
- params: { category: category }
103
- }, { apiName: this.apiName });
104
- // Muhatap katalog eşleştirme
105
- this.getCatalogMatchLines = (invoiceId) => this.restService.request({
106
- method: 'GET',
107
- url: `/api/e-donusum/invoices/get-catalog-match-lines/${invoiceId}`,
108
- }, { apiName: this.apiName });
109
87
  this.getIncomingInvoicePdfsMultiple = (invoiceIds) => this.restService.request({
110
88
  method: 'POST',
111
89
  url: '/api/e-donusum/invoices/get-incoming-invoice-pdfs-multiple',
@@ -142,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
142
120
  providedIn: 'root',
143
121
  }]
144
122
  }], ctorParameters: function () { return [{ type: i1.RestService }, { type: i2.DevexpressRestService }]; } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWluYm91bmQtaW52b2ljZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvaGl0LXByb3h5L2hpdC1pbmJvdW5kLWludm9pY2VzL2hpdC1pbmJvdW5kLWludm9pY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyx3QkFBd0I7SUE0TWpDLFlBQW9CLFdBQXdCLEVBQVUsWUFBbUM7UUFBckUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUEzTXpGLFlBQU8sR0FBRyxVQUFVLENBQUM7UUFFckIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDaEQsR0FBRyxFQUFFLElBQUk7WUFDVCxPQUFPLEVBQUUsOENBQThDO1NBQzFELENBQUMsQ0FBQTtRQUVGLHdCQUFtQixHQUFHLENBQUMsV0FBbUIsRUFBRSxTQUFrQixFQUFFLEVBQVUsRUFBRSxFQUFFLENBQzFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUNwQjtZQUNJLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLDZDQUE2QyxXQUFXLEVBQUU7WUFDL0QsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7U0FDckUsRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVuQyxzQkFBaUIsR0FBRyxDQUFDLFNBQWlCLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQVc7WUFDL0IsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVB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RUFBRSxDQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FDcEI7WUFDSSxNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSx5REFBeUQ7WUFDOUQsSUFBSSxFQUFFLFVBQVU7U0FDbkIsRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUUwRCxDQUFDOztxSEE1TXJGLHdCQUF3Qjt5SEFBeEIsd0JBQXdCLGNBRnJCLE1BQU07MkZBRVQsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSBcIkBhYnAvbmcuY29yZVwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRGV2ZXhwcmVzc1Jlc3RTZXJ2aWNlIH0gZnJvbSBcIi4uL2RldmV4cHJlc3MtcXVlcnktYnVpbGRlci9kZXZleHByZXNzLXF1ZXJ5LWJ1aWxkZXJcIjtcclxuaW1wb3J0IHsgQ29ubmVjdG9yRHJhZnREb2N1bWVudER0bywgQ29ubmVjdG9yTXVsdGlwbGVFbXB0eURyYWZ0RHRvLCBDb25uZWN0b3JNdWx0aXBsZUVtcHR5RHJhZnRSZXNwb25zZUR0bywgQ29ubmVjdG9yUHVyY2hhc2VJbnZvaWNlRG9jdW1lbnREdG8sIENyZWF0ZUJ1c2luZXNzUGFydG5lclN1cHBsaWVyRHRvIH0gZnJvbSBcIi4vbW9kZWxzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRJbmJvdW5kSW52b2ljZVNlcnZpY2Uge1xyXG4gICAgYXBpTmFtZSA9ICdlRG9udXN1bSc7XHJcblxyXG4gICAgTG9hZEluYm91bmRJbnZvaWNlcyA9IHRoaXMuZGV2ZXhTZXJ2aWNlLmNyZWF0ZVN0b3JlKHtcclxuICAgICAgICBrZXk6IFwiaWRcIixcclxuICAgICAgICBsb2FkVXJsOiAnYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9sb2FkLWluYm91bmQtaW52b2ljZXMnXHJcbiAgICB9KVxyXG5cclxuICAgIHNlbmRJbnZvaWNlUmVzcG9uc2UgPSAoaW52b2ljZVVVSUQ6IHN0cmluZywgaXNDb25maXJtOiBib29sZWFuLCBpZDogc3RyaW5nKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGAvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9zZW5kLWFwcC1yZXNwb25zZS8ke2ludm9pY2VVVUlEfWAsXHJcbiAgICAgICAgICAgICAgICBwYXJhbXM6IHsgaW52b2ljZVVVSUQ6IGludm9pY2VVVUlELCBpc0NvbmZpcm06IGlzQ29uZmlybSwgaWQ6IGlkIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSk7XHJcblxyXG4gICAgZ2V0SW5ib3VuZEludm9pY2UgPSAoc3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LWluYm91bmQtaW52b2ljZXMnLFxyXG4gICAgICAgICAgICBwYXJhbXM6IHsgc3RhcnREYXRlOiBzdGFydERhdGUsIGVuZERhdGU6IGVuZERhdGUsIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG4gICAgZ2V0SW5ib3VuZEludm9pY2VWaWV3ID0gKGludm9pY2VHVUlEOiBzdHJpbmcpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55Pih7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgICAgICAgIHVybDogYC9hcGkvZS1kb251c3VtL2ludm9pY2VzL2dldC1pbmJvdW5kLWludm9pY2Utdmlldy8ke2ludm9pY2VHVUlEfWAsXHJcbiAgICAgICAgICAgIHBhcmFtczogeyBpbnZvaWNlR1VJRDogaW52b2ljZUdVSUQgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pXHJcbiAgICBnZXRCYW5rQWNjb3VudEJ5Q3VycmVuY3kgPSAoYWN0Q3Vycjogc3RyaW5nKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9nZXQtYmFuay1hY2NvdW50cycsXHJcbiAgICAgICAgICAgIHBhcmFtczogeyBhY3RDdXJyOiBhY3RDdXJyIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG5cclxuICAgIGNoZWNrQnVzaW5lc3NQYXJ0bmVyRXhpc3QgPSAodGNrblZrbjogc3RyaW5nLGNhcmRUeXBlOnN0cmluZz0nY1N1cHBsaWVyJykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvY2hlY2stYnVzaW5lc3MtcGFydG5lci1ieS12a24nLFxyXG4gICAgICAgICAgICBwYXJhbXM6IHsgdGNrblZrbjogdGNrblZrbixjYXJkVHlwZTpjYXJkVHlwZSB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuXHJcbiAgICBnZXRQYXJ0bmVyTnVtYmVyaW5nU2VyaWVzID0gKCkgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LWRvY3VtZW50LW51bWJlcmluZy1zZXJpZXMnLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG5cclxuICAgIGdldFBhcnRuZXJEZXRhaWxzID0gKGludm9pY2VHdWlkOiBzdHJpbmcpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55Pih7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgICAgICAgIHVybDogJy9hcGkvZS1kb251c3VtL2ludm9pY2VzL2dldC1pbmJvdW5kLWludm9pY2UtcGFydG5lci1kZXRhaWwnLFxyXG4gICAgICAgICAgICBwYXJhbXM6IHsgaW52b2ljZUd1aWQ6IGludm9pY2VHdWlkIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG5cclxuICAgIGdldENvdW50cmllcyA9ICgpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55Pih7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgICAgICAgIHVybDogJy9hcGkvZS1kb251c3VtL2ludm9pY2VzL2dldC1jb3VudHJpZXMnLFxyXG4gICAgICAgICAgICBwYXJhbXM6IHt9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuXHJcbiAgICBnZXRTdGF0ZXMgPSAoY291bnRyeUNvZGU6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LXN0YXRlcycsXHJcbiAgICAgICAgICAgIHBhcmFtczogeyBjb3VudHJ5Q29kZTogY291bnRyeUNvZGUgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pXHJcblxyXG4gICAgZ2V0T3BlbkRvY3VtZW50cyA9ICh0Y2tuVmtuOiBzdHJpbmcpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55Pih7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgICAgICAgIHVybDogJy9hcGkvZS1kb251c3VtL2ludm9pY2VzL2dldC1vcGVuLWRvY3VtZW50cycsXHJcbiAgICAgICAgICAgIHBhcmFtczogeyB0Y2tuVmtuOiB0Y2tuVmtuIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG5cclxuICAgIGNyZWF0ZUJ1c2luZXNzUGFydG5lckZvclN1cHBsaWVyID0gKHJlcXVlc3REdG86IENyZWF0ZUJ1c2luZXNzUGFydG5lclN1cHBsaWVyRHRvKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvY3JlYXRlLWJ1c2luZXNzLXBhcnRuZXItZm9yLXN1cHBsaWVyJyxcclxuICAgICAgICAgICAgYm9keTogcmVxdWVzdER0b1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pXHJcblxyXG4gICAgY3JlYXRlRHJhZnREb2N1bWVudCA9IChyZXF1ZXN0RHRvOiBDb25uZWN0b3JEcmFmdERvY3VtZW50RHRvLCBpbnZvaWNlSUQ6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgICAgIHVybDogYC9hcGkvZS1kb251c3VtL2ludm9pY2VzL2NyZWF0ZS1kcmFmdC1kb2N1bWVudC8ke2ludm9pY2VJRH1gLFxyXG4gICAgICAgICAgICBib2R5OiByZXF1ZXN0RHRvXHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuXHJcbiAgICBjcmVhdGVQdXJjaGFzZUludm9pY2VEb2N1bWVudCA9IChyZXF1ZXN0RHRvOiBDb25uZWN0b3JQdXJjaGFzZUludm9pY2VEb2N1bWVudER0bywgaW52b2ljZUlEOiBzdHJpbmcpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55Pih7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICB1cmw6IGAvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9jcmVhdGUtcHVyY2hhc2UtaW52b2ljZS1kb2N1bWVudC8ke2ludm9pY2VJRH1gLFxyXG4gICAgICAgICAgICBib2R5OiByZXF1ZXN0RHRvXHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuXHJcbiAgICBwcm9jZXNzTWFudWFsID0gKGludm9pY2VJRDogc3RyaW5nKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgdXJsOiBgL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvcHJvY2Vzcy1tYW51YWwvJHtpbnZvaWNlSUR9YFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pXHJcblxyXG4gICAgY3JlYXRlTXVsdGlwbGVFbXB0eURyYWZ0cyA9IChyZXF1ZXN0RHRvOiBDb25uZWN0b3JNdWx0aXBsZUVtcHR5RHJhZnREdG9bXSkgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBgL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvY3JlYXRlLW11bHRpcGxlLWVtcHR5LWRyYWZ0c2AsXHJcbiAgICAgICAgICAgICAgICBib2R5OiByZXF1ZXN0RHRvXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH1cclxuICAgICAgICApO1xyXG5cclxuICAgIC8vIE1hbnVlbCBLYWxlbSBFa2xlIC0gWE1MIGZhdHVyYSBzYXTEsXJsYXLEsW7EsSBnZXRpclxyXG4gICAgZ2V0SW52b2ljZVhtbExpbmVzID0gKGludm9pY2VJZDogc3RyaW5nKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICB1cmw6IGAvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9nZXQtaW52b2ljZS14bWwtbGluZXMvJHtpbnZvaWNlSWR9YCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG5cclxuICAgIC8vIFNBUCBPSVRNIC0gS2FsZW0gbGlzdGVzaVxyXG4gICAgZ2V0SXRlbXMgPSAoc2VhcmNoVGV4dDogc3RyaW5nKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9nZXQtaXRlbXMnLFxyXG4gICAgICAgICAgICBwYXJhbXM6IHsgc2VhcmNoVGV4dDogc2VhcmNoVGV4dCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuXHJcbiAgICAvLyBTQVAgT1ZURyAtIFZlcmdpIGdydXBsYXLEsVxyXG4gICAgZ2V0VGF4R3JvdXBzID0gKGNhdGVnb3J5OiBzdHJpbmcpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55Pih7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgICAgICAgIHVybDogJy9hcGkvZS1kb251c3VtL2ludm9pY2VzL2dldC10YXgtZ3JvdXBzJyxcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGNhdGVnb3J5OiBjYXRlZ29yeSB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuXHJcbiAgICAvLyBNdWhhdGFwIGthdGFsb2cgZcWfbGXFn3Rpcm1lXHJcbiAgICBnZXRDYXRhbG9nTWF0Y2hMaW5lcyA9IChpbnZvaWNlSWQ6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgdXJsOiBgL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LWNhdGFsb2ctbWF0Y2gtbGluZXMvJHtpbnZvaWNlSWR9YCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG4gICAgZ2V0SW5jb21pbmdJbnZvaWNlUGRmc011bHRpcGxlID0gKGludm9pY2VJZHM6IHN0cmluZ1tdKSA9PlxyXG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgQmxvYj4oXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LWluY29taW5nLWludm9pY2UtcGRmcy1tdWx0aXBsZScsXHJcbiAgICAgICAgICAgIGJvZHk6IGludm9pY2VJZHMsXHJcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KTtcclxuXHJcblxyXG4gICAgTG9hZEluYm91bmRJbnZvaWNlRmlsZXMgPSAoaW52b2ljZUdVSUQ6IHN0cmluZykgPT4gdGhpcy5kZXZleFNlcnZpY2UuY3JlYXRlU3RvcmUoe1xyXG4gICAgICAgIGtleTogXCJjb250ZW50TWFzdGVySWRcIixcclxuICAgICAgICBsb2FkVXJsOiAnYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9zaG93LWluYm91bmQtaW52b2ljZS1maWxlcycsXHJcbiAgICAgICAgcGFyYW1zOiB7IGludm9pY2VHVUlEOiBpbnZvaWNlR1VJRCB9XHJcbiAgICB9KVxyXG5cclxuICAgIGRvd25sb2FkRmlsZUJ5SWQgPSAoYmxvYklEOiBzdHJpbmcpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55PihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgICAgIHVybDogYC9hcGkvZS1kb251c3VtL2ludm9pY2VzL2Rvd25sb2FkLWZpbGUtYnktaWQvJHtibG9iSUR9YCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczogeyBibG9iSUQ6IGJsb2JJRCB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pO1xyXG4gICAgZ2V0SW5ib3VuZEludm9pY2VQZGZzTXVsdGlwbGUgPSAoaW52b2ljZUlkczogc3RyaW5nW10pID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55PihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9nZXQtaW5ib3VuZC1pbnZvaWNlLXBkZnMtbXVsdGlwbGUnLFxyXG4gICAgICAgICAgICAgICAgYm9keTogaW52b2ljZUlkc1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KTtcclxuXHJcblxyXG4gICAgZ2V0SW5ib3VuZEludm9pY2VQZGZzTWVyZ2VkID0gKGludm9pY2VJZHM6IHN0cmluZ1tdKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LWluYm91bmQtaW52b2ljZS1wZGZzLW1lcmdlZCcsXHJcbiAgICAgICAgICAgICAgICBib2R5OiBpbnZvaWNlSWRzXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLCBwcml2YXRlIGRldmV4U2VydmljZTogRGV2ZXhwcmVzc1Jlc3RTZXJ2aWNlKSB7IH1cclxufSJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LWluYm91bmQtaW52b2ljZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZS1kb251c3VtL3NyYy9saWIvaGl0LXByb3h5L2hpdC1pbmJvdW5kLWludm9pY2VzL2hpdC1pbmJvdW5kLWludm9pY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyx3QkFBd0I7SUEwS2pDLFlBQW9CLFdBQXdCLEVBQVUsWUFBbUM7UUFBckUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBdUI7UUF6S3pGLFlBQU8sR0FBRyxVQUFVLENBQUM7UUFFckIsd0JBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7WUFDaEQsR0FBRyxFQUFFLElBQUk7WUFDVCxPQUFPLEVBQUUsOENBQThDO1NBQzFELENBQUMsQ0FBQTtRQUVGLHdCQUFtQixHQUFHLENBQUMsV0FBbUIsRUFBRSxTQUFrQixFQUFFLEVBQVUsRUFBRSxFQUFFLENBQzFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUNwQjtZQUNJLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLDZDQUE2QyxXQUFXLEVBQUU7WUFDL0QsTUFBTSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7U0FDckUsRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVuQyxzQkFBaUIsR0FBRyxDQUFDLFNBQWlCLEVBQUUsT0FBZSxFQUFFLEVBQUUsQ0FDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQVc7WUFDL0IsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVB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QUFPLEVBQUUsQ0FBQyxDQUFDO1FBR25DLGdDQUEyQixHQUFHLENBQUMsVUFBb0IsRUFBRSxFQUFFLENBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUNwQjtZQUNJLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLHlEQUF5RDtZQUM5RCxJQUFJLEVBQUUsVUFBVTtTQUNuQixFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRTBELENBQUM7O3FIQTFLckYsd0JBQXdCO3lIQUF4Qix3QkFBd0IsY0FGckIsTUFBTTsyRkFFVCx3QkFBd0I7a0JBSHBDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tIFwiQGFicC9uZy5jb3JlXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEZXZleHByZXNzUmVzdFNlcnZpY2UgfSBmcm9tIFwiLi4vZGV2ZXhwcmVzcy1xdWVyeS1idWlsZGVyL2RldmV4cHJlc3MtcXVlcnktYnVpbGRlclwiO1xyXG5pbXBvcnQgeyBDb25uZWN0b3JEcmFmdERvY3VtZW50RHRvLCBDb25uZWN0b3JNdWx0aXBsZUVtcHR5RHJhZnREdG8sIENvbm5lY3Rvck11bHRpcGxlRW1wdHlEcmFmdFJlc3BvbnNlRHRvLCBDb25uZWN0b3JQdXJjaGFzZUludm9pY2VEb2N1bWVudER0bywgQ3JlYXRlQnVzaW5lc3NQYXJ0bmVyU3VwcGxpZXJEdG8gfSBmcm9tIFwiLi9tb2RlbHNcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdEluYm91bmRJbnZvaWNlU2VydmljZSB7XHJcbiAgICBhcGlOYW1lID0gJ2VEb251c3VtJztcclxuXHJcbiAgICBMb2FkSW5ib3VuZEludm9pY2VzID0gdGhpcy5kZXZleFNlcnZpY2UuY3JlYXRlU3RvcmUoe1xyXG4gICAgICAgIGtleTogXCJpZFwiLFxyXG4gICAgICAgIGxvYWRVcmw6ICdhcGkvZS1kb251c3VtL2ludm9pY2VzL2xvYWQtaW5ib3VuZC1pbnZvaWNlcydcclxuICAgIH0pXHJcblxyXG4gICAgc2VuZEludm9pY2VSZXNwb25zZSA9IChpbnZvaWNlVVVJRDogc3RyaW5nLCBpc0NvbmZpcm06IGJvb2xlYW4sIGlkOiBzdHJpbmcpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55PihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgICAgIHVybDogYC9hcGkvZS1kb251c3VtL2ludm9pY2VzL3NlbmQtYXBwLXJlc3BvbnNlLyR7aW52b2ljZVVVSUR9YCxcclxuICAgICAgICAgICAgICAgIHBhcmFtczogeyBpbnZvaWNlVVVJRDogaW52b2ljZVVVSUQsIGlzQ29uZmlybTogaXNDb25maXJtLCBpZDogaWQgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KTtcclxuXHJcbiAgICBnZXRJbmJvdW5kSW52b2ljZSA9IChzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9nZXQtaW5ib3VuZC1pbnZvaWNlcycsXHJcbiAgICAgICAgICAgIHBhcmFtczogeyBzdGFydERhdGU6IHN0YXJ0RGF0ZSwgZW5kRGF0ZTogZW5kRGF0ZSwgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pXHJcbiAgICBnZXRJbmJvdW5kSW52b2ljZVZpZXcgPSAoaW52b2ljZUdVSUQ6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgdXJsOiBgL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LWluYm91bmQtaW52b2ljZS12aWV3LyR7aW52b2ljZUdVSUR9YCxcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGludm9pY2VHVUlEOiBpbnZvaWNlR1VJRCB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuICAgIGdldEJhbmtBY2NvdW50QnlDdXJyZW5jeSA9IChhY3RDdXJyOiBzdHJpbmcpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55Pih7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXHJcbiAgICAgICAgICAgIHVybDogJy9hcGkvZS1kb251c3VtL2ludm9pY2VzL2dldC1iYW5rLWFjY291bnRzJyxcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGFjdEN1cnI6IGFjdEN1cnIgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pXHJcblxyXG4gICAgY2hlY2tCdXNpbmVzc1BhcnRuZXJFeGlzdCA9ICh0Y2tuVmtuOiBzdHJpbmcsY2FyZFR5cGU6c3RyaW5nPSdjU3VwcGxpZXInKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9jaGVjay1idXNpbmVzcy1wYXJ0bmVyLWJ5LXZrbicsXHJcbiAgICAgICAgICAgIHBhcmFtczogeyB0Y2tuVmtuOiB0Y2tuVmtuLGNhcmRUeXBlOmNhcmRUeXBlIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG5cclxuICAgIGdldFBhcnRuZXJOdW1iZXJpbmdTZXJpZXMgPSAoKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9nZXQtZG9jdW1lbnQtbnVtYmVyaW5nLXNlcmllcycsXHJcbiAgICAgICAgfSxcclxuXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pXHJcblxyXG4gICAgZ2V0UGFydG5lckRldGFpbHMgPSAoaW52b2ljZUd1aWQ6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LWluYm91bmQtaW52b2ljZS1wYXJ0bmVyLWRldGFpbCcsXHJcbiAgICAgICAgICAgIHBhcmFtczogeyBpbnZvaWNlR3VpZDogaW52b2ljZUd1aWQgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pXHJcblxyXG4gICAgZ2V0Q291bnRyaWVzID0gKCkgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LWNvdW50cmllcycsXHJcbiAgICAgICAgICAgIHBhcmFtczoge31cclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG5cclxuICAgIGdldFN0YXRlcyA9IChjb3VudHJ5Q29kZTogc3RyaW5nKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9nZXQtc3RhdGVzJyxcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGNvdW50cnlDb2RlOiBjb3VudHJ5Q29kZSB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuXHJcbiAgICBnZXRPcGVuRG9jdW1lbnRzID0gKHRja25Wa246IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZ2V0LW9wZW4tZG9jdW1lbnRzJyxcclxuICAgICAgICAgICAgcGFyYW1zOiB7IHRja25Wa246IHRja25Wa24gfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pXHJcblxyXG4gICAgY3JlYXRlQnVzaW5lc3NQYXJ0bmVyRm9yU3VwcGxpZXIgPSAocmVxdWVzdER0bzogQ3JlYXRlQnVzaW5lc3NQYXJ0bmVyU3VwcGxpZXJEdG8pID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55Pih7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9jcmVhdGUtYnVzaW5lc3MtcGFydG5lci1mb3Itc3VwcGxpZXInLFxyXG4gICAgICAgICAgICBib2R5OiByZXF1ZXN0RHRvXHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuXHJcbiAgICBjcmVhdGVEcmFmdERvY3VtZW50ID0gKHJlcXVlc3REdG86IENvbm5lY3RvckRyYWZ0RG9jdW1lbnREdG8sIGludm9pY2VJRDogc3RyaW5nKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgdXJsOiBgL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvY3JlYXRlLWRyYWZ0LWRvY3VtZW50LyR7aW52b2ljZUlEfWAsXHJcbiAgICAgICAgICAgIGJvZHk6IHJlcXVlc3REdG9cclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG5cclxuICAgIGNyZWF0ZVB1cmNoYXNlSW52b2ljZURvY3VtZW50ID0gKHJlcXVlc3REdG86IENvbm5lY3RvclB1cmNoYXNlSW52b2ljZURvY3VtZW50RHRvLCBpbnZvaWNlSUQ6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgICAgIHVybDogYC9hcGkvZS1kb251c3VtL2ludm9pY2VzL2NyZWF0ZS1wdXJjaGFzZS1pbnZvaWNlLWRvY3VtZW50LyR7aW52b2ljZUlEfWAsXHJcbiAgICAgICAgICAgIGJvZHk6IHJlcXVlc3REdG9cclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KVxyXG5cclxuICAgIHByb2Nlc3NNYW51YWwgPSAoaW52b2ljZUlEOiBzdHJpbmcpID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55Pih7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICB1cmw6IGAvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9wcm9jZXNzLW1hbnVhbC8ke2ludm9pY2VJRH1gXHJcbiAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcclxuXHJcbiAgICBjcmVhdGVNdWx0aXBsZUVtcHR5RHJhZnRzID0gKHJlcXVlc3REdG86IENvbm5lY3Rvck11bHRpcGxlRW1wdHlEcmFmdER0b1tdKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGAvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9jcmVhdGUtbXVsdGlwbGUtZW1wdHktZHJhZnRzYCxcclxuICAgICAgICAgICAgICAgIGJvZHk6IHJlcXVlc3REdG9cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfVxyXG4gICAgICAgICk7XHJcbiAgICBnZXRJbmNvbWluZ0ludm9pY2VQZGZzTXVsdGlwbGUgPSAoaW52b2ljZUlkczogc3RyaW5nW10pID0+XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBCbG9iPihcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxyXG4gICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9nZXQtaW5jb21pbmctaW52b2ljZS1wZGZzLW11bHRpcGxlJyxcclxuICAgICAgICAgICAgYm9keTogaW52b2ljZUlkcyxcclxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYidcclxuICAgICAgICB9LFxyXG4gICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pO1xyXG5cclxuXHJcbiAgICBMb2FkSW5ib3VuZEludm9pY2VGaWxlcyA9IChpbnZvaWNlR1VJRDogc3RyaW5nKSA9PiB0aGlzLmRldmV4U2VydmljZS5jcmVhdGVTdG9yZSh7XHJcbiAgICAgICAga2V5OiBcImNvbnRlbnRNYXN0ZXJJZFwiLFxyXG4gICAgICAgIGxvYWRVcmw6ICdhcGkvZS1kb251c3VtL2ludm9pY2VzL3Nob3ctaW5ib3VuZC1pbnZvaWNlLWZpbGVzJyxcclxuICAgICAgICBwYXJhbXM6IHsgaW52b2ljZUdVSUQ6IGludm9pY2VHVUlEIH1cclxuICAgIH0pXHJcblxyXG4gICAgZG93bmxvYWRGaWxlQnlJZCA9IChibG9iSUQ6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBgL2FwaS9lLWRvbnVzdW0vaW52b2ljZXMvZG93bmxvYWQtZmlsZS1ieS1pZC8ke2Jsb2JJRH1gLFxyXG4gICAgICAgICAgICAgICAgcGFyYW1zOiB7IGJsb2JJRDogYmxvYklEIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSk7XHJcbiAgICBnZXRJbmJvdW5kSW52b2ljZVBkZnNNdWx0aXBsZSA9IChpbnZvaWNlSWRzOiBzdHJpbmdbXSkgPT5cclxuICAgICAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgICAgIHVybDogJy9hcGkvZS1kb251c3VtL2ludm9pY2VzL2dldC1pbmJvdW5kLWludm9pY2UtcGRmcy1tdWx0aXBsZScsXHJcbiAgICAgICAgICAgICAgICBib2R5OiBpbnZvaWNlSWRzXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pO1xyXG5cclxuXHJcbiAgICBnZXRJbmJvdW5kSW52b2ljZVBkZnNNZXJnZWQgPSAoaW52b2ljZUlkczogc3RyaW5nW10pID0+XHJcbiAgICAgICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgYW55PihcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgICAgICAgICB1cmw6ICcvYXBpL2UtZG9udXN1bS9pbnZvaWNlcy9nZXQtaW5ib3VuZC1pbnZvaWNlLXBkZnMtbWVyZ2VkJyxcclxuICAgICAgICAgICAgICAgIGJvZHk6IGludm9pY2VJZHNcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsIHByaXZhdGUgZGV2ZXhTZXJ2aWNlOiBEZXZleHByZXNzUmVzdFNlcnZpY2UpIHsgfVxyXG59Il19