@hitsoft/ovolt 0.0.10 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/providers/ovolt-integration-log-route.provider.d.ts +9 -0
- package/esm2020/config/ovolt-config.module.mjs +3 -1
- package/esm2020/config/providers/ovolt-integration-log-route.provider.mjs +19 -0
- package/esm2020/config/providers/process-log-route.provider.mjs +1 -1
- package/esm2020/lib/components/hit-fuel-integration-logs/components/hit-fuel-integration-log.component.mjs +29 -11
- package/esm2020/lib/components/hit-ovolt-integration-logs/components/hit-ovolt-integration-log.component.mjs +170 -0
- package/esm2020/lib/components/hit-ovolt-integration-logs/hit-ovolt-integration-log-routing.module.mjs +26 -0
- package/esm2020/lib/components/hit-ovolt-integration-logs/hit-ovolt-integration-log.module.mjs +71 -0
- package/esm2020/lib/components/hit-proxy/hit-ovolt-integration-logs/hit-ovolt-integration-log.service.mjs +40 -0
- package/esm2020/lib/components/hit-proxy/hit-ovolt-integration-logs/models.mjs +2 -0
- package/esm2020/lib/ovolt-integration-logs/ovolt-integration-log/components/ovolt-integration-log.component.mjs +113 -0
- package/esm2020/lib/ovolt-integration-logs/ovolt-integration-log/ovolt-integration-log-routing.module.mjs +26 -0
- package/esm2020/lib/ovolt-integration-logs/ovolt-integration-log/ovolt-integration-log.module.mjs +52 -0
- package/esm2020/lib/ovolt-routing.module.mjs +3 -1
- package/esm2020/lib/process-logs/process-log/components/process-log.component.mjs +6 -4
- package/esm2020/lib/process-logs/process-log/process-log-routing.module.mjs +1 -1
- package/esm2020/lib/process-logs/process-log/process-log.module.mjs +1 -1
- package/esm2020/lib/proxy/ovolt-integration-logs/models.mjs +2 -0
- package/esm2020/lib/proxy/ovolt-integration-logs/ovolt-integration-log.service.mjs +51 -0
- package/esm2020/lib/proxy/process-logs/models.mjs +1 -1
- package/esm2020/lib/proxy/process-logs/process-log.service.mjs +2 -2
- package/fesm2015/hitsoft-ovolt-config.mjs +29 -11
- package/fesm2015/hitsoft-ovolt-config.mjs.map +1 -1
- package/fesm2015/hitsoft-ovolt.mjs +363 -23
- package/fesm2015/hitsoft-ovolt.mjs.map +1 -1
- package/fesm2020/hitsoft-ovolt-config.mjs +29 -11
- package/fesm2020/hitsoft-ovolt-config.mjs.map +1 -1
- package/fesm2020/hitsoft-ovolt.mjs +362 -23
- package/fesm2020/hitsoft-ovolt.mjs.map +1 -1
- package/lib/components/hit-ovolt-integration-logs/components/hit-ovolt-integration-log.component.d.ts +39 -0
- package/lib/components/hit-ovolt-integration-logs/hit-ovolt-integration-log-routing.module.d.ts +7 -0
- package/lib/components/hit-ovolt-integration-logs/hit-ovolt-integration-log.module.d.ts +16 -0
- package/lib/components/hit-proxy/hit-ovolt-integration-logs/hit-ovolt-integration-log.service.d.ts +16 -0
- package/lib/components/hit-proxy/hit-ovolt-integration-logs/models.d.ts +3 -0
- package/lib/ovolt-integration-logs/ovolt-integration-log/components/ovolt-integration-log.component.d.ts +35 -0
- package/lib/ovolt-integration-logs/ovolt-integration-log/ovolt-integration-log-routing.module.d.ts +7 -0
- package/lib/ovolt-integration-logs/ovolt-integration-log/ovolt-integration-log.module.d.ts +15 -0
- package/lib/proxy/ovolt-integration-logs/models.d.ts +47 -0
- package/lib/proxy/ovolt-integration-logs/ovolt-integration-log.service.d.ts +19 -0
- package/lib/proxy/process-logs/models.d.ts +8 -0
- package/package.json +1 -1
package/esm2020/lib/components/hit-ovolt-integration-logs/hit-ovolt-integration-log.module.mjs
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { CoreModule } from '@abp/ng.core';
|
|
2
|
+
import { ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
+
import { NgxValidateCoreModule } from '@ngx-validate/core';
|
|
6
|
+
import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
|
|
7
|
+
import { PageModule } from '@abp/ng.components/page';
|
|
8
|
+
import { HitOvoltIntegrationLogRoutingModule } from './hit-ovolt-integration-log-routing.module';
|
|
9
|
+
import { HitOvoltIntegrationLogComponent } from './components/hit-ovolt-integration-log.component';
|
|
10
|
+
import { DxButtonModule, DxDataGridModule, DxDropDownButtonModule, DxPopupModule, DxScrollViewModule, DxTemplateModule } from 'devextreme-angular';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class HitOvoltIntegrationLogModule {
|
|
13
|
+
}
|
|
14
|
+
HitOvoltIntegrationLogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
HitOvoltIntegrationLogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogModule, declarations: [HitOvoltIntegrationLogComponent], imports: [HitOvoltIntegrationLogRoutingModule,
|
|
16
|
+
CoreModule,
|
|
17
|
+
ThemeSharedModule,
|
|
18
|
+
CommercialUiModule,
|
|
19
|
+
NgxValidateCoreModule,
|
|
20
|
+
NgbCollapseModule,
|
|
21
|
+
NgbDatepickerModule,
|
|
22
|
+
NgbDropdownModule,
|
|
23
|
+
PageModule,
|
|
24
|
+
DxDataGridModule,
|
|
25
|
+
DxButtonModule,
|
|
26
|
+
DxPopupModule,
|
|
27
|
+
DxScrollViewModule,
|
|
28
|
+
DxTemplateModule,
|
|
29
|
+
DxDropDownButtonModule] });
|
|
30
|
+
HitOvoltIntegrationLogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogModule, imports: [HitOvoltIntegrationLogRoutingModule,
|
|
31
|
+
CoreModule,
|
|
32
|
+
ThemeSharedModule,
|
|
33
|
+
CommercialUiModule,
|
|
34
|
+
NgxValidateCoreModule,
|
|
35
|
+
NgbCollapseModule,
|
|
36
|
+
NgbDatepickerModule,
|
|
37
|
+
NgbDropdownModule,
|
|
38
|
+
PageModule,
|
|
39
|
+
DxDataGridModule,
|
|
40
|
+
DxButtonModule,
|
|
41
|
+
DxPopupModule,
|
|
42
|
+
DxScrollViewModule,
|
|
43
|
+
DxTemplateModule,
|
|
44
|
+
DxDropDownButtonModule] });
|
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogModule, decorators: [{
|
|
46
|
+
type: NgModule,
|
|
47
|
+
args: [{
|
|
48
|
+
declarations: [HitOvoltIntegrationLogComponent],
|
|
49
|
+
imports: [
|
|
50
|
+
HitOvoltIntegrationLogRoutingModule,
|
|
51
|
+
CoreModule,
|
|
52
|
+
ThemeSharedModule,
|
|
53
|
+
CommercialUiModule,
|
|
54
|
+
NgxValidateCoreModule,
|
|
55
|
+
NgbCollapseModule,
|
|
56
|
+
NgbDatepickerModule,
|
|
57
|
+
NgbDropdownModule,
|
|
58
|
+
PageModule,
|
|
59
|
+
DxDataGridModule,
|
|
60
|
+
DxButtonModule,
|
|
61
|
+
DxPopupModule,
|
|
62
|
+
DxScrollViewModule,
|
|
63
|
+
DxTemplateModule,
|
|
64
|
+
DxDropDownButtonModule
|
|
65
|
+
],
|
|
66
|
+
}]
|
|
67
|
+
}] });
|
|
68
|
+
export function loadHitOvoltIntegrationLogModuleAsChild() {
|
|
69
|
+
return Promise.resolve(HitOvoltIntegrationLogModule);
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LW92b2x0LWludGVncmF0aW9uLWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL2NvbXBvbmVudHMvaGl0LW92b2x0LWludGVncmF0aW9uLWxvZ3MvaGl0LW92b2x0LWludGVncmF0aW9uLWxvZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLGlCQUFpQixHQUNwQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNqRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNuRyxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQXNCbkosTUFBTSxPQUFPLDRCQUE0Qjs7eUhBQTVCLDRCQUE0QjswSEFBNUIsNEJBQTRCLGlCQW5CdEIsK0JBQStCLGFBRTFDLG1DQUFtQztRQUNuQyxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsVUFBVTtRQUNWLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsc0JBQXNCOzBIQUdqQiw0QkFBNEIsWUFqQmpDLG1DQUFtQztRQUNuQyxVQUFVO1FBQ1YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixxQkFBcUI7UUFDckIsaUJBQWlCO1FBQ2pCLG1CQUFtQjtRQUNuQixpQkFBaUI7UUFDakIsVUFBVTtRQUNWLGdCQUFnQjtRQUNoQixjQUFjO1FBQ2QsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsc0JBQXNCOzJGQUdqQiw0QkFBNEI7a0JBcEJ4QyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLCtCQUErQixDQUFDO29CQUMvQyxPQUFPLEVBQUU7d0JBQ0wsbUNBQW1DO3dCQUNuQyxVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLFVBQVU7d0JBQ1YsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjtxQkFDekI7aUJBQ0o7O0FBR0QsTUFBTSxVQUFVLHVDQUF1QztJQUNuRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQztBQUN6RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgTmdiQ29sbGFwc2VNb2R1bGUsXHJcbiAgICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgTmdiRHJvcGRvd25Nb2R1bGUsXHJcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tZXJjaWFsVWlNb2R1bGUgfSBmcm9tICdAdm9sby9hYnAuY29tbWVyY2lhbC5uZy51aSc7XHJcbmltcG9ydCB7IFBhZ2VNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvbXBvbmVudHMvcGFnZSc7XHJcbmltcG9ydCB7IEhpdE92b2x0SW50ZWdyYXRpb25Mb2dSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9nLXJvdXRpbmcubW9kdWxlJztcclxuaW1wb3J0IHsgSGl0T3ZvbHRJbnRlZ3JhdGlvbkxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER4QnV0dG9uTW9kdWxlLCBEeERhdGFHcmlkTW9kdWxlLCBEeERyb3BEb3duQnV0dG9uTW9kdWxlLCBEeFBvcHVwTW9kdWxlLCBEeFNjcm9sbFZpZXdNb2R1bGUsIER4VGVtcGxhdGVNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXInO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW0hpdE92b2x0SW50ZWdyYXRpb25Mb2dDb21wb25lbnRdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEhpdE92b2x0SW50ZWdyYXRpb25Mb2dSb3V0aW5nTW9kdWxlLFxyXG4gICAgICAgIENvcmVNb2R1bGUsXHJcbiAgICAgICAgVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICAgICAgQ29tbWVyY2lhbFVpTW9kdWxlLFxyXG4gICAgICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgICAgICBOZ2JDb2xsYXBzZU1vZHVsZSxcclxuICAgICAgICBOZ2JEYXRlcGlja2VyTW9kdWxlLFxyXG4gICAgICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG4gICAgICAgIFBhZ2VNb2R1bGUsXHJcbiAgICAgICAgRHhEYXRhR3JpZE1vZHVsZSxcclxuICAgICAgICBEeEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBEeFBvcHVwTW9kdWxlLFxyXG4gICAgICAgIER4U2Nyb2xsVmlld01vZHVsZSxcclxuICAgICAgICBEeFRlbXBsYXRlTW9kdWxlLFxyXG4gICAgICAgIER4RHJvcERvd25CdXR0b25Nb2R1bGVcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIaXRPdm9sdEludGVncmF0aW9uTG9nTW9kdWxlIHsgfVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRIaXRPdm9sdEludGVncmF0aW9uTG9nTW9kdWxlQXNDaGlsZCgpIHtcclxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoSGl0T3ZvbHRJbnRlZ3JhdGlvbkxvZ01vZHVsZSk7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@abp/ng.core";
|
|
4
|
+
import * as i2 from "../devexpress-query-builder/devexpress-query-builder";
|
|
5
|
+
export class HitOvoltIntegrationLogService {
|
|
6
|
+
constructor(restService, devexService) {
|
|
7
|
+
this.restService = restService;
|
|
8
|
+
this.devexService = devexService;
|
|
9
|
+
this.apiName = 'Ovolt';
|
|
10
|
+
this.getRequesteBody = (input) => this.restService.request({
|
|
11
|
+
method: 'POST',
|
|
12
|
+
url: '/api/ovolt/ovolt-integration-logs/get-request-body',
|
|
13
|
+
body: input
|
|
14
|
+
}, { apiName: this.apiName });
|
|
15
|
+
this.getResponseBody = (input) => this.restService.request({
|
|
16
|
+
method: 'POST',
|
|
17
|
+
url: '/api/ovolt/ovolt-integration-logs/get-response-body',
|
|
18
|
+
body: input
|
|
19
|
+
}, { apiName: this.apiName });
|
|
20
|
+
this.deleteAll = () => this.restService.request({
|
|
21
|
+
method: 'POST',
|
|
22
|
+
url: '/api/ovolt/ovolt-integration-logs/delete-all',
|
|
23
|
+
}, { apiName: this.apiName });
|
|
24
|
+
}
|
|
25
|
+
get LoadOvoltIntegrationLogs() {
|
|
26
|
+
return this.devexService.createStore({
|
|
27
|
+
key: 'id',
|
|
28
|
+
loadUrl: 'api/ovolt/ovolt-integration-logs/load',
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
HitOvoltIntegrationLogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogService, deps: [{ token: i1.RestService }, { token: i2.DevexpressRestService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
33
|
+
HitOvoltIntegrationLogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogService, providedIn: 'root' });
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: HitOvoltIntegrationLogService, decorators: [{
|
|
35
|
+
type: Injectable,
|
|
36
|
+
args: [{
|
|
37
|
+
providedIn: 'root',
|
|
38
|
+
}]
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.RestService }, { type: i2.DevexpressRestService }]; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGl0LW92b2x0LWludGVncmF0aW9uLWxvZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1wcm94eS9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVEzQyxNQUFNLE9BQU8sNkJBQTZCO0lBR3RDLFlBQ1ksV0FBd0IsRUFDeEIsWUFBbUM7UUFEbkMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBSi9DLFlBQU8sR0FBRyxPQUFPLENBQUM7UUFhbEIsb0JBQWUsR0FBRyxDQUFDLEtBQXlCLEVBQUUsRUFBRSxDQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBYztZQUNsQyxNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxvREFBb0Q7WUFDekQsSUFBSSxFQUFFLEtBQUs7U0FDZCxFQUNHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLG9CQUFlLEdBQUcsQ0FBQyxLQUF5QixFQUFFLEVBQUUsQ0FDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQWM7WUFDbEMsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUscURBQXFEO1lBQzFELElBQUksRUFBRSxLQUFLO1NBQ2QsRUFDRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVuQyxjQUFTLEdBQUcsR0FBRyxFQUFFLENBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQWU7WUFDbkMsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsOENBQThDO1NBQ3RELEVBQ0csRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUE3Qi9CLENBQUM7SUFFTCxJQUFJLHdCQUF3QjtRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ2pDLEdBQUcsRUFBRSxJQUFJO1lBQ1QsT0FBTyxFQUFFLHVDQUF1QztTQUNuRCxDQUFDLENBQUM7SUFDUCxDQUFDOzswSEFiUSw2QkFBNkI7OEhBQTdCLDZCQUE2QixjQUYxQixNQUFNOzJGQUVULDZCQUE2QjtrQkFIekMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgRGV2ZXhwcmVzc1Jlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vZGV2ZXhwcmVzcy1xdWVyeS1idWlsZGVyL2RldmV4cHJlc3MtcXVlcnktYnVpbGRlcic7XHJcbmltcG9ydCB7IEdldFJlcXVlc3RNb2RlbER0byB9IGZyb20gJy4vbW9kZWxzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhpdE92b2x0SW50ZWdyYXRpb25Mb2dTZXJ2aWNlIHtcclxuICAgIGFwaU5hbWUgPSAnT3ZvbHQnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZGV2ZXhTZXJ2aWNlOiBEZXZleHByZXNzUmVzdFNlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gICAgZ2V0IExvYWRPdm9sdEludGVncmF0aW9uTG9ncygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kZXZleFNlcnZpY2UuY3JlYXRlU3RvcmUoe1xyXG4gICAgICAgICAgICBrZXk6ICdpZCcsXHJcbiAgICAgICAgICAgIGxvYWRVcmw6ICdhcGkvb3ZvbHQvb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9sb2FkJyxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGdldFJlcXVlc3RlQm9keSA9IChpbnB1dDogR2V0UmVxdWVzdE1vZGVsRHRvKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIHN0cmluZz4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9vdm9sdC9vdm9sdC1pbnRlZ3JhdGlvbi1sb2dzL2dldC1yZXF1ZXN0LWJvZHknLFxyXG4gICAgICAgICAgICBib2R5OiBpbnB1dFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pO1xyXG5cclxuICAgIGdldFJlc3BvbnNlQm9keSA9IChpbnB1dDogR2V0UmVxdWVzdE1vZGVsRHRvKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIHN0cmluZz4oe1xyXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICAgICAgdXJsOiAnL2FwaS9vdm9sdC9vdm9sdC1pbnRlZ3JhdGlvbi1sb2dzL2dldC1yZXNwb25zZS1ib2R5JyxcclxuICAgICAgICAgICAgYm9keTogaW5wdXRcclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KTtcclxuXHJcbiAgICBkZWxldGVBbGwgPSAoKSA9PlxyXG4gICAgICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGJvb2xlYW4+KHtcclxuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgICAgIHVybDogJy9hcGkvb3ZvbHQvb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9kZWxldGUtYWxsJyxcclxuICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9jb21wb25lbnRzL2hpdC1wcm94eS9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgR2V0UmVxdWVzdE1vZGVsRHRve1xyXG4gICAgbG9nSWQ/OiBzdHJpbmc7XHJcbn0iXX0=
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { downloadBlob, ListService } from '@abp/ng.core';
|
|
2
|
+
import { Confirmation } from '@abp/ng.theme.shared';
|
|
3
|
+
import { DateAdapter } from '@abp/ng.theme.shared/extensions';
|
|
4
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
|
+
import { NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
|
|
6
|
+
import { filter, finalize, switchMap, tap } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@abp/ng.core";
|
|
9
|
+
import * as i2 from "../../../proxy/ovolt-integration-logs/ovolt-integration-log.service";
|
|
10
|
+
import * as i3 from "@abp/ng.theme.shared";
|
|
11
|
+
import * as i4 from "@angular/forms";
|
|
12
|
+
import * as i5 from "@angular/common";
|
|
13
|
+
import * as i6 from "@swimlane/ngx-datatable";
|
|
14
|
+
import * as i7 from "@volo/abp.commercial.ng.ui";
|
|
15
|
+
import * as i8 from "@ngx-validate/core";
|
|
16
|
+
import * as i9 from "@ng-bootstrap/ng-bootstrap";
|
|
17
|
+
import * as i10 from "@abp/ng.components/page";
|
|
18
|
+
export class OvoltIntegrationLogComponent {
|
|
19
|
+
constructor(list, track, service, confirmation, fb) {
|
|
20
|
+
this.list = list;
|
|
21
|
+
this.track = track;
|
|
22
|
+
this.service = service;
|
|
23
|
+
this.confirmation = confirmation;
|
|
24
|
+
this.fb = fb;
|
|
25
|
+
this.data = {
|
|
26
|
+
items: [],
|
|
27
|
+
totalCount: 0,
|
|
28
|
+
};
|
|
29
|
+
this.filters = {};
|
|
30
|
+
this.isFiltersHidden = true;
|
|
31
|
+
this.isModalBusy = false;
|
|
32
|
+
this.isModalOpen = false;
|
|
33
|
+
this.isExportToExcelBusy = false;
|
|
34
|
+
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
const getData = (query) => this.service.getList({
|
|
37
|
+
...query,
|
|
38
|
+
...this.filters,
|
|
39
|
+
filterText: query.filter,
|
|
40
|
+
});
|
|
41
|
+
const setData = (list) => (this.data = list);
|
|
42
|
+
this.list.hookToQuery(getData).subscribe(setData);
|
|
43
|
+
}
|
|
44
|
+
clearFilters() {
|
|
45
|
+
this.filters = {};
|
|
46
|
+
}
|
|
47
|
+
buildForm() {
|
|
48
|
+
const { path, method, requestBody, responseBody, statusCode, requestTime, responseTime } = this.selected || {};
|
|
49
|
+
this.form = this.fb.group({
|
|
50
|
+
path: [path ?? null, []],
|
|
51
|
+
method: [method ?? null, []],
|
|
52
|
+
requestBody: [requestBody ?? null, []],
|
|
53
|
+
responseBody: [responseBody ?? null, []],
|
|
54
|
+
statusCode: [statusCode ?? null, []],
|
|
55
|
+
requestTime: [requestTime ? new Date(requestTime) : null, []],
|
|
56
|
+
responseTime: [responseTime ? new Date(responseTime) : null, []],
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
hideForm() {
|
|
60
|
+
this.isModalOpen = false;
|
|
61
|
+
this.form.reset();
|
|
62
|
+
}
|
|
63
|
+
showForm() {
|
|
64
|
+
this.buildForm();
|
|
65
|
+
this.isModalOpen = true;
|
|
66
|
+
}
|
|
67
|
+
submitForm() {
|
|
68
|
+
if (this.form.invalid)
|
|
69
|
+
return;
|
|
70
|
+
const request = this.selected
|
|
71
|
+
? this.service.update(this.selected.id, {
|
|
72
|
+
...this.form.value,
|
|
73
|
+
concurrencyStamp: this.selected.concurrencyStamp,
|
|
74
|
+
})
|
|
75
|
+
: this.service.create(this.form.value);
|
|
76
|
+
this.isModalBusy = true;
|
|
77
|
+
request
|
|
78
|
+
.pipe(finalize(() => (this.isModalBusy = false)), tap(() => this.hideForm()))
|
|
79
|
+
.subscribe(this.list.get);
|
|
80
|
+
}
|
|
81
|
+
create() {
|
|
82
|
+
this.selected = undefined;
|
|
83
|
+
this.showForm();
|
|
84
|
+
}
|
|
85
|
+
update(record) {
|
|
86
|
+
this.selected = record;
|
|
87
|
+
this.showForm();
|
|
88
|
+
}
|
|
89
|
+
delete(record) {
|
|
90
|
+
this.confirmation
|
|
91
|
+
.warn('Ovolt::DeleteConfirmationMessage', 'Ovolt::AreYouSure', {
|
|
92
|
+
messageLocalizationParams: [],
|
|
93
|
+
})
|
|
94
|
+
.pipe(filter(status => status === Confirmation.Status.confirm), switchMap(() => this.service.delete(record.id)))
|
|
95
|
+
.subscribe(this.list.get);
|
|
96
|
+
}
|
|
97
|
+
exportToExcel() {
|
|
98
|
+
this.isExportToExcelBusy = true;
|
|
99
|
+
this.service
|
|
100
|
+
.getDownloadToken()
|
|
101
|
+
.pipe(switchMap(({ token }) => this.service.getListAsExcelFile({ downloadToken: token, filterText: this.list.filter })), finalize(() => (this.isExportToExcelBusy = false)))
|
|
102
|
+
.subscribe(result => {
|
|
103
|
+
downloadBlob(result, 'OvoltIntegrationLog.xlsx');
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
OvoltIntegrationLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogComponent, deps: [{ token: i1.ListService }, { token: i1.TrackByService }, { token: i2.OvoltIntegrationLogService }, { token: i3.ConfirmationService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
108
|
+
OvoltIntegrationLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: OvoltIntegrationLogComponent, selector: "lib-ovolt-integration-log", providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], ngImport: i0, template: "<abp-page [title]=\"'Ovolt::OvoltIntegrationLogs' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'Ovolt::ExportToExcel' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n *abpPermission=\"'Ovolt.OvoltIntegrationLogs.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'Ovolt::NewOvoltIntegrationLog' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"Ovolt\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pathFilter\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pathFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.path\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"methodFilter\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"methodFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.method\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"requestBodyFilter\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"requestBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.requestBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"responseBodyFilter\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"responseBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.responseBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"statusCodeFilter\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"statusCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minRequestTime\">\r\n {{ 'Ovolt::MinRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minRequestTime\"\r\n class=\"form-control\"\r\n #minRequestTimeInput\r\n #minRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minRequestTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minRequestTimeDatepicker.writeValue(null);\r\n minRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxRequestTime\">\r\n {{ 'Ovolt::MaxRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxRequestTime\"\r\n class=\"form-control\"\r\n #maxRequestTimeInput\r\n #maxRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxRequestTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxRequestTimeDatepicker.writeValue(null);\r\n maxRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minResponseTime\">\r\n {{ 'Ovolt::MinResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minResponseTime\"\r\n class=\"form-control\"\r\n #minResponseTimeInput\r\n #minResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minResponseTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minResponseTimeDatepicker.writeValue(null);\r\n minResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxResponseTime\">\r\n {{ 'Ovolt::MaxResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxResponseTime\"\r\n class=\"form-control\"\r\n #maxResponseTimeInput\r\n #maxResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxResponseTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxResponseTimeDatepicker.writeValue(null);\r\n maxResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.OvoltIntegrationLogs.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.OvoltIntegrationLogs.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Path' | abpLocalization }}\" prop=\"path\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.path }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Method' | abpLocalization }}\" prop=\"method\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.method }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\"\r\n prop=\"requestBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\"\r\n prop=\"responseBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\" prop=\"statusCode\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.statusCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\"\r\n prop=\"requestTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\"\r\n prop=\"responseTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'Ovolt::NewOvoltIntegrationLog') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"ovolt-integration-log\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-path\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ovolt-integration-log-path\"\r\n formControlName=\"path\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-method\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"ovolt-integration-log-method\" formControlName=\"method\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-request-body\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ovolt-integration-log-request-body\"\r\n formControlName=\"requestBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-response-body\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ovolt-integration-log-response-body\"\r\n formControlName=\"responseBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-status-code\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ovolt-integration-log-status-code\"\r\n formControlName=\"statusCode\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-request-time\">\r\n {{ 'Ovolt::RequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"ovolt-integration-log-request-time\"\r\n formControlName=\"requestTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #requestTimeInput\r\n #requestTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"requestTimeDatepicker.open()\"\r\n (keyup.space)=\"requestTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"requestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n requestTimeDatepicker.writeValue(null);\r\n requestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-response-time\">\r\n {{ 'Ovolt::ResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"ovolt-integration-log-response-time\"\r\n formControlName=\"responseTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #responseTimeInput\r\n #responseTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"responseTimeDatepicker.open()\"\r\n (keyup.space)=\"responseTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"responseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n responseTimeDatepicker.writeValue(null);\r\n responseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"ovolt-integration-log\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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: "directive", type: i1.PermissionDirective, selector: "[abpPermission]", inputs: ["abpPermission", "abpPermissionRunChangeDetection"] }, { kind: "component", type: i6.DatatableComponent, selector: "ngx-datatable", inputs: ["targetMarkerTemplate", "rows", "groupRowsBy", "groupedRows", "columns", "selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "limit", "count", "offset", "loadingIndicator", "selectionType", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "rowClass", "selectCheck", "displayCheck", "groupExpansionDefault", "trackByProp", "selectAllRowsOnPage", "virtualization", "treeFromRelation", "treeToRelation", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { kind: "directive", type: i6.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { kind: "directive", type: i6.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { 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: "component", type: i3.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i3.NgxDatatableDefaultDirective, selector: "ngx-datatable[default]", inputs: ["class"], exportAs: ["ngxDatatableDefault"] }, { kind: "directive", type: i3.NgxDatatableListDirective, selector: "ngx-datatable[list]", inputs: ["list"], exportAs: ["ngxDatatableList"] }, { kind: "directive", type: i3.ModalCloseDirective, selector: "[abpClose]" }, { kind: "component", type: i7.AdvancedEntityFiltersComponent, selector: "abp-advanced-entity-filters", inputs: ["list", "localizationSourceName", "entityFilterPlaceholder"] }, { kind: "component", type: i7.AdvancedEntityFiltersFormComponent, selector: "abp-advanced-entity-filters-form" }, { kind: "directive", type: i8.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i8.ValidationTargetDirective, selector: "[validationTarget]", exportAs: ["validationTarget"] }, { kind: "directive", type: i8.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i9.NgbInputDatepicker, selector: "input[ngbDatepicker]", inputs: ["autoClose", "datepickerClass", "dayTemplate", "dayTemplateData", "displayMonths", "firstDayOfWeek", "footerTemplate", "markDisabled", "minDate", "maxDate", "navigation", "outsideDays", "placement", "restoreFocus", "showWeekNumbers", "startDate", "container", "positionTarget", "weekdays", "disabled"], outputs: ["dateSelect", "navigate", "closed"], exportAs: ["ngbDatepicker"] }, { kind: "directive", type: i9.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i9.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i9.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i9.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i10.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i10.PageToolbarContainerComponent, selector: "abp-page-toolbar-container" }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }], changeDetection: i0.ChangeDetectionStrategy.Default });
|
|
109
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogComponent, decorators: [{
|
|
110
|
+
type: Component,
|
|
111
|
+
args: [{ selector: 'lib-ovolt-integration-log', changeDetection: ChangeDetectionStrategy.Default, providers: [ListService, { provide: NgbDateAdapter, useClass: DateAdapter }], template: "<abp-page [title]=\"'Ovolt::OvoltIntegrationLogs' | abpLocalization\">\r\n <abp-page-toolbar-container class=\"col\">\r\n <div class=\"text-lg-end pt-2\">\r\n <button\r\n class=\"btn btn-primary btn-sm mx-2\"\r\n type=\"button\"\r\n [disabled]=\"isExportToExcelBusy\"\r\n (click)=\"exportToExcel()\"\r\n >\r\n {{ 'Ovolt::ExportToExcel' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n *abpPermission=\"'Ovolt.OvoltIntegrationLogs.Create'\"\r\n class=\"btn btn-primary btn-sm\"\r\n type=\"button\"\r\n (click)=\"create()\"\r\n >\r\n <i class=\"fa fa-plus me-1\" aria-hidden=\"true\"></i>\r\n {{ 'Ovolt::NewOvoltIntegrationLog' | abpLocalization }}\r\n </button>\r\n </div>\r\n </abp-page-toolbar-container>\r\n\r\n <abp-advanced-entity-filters localizationSourceName=\"Ovolt\" [list]=\"list\">\r\n <abp-advanced-entity-filters-form>\r\n <form #filterForm (keyup.enter)=\"list.get()\">\r\n <div class=\"row\">\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"pathFilter\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"pathFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.path\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"methodFilter\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"methodFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.method\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"requestBodyFilter\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"requestBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.requestBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"responseBodyFilter\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"responseBodyFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.responseBody\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"statusCodeFilter\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"statusCodeFilter\"\r\n class=\"form-control\"\r\n [(ngModel)]=\"filters.statusCode\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minRequestTime\">\r\n {{ 'Ovolt::MinRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minRequestTime\"\r\n class=\"form-control\"\r\n #minRequestTimeInput\r\n #minRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minRequestTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minRequestTimeDatepicker.writeValue(null);\r\n minRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxRequestTime\">\r\n {{ 'Ovolt::MaxRequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxRequestTime\"\r\n class=\"form-control\"\r\n #maxRequestTimeInput\r\n #maxRequestTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxRequestTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxRequestTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxRequestTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.requestTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxRequestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxRequestTimeDatepicker.writeValue(null);\r\n maxRequestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"minResponseTime\">\r\n {{ 'Ovolt::MinResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"minResponseTime\"\r\n class=\"form-control\"\r\n #minResponseTimeInput\r\n #minResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"minResponseTime\"\r\n ngbDatepicker\r\n container=\"body\"\r\n readonly\r\n (click)=\"minResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"minResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMin\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"minResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n minResponseTimeDatepicker.writeValue(null);\r\n minResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"maxResponseTime\">\r\n {{ 'Ovolt::MaxResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n id=\"maxResponseTime\"\r\n class=\"form-control\"\r\n #maxResponseTimeInput\r\n #maxResponseTimeDatepicker=\"ngbDatepicker\"\r\n name=\"maxResponseTime\"\r\n ngbDatepicker\r\n readonly\r\n (click)=\"maxResponseTimeDatepicker.toggle()\"\r\n (keyup.space)=\"maxResponseTimeDatepicker.toggle()\"\r\n [(ngModel)]=\"filters.responseTimeMax\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n />\r\n <div *ngIf=\"maxResponseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n maxResponseTimeDatepicker.writeValue(null);\r\n maxResponseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-12 col-sm-auto align-self-end mb-3\">\r\n <div class=\"row\">\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-outline-primary\" (click)=\"clearFilters()\">\r\n <span>{{ 'AbpUi::Clear' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n <div class=\"col-6 col-sm-auto d-grid\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"list.get()\">\r\n <span>{{ 'AbpUi::Refresh' | abpLocalization }}</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </abp-advanced-entity-filters-form>\r\n </abp-advanced-entity-filters>\r\n\r\n <div class=\"card\">\r\n <div class=\"card-body\">\r\n <ngx-datatable [rows]=\"data.items\" [count]=\"data.totalCount\" [list]=\"list\" default>\r\n <ngx-datatable-column\r\n [name]=\"'AbpUi::Actions' | abpLocalization\"\r\n [maxWidth]=\"150\"\r\n [width]=\"150\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <div ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i class=\"fa fa-cog me-1\" aria-hidden=\"true\"></i>\r\n {{ 'AbpUi::Actions' | abpLocalization }}\r\n </button>\r\n\r\n <div ngbDropdownMenu>\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.OvoltIntegrationLogs.Edit'\"\r\n (click)=\"update(row)\"\r\n >\r\n {{ 'AbpUi::Edit' | abpLocalization }}\r\n </button>\r\n\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"'Ovolt.OvoltIntegrationLogs.Delete'\"\r\n (click)=\"delete(row)\"\r\n >\r\n {{ 'AbpUi::Delete' | abpLocalization }}\r\n </button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Path' | abpLocalization }}\" prop=\"path\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.path }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::Method' | abpLocalization }}\" prop=\"method\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.method }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestBody' | abpLocalization }}\"\r\n prop=\"requestBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseBody' | abpLocalization }}\"\r\n prop=\"responseBody\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseBody }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column name=\"{{ 'Ovolt::StatusCode' | abpLocalization }}\" prop=\"statusCode\">\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.statusCode }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::RequestTime' | abpLocalization }}\"\r\n prop=\"requestTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.requestTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ngx-datatable-column\r\n name=\"{{ 'Ovolt::ResponseTime' | abpLocalization }}\"\r\n prop=\"responseTime\"\r\n >\r\n <ng-template let-row=\"row\" ngx-datatable-cell-template>\r\n {{ row.responseTime | date }}\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ngx-datatable>\r\n </div>\r\n </div>\r\n</abp-page>\r\n\r\n<abp-modal [busy]=\"isModalBusy\" [(visible)]=\"isModalOpen\">\r\n <ng-template #abpHeader>\r\n <h3>\r\n {{ (selected ? 'AbpUi::Edit' : 'Ovolt::NewOvoltIntegrationLog') | abpLocalization }}\r\n </h3>\r\n </ng-template>\r\n\r\n <ng-template #abpBody>\r\n <form [formGroup]=\"form\" id=\"ovolt-integration-log\" (ngSubmit)=\"submitForm()\" validateOnSubmit>\r\n <div class=\"mt-2 fade-in-top\">\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-path\">\r\n {{ 'Ovolt::Path' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ovolt-integration-log-path\"\r\n formControlName=\"path\"\r\n class=\"form-control\"\r\n autofocus\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-method\">\r\n {{ 'Ovolt::Method' | abpLocalization }}\r\n </label>\r\n\r\n <input id=\"ovolt-integration-log-method\" formControlName=\"method\" class=\"form-control\" />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-request-body\">\r\n {{ 'Ovolt::RequestBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ovolt-integration-log-request-body\"\r\n formControlName=\"requestBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-response-body\">\r\n {{ 'Ovolt::ResponseBody' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ovolt-integration-log-response-body\"\r\n formControlName=\"responseBody\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-status-code\">\r\n {{ 'Ovolt::StatusCode' | abpLocalization }}\r\n </label>\r\n\r\n <input\r\n id=\"ovolt-integration-log-status-code\"\r\n formControlName=\"statusCode\"\r\n class=\"form-control\"\r\n />\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-request-time\">\r\n {{ 'Ovolt::RequestTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"ovolt-integration-log-request-time\"\r\n formControlName=\"requestTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #requestTimeInput\r\n #requestTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"requestTimeDatepicker.open()\"\r\n (keyup.space)=\"requestTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"requestTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n requestTimeDatepicker.writeValue(null);\r\n requestTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label class=\"form-label\" for=\"ovolt-integration-log-response-time\">\r\n {{ 'Ovolt::ResponseTime' | abpLocalization }}\r\n </label>\r\n\r\n <div class=\"input-group\" validationTarget>\r\n <input\r\n readonly\r\n id=\"ovolt-integration-log-response-time\"\r\n formControlName=\"responseTime\"\r\n class=\"form-control\"\r\n ngbDatepicker\r\n #responseTimeInput\r\n #responseTimeDatepicker=\"ngbDatepicker\"\r\n (click)=\"responseTimeDatepicker.open()\"\r\n (keyup.space)=\"responseTimeDatepicker.open()\"\r\n />\r\n <div *ngIf=\"responseTimeInput.value\" class=\"input-group-append\">\r\n <button\r\n class=\"btn btn-link px-2\"\r\n type=\"button\"\r\n [title]=\"'AbpUi::Clear' | abpLocalization\"\r\n (click)=\"\r\n responseTimeDatepicker.writeValue(null);\r\n responseTimeDatepicker.manualDateChange(null, true)\r\n \"\r\n >\r\n <i class=\"fa fa-times\" aria-hidden=\"true\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </ng-template>\r\n\r\n <ng-template #abpFooter>\r\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>\r\n {{ 'AbpUi::Cancel' | abpLocalization }}\r\n </button>\r\n\r\n <abp-button iconClass=\"fa fa-check\" buttonType=\"submit\" formName=\"ovolt-integration-log\">\r\n {{ 'AbpUi::Save' | abpLocalization }}\r\n </abp-button>\r\n </ng-template>\r\n</abp-modal>\r\n" }]
|
|
112
|
+
}], ctorParameters: function () { return [{ type: i1.ListService }, { type: i1.TrackByService }, { type: i2.OvoltIntegrationLogService }, { type: i3.ConfirmationService }, { type: i4.FormBuilder }]; } });
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9vdm9sdC1pbnRlZ3JhdGlvbi1sb2cvY29tcG9uZW50cy9vdm9sdC1pbnRlZ3JhdGlvbi1sb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9vdm9sdC1pbnRlZ3JhdGlvbi1sb2dzL292b2x0LWludGVncmF0aW9uLWxvZy9jb21wb25lbnRzL292b2x0LWludGVncmF0aW9uLWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQU8sWUFBWSxFQUFFLFdBQVcsRUFBa0MsTUFBTSxjQUFjLENBQUM7QUFDOUYsT0FBTyxFQUFFLFlBQVksRUFBdUIsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUUzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFhbEUsTUFBTSxPQUFPLDRCQUE0QjtJQW9CdkMsWUFDa0IsSUFBaUIsRUFDakIsS0FBcUIsRUFDckIsT0FBbUMsRUFDM0MsWUFBaUMsRUFDakMsRUFBZTtRQUpQLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBNEI7UUFDM0MsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBQ2pDLE9BQUUsR0FBRixFQUFFLENBQWE7UUF4QnpCLFNBQUksR0FBMkM7WUFDN0MsS0FBSyxFQUFFLEVBQUU7WUFDVCxVQUFVLEVBQUUsQ0FBQztTQUNkLENBQUM7UUFFRixZQUFPLEdBQUcsRUFBa0MsQ0FBQztRQUk3QyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUV2QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUVwQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7SUFVekIsQ0FBQztJQUVKLFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxDQUFDLEtBQTBCLEVBQUUsRUFBRSxDQUM3QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUNuQixHQUFHLEtBQUs7WUFDUixHQUFHLElBQUksQ0FBQyxPQUFPO1lBQ2YsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNO1NBQ3pCLENBQUMsQ0FBQztRQUVMLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBNEMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBRXJGLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBa0MsQ0FBQztJQUNwRCxDQUFDO0lBRUQsU0FBUztRQUNQLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsR0FDdEYsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4QixNQUFNLEVBQUUsQ0FBQyxNQUFNLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM1QixXQUFXLEVBQUUsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN0QyxZQUFZLEVBQUUsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4QyxVQUFVLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNwQyxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzdELFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7U0FDakUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPO1FBRTlCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQzNCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtnQkFDcEMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7Z0JBQ2xCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO2FBQ2pELENBQUM7WUFDSixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUV4QixPQUFPO2FBQ0osSUFBSSxDQUNILFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFDMUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBOEI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBOEI7UUFDbkMsSUFBSSxDQUFDLFlBQVk7YUFDZCxJQUFJLENBQUMsa0NBQWtDLEVBQUUsbUJBQW1CLEVBQUU7WUFDN0QseUJBQXlCLEVBQUUsRUFBRTtTQUM5QixDQUFDO2FBQ0QsSUFBSSxDQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUN4RCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ2hEO2FBQ0EsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPO2FBQ1QsZ0JBQWdCLEVBQUU7YUFDbEIsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUN4RixFQUNELFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUNuRDthQUNBLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQixZQUFZLENBQUMsTUFBTSxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzt5SEE3SFUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsb0RBSjVCLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMsMEJDZjlFLDYrbkJBMGZBOzJGRHZlYSw0QkFBNEI7a0JBUHhDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUNwQix1QkFBdUIsQ0FBQyxPQUFPLGFBQ3JDLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBQlAsIGRvd25sb2FkQmxvYiwgTGlzdFNlcnZpY2UsIFBhZ2VkUmVzdWx0RHRvLCBUcmFja0J5U2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgQ29uZmlybWF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcclxuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZC9leHRlbnNpb25zJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nYkRhdGVBZGFwdGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHR5cGUge1xyXG4gIEdldE92b2x0SW50ZWdyYXRpb25Mb2dzSW5wdXQsXHJcbiAgT3ZvbHRJbnRlZ3JhdGlvbkxvZ0R0byxcclxufSBmcm9tICcuLi8uLi8uLi9wcm94eS9vdm9sdC1pbnRlZ3JhdGlvbi1sb2dzL21vZGVscyc7XHJcbmltcG9ydCB7IE92b2x0SW50ZWdyYXRpb25Mb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9vdm9sdC1pbnRlZ3JhdGlvbi1sb2cuc2VydmljZSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW92b2x0LWludGVncmF0aW9uLWxvZycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG4gIHByb3ZpZGVyczogW0xpc3RTZXJ2aWNlLCB7IHByb3ZpZGU6IE5nYkRhdGVBZGFwdGVyLCB1c2VDbGFzczogRGF0ZUFkYXB0ZXIgfV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL292b2x0LWludGVncmF0aW9uLWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVzOiBbXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE92b2x0SW50ZWdyYXRpb25Mb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRhdGE6IFBhZ2VkUmVzdWx0RHRvPE92b2x0SW50ZWdyYXRpb25Mb2dEdG8+ID0ge1xyXG4gICAgaXRlbXM6IFtdLFxyXG4gICAgdG90YWxDb3VudDogMCxcclxuICB9O1xyXG5cclxuICBmaWx0ZXJzID0ge30gYXMgR2V0T3ZvbHRJbnRlZ3JhdGlvbkxvZ3NJbnB1dDtcclxuXHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBpc0ZpbHRlcnNIaWRkZW4gPSB0cnVlO1xyXG5cclxuICBpc01vZGFsQnVzeSA9IGZhbHNlO1xyXG5cclxuICBpc01vZGFsT3BlbiA9IGZhbHNlO1xyXG5cclxuICBpc0V4cG9ydFRvRXhjZWxCdXN5ID0gZmFsc2U7XHJcblxyXG4gIHNlbGVjdGVkPzogT3ZvbHRJbnRlZ3JhdGlvbkxvZ0R0bztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdDogTGlzdFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdHJhY2s6IFRyYWNrQnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNlcnZpY2U6IE92b2x0SW50ZWdyYXRpb25Mb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maXJtYXRpb246IENvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlclxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBjb25zdCBnZXREYXRhID0gKHF1ZXJ5OiBBQlAuUGFnZVF1ZXJ5UGFyYW1zKSA9PlxyXG4gICAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdCh7XHJcbiAgICAgICAgLi4ucXVlcnksXHJcbiAgICAgICAgLi4udGhpcy5maWx0ZXJzLFxyXG4gICAgICAgIGZpbHRlclRleHQ6IHF1ZXJ5LmZpbHRlcixcclxuICAgICAgfSk7XHJcblxyXG4gICAgY29uc3Qgc2V0RGF0YSA9IChsaXN0OiBQYWdlZFJlc3VsdER0bzxPdm9sdEludGVncmF0aW9uTG9nRHRvPikgPT4gKHRoaXMuZGF0YSA9IGxpc3QpO1xyXG5cclxuICAgIHRoaXMubGlzdC5ob29rVG9RdWVyeShnZXREYXRhKS5zdWJzY3JpYmUoc2V0RGF0YSk7XHJcbiAgfVxyXG5cclxuICBjbGVhckZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmZpbHRlcnMgPSB7fSBhcyBHZXRPdm9sdEludGVncmF0aW9uTG9nc0lucHV0O1xyXG4gIH1cclxuXHJcbiAgYnVpbGRGb3JtKCkge1xyXG4gICAgY29uc3QgeyBwYXRoLCBtZXRob2QsIHJlcXVlc3RCb2R5LCByZXNwb25zZUJvZHksIHN0YXR1c0NvZGUsIHJlcXVlc3RUaW1lLCByZXNwb25zZVRpbWUgfSA9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgfHwge307XHJcblxyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHBhdGg6IFtwYXRoID8/IG51bGwsIFtdXSxcclxuICAgICAgbWV0aG9kOiBbbWV0aG9kID8/IG51bGwsIFtdXSxcclxuICAgICAgcmVxdWVzdEJvZHk6IFtyZXF1ZXN0Qm9keSA/PyBudWxsLCBbXV0sXHJcbiAgICAgIHJlc3BvbnNlQm9keTogW3Jlc3BvbnNlQm9keSA/PyBudWxsLCBbXV0sXHJcbiAgICAgIHN0YXR1c0NvZGU6IFtzdGF0dXNDb2RlID8/IG51bGwsIFtdXSxcclxuICAgICAgcmVxdWVzdFRpbWU6IFtyZXF1ZXN0VGltZSA/IG5ldyBEYXRlKHJlcXVlc3RUaW1lKSA6IG51bGwsIFtdXSxcclxuICAgICAgcmVzcG9uc2VUaW1lOiBbcmVzcG9uc2VUaW1lID8gbmV3IERhdGUocmVzcG9uc2VUaW1lKSA6IG51bGwsIFtdXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmlzTW9kYWxPcGVuID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcclxuICB9XHJcblxyXG4gIHNob3dGb3JtKCkge1xyXG4gICAgdGhpcy5idWlsZEZvcm0oKTtcclxuICAgIHRoaXMuaXNNb2RhbE9wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0Rm9ybSgpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLnNlbGVjdGVkXHJcbiAgICAgID8gdGhpcy5zZXJ2aWNlLnVwZGF0ZSh0aGlzLnNlbGVjdGVkLmlkLCB7XHJcbiAgICAgICAgICAuLi50aGlzLmZvcm0udmFsdWUsXHJcbiAgICAgICAgICBjb25jdXJyZW5jeVN0YW1wOiB0aGlzLnNlbGVjdGVkLmNvbmN1cnJlbmN5U3RhbXAsXHJcbiAgICAgICAgfSlcclxuICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHRoaXMuZm9ybS52YWx1ZSk7XHJcblxyXG4gICAgdGhpcy5pc01vZGFsQnVzeSA9IHRydWU7XHJcblxyXG4gICAgcmVxdWVzdFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5pc01vZGFsQnVzeSA9IGZhbHNlKSksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaGlkZUZvcm0oKSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHRoaXMubGlzdC5nZXQpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2hvd0Zvcm0oKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShyZWNvcmQ6IE92b2x0SW50ZWdyYXRpb25Mb2dEdG8pIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSByZWNvcmQ7XHJcbiAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBkZWxldGUocmVjb3JkOiBPdm9sdEludGVncmF0aW9uTG9nRHRvKSB7XHJcbiAgICB0aGlzLmNvbmZpcm1hdGlvblxyXG4gICAgICAud2FybignT3ZvbHQ6OkRlbGV0ZUNvbmZpcm1hdGlvbk1lc3NhZ2UnLCAnT3ZvbHQ6OkFyZVlvdVN1cmUnLCB7XHJcbiAgICAgICAgbWVzc2FnZUxvY2FsaXphdGlvblBhcmFtczogW10sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcihzdGF0dXMgPT4gc3RhdHVzID09PSBDb25maXJtYXRpb24uU3RhdHVzLmNvbmZpcm0pLFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLnNlcnZpY2UuZGVsZXRlKHJlY29yZC5pZCkpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh0aGlzLmxpc3QuZ2V0KTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFRvRXhjZWwoKSB7XHJcbiAgICB0aGlzLmlzRXhwb3J0VG9FeGNlbEJ1c3kgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5nZXREb3dubG9hZFRva2VuKClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKCh7IHRva2VuIH0pID0+XHJcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdEFzRXhjZWxGaWxlKHsgZG93bmxvYWRUb2tlbjogdG9rZW4sIGZpbHRlclRleHQ6IHRoaXMubGlzdC5maWx0ZXIgfSlcclxuICAgICAgICApLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmlzRXhwb3J0VG9FeGNlbEJ1c3kgPSBmYWxzZSkpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICAgIGRvd25sb2FkQmxvYihyZXN1bHQsICdPdm9sdEludGVncmF0aW9uTG9nLnhsc3gnKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxhYnAtcGFnZSBbdGl0bGVdPVwiJ092b2x0OjpPdm9sdEludGVncmF0aW9uTG9ncycgfCBhYnBMb2NhbGl6YXRpb25cIj5cclxuICA8YWJwLXBhZ2UtdG9vbGJhci1jb250YWluZXIgY2xhc3M9XCJjb2xcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnLWVuZCBwdC0yXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc20gbXgtMlwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRXhwb3J0VG9FeGNlbEJ1c3lcIlxyXG4gICAgICAgIChjbGljayk9XCJleHBvcnRUb0V4Y2VsKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgJ092b2x0OjpFeHBvcnRUb0V4Y2VsJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidPdm9sdC5Pdm9sdEludGVncmF0aW9uTG9ncy5DcmVhdGUnXCJcclxuICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBidG4tc21cIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJjcmVhdGUoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXBsdXMgbWUtMVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICB7eyAnT3ZvbHQ6Ok5ld092b2x0SW50ZWdyYXRpb25Mb2cnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9hYnAtcGFnZS10b29sYmFyLWNvbnRhaW5lcj5cclxuXHJcbiAgPGFicC1hZHZhbmNlZC1lbnRpdHktZmlsdGVycyBsb2NhbGl6YXRpb25Tb3VyY2VOYW1lPVwiT3ZvbHRcIiBbbGlzdF09XCJsaXN0XCI+XHJcbiAgICA8YWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzLWZvcm0+XHJcbiAgICAgIDxmb3JtICNmaWx0ZXJGb3JtIChrZXl1cC5lbnRlcik9XCJsaXN0LmdldCgpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXRoRmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6OlBhdGgnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICBpZD1cInBhdGhGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnBhdGhcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtZXRob2RGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWV0aG9kJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJtZXRob2RGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLm1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInJlcXVlc3RCb2R5RmlsdGVyXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6OlJlcXVlc3RCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJyZXF1ZXN0Qm9keUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMucmVxdWVzdEJvZHlcIlxyXG4gICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJyZXNwb25zZUJvZHlGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6UmVzcG9uc2VCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9XCJyZXNwb25zZUJvZHlGaWx0ZXJcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc3BvbnNlQm9keVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInN0YXR1c0NvZGVGaWx0ZXJcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6U3RhdHVzQ29kZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIGlkPVwic3RhdHVzQ29kZUZpbHRlclwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlcnMuc3RhdHVzQ29kZVwiXHJcbiAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblJlcXVlc3RUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICB7eyAnT3ZvbHQ6Ok1pblJlcXVlc3RUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtaW5SZXF1ZXN0VGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pblJlcXVlc3RUaW1lSW5wdXRcclxuICAgICAgICAgICAgICAgICAgI21pblJlcXVlc3RUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWluUmVxdWVzdFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluUmVxdWVzdFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1pblJlcXVlc3RUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXF1ZXN0VGltZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pblJlcXVlc3RUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtaW5SZXF1ZXN0VGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1pblJlcXVlc3RUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhSZXF1ZXN0VGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ092b2x0OjpNYXhSZXF1ZXN0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIiB2YWxpZGF0aW9uVGFyZ2V0PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWF4UmVxdWVzdFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhSZXF1ZXN0VGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtYXhSZXF1ZXN0VGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIm1heFJlcXVlc3RUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4UmVxdWVzdFRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleXVwLnNwYWNlKT1cIm1heFJlcXVlc3RUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVycy5yZXF1ZXN0VGltZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heFJlcXVlc3RUaW1lSW5wdXQudmFsdWVcIiBjbGFzcz1cImlucHV0LWdyb3VwLWFwcGVuZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBtYXhSZXF1ZXN0VGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgIG1heFJlcXVlc3RUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIGNvbC1zbS1hdXRvXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm1pblJlc3BvbnNlVGltZVwiPlxyXG4gICAgICAgICAgICAgICAge3sgJ092b2x0OjpNaW5SZXNwb25zZVRpbWUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICBpZD1cIm1pblJlc3BvbnNlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgI21pblJlc3BvbnNlVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgICAgICNtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyPVwibmdiRGF0ZXBpY2tlclwiXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9XCJtaW5SZXNwb25zZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRhaW5lcj1cImJvZHlcIlxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWluUmVzcG9uc2VUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtaW5SZXNwb25zZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc3BvbnNlVGltZU1pblwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1pblJlc3BvbnNlVGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWluUmVzcG9uc2VUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWluUmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0b1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJtYXhSZXNwb25zZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgIHt7ICdPdm9sdDo6TWF4UmVzcG9uc2VUaW1lJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiIHZhbGlkYXRpb25UYXJnZXQ+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgaWQ9XCJtYXhSZXNwb25zZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICNtYXhSZXNwb25zZVRpbWVJbnB1dFxyXG4gICAgICAgICAgICAgICAgICAjbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwibWF4UmVzcG9uc2VUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICAgICByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci50b2dnbGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJtYXhSZXNwb25zZVRpbWVEYXRlcGlja2VyLnRvZ2dsZSgpXCJcclxuICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJzLnJlc3BvbnNlVGltZU1heFwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1heFJlc3BvbnNlVGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHB4LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci53cml0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgbWF4UmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wtc20tYXV0byBhbGlnbi1zZWxmLWVuZCBtYi0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgY29sLXNtLWF1dG8gZC1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cImNsZWFyRmlsdGVycygpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ICdBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IGNvbC1zbS1hdXRvIGQtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwibGlzdC5nZXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyAnQWJwVWk6OlJlZnJlc2gnIHwgYWJwTG9jYWxpemF0aW9uIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvYWJwLWFkdmFuY2VkLWVudGl0eS1maWx0ZXJzLWZvcm0+XHJcbiAgPC9hYnAtYWR2YW5jZWQtZW50aXR5LWZpbHRlcnM+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgIDxuZ3gtZGF0YXRhYmxlIFtyb3dzXT1cImRhdGEuaXRlbXNcIiBbY291bnRdPVwiZGF0YS50b3RhbENvdW50XCIgW2xpc3RdPVwibGlzdFwiIGRlZmF1bHQ+XHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBbbmFtZV09XCInQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgIFttYXhXaWR0aF09XCIxNTBcIlxyXG4gICAgICAgICAgW3dpZHRoXT1cIjE1MFwiXHJcbiAgICAgICAgICBbc29ydGFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LWk9XCJyb3dJbmRleFwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjb250YWluZXI9XCJib2R5XCIgY2xhc3M9XCJkLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBkcm9wZG93bi10b2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtY29nIG1lLTFcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkFjdGlvbnMnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93bkl0ZW1cclxuICAgICAgICAgICAgICAgICAgKmFicFBlcm1pc3Npb249XCInT3ZvbHQuT3ZvbHRJbnRlZ3JhdGlvbkxvZ3MuRWRpdCdcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlKHJvdylcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyAnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIG5nYkRyb3Bkb3duSXRlbVxyXG4gICAgICAgICAgICAgICAgICAqYWJwUGVybWlzc2lvbj1cIidPdm9sdC5Pdm9sdEludGVncmF0aW9uTG9ncy5EZWxldGUnXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZShyb3cpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgJ0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ092b2x0OjpQYXRoJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHByb3A9XCJwYXRoXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnBhdGggfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uIG5hbWU9XCJ7eyAnT3ZvbHQ6Ok1ldGhvZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cIiBwcm9wPVwibWV0aG9kXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93Lm1ldGhvZCB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnT3ZvbHQ6OlJlcXVlc3RCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVwiXHJcbiAgICAgICAgICBwcm9wPVwicmVxdWVzdEJvZHlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucmVxdWVzdEJvZHkgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ092b2x0OjpSZXNwb25zZUJvZHknIHwgYWJwTG9jYWxpemF0aW9uIH19XCJcclxuICAgICAgICAgIHByb3A9XCJyZXNwb25zZUJvZHlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICB7eyByb3cucmVzcG9uc2VCb2R5IH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG4gICAgICAgIDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiBuYW1lPVwie3sgJ092b2x0OjpTdGF0dXNDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVwiIHByb3A9XCJzdGF0dXNDb2RlXCI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnN0YXR1c0NvZGUgfX1cclxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHJcbiAgICAgICAgPG5neC1kYXRhdGFibGUtY29sdW1uXHJcbiAgICAgICAgICBuYW1lPVwie3sgJ092b2x0OjpSZXF1ZXN0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInJlcXVlc3RUaW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuICAgICAgICAgICAge3sgcm93LnJlcXVlc3RUaW1lIHwgZGF0ZSB9fVxyXG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuICAgICAgICA8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuICAgICAgICAgIG5hbWU9XCJ7eyAnT3ZvbHQ6OlJlc3BvbnNlVGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cIlxyXG4gICAgICAgICAgcHJvcD1cInJlc3BvbnNlVGltZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIHt7IHJvdy5yZXNwb25zZVRpbWUgfCBkYXRlIH19XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcbiAgICAgIDwvbmd4LWRhdGF0YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2FicC1wYWdlPlxyXG5cclxuPGFicC1tb2RhbCBbYnVzeV09XCJpc01vZGFsQnVzeVwiIFsodmlzaWJsZSldPVwiaXNNb2RhbE9wZW5cIj5cclxuICA8bmctdGVtcGxhdGUgI2FicEhlYWRlcj5cclxuICAgIDxoMz5cclxuICAgICAge3sgKHNlbGVjdGVkID8gJ0FicFVpOjpFZGl0JyA6ICdPdm9sdDo6TmV3T3ZvbHRJbnRlZ3JhdGlvbkxvZycpIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICA8L2gzPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwQm9keT5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGlkPVwib3ZvbHQtaW50ZWdyYXRpb24tbG9nXCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiIHZhbGlkYXRlT25TdWJtaXQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGZhZGUtaW4tdG9wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJvdm9sdC1pbnRlZ3JhdGlvbi1sb2ctcGF0aFwiPlxyXG4gICAgICAgICAgICB7eyAnT3ZvbHQ6OlBhdGgnIHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2xhYmVsPlxyXG5cclxuICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICBpZD1cIm92b2x0LWludGVncmF0aW9uLWxvZy1wYXRoXCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgYXV0b2ZvY3VzXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwib3ZvbHQtaW50ZWdyYXRpb24tbG9nLW1ldGhvZFwiPlxyXG4gICAgICAgICAgICB7eyAnT3ZvbHQ6Ok1ldGhvZCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0IGlkPVwib3ZvbHQtaW50ZWdyYXRpb24tbG9nLW1ldGhvZFwiIGZvcm1Db250cm9sTmFtZT1cIm1ldGhvZFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm92b2x0LWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LWJvZHlcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpSZXF1ZXN0Qm9keScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgIGlkPVwib3ZvbHQtaW50ZWdyYXRpb24tbG9nLXJlcXVlc3QtYm9keVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlcXVlc3RCb2R5XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm92b2x0LWludGVncmF0aW9uLWxvZy1yZXNwb25zZS1ib2R5XCI+XHJcbiAgICAgICAgICAgIHt7ICdPdm9sdDo6UmVzcG9uc2VCb2R5JyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJvdm9sdC1pbnRlZ3JhdGlvbi1sb2ctcmVzcG9uc2UtYm9keVwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlc3BvbnNlQm9keVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJvdm9sdC1pbnRlZ3JhdGlvbi1sb2ctc3RhdHVzLWNvZGVcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpTdGF0dXNDb2RlJyB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICAgICAgPC9sYWJlbD5cclxuXHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgaWQ9XCJvdm9sdC1pbnRlZ3JhdGlvbi1sb2ctc3RhdHVzLWNvZGVcIlxyXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGF0dXNDb2RlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cIm92b2x0LWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LXRpbWVcIj5cclxuICAgICAgICAgICAge3sgJ092b2x0OjpSZXF1ZXN0VGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cIm92b2x0LWludGVncmF0aW9uLWxvZy1yZXF1ZXN0LXRpbWVcIlxyXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlcXVlc3RUaW1lXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgbmdiRGF0ZXBpY2tlclxyXG4gICAgICAgICAgICAgICNyZXF1ZXN0VGltZUlucHV0XHJcbiAgICAgICAgICAgICAgI3JlcXVlc3RUaW1lRGF0ZXBpY2tlcj1cIm5nYkRhdGVwaWNrZXJcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZXF1ZXN0VGltZURhdGVwaWNrZXIub3BlbigpXCJcclxuICAgICAgICAgICAgICAoa2V5dXAuc3BhY2UpPVwicmVxdWVzdFRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXF1ZXN0VGltZUlucHV0LnZhbHVlXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1hcHBlbmRcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBweC0yXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIidBYnBVaTo6Q2xlYXInIHwgYWJwTG9jYWxpemF0aW9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgcmVxdWVzdFRpbWVEYXRlcGlja2VyLndyaXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgIHJlcXVlc3RUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJvdm9sdC1pbnRlZ3JhdGlvbi1sb2ctcmVzcG9uc2UtdGltZVwiPlxyXG4gICAgICAgICAgICB7eyAnT3ZvbHQ6OlJlc3BvbnNlVGltZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgdmFsaWRhdGlvblRhcmdldD5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgcmVhZG9ubHlcclxuICAgICAgICAgICAgICBpZD1cIm92b2x0LWludGVncmF0aW9uLWxvZy1yZXNwb25zZS10aW1lXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXNwb25zZVRpbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICBuZ2JEYXRlcGlja2VyXHJcbiAgICAgICAgICAgICAgI3Jlc3BvbnNlVGltZUlucHV0XHJcbiAgICAgICAgICAgICAgI3Jlc3BvbnNlVGltZURhdGVwaWNrZXI9XCJuZ2JEYXRlcGlja2VyXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5vcGVuKClcIlxyXG4gICAgICAgICAgICAgIChrZXl1cC5zcGFjZSk9XCJyZXNwb25zZVRpbWVEYXRlcGlja2VyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyZXNwb25zZVRpbWVJbnB1dC52YWx1ZVwiIGNsYXNzPVwiaW5wdXQtZ3JvdXAtYXBwZW5kXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcHgtMlwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIFt0aXRsZV09XCInQWJwVWk6OkNsZWFyJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVGltZURhdGVwaWNrZXIud3JpdGVWYWx1ZShudWxsKTtcclxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2VUaW1lRGF0ZXBpY2tlci5tYW51YWxEYXRlQ2hhbmdlKG51bGwsIHRydWUpXHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGltZXNcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjYWJwRm9vdGVyPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPlxyXG4gICAgICB7eyAnQWJwVWk6OkNhbmNlbCcgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYnV0dG9uPlxyXG5cclxuICAgIDxhYnAtYnV0dG9uIGljb25DbGFzcz1cImZhIGZhLWNoZWNrXCIgYnV0dG9uVHlwZT1cInN1Ym1pdFwiIGZvcm1OYW1lPVwib3ZvbHQtaW50ZWdyYXRpb24tbG9nXCI+XHJcbiAgICAgIHt7ICdBYnBVaTo6U2F2ZScgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgIDwvYWJwLWJ1dHRvbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2FicC1tb2RhbD5cclxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AuthGuard, PermissionGuard } from '@abp/ng.core';
|
|
2
|
+
import { NgModule } from '@angular/core';
|
|
3
|
+
import { RouterModule } from '@angular/router';
|
|
4
|
+
import { OvoltIntegrationLogComponent } from './components/ovolt-integration-log.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
const routes = [
|
|
8
|
+
{
|
|
9
|
+
path: '',
|
|
10
|
+
component: OvoltIntegrationLogComponent,
|
|
11
|
+
canActivate: [AuthGuard, PermissionGuard],
|
|
12
|
+
},
|
|
13
|
+
];
|
|
14
|
+
export class OvoltIntegrationLogRoutingModule {
|
|
15
|
+
}
|
|
16
|
+
OvoltIntegrationLogRoutingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
17
|
+
OvoltIntegrationLogRoutingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] });
|
|
18
|
+
OvoltIntegrationLogRoutingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogRoutingModule, decorators: [{
|
|
20
|
+
type: NgModule,
|
|
21
|
+
args: [{
|
|
22
|
+
imports: [RouterModule.forChild(routes)],
|
|
23
|
+
exports: [RouterModule],
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtaW50ZWdyYXRpb24tbG9nLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3ZvbHQvc3JjL2xpYi9vdm9sdC1pbnRlZ3JhdGlvbi1sb2dzL292b2x0LWludGVncmF0aW9uLWxvZy9vdm9sdC1pbnRlZ3JhdGlvbi1sb2ctcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sOENBQThDLENBQUM7OztBQUU1RixNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxFQUFFO1FBQ1IsU0FBUyxFQUFFLDRCQUE0QjtRQUN2QyxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZUFBZSxDQUFDO0tBQzFDO0NBQ0YsQ0FBQztBQU1GLE1BQU0sT0FBTyxnQ0FBZ0M7OzZIQUFoQyxnQ0FBZ0M7OEhBQWhDLGdDQUFnQyx3Q0FGakMsWUFBWTs4SEFFWCxnQ0FBZ0MsWUFIakMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFDN0IsWUFBWTsyRkFFWCxnQ0FBZ0M7a0JBSjVDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPdm9sdEludGVncmF0aW9uTG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL292b2x0LWludGVncmF0aW9uLWxvZy5jb21wb25lbnQnO1xyXG5cclxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXHJcbiAge1xyXG4gICAgcGF0aDogJycsXHJcbiAgICBjb21wb25lbnQ6IE92b2x0SW50ZWdyYXRpb25Mb2dDb21wb25lbnQsXHJcbiAgICBjYW5BY3RpdmF0ZTogW0F1dGhHdWFyZCwgUGVybWlzc2lvbkd1YXJkXSxcclxuICB9LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxyXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3ZvbHRJbnRlZ3JhdGlvbkxvZ1JvdXRpbmdNb2R1bGUge31cclxuIl19
|
package/esm2020/lib/ovolt-integration-logs/ovolt-integration-log/ovolt-integration-log.module.mjs
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CoreModule } from '@abp/ng.core';
|
|
2
|
+
import { ThemeSharedModule } from '@abp/ng.theme.shared';
|
|
3
|
+
import { NgModule } from '@angular/core';
|
|
4
|
+
import { NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
+
import { NgxValidateCoreModule } from '@ngx-validate/core';
|
|
6
|
+
import { CommercialUiModule } from '@volo/abp.commercial.ng.ui';
|
|
7
|
+
import { PageModule } from '@abp/ng.components/page';
|
|
8
|
+
import { OvoltIntegrationLogComponent } from './components/ovolt-integration-log.component';
|
|
9
|
+
import { OvoltIntegrationLogRoutingModule } from './ovolt-integration-log-routing.module';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class OvoltIntegrationLogModule {
|
|
12
|
+
}
|
|
13
|
+
OvoltIntegrationLogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
+
OvoltIntegrationLogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogModule, declarations: [OvoltIntegrationLogComponent], imports: [OvoltIntegrationLogRoutingModule,
|
|
15
|
+
CoreModule,
|
|
16
|
+
ThemeSharedModule,
|
|
17
|
+
CommercialUiModule,
|
|
18
|
+
NgxValidateCoreModule,
|
|
19
|
+
NgbCollapseModule,
|
|
20
|
+
NgbDatepickerModule,
|
|
21
|
+
NgbDropdownModule,
|
|
22
|
+
PageModule] });
|
|
23
|
+
OvoltIntegrationLogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogModule, imports: [OvoltIntegrationLogRoutingModule,
|
|
24
|
+
CoreModule,
|
|
25
|
+
ThemeSharedModule,
|
|
26
|
+
CommercialUiModule,
|
|
27
|
+
NgxValidateCoreModule,
|
|
28
|
+
NgbCollapseModule,
|
|
29
|
+
NgbDatepickerModule,
|
|
30
|
+
NgbDropdownModule,
|
|
31
|
+
PageModule] });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: OvoltIntegrationLogModule, decorators: [{
|
|
33
|
+
type: NgModule,
|
|
34
|
+
args: [{
|
|
35
|
+
declarations: [OvoltIntegrationLogComponent],
|
|
36
|
+
imports: [
|
|
37
|
+
OvoltIntegrationLogRoutingModule,
|
|
38
|
+
CoreModule,
|
|
39
|
+
ThemeSharedModule,
|
|
40
|
+
CommercialUiModule,
|
|
41
|
+
NgxValidateCoreModule,
|
|
42
|
+
NgbCollapseModule,
|
|
43
|
+
NgbDatepickerModule,
|
|
44
|
+
NgbDropdownModule,
|
|
45
|
+
PageModule,
|
|
46
|
+
],
|
|
47
|
+
}]
|
|
48
|
+
}] });
|
|
49
|
+
export function loadOvoltIntegrationLogModuleAsChild() {
|
|
50
|
+
return Promise.resolve(OvoltIntegrationLogModule);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtaW50ZWdyYXRpb24tbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL292b2x0L3NyYy9saWIvb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9vdm9sdC1pbnRlZ3JhdGlvbi1sb2cvb3ZvbHQtaW50ZWdyYXRpb24tbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsaUJBQWlCLEdBQ2xCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOztBQWlCMUYsTUFBTSxPQUFPLHlCQUF5Qjs7c0hBQXpCLHlCQUF5Qjt1SEFBekIseUJBQXlCLGlCQWRyQiw0QkFBNEIsYUFFekMsZ0NBQWdDO1FBQ2hDLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixpQkFBaUI7UUFDakIsbUJBQW1CO1FBQ25CLGlCQUFpQjtRQUVqQixVQUFVO3VIQUdELHlCQUF5QixZQVpsQyxnQ0FBZ0M7UUFDaEMsVUFBVTtRQUNWLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIscUJBQXFCO1FBQ3JCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBRWpCLFVBQVU7MkZBR0QseUJBQXlCO2tCQWZyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLDRCQUE0QixDQUFDO29CQUM1QyxPQUFPLEVBQUU7d0JBQ1AsZ0NBQWdDO3dCQUNoQyxVQUFVO3dCQUNWLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBRWpCLFVBQVU7cUJBQ1g7aUJBQ0Y7O0FBR0QsTUFBTSxVQUFVLG9DQUFvQztJQUNsRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFRoZW1lU2hhcmVkTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE5nYkNvbGxhcHNlTW9kdWxlLFxyXG4gIE5nYkRhdGVwaWNrZXJNb2R1bGUsXHJcbiAgTmdiRHJvcGRvd25Nb2R1bGUsXHJcbn0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBOZ3hWYWxpZGF0ZUNvcmVNb2R1bGUgfSBmcm9tICdAbmd4LXZhbGlkYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tZXJjaWFsVWlNb2R1bGUgfSBmcm9tICdAdm9sby9hYnAuY29tbWVyY2lhbC5uZy51aSc7XHJcbmltcG9ydCB7IFBhZ2VNb2R1bGUgfSBmcm9tICdAYWJwL25nLmNvbXBvbmVudHMvcGFnZSc7XHJcbmltcG9ydCB7IE92b2x0SW50ZWdyYXRpb25Mb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb3ZvbHQtaW50ZWdyYXRpb24tbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92b2x0SW50ZWdyYXRpb25Mb2dSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9vdm9sdC1pbnRlZ3JhdGlvbi1sb2ctcm91dGluZy5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtPdm9sdEludGVncmF0aW9uTG9nQ29tcG9uZW50XSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBPdm9sdEludGVncmF0aW9uTG9nUm91dGluZ01vZHVsZSxcclxuICAgIENvcmVNb2R1bGUsXHJcbiAgICBUaGVtZVNoYXJlZE1vZHVsZSxcclxuICAgIENvbW1lcmNpYWxVaU1vZHVsZSxcclxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgIE5nYkNvbGxhcHNlTW9kdWxlLFxyXG4gICAgTmdiRGF0ZXBpY2tlck1vZHVsZSxcclxuICAgIE5nYkRyb3Bkb3duTW9kdWxlLFxyXG5cclxuICAgIFBhZ2VNb2R1bGUsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE92b2x0SW50ZWdyYXRpb25Mb2dNb2R1bGUge31cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkT3ZvbHRJbnRlZ3JhdGlvbkxvZ01vZHVsZUFzQ2hpbGQoKSB7XHJcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShPdm9sdEludGVncmF0aW9uTG9nTW9kdWxlKTtcclxufVxyXG4iXX0=
|
|
@@ -5,6 +5,7 @@ import { loadHitProcessLogModuleAsChild } from './components/hit-process-logs/hi
|
|
|
5
5
|
import { loadHitSystemParameterModuleAsChild } from './components/hit-system-parameters/hit-system-parameter.module';
|
|
6
6
|
import { loadHitFuelIntegrationLogModuleAsChild } from './components/hit-fuel-integration-logs/hit-fuel-integration-log.module';
|
|
7
7
|
import { loadHitLatestFailedProcessLogModuleAsChild } from './components/hit-latest-failed-process-logs/hit-latest-failed-process-log.module';
|
|
8
|
+
import { loadHitOvoltIntegrationLogModuleAsChild } from './components/hit-ovolt-integration-logs/hit-ovolt-integration-log.module';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
import * as i1 from "@angular/router";
|
|
10
11
|
const routes = [
|
|
@@ -17,6 +18,7 @@ const routes = [
|
|
|
17
18
|
{ path: 'process-logs', loadChildren: loadHitProcessLogModuleAsChild },
|
|
18
19
|
{ path: 'latest-failed-process-logs', loadChildren: loadHitLatestFailedProcessLogModuleAsChild },
|
|
19
20
|
{ path: 'fuel-integration-logs', loadChildren: loadHitFuelIntegrationLogModuleAsChild },
|
|
21
|
+
{ path: 'ovolt-integration-logs', loadChildren: loadHitOvoltIntegrationLogModuleAsChild },
|
|
20
22
|
];
|
|
21
23
|
export class OvoltRoutingModule {
|
|
22
24
|
}
|
|
@@ -30,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
30
32
|
exports: [RouterModule],
|
|
31
33
|
}]
|
|
32
34
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZvbHQtcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9vdm9sdC9zcmMvbGliL292b2x0LXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUN0RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUVySCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQztBQUNoSSxPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUU5SSxPQUFPLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQzs7O0FBRW5JLE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLEVBQUU7UUFDUixTQUFTLEVBQUUsTUFBTTtRQUNqQixTQUFTLEVBQUUsY0FBYztLQUMxQjtJQUNELEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSxtQ0FBbUMsRUFBRTtJQUNoRixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLDhCQUE4QixFQUFFO0lBQ3RFLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFFLFlBQVksRUFBRSwwQ0FBMEMsRUFBRTtJQUNoRyxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSxZQUFZLEVBQUUsc0NBQXNDLEVBQUU7SUFDdkYsRUFBRSxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLHVDQUF1QyxFQUFFO0NBQzFGLENBQUM7QUFNRixNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0Isd0NBRm5CLFlBQVk7Z0hBRVgsa0JBQWtCLFlBSG5CLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7MkZBRVgsa0JBQWtCO2tCQUo5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE92b2x0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL292b2x0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGxvYWRQcm9jZXNzTG9nTW9kdWxlQXNDaGlsZCB9IGZyb20gJy4vcHJvY2Vzcy1sb2dzL3Byb2Nlc3MtbG9nL3Byb2Nlc3MtbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7IGxvYWRIaXRQcm9jZXNzTG9nTW9kdWxlQXNDaGlsZCB9IGZyb20gJy4vY29tcG9uZW50cy9oaXQtcHJvY2Vzcy1sb2dzL2hpdC1wcm9jZXNzLWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBsb2FkSGl0U3lzdGVtUGFyYW1ldGVyTW9kdWxlQXNDaGlsZCB9IGZyb20gJy4vY29tcG9uZW50cy9oaXQtc3lzdGVtLXBhcmFtZXRlcnMvaGl0LXN5c3RlbS1wYXJhbWV0ZXIubW9kdWxlJztcclxuaW1wb3J0IHsgbG9hZEZ1ZWxJbnRlZ3JhdGlvbkxvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL2Z1ZWwtaW50ZWdyYXRpb24tbG9ncy9mdWVsLWludGVncmF0aW9uLWxvZy9mdWVsLWludGVncmF0aW9uLWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBsb2FkSGl0RnVlbEludGVncmF0aW9uTG9nTW9kdWxlQXNDaGlsZCB9IGZyb20gJy4vY29tcG9uZW50cy9oaXQtZnVlbC1pbnRlZ3JhdGlvbi1sb2dzL2hpdC1mdWVsLWludGVncmF0aW9uLWxvZy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBsb2FkSGl0TGF0ZXN0RmFpbGVkUHJvY2Vzc0xvZ01vZHVsZUFzQ2hpbGQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGl0LWxhdGVzdC1mYWlsZWQtcHJvY2Vzcy1sb2dzL2hpdC1sYXRlc3QtZmFpbGVkLXByb2Nlc3MtbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7IGxvYWRPdm9sdEludGVncmF0aW9uTG9nTW9kdWxlQXNDaGlsZCB9IGZyb20gJy4vb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9vdm9sdC1pbnRlZ3JhdGlvbi1sb2cvb3ZvbHQtaW50ZWdyYXRpb24tbG9nLm1vZHVsZSc7XHJcbmltcG9ydCB7IGxvYWRIaXRPdm9sdEludGVncmF0aW9uTG9nTW9kdWxlQXNDaGlsZCB9IGZyb20gJy4vY29tcG9uZW50cy9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9ncy9oaXQtb3ZvbHQtaW50ZWdyYXRpb24tbG9nLm1vZHVsZSc7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiAnJyxcclxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnLFxyXG4gICAgY29tcG9uZW50OiBPdm9sdENvbXBvbmVudCxcclxuICB9LFxyXG4gIHsgcGF0aDogJ3N5c3RlbS1wYXJhbWV0ZXJzJywgbG9hZENoaWxkcmVuOiBsb2FkSGl0U3lzdGVtUGFyYW1ldGVyTW9kdWxlQXNDaGlsZCB9LFxyXG4gIHsgcGF0aDogJ3Byb2Nlc3MtbG9ncycsIGxvYWRDaGlsZHJlbjogbG9hZEhpdFByb2Nlc3NMb2dNb2R1bGVBc0NoaWxkIH0sXHJcbiAgeyBwYXRoOiAnbGF0ZXN0LWZhaWxlZC1wcm9jZXNzLWxvZ3MnLCBsb2FkQ2hpbGRyZW46IGxvYWRIaXRMYXRlc3RGYWlsZWRQcm9jZXNzTG9nTW9kdWxlQXNDaGlsZCB9LFxyXG4gIHsgcGF0aDogJ2Z1ZWwtaW50ZWdyYXRpb24tbG9ncycsIGxvYWRDaGlsZHJlbjogbG9hZEhpdEZ1ZWxJbnRlZ3JhdGlvbkxvZ01vZHVsZUFzQ2hpbGQgfSxcclxuICB7IHBhdGg6ICdvdm9sdC1pbnRlZ3JhdGlvbi1sb2dzJywgbG9hZENoaWxkcmVuOiBsb2FkSGl0T3ZvbHRJbnRlZ3JhdGlvbkxvZ01vZHVsZUFzQ2hpbGQgfSxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcclxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE92b2x0Um91dGluZ01vZHVsZSB7fVxyXG4iXX0=
|