cilog-lib 1.10.19 → 1.10.21

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.
Files changed (44) hide show
  1. package/fesm2022/cilog-lib.mjs +97 -102
  2. package/fesm2022/cilog-lib.mjs.map +1 -1
  3. package/package.json +3 -5
  4. package/types/cilog-lib.d.ts +538 -0
  5. package/esm2022/cilog-lib.mjs +0 -5
  6. package/esm2022/lib/cilog-lib.component.mjs +0 -22
  7. package/esm2022/lib/cilog-lib.module.mjs +0 -96
  8. package/esm2022/lib/cilog-lib.service.mjs +0 -14
  9. package/esm2022/lib/helpers/enums/grille.enum.mjs +0 -51
  10. package/esm2022/lib/helpers/interfaces/edition.interface.mjs +0 -2
  11. package/esm2022/lib/helpers/interfaces/editor.interface.mjs +0 -2
  12. package/esm2022/lib/helpers/interfaces/grille.interface.mjs +0 -2
  13. package/esm2022/lib/helpers/interfaces/message.interface.mjs +0 -2
  14. package/esm2022/lib/helpers/pipes/value.pipe.mjs +0 -27
  15. package/esm2022/lib/modules/primeng.module.mjs +0 -86
  16. package/esm2022/lib/services/excel.service.mjs +0 -179
  17. package/esm2022/lib/services/message.service.mjs +0 -30
  18. package/esm2022/lib/services/table.service.mjs +0 -14
  19. package/esm2022/lib/views/cilog-input-number/cilog-input-number.component.mjs +0 -251
  20. package/esm2022/lib/views/documentation/documentation-contextuelle.component.mjs +0 -156
  21. package/esm2022/lib/views/editor/editor.component.mjs +0 -38
  22. package/esm2022/lib/views/message/message.component.mjs +0 -77
  23. package/esm2022/lib/views/table/table.component.mjs +0 -674
  24. package/esm2022/public-api.mjs +0 -24
  25. package/index.d.ts +0 -5
  26. package/lib/cilog-lib.component.d.ts +0 -8
  27. package/lib/cilog-lib.module.d.ts +0 -21
  28. package/lib/cilog-lib.service.d.ts +0 -6
  29. package/lib/helpers/enums/grille.enum.d.ts +0 -44
  30. package/lib/helpers/interfaces/edition.interface.d.ts +0 -34
  31. package/lib/helpers/interfaces/editor.interface.d.ts +0 -4
  32. package/lib/helpers/interfaces/grille.interface.d.ts +0 -166
  33. package/lib/helpers/interfaces/message.interface.d.ts +0 -6
  34. package/lib/helpers/pipes/value.pipe.d.ts +0 -7
  35. package/lib/modules/primeng.module.d.ts +0 -24
  36. package/lib/services/excel.service.d.ts +0 -15
  37. package/lib/services/message.service.d.ts +0 -12
  38. package/lib/services/table.service.d.ts +0 -6
  39. package/lib/views/cilog-input-number/cilog-input-number.component.d.ts +0 -40
  40. package/lib/views/documentation/documentation-contextuelle.component.d.ts +0 -49
  41. package/lib/views/editor/editor.component.d.ts +0 -17
  42. package/lib/views/message/message.component.d.ts +0 -17
  43. package/lib/views/table/table.component.d.ts +0 -83
  44. package/public-api.d.ts +0 -15
@@ -1,77 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../../services/message.service";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "primeng/dialog";
6
- import * as i4 from "primeng/api";
7
- import * as i5 from "primeng/button";
8
- export class CilogMessageComponent {
9
- constructor(messageService) {
10
- this.messageService = messageService;
11
- }
12
- ngOnInit() {
13
- this.display = false;
14
- this.messageService.message.subscribe(message => {
15
- if (message != null) {
16
- this.message = message;
17
- }
18
- });
19
- this.messageService.display.subscribe(display => {
20
- if (display != null) {
21
- this.display = display;
22
- }
23
- });
24
- }
25
- headerBySeverity() {
26
- if (this.message != null) {
27
- switch (this.message.severity) {
28
- case 'warn':
29
- return 'Attention';
30
- case 'error':
31
- return 'Erreur';
32
- case 'success':
33
- return 'Succès';
34
- case 'info':
35
- return 'Information';
36
- }
37
- }
38
- }
39
- iconBySeverity() {
40
- if (this.message != null) {
41
- switch (this.message.severity) {
42
- case 'warn':
43
- return 'pi-exclamation-triangle';
44
- case 'error':
45
- return 'pi-exclamation-circle';
46
- case 'success':
47
- return 'pi-check';
48
- case 'info':
49
- return 'pi-info-circle';
50
- }
51
- }
52
- }
53
- classBySeverity() {
54
- if (this.message != null) {
55
- switch (this.message.severity) {
56
- case 'warn':
57
- return 'message_warn';
58
- case 'error':
59
- return 'message_error';
60
- case 'success':
61
- return 'message_success';
62
- case 'info':
63
- return 'message_info';
64
- }
65
- }
66
- }
67
- refreshPage() {
68
- window.location.reload();
69
- }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CilogMessageComponent, deps: [{ token: i1.CilogMessageService }], target: i0.ɵɵFactoryTarget.Component }); }
71
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CilogMessageComponent, selector: "cilog-message", ngImport: i0, template: "<p-dialog [styleClass]=\"classBySeverity()\"\r\n [(visible)]=\"display\"\r\n [modal]=\"true\"\r\n [baseZIndex]=\"10000\"\r\n [closable]=\"false\"\r\n [resizable]=\"false\"\r\n [draggable]=\"false\">\r\n\r\n <!-- Header -->\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"pi {{ iconBySeverity() }} header_icon\"></i>\r\n <span class=\"header_text\">{{ headerBySeverity() }}</span>\r\n </ng-template>\r\n\r\n <!-- Content -->\r\n <p class=\"content mb-3\"\r\n [innerHTML]=\"message?.content\">\r\n </p>\r\n\r\n <!-- Boutons -->\r\n <button pButton\r\n *ngIf=\"message?.closable == true && message?.refresh == false\"\r\n icon=\"pi pi-check\"\r\n (click)=\"display=false\"\r\n label=\"Ok\"\r\n style=\"float:right;\"\r\n class=\"p-button-text\">\r\n </button>\r\n <button pButton\r\n *ngIf=\"message?.refresh == true\"\r\n icon=\"pi pi-refresh\"\r\n (click)=\"refreshPage()\"\r\n label=\"Rafra\u00EEchir\"\r\n style=\"float:right;\"\r\n class=\"p-button-text\">\r\n </button>\r\n\r\n</p-dialog>\r\n", styles: [":host ::ng-deep .message_success>div{background-color:#b7fdc0}:host ::ng-deep .message_error>div{background-color:#fdb8b7}:host ::ng-deep .message_warn>div{background-color:#fff5ba}:host ::ng-deep .message_info>div{background-color:#b7eefd}:host ::ng-deep .p-dialog-content,:host ::ng-deep .p-dialog-footer,:host ::ng-deep .p-dialog-header{padding:10px}:host ::ng-deep .content{margin:4px;white-space:pre}:host ::ng-deep .p-button-text{padding-top:0;padding-bottom:3px}:host ::ng-deep .header_text{font-weight:500;font-size:1.25rem;margin-left:10px}:host ::ng-deep .header_icon{font-size:1.5rem}:host ::ng-deep .p-dialog-header{justify-content:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }] }); }
72
- }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CilogMessageComponent, decorators: [{
74
- type: Component,
75
- args: [{ selector: 'cilog-message', template: "<p-dialog [styleClass]=\"classBySeverity()\"\r\n [(visible)]=\"display\"\r\n [modal]=\"true\"\r\n [baseZIndex]=\"10000\"\r\n [closable]=\"false\"\r\n [resizable]=\"false\"\r\n [draggable]=\"false\">\r\n\r\n <!-- Header -->\r\n <ng-template pTemplate=\"header\">\r\n <i class=\"pi {{ iconBySeverity() }} header_icon\"></i>\r\n <span class=\"header_text\">{{ headerBySeverity() }}</span>\r\n </ng-template>\r\n\r\n <!-- Content -->\r\n <p class=\"content mb-3\"\r\n [innerHTML]=\"message?.content\">\r\n </p>\r\n\r\n <!-- Boutons -->\r\n <button pButton\r\n *ngIf=\"message?.closable == true && message?.refresh == false\"\r\n icon=\"pi pi-check\"\r\n (click)=\"display=false\"\r\n label=\"Ok\"\r\n style=\"float:right;\"\r\n class=\"p-button-text\">\r\n </button>\r\n <button pButton\r\n *ngIf=\"message?.refresh == true\"\r\n icon=\"pi pi-refresh\"\r\n (click)=\"refreshPage()\"\r\n label=\"Rafra\u00EEchir\"\r\n style=\"float:right;\"\r\n class=\"p-button-text\">\r\n </button>\r\n\r\n</p-dialog>\r\n", styles: [":host ::ng-deep .message_success>div{background-color:#b7fdc0}:host ::ng-deep .message_error>div{background-color:#fdb8b7}:host ::ng-deep .message_warn>div{background-color:#fff5ba}:host ::ng-deep .message_info>div{background-color:#b7eefd}:host ::ng-deep .p-dialog-content,:host ::ng-deep .p-dialog-footer,:host ::ng-deep .p-dialog-header{padding:10px}:host ::ng-deep .content{margin:4px;white-space:pre}:host ::ng-deep .p-button-text{padding-top:0;padding-bottom:3px}:host ::ng-deep .header_text{font-weight:500;font-size:1.25rem;margin-left:10px}:host ::ng-deep .header_icon{font-size:1.5rem}:host ::ng-deep .p-dialog-header{justify-content:inherit}\n"] }]
76
- }], ctorParameters: () => [{ type: i1.CilogMessageService }] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaWxvZy1saWIvc3JjL2xpYi92aWV3cy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lsb2ctbGliL3NyYy9saWIvdmlld3MvbWVzc2FnZS9tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFPbEQsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixZQUFtQixjQUFtQztRQUFuQyxtQkFBYyxHQUFkLGNBQWMsQ0FBcUI7SUFBSSxDQUFDO0lBRTNELFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUVyQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQzNCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM1QyxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDM0IsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzVCLEtBQUssTUFBTTtvQkFDUCxPQUFPLFdBQVcsQ0FBQztnQkFDdkIsS0FBSyxPQUFPO29CQUNSLE9BQU8sUUFBUSxDQUFBO2dCQUNuQixLQUFLLFNBQVM7b0JBQ1YsT0FBTyxRQUFRLENBQUE7Z0JBQ25CLEtBQUssTUFBTTtvQkFDUCxPQUFPLGFBQWEsQ0FBQTtZQUM1QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLFFBQVEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDNUIsS0FBSyxNQUFNO29CQUNQLE9BQU8seUJBQXlCLENBQUM7Z0JBQ3JDLEtBQUssT0FBTztvQkFDUixPQUFPLHVCQUF1QixDQUFBO2dCQUNsQyxLQUFLLFNBQVM7b0JBQ1YsT0FBTyxVQUFVLENBQUE7Z0JBQ3JCLEtBQUssTUFBTTtvQkFDUCxPQUFPLGdCQUFnQixDQUFBO1lBQy9CLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsUUFBUSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUM1QixLQUFLLE1BQU07b0JBQ1AsT0FBTyxjQUFjLENBQUM7Z0JBQzFCLEtBQUssT0FBTztvQkFDUixPQUFPLGVBQWUsQ0FBQTtnQkFDMUIsS0FBSyxTQUFTO29CQUNWLE9BQU8saUJBQWlCLENBQUE7Z0JBQzVCLEtBQUssTUFBTTtvQkFDUCxPQUFPLGNBQWMsQ0FBQTtZQUM3QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQXRFUSxxQkFBcUI7bUdBQXJCLHFCQUFxQixxRENUbEMsMHRDQXNDQTs7NEZEN0JhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2lsb2dNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IElNZXNzYWdlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbnRlcmZhY2VzL21lc3NhZ2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjaWxvZy1tZXNzYWdlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL21lc3NhZ2UuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2lsb2dNZXNzYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBkaXNwbGF5OiBib29sZWFuO1xyXG4gICAgbWVzc2FnZTogSU1lc3NhZ2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIG1lc3NhZ2VTZXJ2aWNlOiBDaWxvZ01lc3NhZ2VTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpc3BsYXkgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5tZXNzYWdlLnN1YnNjcmliZShtZXNzYWdlID0+IHtcclxuICAgICAgICAgICAgaWYgKG1lc3NhZ2UgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmRpc3BsYXkuc3Vic2NyaWJlKGRpc3BsYXkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZGlzcGxheSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXkgPSBkaXNwbGF5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGVhZGVyQnlTZXZlcml0eSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2UgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMubWVzc2FnZS5zZXZlcml0eSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnd2Fybic6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdBdHRlbnRpb24nO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnRXJyZXVyJ1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdTdWNjw6hzJ1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnaW5mbyc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdJbmZvcm1hdGlvbidcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpY29uQnlTZXZlcml0eSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2UgIT0gbnVsbCkge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMubWVzc2FnZS5zZXZlcml0eSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnd2Fybic6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdwaS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdwaS1leGNsYW1hdGlvbi1jaXJjbGUnXHJcbiAgICAgICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3BpLWNoZWNrJ1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnaW5mbyc6XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdwaS1pbmZvLWNpcmNsZSdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGFzc0J5U2V2ZXJpdHkoKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAodGhpcy5tZXNzYWdlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLm1lc3NhZ2Uuc2V2ZXJpdHkpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3dhcm4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnbWVzc2FnZV93YXJuJztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ21lc3NhZ2VfZXJyb3InXHJcbiAgICAgICAgICAgICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ21lc3NhZ2Vfc3VjY2VzcydcclxuICAgICAgICAgICAgICAgIGNhc2UgJ2luZm8nOlxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnbWVzc2FnZV9pbmZvJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlZnJlc2hQYWdlKCkge1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8cC1kaWFsb2cgW3N0eWxlQ2xhc3NdPVwiY2xhc3NCeVNldmVyaXR5KClcIlxyXG4gICAgICAgICAgWyh2aXNpYmxlKV09XCJkaXNwbGF5XCJcclxuICAgICAgICAgIFttb2RhbF09XCJ0cnVlXCJcclxuICAgICAgICAgIFtiYXNlWkluZGV4XT1cIjEwMDAwXCJcclxuICAgICAgICAgIFtjbG9zYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbcmVzaXphYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtkcmFnZ2FibGVdPVwiZmFsc2VcIj5cclxuXHJcbiAgICA8IS0tIEhlYWRlciAtLT5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICA8aSBjbGFzcz1cInBpIHt7IGljb25CeVNldmVyaXR5KCkgfX0gaGVhZGVyX2ljb25cIj48L2k+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXJfdGV4dFwiPnt7IGhlYWRlckJ5U2V2ZXJpdHkoKSB9fTwvc3Bhbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPCEtLSBDb250ZW50IC0tPlxyXG4gICAgPHAgY2xhc3M9XCJjb250ZW50IG1iLTNcIlxyXG4gICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlPy5jb250ZW50XCI+XHJcbiAgICA8L3A+XHJcblxyXG4gICAgPCEtLSBCb3V0b25zIC0tPlxyXG4gICAgPGJ1dHRvbiBwQnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwibWVzc2FnZT8uY2xvc2FibGUgPT0gdHJ1ZSAmJiBtZXNzYWdlPy5yZWZyZXNoID09IGZhbHNlXCJcclxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLWNoZWNrXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImRpc3BsYXk9ZmFsc2VcIlxyXG4gICAgICAgICAgICBsYWJlbD1cIk9rXCJcclxuICAgICAgICAgICAgc3R5bGU9XCJmbG9hdDpyaWdodDtcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHRcIj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBwQnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwibWVzc2FnZT8ucmVmcmVzaCA9PSB0cnVlXCJcclxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLXJlZnJlc2hcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaFBhZ2UoKVwiXHJcbiAgICAgICAgICAgIGxhYmVsPVwiUmFmcmHDrmNoaXJcIlxyXG4gICAgICAgICAgICBzdHlsZT1cImZsb2F0OnJpZ2h0O1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tdGV4dFwiPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG48L3AtZGlhbG9nPlxyXG4iXX0=