awf-test-lib 0.1.22 → 0.1.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. package/{esm2020 → esm2022}/awf-test-lib.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/core/core-routing.module.mjs +18 -18
  3. package/{esm2020 → esm2022}/lib/core/core.module.mjs +51 -51
  4. package/esm2022/lib/core/menu/menu.component.mjs +44 -0
  5. package/esm2022/lib/core/menu-consomer/menu-consomer.component.mjs +28 -0
  6. package/esm2022/lib/core/menu-ge-portal/menu-ge-portal.component.mjs +108 -0
  7. package/esm2022/lib/core/menu-warranty/menu-warranty.component.mjs +37 -0
  8. package/esm2022/lib/core/not-found/not-found.component.mjs +21 -0
  9. package/{esm2020 → esm2022}/lib/core/top-bar/top-bar.component.mjs +43 -41
  10. package/esm2022/lib/models/account.model.mjs +15 -0
  11. package/esm2022/lib/models/alternativeDate.model.mjs +7 -0
  12. package/{esm2020 → esm2022}/lib/models/applicationName.mjs +6 -6
  13. package/{esm2020 → esm2022}/lib/models/cancelPMMailRequest.model.mjs +6 -4
  14. package/{esm2020 → esm2022}/lib/models/customObject.model.mjs +4 -3
  15. package/esm2022/lib/models/detailedPmJob.model.mjs +23 -0
  16. package/{esm2020 → esm2022}/lib/models/emailStatus.mjs +5 -5
  17. package/{esm2020 → esm2022}/lib/models/emailType.mjs +16 -16
  18. package/{esm2020 → esm2022}/lib/models/eventStatus.mjs +8 -8
  19. package/{esm2020 → esm2022}/lib/models/field.mjs +8 -8
  20. package/{esm2020 → esm2022}/lib/models/language.mjs +5 -5
  21. package/esm2022/lib/models/mailRequest.model.mjs +17 -0
  22. package/{esm2020 → esm2022}/lib/models/pMGroupedJob.model.mjs +4 -3
  23. package/esm2022/lib/models/pmJob.model.mjs +23 -0
  24. package/esm2022/lib/models/pmJobRequest.model.mjs +5 -0
  25. package/{esm2020 → esm2022}/lib/models/pmJobStatus.mjs +16 -16
  26. package/{esm2020 → esm2022}/lib/models/reason.model.mjs +5 -3
  27. package/{esm2020 → esm2022}/lib/models/reasonCode.mjs +8 -8
  28. package/{esm2020 → esm2022}/lib/models/reasonContact.mjs +7 -7
  29. package/{esm2020 → esm2022}/lib/models/reportDateMailRequest.model.mjs +6 -4
  30. package/{esm2020 → esm2022}/lib/models/role.mjs +6 -6
  31. package/esm2022/lib/models/service.model.mjs +9 -0
  32. package/{esm2020 → esm2022}/lib/models/serviceName.mjs +11 -11
  33. package/esm2022/lib/models/socialLoginRequest.model.mjs +7 -0
  34. package/{esm2020 → esm2022}/lib/models/socialMadia.mjs +4 -4
  35. package/{esm2020 → esm2022}/lib/models/stingBoolean.mjs +5 -5
  36. package/esm2022/lib/models/system.mjs +14 -0
  37. package/{esm2020 → esm2022}/lib/models/theme.model.mjs +1 -1
  38. package/{esm2020 → esm2022}/lib/models/tokenStatus.mjs +6 -6
  39. package/esm2022/lib/models/warranty.mjs +18 -0
  40. package/{esm2020 → esm2022}/lib/pipes/pipes/pipes.module.mjs +21 -21
  41. package/esm2022/lib/pipes/subrtring-w.pipe.mjs +20 -0
  42. package/{esm2020 → esm2022}/lib/pipes/substring.pipe.mjs +16 -16
  43. package/esm2022/lib/shared/choose-another-date/choose-another-date.component.mjs +117 -0
  44. package/esm2022/lib/shared/confirm-dialog/confirm-dialog.component.mjs +52 -0
  45. package/esm2022/lib/shared/confirm-dialog-contact/confirm-dialog-contact.component.mjs +48 -0
  46. package/esm2022/lib/shared/confirmed-date-information/confirmed-date-information.component.mjs +44 -0
  47. package/esm2022/lib/shared/contact/contact.component.mjs +170 -0
  48. package/esm2022/lib/shared/contact-support/contact-support.component.mjs +186 -0
  49. package/esm2022/lib/shared/dashboard/dashboard.component.mjs +39 -0
  50. package/esm2022/lib/shared/maintenance-list/maintenance-list.component.mjs +372 -0
  51. package/{esm2020 → esm2022}/lib/shared/shared-routing.module.mjs +18 -18
  52. package/{esm2020 → esm2022}/lib/shared/shared.module.mjs +144 -144
  53. package/esm2022/lib/shared/show-links/show-links.component.mjs +86 -0
  54. package/{esm2020 → esm2022}/lib/shared/system-list/system-list.component.mjs +35 -33
  55. package/{esm2020 → esm2022}/public-api.mjs +47 -47
  56. package/{fesm2020 → fesm2022}/awf-test-lib.mjs +1709 -1499
  57. package/fesm2022/awf-test-lib.mjs.map +1 -0
  58. package/index.d.ts +5 -5
  59. package/lib/core/core-routing.module.d.ts +7 -7
  60. package/lib/core/core.module.d.ts +15 -15
  61. package/lib/core/menu/menu.component.d.ts +17 -17
  62. package/lib/core/menu-consomer/menu-consomer.component.d.ts +12 -12
  63. package/lib/core/menu-ge-portal/menu-ge-portal.component.d.ts +20 -20
  64. package/lib/core/menu-warranty/menu-warranty.component.d.ts +15 -15
  65. package/lib/core/not-found/not-found.component.d.ts +10 -10
  66. package/lib/core/top-bar/top-bar.component.d.ts +13 -13
  67. package/lib/models/account.model.d.ts +14 -14
  68. package/lib/models/alternativeDate.model.d.ts +6 -6
  69. package/lib/models/applicationName.d.ts +5 -5
  70. package/lib/models/cancelPMMailRequest.model.d.ts +5 -5
  71. package/lib/models/customObject.model.d.ts +3 -3
  72. package/lib/models/detailedPmJob.model.d.ts +23 -23
  73. package/lib/models/emailStatus.d.ts +4 -4
  74. package/lib/models/emailType.d.ts +15 -15
  75. package/lib/models/eventStatus.d.ts +7 -7
  76. package/lib/models/field.d.ts +7 -7
  77. package/lib/models/language.d.ts +4 -4
  78. package/lib/models/mailRequest.model.d.ts +16 -16
  79. package/lib/models/pMGroupedJob.model.d.ts +3 -3
  80. package/lib/models/pmJob.model.d.ts +25 -25
  81. package/lib/models/pmJobRequest.model.d.ts +5 -5
  82. package/lib/models/pmJobStatus.d.ts +14 -14
  83. package/lib/models/reason.model.d.ts +4 -4
  84. package/lib/models/reasonCode.d.ts +7 -7
  85. package/lib/models/reasonContact.d.ts +6 -6
  86. package/lib/models/reportDateMailRequest.model.d.ts +5 -5
  87. package/lib/models/role.d.ts +5 -5
  88. package/lib/models/service.model.d.ts +8 -8
  89. package/lib/models/serviceName.d.ts +10 -10
  90. package/lib/models/socialLoginRequest.model.d.ts +6 -6
  91. package/lib/models/socialMadia.d.ts +3 -3
  92. package/lib/models/stingBoolean.d.ts +4 -4
  93. package/lib/models/system.d.ts +14 -14
  94. package/lib/models/theme.model.d.ts +38 -38
  95. package/lib/models/tokenStatus.d.ts +5 -5
  96. package/lib/models/warranty.d.ts +17 -17
  97. package/lib/pipes/pipes/pipes.module.d.ts +9 -9
  98. package/lib/pipes/subrtring-w.pipe.d.ts +7 -7
  99. package/lib/pipes/substring.pipe.d.ts +7 -7
  100. package/lib/shared/choose-another-date/choose-another-date.component.d.ts +33 -33
  101. package/lib/shared/confirm-dialog/confirm-dialog.component.d.ts +21 -21
  102. package/lib/shared/confirm-dialog-contact/confirm-dialog-contact.component.d.ts +19 -19
  103. package/lib/shared/confirmed-date-information/confirmed-date-information.component.d.ts +17 -17
  104. package/lib/shared/contact/contact.component.d.ts +39 -39
  105. package/lib/shared/contact-support/contact-support.component.d.ts +50 -50
  106. package/lib/shared/dashboard/dashboard.component.d.ts +18 -18
  107. package/lib/shared/maintenance-list/maintenance-list.component.d.ts +81 -81
  108. package/lib/shared/shared-routing.module.d.ts +7 -7
  109. package/lib/shared/shared.module.d.ts +40 -40
  110. package/lib/shared/show-links/show-links.component.d.ts +24 -24
  111. package/lib/shared/system-list/system-list.component.d.ts +16 -16
  112. package/package.json +7 -13
  113. package/public-api.d.ts +42 -42
  114. package/esm2020/lib/core/menu/menu.component.mjs +0 -40
  115. package/esm2020/lib/core/menu-consomer/menu-consomer.component.mjs +0 -27
  116. package/esm2020/lib/core/menu-ge-portal/menu-ge-portal.component.mjs +0 -105
  117. package/esm2020/lib/core/menu-warranty/menu-warranty.component.mjs +0 -35
  118. package/esm2020/lib/core/not-found/not-found.component.mjs +0 -19
  119. package/esm2020/lib/models/account.model.mjs +0 -3
  120. package/esm2020/lib/models/alternativeDate.model.mjs +0 -3
  121. package/esm2020/lib/models/detailedPmJob.model.mjs +0 -3
  122. package/esm2020/lib/models/mailRequest.model.mjs +0 -3
  123. package/esm2020/lib/models/pmJob.model.mjs +0 -3
  124. package/esm2020/lib/models/pmJobRequest.model.mjs +0 -3
  125. package/esm2020/lib/models/service.model.mjs +0 -3
  126. package/esm2020/lib/models/socialLoginRequest.model.mjs +0 -3
  127. package/esm2020/lib/models/system.mjs +0 -3
  128. package/esm2020/lib/models/warranty.mjs +0 -3
  129. package/esm2020/lib/pipes/subrtring-w.pipe.mjs +0 -20
  130. package/esm2020/lib/shared/choose-another-date/choose-another-date.component.mjs +0 -110
  131. package/esm2020/lib/shared/confirm-dialog/confirm-dialog.component.mjs +0 -45
  132. package/esm2020/lib/shared/confirm-dialog-contact/confirm-dialog-contact.component.mjs +0 -42
  133. package/esm2020/lib/shared/confirmed-date-information/confirmed-date-information.component.mjs +0 -39
  134. package/esm2020/lib/shared/contact/contact.component.mjs +0 -160
  135. package/esm2020/lib/shared/contact-support/contact-support.component.mjs +0 -172
  136. package/esm2020/lib/shared/dashboard/dashboard.component.mjs +0 -35
  137. package/esm2020/lib/shared/maintenance-list/maintenance-list.component.mjs +0 -352
  138. package/esm2020/lib/shared/show-links/show-links.component.mjs +0 -80
  139. package/fesm2015/awf-test-lib.mjs +0 -1654
  140. package/fesm2015/awf-test-lib.mjs.map +0 -1
  141. package/fesm2020/awf-test-lib.mjs.map +0 -1
@@ -1,172 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { Validators } from '@angular/forms';
3
- import { MessageService } from 'primeng/api';
4
- import { PmJobStatus } from '../../models/pmJobStatus';
5
- import { ReasonCode } from '../../models/reasonCode';
6
- import { ReasonContact } from '../../models/reasonContact';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "primeng/api";
9
- import * as i2 from "@angular/forms";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "primeng/inputtext";
12
- import * as i5 from "primeng/toast";
13
- import * as i6 from "primeng/inputtextarea";
14
- import * as i7 from "primeng/tooltip";
15
- import * as i8 from "primeng/button";
16
- import * as i9 from "primeng/dialog";
17
- import * as i10 from "primeng/dropdown";
18
- export class ContactSupportComponent {
19
- constructor(messageService, formBuilder) {
20
- this.messageService = messageService;
21
- this.formBuilder = formBuilder;
22
- this.sendDetailedPm = new EventEmitter();
23
- this.sendForm = new EventEmitter();
24
- this.closeContactSupport = new EventEmitter();
25
- this.loading = false;
26
- this.submitted = false;
27
- this.displayNumber = false;
28
- }
29
- ngOnChanges(changes) {
30
- this.loadDatas();
31
- }
32
- ngOnInit() {
33
- this.loadDatas();
34
- }
35
- loadDatas() {
36
- this.filterReasons();
37
- this.setDateRules();
38
- this.loadForm();
39
- }
40
- filterReasons() {
41
- if (this.reasons && this.reasonContact === ReasonContact.MoreDatesFormPm) {
42
- this.selectedReason = this.reasons[0];
43
- this.reasons = this.reasons.filter(x => x.code === ReasonCode.MPM);
44
- }
45
- if (this.reasons && this.reasonContact === ReasonContact.CancelFormPm) {
46
- this.selectedReason = this.reasons[2];
47
- this.reasons = this.reasons.filter(x => x.code === ReasonCode.CPM);
48
- }
49
- if (this.detailedPmJob.status === PmJobStatus.DONE) {
50
- this.reasons = this.reasons.filter(x => x.code === ReasonCode.OTH);
51
- }
52
- if (this.detailedPmJob.status === PmJobStatus.VALIDATED) {
53
- this.reasons = this.reasons.filter(x => x.code !== ReasonCode.MPM);
54
- }
55
- }
56
- cancelContactSupport() {
57
- this.closeContactSupport.emit(true);
58
- this.messageService.add({ severity: 'error', summary: this.globaltranslate.summaryReject, detail: this.globaltranslate.detailReject });
59
- }
60
- get f() {
61
- return this.form.controls;
62
- }
63
- setDateRules() {
64
- let today = new Date();
65
- let month = today.getMonth();
66
- let year = today.getFullYear();
67
- let prevMonth = (month === 0) ? 11 : month - 1;
68
- let prevYear = (prevMonth === 11) ? year - 1 : year;
69
- this.minDate = new Date();
70
- this.minDate.setMonth(month);
71
- this.minDate.setFullYear(prevYear);
72
- }
73
- loadForm() {
74
- let name = sessionStorage.getItem('userName') ? sessionStorage.getItem('userName') : localStorage.getItem('userName');
75
- let email = sessionStorage.getItem('email') ? sessionStorage.getItem('email') : localStorage.getItem('email');
76
- let phone = sessionStorage.getItem('mobilePhoneNumber') ? sessionStorage.getItem('mobilePhoneNumber') : localStorage.getItem('mobilePhoneNumber');
77
- this.form = this.formBuilder.group({
78
- name: [name !== 'null' ? name : '', [Validators.required, Validators.minLength(3)]],
79
- email: [email !== 'null' ? email : '', [Validators.required, Validators.email]],
80
- phone: [this.checkPhone(phone) ? phone : '', [Validators.required]],
81
- extentionOrComment: [''],
82
- reason: [{ value: '' }, [Validators.required]],
83
- system: [{ value: this.detailedPmJob.systemName + ' ' + this.detailedPmJob.systemId, disabled: true }, [Validators.required]],
84
- workOrder: [{ value: this.detailedPmJob.pmJob.workorderNumber, disabled: true }, [Validators.required]],
85
- message: ['', (this.reasonContact === ReasonContact.MoreDatesFormPm) ? [] : [Validators.required, Validators.minLength(15)]],
86
- });
87
- }
88
- checkPhone(phone) {
89
- if (phone == null || phone == 'null' || phone == undefined || phone.length == 0) {
90
- return false;
91
- }
92
- else {
93
- return true;
94
- }
95
- }
96
- contacted() {
97
- this.sendContactMeEmailMethode();
98
- }
99
- contact() {
100
- this.displayNumber = true;
101
- }
102
- closeNumber() {
103
- this.displayNumber = false;
104
- }
105
- sendContactMeEmailMethode() {
106
- if (this.form.value.reason.name == "Demander d'autres dates de PM") {
107
- this.reasonContact = ReasonContact.MoreDatesFormPm;
108
- }
109
- this.detailedPmJob.name = this.form.value.name;
110
- this.detailedPmJob.phone = this.form.value.phone;
111
- this.detailedPmJob.extentionOrComment = this.form.value.extentionOrComment;
112
- this.detailedPmJob.email = this.form.value.email;
113
- // this.detailedPmJob.reason = (this.reasonContact === ReasonContact.MoreDatesFormPm) ? this.reasons[0].name : this.form.value.reason.name;
114
- this.detailedPmJob.reason = this.form.value.reason.name;
115
- this.detailedPmJob.extentionOrComment = this.form.value.extentionOrComment;
116
- this.detailedPmJob.comment = this.form.value.message;
117
- this.detailedPmJob.reasonContact = this.reasonContact;
118
- this.detailedPmJob.futureStatus = this.slectsFutureStatus(this.form.value.reason.code);
119
- this.sendDetailedPm.emit(this.detailedPmJob);
120
- }
121
- slectsFutureStatus(status) {
122
- switch (status) {
123
- case ReasonCode.MPM: return PmJobStatus.WAITING;
124
- case ReasonCode.RPM: return PmJobStatus.REPORTED;
125
- case ReasonCode.CPM: return PmJobStatus.CANCELLED;
126
- case ReasonCode.SDI: return PmJobStatus.DESINSTALLED;
127
- case ReasonCode.OTH: return PmJobStatus.OTHER;
128
- default: return "Erreur";
129
- }
130
- }
131
- onSubmit() {
132
- this.submitted = true;
133
- if (this.form.invalid) {
134
- this.messageService.add({ severity: 'error', summary: this.globaltranslate.summaryError, detail: this.globaltranslate.invalidForm });
135
- return;
136
- }
137
- this.contacted();
138
- }
139
- preventStringKeypress(event) {
140
- if (isNaN(Number(String.fromCharCode(event.charCode))) ||
141
- String.fromCharCode(event.charCode) === ' ') {
142
- event.preventDefault();
143
- }
144
- }
145
- }
146
- ContactSupportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ContactSupportComponent, deps: [{ token: i1.MessageService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
147
- ContactSupportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ContactSupportComponent, selector: "app-contact-support", inputs: { displaycontactSupport: "displaycontactSupport", globaltranslate: "globaltranslate", translate: "translate", showDate: "showDate", detailedPmJob: "detailedPmJob", reasonContact: "reasonContact", reasons: "reasons" }, outputs: { sendDetailedPm: "sendDetailedPm", sendForm: "sendForm", closeContactSupport: "closeContactSupport" }, providers: [MessageService], usesOnChanges: true, ngImport: i0, template: "<p-dialog header=\"\" [modal]=\"true\" [(visible)]=\"displaycontactSupport\" [maximizable]=\"true\" [breakpoints]=\"{'960px': '75vw'}\" [style]=\"{width: '900px',height:'1400px'}\" [draggable]=\"false\" [resizable]=\"true\" (onHide)=\"cancelContactSupport()\">\r\n <strong>\r\n <h3 class=\"text-center title\"> {{translate.header}} </h3>\r\n </strong>\r\n <br>\r\n <div class=\"row\" *ngIf=\"translate && form && reasons \">\r\n \r\n <div class=\"col-md-6 card-bg\" >\r\n <div class=\"conteur contact-bloc\" [style]=\"{height:'150px'}\">\r\n <img class=\"d-block mx-auto\" src=\"assets/img/GEPortal/phone-call-.png\">\r\n <p class=\"counter contact-icon text-center mt-4\">{{translate.contacted}}</p>\r\n </div> \r\n <br>\r\n <form [formGroup]=\"form\" *ngIf=\"form\" class=\"contact100-form validate-form\">\r\n <span class=\"contact100-form-title\">{{translate.title}}</span>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.placeholderName}}</span> <span class=\"requis\">* </span>:\r\n <input [placeholder]=\"translate.placeholderName\" type=\"text\" pInputText formControlName=\"name\" [ngClass]=\"{ 'is-invalid': submitted && f.name.invalid }\">\r\n <div *ngIf=\"submitted && f.name.errors\">\r\n <div class=\"requis\" *ngIf=\"f.name.errors.required\">{{translate.requiredName}}</div>\r\n <div class=\"requis\" *ngIf=\"f.name.errors.minlength\">{{translate.requiredNameMin}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12\">\r\n <span class=\"titre\">{{translate.placeholderEmail}}</span> <span class=\"requis\">*</span>:\r\n <input [placeholder]=\"translate.placeholderEmail\" type=\"text\" pInputText formControlName=\"email\" [ngClass]=\"{ 'is-invalid': submitted && f.email.invalid }\">\r\n <div *ngIf=\"submitted && f.email.errors\">\r\n <div class=\"requis\" *ngIf=\"f.email.errors.required\">{{translate.requiredEmail}}</div>\r\n <div class=\"requis\" *ngIf=\"f.email.errors.email\">{{translate.requiredEmailFormat}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-6\">\r\n <span class=\"titre\">{{translate.placeholderPhone}}</span> <span class=\"requis\">*</span>:\r\n <input [placeholder]=\"translate.placeholderPhone\" type=\"text\" pInputText formControlName=\"phone\" [ngClass]=\"{ 'is-invalid': submitted && f.phone.invalid }\" (keypress)=\"preventStringKeypress($event)\">\r\n <div *ngIf=\"submitted && f.phone.errors\">\r\n <div class=\"requis\" *ngIf=\"f.phone.errors.required\">{{translate.requiredPhone}}</div>\r\n </div>\r\n </div>\r\n <div class=\"p-col-12 p-md-6\">\r\n <span class=\"titre\">{{translate.placeholderextentionOrComment}}</span>:\r\n <input [placeholder]=\"translate.placeholderextentionOrComment\" type=\"text\" pInputText formControlName=\"extentionOrComment\">\r\n </div>\r\n </div>\r\n \r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.system}}</span> <span class=\"requis\">*</span>:\r\n <input [placeholder]=\"translate.system\" type=\"text\" pInputText formControlName=\"system\" [ngClass]=\"{ 'is-invalid': submitted && f.system.invalid }\">\r\n <div *ngIf=\"submitted && f.system.errors\">\r\n <div class=\"requis\" *ngIf=\"f.system.errors?.required\">{{translate.required}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.workOrder}}</span> <span class=\"requis\"></span>:\r\n <input [placeholder]=\"translate.workOrder\" type=\"text\" pInputText formControlName=\"workOrder\" [ngClass]=\"{ 'is-invalid': submitted && f.workOrder.invalid }\">\r\n <div *ngIf=\"submitted && f.workOrder.errors\">\r\n <div class=\"requis\" *ngIf=\"f.workOrder.errors?.required\">{{translate.required}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.reason}}</span> <span class=\"requis\">*</span>:\r\n <p-dropdown [options]=\"reasons\" [placeholder]=\"translate.selectReason\" [(ngModel)]=\"selectedReason\" optionLabel=\"name\" formControlName=\"reason\" optionDisabled=\"inactive\" [ngClass]=\"{ 'is-invalid': submitted && f.reason.invalid }\"></p-dropdown>\r\n <!-- <input [placeholder]=\"translate.reason\" type=\"text\" pInputText formControlName=\"reason\" [ngClass]=\"{ 'is-invalid': submitted && f.reason.invalid }\"> -->\r\n <div *ngIf=\"submitted && f.reason.errors\">\r\n <div class=\"requis\" *ngIf=\"f.reason.errors.required\">{{translate.reasonRequired}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.message}} </span> <span *ngIf=\" reasonContact !=='MoreDatesFormPm'\" class=\"requis\">*</span>:\r\n <textarea pInputTextarea style=\" min-height:100px;height:100%;width:100%;\" [placeholder]=\"translate.message +'...'\" formControlName=\"message\" [ngClass]=\"{ 'is-invalid': submitted && f.message.errors }\"></textarea>\r\n <div *ngIf=\"submitted && f.message.errors\">\r\n <div class=\"requis\" *ngIf=\"f.message.errors.required\">{{translate.required}}</div>\r\n <div class=\"requis\" *ngIf=\"f.message.errors.minlength\">{{translate.requiredMessageMin}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <br>\r\n <div class=\"container-contact100-form-btn\">\r\n <div class=\"wrap-contact100-form-btn\">\r\n <div class=\"contact100-form-bgbtn\"></div>\r\n <button pButton pRipple class=\"d-block mx-auto\" [label]=\"translate.accept\" icon=\"pi pi-thumbs-up\" [pTooltip]=\"translate.accept\" tooltipPosition=\"bottom\" (click)=\"onSubmit()\"></button>\r\n </div>\r\n </div>\r\n </form>\r\n <!-- <button pButton pRipple class=\"d-block mx-auto\" [label]=\"translate.accept\" icon=\"pi pi-thumbs-up\" [pTooltip]=\"translate.accept\" tooltipPosition=\"bottom\" (click)=\"contacted()\"></button> -->\r\n </div>\r\n <div class=\"col-md-6 card-bg\" >\r\n <div class=\"conteur contact-bloc\" [style]=\"{height:'150px'}\">\r\n <img class=\"d-block mx-auto\" src=\"assets/img/GEPortal/phone-called.png\">\r\n <p class=\"counter contact-icon text-center mt-4\">{{translate.contact}}</p>\r\n </div>\r\n <br>\r\n <button pButton pRipple class=\"d-block mx-auto\" [label]=\"translate.seeNumber\" icon=\"pi pi-eye\" [pTooltip]=\"translate.accept\" tooltipPosition=\"bottom\" (click)=\"contact()\"></button>\r\n <br>\r\n <iframe src=\"https://maps.google.com/maps?q=283,%20Rue%20De%20la%20Miniere-BP34%20%2078533%20BUC%20%E2%80%93%20Cedex&amp;t=&amp;z=13&amp;ie=UTF8&amp;iwloc=&amp;output=embed\" width=\"100%\" height=\"250\" style=\"border:0;\" allowfullscreen=\"\" loading=\"lazy\"></iframe>\r\n <h6 class=\"fs-4 mt-3\"> {{translate.information}}</h6>\r\n <section class=\"mb-4\">\r\n <div class=\"\">\r\n <i class=\"pi pi-envelope\"></i><label> &nbsp; {{translate.emailText}}</label>\r\n <p class=\"\">{{translate.email}} </p>\r\n </div>\r\n <div class=\" mt-4\">\r\n <i class=\"pi pi-map\"></i><label> &nbsp; {{translate.addressText}}</label>\r\n <p class=\"\">{{translate.adress}}</p>\r\n <p class=\"\">{{translate.town}}</p>\r\n <p class=\"\">{{translate.country}}</p>\r\n </div>\r\n </section>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n<p-dialog *ngIf=\"translate\"[header]=\"translate.serviceCenterPhoneText\" [modal]=\"true\" [(visible)]=\"displayNumber\" [breakpoints]=\"{'960px': '75vw'}\" [style]=\"{width: '400px',height:'200px'}\" [draggable]=\"false\" [resizable]=\"false\" (onHide)=\"closeNumber()\">\r\n<br>\r\n <h4 class=\"number\"> <strong> <i class=\"pi pi-phone\"></i> &nbsp;{{translate.contactNumber}}</strong></h4>\r\n</p-dialog>\r\n\r\n\r\n<p-toast position=\"top-center\"></p-toast>", styles: [".contact-icon{font-weight:inherit;font-size:15px}.number{text-align:center;color:#0084ff}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.InputText, selector: "[pInputText]" }, { kind: "component", type: i5.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i6.InputTextarea, selector: "[pInputTextarea]", inputs: ["autoResize"], outputs: ["onResize"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i7.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "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: "component", type: i10.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "overlayDirection", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }] });
148
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ContactSupportComponent, decorators: [{
149
- type: Component,
150
- args: [{ selector: 'app-contact-support', providers: [MessageService], template: "<p-dialog header=\"\" [modal]=\"true\" [(visible)]=\"displaycontactSupport\" [maximizable]=\"true\" [breakpoints]=\"{'960px': '75vw'}\" [style]=\"{width: '900px',height:'1400px'}\" [draggable]=\"false\" [resizable]=\"true\" (onHide)=\"cancelContactSupport()\">\r\n <strong>\r\n <h3 class=\"text-center title\"> {{translate.header}} </h3>\r\n </strong>\r\n <br>\r\n <div class=\"row\" *ngIf=\"translate && form && reasons \">\r\n \r\n <div class=\"col-md-6 card-bg\" >\r\n <div class=\"conteur contact-bloc\" [style]=\"{height:'150px'}\">\r\n <img class=\"d-block mx-auto\" src=\"assets/img/GEPortal/phone-call-.png\">\r\n <p class=\"counter contact-icon text-center mt-4\">{{translate.contacted}}</p>\r\n </div> \r\n <br>\r\n <form [formGroup]=\"form\" *ngIf=\"form\" class=\"contact100-form validate-form\">\r\n <span class=\"contact100-form-title\">{{translate.title}}</span>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.placeholderName}}</span> <span class=\"requis\">* </span>:\r\n <input [placeholder]=\"translate.placeholderName\" type=\"text\" pInputText formControlName=\"name\" [ngClass]=\"{ 'is-invalid': submitted && f.name.invalid }\">\r\n <div *ngIf=\"submitted && f.name.errors\">\r\n <div class=\"requis\" *ngIf=\"f.name.errors.required\">{{translate.requiredName}}</div>\r\n <div class=\"requis\" *ngIf=\"f.name.errors.minlength\">{{translate.requiredNameMin}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12\">\r\n <span class=\"titre\">{{translate.placeholderEmail}}</span> <span class=\"requis\">*</span>:\r\n <input [placeholder]=\"translate.placeholderEmail\" type=\"text\" pInputText formControlName=\"email\" [ngClass]=\"{ 'is-invalid': submitted && f.email.invalid }\">\r\n <div *ngIf=\"submitted && f.email.errors\">\r\n <div class=\"requis\" *ngIf=\"f.email.errors.required\">{{translate.requiredEmail}}</div>\r\n <div class=\"requis\" *ngIf=\"f.email.errors.email\">{{translate.requiredEmailFormat}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-6\">\r\n <span class=\"titre\">{{translate.placeholderPhone}}</span> <span class=\"requis\">*</span>:\r\n <input [placeholder]=\"translate.placeholderPhone\" type=\"text\" pInputText formControlName=\"phone\" [ngClass]=\"{ 'is-invalid': submitted && f.phone.invalid }\" (keypress)=\"preventStringKeypress($event)\">\r\n <div *ngIf=\"submitted && f.phone.errors\">\r\n <div class=\"requis\" *ngIf=\"f.phone.errors.required\">{{translate.requiredPhone}}</div>\r\n </div>\r\n </div>\r\n <div class=\"p-col-12 p-md-6\">\r\n <span class=\"titre\">{{translate.placeholderextentionOrComment}}</span>:\r\n <input [placeholder]=\"translate.placeholderextentionOrComment\" type=\"text\" pInputText formControlName=\"extentionOrComment\">\r\n </div>\r\n </div>\r\n \r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.system}}</span> <span class=\"requis\">*</span>:\r\n <input [placeholder]=\"translate.system\" type=\"text\" pInputText formControlName=\"system\" [ngClass]=\"{ 'is-invalid': submitted && f.system.invalid }\">\r\n <div *ngIf=\"submitted && f.system.errors\">\r\n <div class=\"requis\" *ngIf=\"f.system.errors?.required\">{{translate.required}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.workOrder}}</span> <span class=\"requis\"></span>:\r\n <input [placeholder]=\"translate.workOrder\" type=\"text\" pInputText formControlName=\"workOrder\" [ngClass]=\"{ 'is-invalid': submitted && f.workOrder.invalid }\">\r\n <div *ngIf=\"submitted && f.workOrder.errors\">\r\n <div class=\"requis\" *ngIf=\"f.workOrder.errors?.required\">{{translate.required}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.reason}}</span> <span class=\"requis\">*</span>:\r\n <p-dropdown [options]=\"reasons\" [placeholder]=\"translate.selectReason\" [(ngModel)]=\"selectedReason\" optionLabel=\"name\" formControlName=\"reason\" optionDisabled=\"inactive\" [ngClass]=\"{ 'is-invalid': submitted && f.reason.invalid }\"></p-dropdown>\r\n <!-- <input [placeholder]=\"translate.reason\" type=\"text\" pInputText formControlName=\"reason\" [ngClass]=\"{ 'is-invalid': submitted && f.reason.invalid }\"> -->\r\n <div *ngIf=\"submitted && f.reason.errors\">\r\n <div class=\"requis\" *ngIf=\"f.reason.errors.required\">{{translate.reasonRequired}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"p-grid p-fluid p-mt-2\">\r\n <div class=\"p-col-12 p-md-12 \">\r\n <span class=\"titre\">{{translate.message}} </span> <span *ngIf=\" reasonContact !=='MoreDatesFormPm'\" class=\"requis\">*</span>:\r\n <textarea pInputTextarea style=\" min-height:100px;height:100%;width:100%;\" [placeholder]=\"translate.message +'...'\" formControlName=\"message\" [ngClass]=\"{ 'is-invalid': submitted && f.message.errors }\"></textarea>\r\n <div *ngIf=\"submitted && f.message.errors\">\r\n <div class=\"requis\" *ngIf=\"f.message.errors.required\">{{translate.required}}</div>\r\n <div class=\"requis\" *ngIf=\"f.message.errors.minlength\">{{translate.requiredMessageMin}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <br>\r\n <div class=\"container-contact100-form-btn\">\r\n <div class=\"wrap-contact100-form-btn\">\r\n <div class=\"contact100-form-bgbtn\"></div>\r\n <button pButton pRipple class=\"d-block mx-auto\" [label]=\"translate.accept\" icon=\"pi pi-thumbs-up\" [pTooltip]=\"translate.accept\" tooltipPosition=\"bottom\" (click)=\"onSubmit()\"></button>\r\n </div>\r\n </div>\r\n </form>\r\n <!-- <button pButton pRipple class=\"d-block mx-auto\" [label]=\"translate.accept\" icon=\"pi pi-thumbs-up\" [pTooltip]=\"translate.accept\" tooltipPosition=\"bottom\" (click)=\"contacted()\"></button> -->\r\n </div>\r\n <div class=\"col-md-6 card-bg\" >\r\n <div class=\"conteur contact-bloc\" [style]=\"{height:'150px'}\">\r\n <img class=\"d-block mx-auto\" src=\"assets/img/GEPortal/phone-called.png\">\r\n <p class=\"counter contact-icon text-center mt-4\">{{translate.contact}}</p>\r\n </div>\r\n <br>\r\n <button pButton pRipple class=\"d-block mx-auto\" [label]=\"translate.seeNumber\" icon=\"pi pi-eye\" [pTooltip]=\"translate.accept\" tooltipPosition=\"bottom\" (click)=\"contact()\"></button>\r\n <br>\r\n <iframe src=\"https://maps.google.com/maps?q=283,%20Rue%20De%20la%20Miniere-BP34%20%2078533%20BUC%20%E2%80%93%20Cedex&amp;t=&amp;z=13&amp;ie=UTF8&amp;iwloc=&amp;output=embed\" width=\"100%\" height=\"250\" style=\"border:0;\" allowfullscreen=\"\" loading=\"lazy\"></iframe>\r\n <h6 class=\"fs-4 mt-3\"> {{translate.information}}</h6>\r\n <section class=\"mb-4\">\r\n <div class=\"\">\r\n <i class=\"pi pi-envelope\"></i><label> &nbsp; {{translate.emailText}}</label>\r\n <p class=\"\">{{translate.email}} </p>\r\n </div>\r\n <div class=\" mt-4\">\r\n <i class=\"pi pi-map\"></i><label> &nbsp; {{translate.addressText}}</label>\r\n <p class=\"\">{{translate.adress}}</p>\r\n <p class=\"\">{{translate.town}}</p>\r\n <p class=\"\">{{translate.country}}</p>\r\n </div>\r\n </section>\r\n </div>\r\n </div>\r\n</p-dialog>\r\n<p-dialog *ngIf=\"translate\"[header]=\"translate.serviceCenterPhoneText\" [modal]=\"true\" [(visible)]=\"displayNumber\" [breakpoints]=\"{'960px': '75vw'}\" [style]=\"{width: '400px',height:'200px'}\" [draggable]=\"false\" [resizable]=\"false\" (onHide)=\"closeNumber()\">\r\n<br>\r\n <h4 class=\"number\"> <strong> <i class=\"pi pi-phone\"></i> &nbsp;{{translate.contactNumber}}</strong></h4>\r\n</p-dialog>\r\n\r\n\r\n<p-toast position=\"top-center\"></p-toast>", styles: [".contact-icon{font-weight:inherit;font-size:15px}.number{text-align:center;color:#0084ff}\n"] }]
151
- }], ctorParameters: function () { return [{ type: i1.MessageService }, { type: i2.FormBuilder }]; }, propDecorators: { displaycontactSupport: [{
152
- type: Input
153
- }], globaltranslate: [{
154
- type: Input
155
- }], translate: [{
156
- type: Input
157
- }], showDate: [{
158
- type: Input
159
- }], detailedPmJob: [{
160
- type: Input
161
- }], reasonContact: [{
162
- type: Input
163
- }], reasons: [{
164
- type: Input
165
- }], sendDetailedPm: [{
166
- type: Output
167
- }], sendForm: [{
168
- type: Output
169
- }], closeContactSupport: [{
170
- type: Output
171
- }] } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0LXN1cHBvcnQvY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0LXN1cHBvcnQvY29udGFjdC1zdXBwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7OztBQVMzRCxNQUFNLE9BQU8sdUJBQXVCO0lBcUJoQyxZQUFvQixjQUE4QixFQUFVLFdBQXdCO1FBQWhFLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBYjFFLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN6QyxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakQsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUc1RCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsa0JBQWEsR0FBRyxLQUFLLENB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ckksT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFVO1FBQzVCLElBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2xELE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsRUFDN0M7WUFDRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDMUI7SUFDTCxDQUFDOztxSEFyS1EsdUJBQXVCO3lHQUF2Qix1QkFBdUIsaVlBSHJCLENBQUMsY0FBYyxDQUFDLCtDQ2QvQixzcFZBaUl5Qzs0RkRoSDVCLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDSSxxQkFBcUIsYUFHcEIsQ0FBQyxjQUFjLENBQUM7K0hBSWxCLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBEZXRhaWxlZFBtSm9iIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RldGFpbGVkUG1Kb2IubW9kZWwnO1xyXG5pbXBvcnQgeyBQbUpvYlN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscy9wbUpvYlN0YXR1cyc7XHJcbmltcG9ydCB7IFJlYXNvbiB9IGZyb20gJy4uLy4uL21vZGVscy9yZWFzb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBSZWFzb25Db2RlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JlYXNvbkNvZGUnO1xyXG5pbXBvcnQgeyBSZWFzb25Db250YWN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JlYXNvbkNvbnRhY3QnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1jb250YWN0LXN1cHBvcnQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3Qtc3VwcG9ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb250YWN0LXN1cHBvcnQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW01lc3NhZ2VTZXJ2aWNlXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbnRhY3RTdXBwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG4gICAgQElucHV0KCkgZGlzcGxheWNvbnRhY3RTdXBwb3J0ITogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGdsb2JhbHRyYW5zbGF0ZSE6IGFueTtcclxuICAgIEBJbnB1dCgpIHRyYW5zbGF0ZSE6IGFueTtcclxuICAgIEBJbnB1dCgpIHNob3dEYXRlITogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRldGFpbGVkUG1Kb2IhOiBEZXRhaWxlZFBtSm9iO1xyXG4gICAgQElucHV0KCkgcmVhc29uQ29udGFjdCE6IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHJlYXNvbnMhOiBSZWFzb25bXTtcclxuICAgIEBPdXRwdXQoKSBzZW5kRGV0YWlsZWRQbSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gICAgQE91dHB1dCgpIHNlbmRGb3JtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAgIEBPdXRwdXQoKSBjbG9zZUNvbnRhY3RTdXBwb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgZm9ybSE6IEZvcm1Hcm91cDtcclxuICAgIGRhdGVzITogRGF0ZVtdO1xyXG4gICAgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICBtaW5EYXRlITogRGF0ZTtcclxuICAgIG1heERhdGUhOiBEYXRlO1xyXG4gICAgZGlzcGxheU51bWJlciA9IGZhbHNlO1xyXG5cclxuICAgIHNlbGVjdGVkUmVhc29uITogUmVhc29uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLCBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikgeyB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvYWREYXRhcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWREYXRhcygpIHtcclxuICAgICAgICB0aGlzLmZpbHRlclJlYXNvbnMoKTtcclxuICAgICAgICB0aGlzLnNldERhdGVSdWxlcygpO1xyXG4gICAgICAgIHRoaXMubG9hZEZvcm0oKTtcclxuICAgIH1cclxuXHJcbiAgICBmaWx0ZXJSZWFzb25zKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlYXNvbnMgJiYgdGhpcy5yZWFzb25Db250YWN0ID09PSBSZWFzb25Db250YWN0Lk1vcmVEYXRlc0Zvcm1QbSkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmVhc29uID0gdGhpcy5yZWFzb25zWzBdO1xyXG4gICAgICAgICAgICB0aGlzLnJlYXNvbnMgPSB0aGlzLnJlYXNvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBSZWFzb25Db2RlLk1QTSlcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMucmVhc29ucyAmJiB0aGlzLnJlYXNvbkNvbnRhY3QgPT09IFJlYXNvbkNvbnRhY3QuQ2FuY2VsRm9ybVBtKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSZWFzb24gPSB0aGlzLnJlYXNvbnNbMl07XHJcbiAgICAgICAgICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5maWx0ZXIoeCA9PiB4LmNvZGUgPT09IFJlYXNvbkNvZGUuQ1BNKVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5kZXRhaWxlZFBtSm9iLnN0YXR1cyA9PT0gUG1Kb2JTdGF0dXMuRE9ORSkge1xyXG4gICAgICAgICAgICB0aGlzLnJlYXNvbnMgPSB0aGlzLnJlYXNvbnMuZmlsdGVyKHggPT4geC5jb2RlID09PSBSZWFzb25Db2RlLk9USClcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZGV0YWlsZWRQbUpvYi5zdGF0dXMgPT09IFBtSm9iU3RhdHVzLlZBTElEQVRFRCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlYXNvbnMgPSB0aGlzLnJlYXNvbnMuZmlsdGVyKHggPT4geC5jb2RlICE9PSBSZWFzb25Db2RlLk1QTSlcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNhbmNlbENvbnRhY3RTdXBwb3J0KCkge1xyXG5cclxuICAgICAgICB0aGlzLmNsb3NlQ29udGFjdFN1cHBvcnQuZW1pdCh0cnVlKTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiB0aGlzLmdsb2JhbHRyYW5zbGF0ZS5zdW1tYXJ5UmVqZWN0LCBkZXRhaWw6IHRoaXMuZ2xvYmFsdHJhbnNsYXRlLmRldGFpbFJlamVjdCB9KTtcclxuXHJcblxyXG5cclxuICAgIH1cclxuICAgIGdldCBmKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcbiAgICBzZXREYXRlUnVsZXMoKSB7XHJcbiAgICAgICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgICAgICBsZXQgbW9udGggPSB0b2RheS5nZXRNb250aCgpO1xyXG4gICAgICAgIGxldCB5ZWFyID0gdG9kYXkuZ2V0RnVsbFllYXIoKTtcclxuICAgICAgICBsZXQgcHJldk1vbnRoID0gKG1vbnRoID09PSAwKSA/IDExIDogbW9udGggLSAxO1xyXG4gICAgICAgIGxldCBwcmV2WWVhciA9IChwcmV2TW9udGggPT09IDExKSA/IHllYXIgLSAxIDogeWVhcjtcclxuICAgICAgICB0aGlzLm1pbkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgIHRoaXMubWluRGF0ZS5zZXRNb250aChtb250aCk7XHJcbiAgICAgICAgdGhpcy5taW5EYXRlLnNldEZ1bGxZZWFyKHByZXZZZWFyKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEZvcm0oKSB7XHJcbiAgICAgICAgbGV0IG5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c2VyTmFtZScpID8gIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ3VzZXJOYW1lJykgIDogIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VyTmFtZScpIDtcclxuICAgICAgICBsZXQgZW1haWwgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbWFpbCcpID8gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnZW1haWwnKSA6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdlbWFpbCcpO1xyXG4gICAgICAgIGxldCBwaG9uZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21vYmlsZVBob25lTnVtYmVyJykgPyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtb2JpbGVQaG9uZU51bWJlcicpICA6IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtb2JpbGVQaG9uZU51bWJlcicpOyBcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgICAgIG5hbWU6IFtuYW1lICE9PSAnbnVsbCcgPyBuYW1lIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKV1dLFxyXG4gICAgICAgICAgICBlbWFpbDogW2VtYWlsICE9PSAnbnVsbCcgPyBlbWFpbCA6ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxyXG4gICAgICAgICAgICBwaG9uZTogW3RoaXMuY2hlY2tQaG9uZShwaG9uZSkgPyBwaG9uZSA6ICcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICBleHRlbnRpb25PckNvbW1lbnQ6IFsnJ10sXHJcbiAgICAgICAgICAgIHJlYXNvbjogW3sgdmFsdWU6ICcnIH0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgICAgICAgIHN5c3RlbTogW3sgdmFsdWU6IHRoaXMuZGV0YWlsZWRQbUpvYi5zeXN0ZW1OYW1lICsgJyAnICsgdGhpcy5kZXRhaWxlZFBtSm9iLnN5c3RlbUlkLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICB3b3JrT3JkZXI6IFt7IHZhbHVlOiB0aGlzLmRldGFpbGVkUG1Kb2IucG1Kb2Iud29ya29yZGVyTnVtYmVyLCBkaXNhYmxlZDogdHJ1ZSB9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBbJycsICh0aGlzLnJlYXNvbkNvbnRhY3QgPT09IFJlYXNvbkNvbnRhY3QuTW9yZURhdGVzRm9ybVBtKSA/IFtdIDogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDE1KV1dLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgXHJcbmNoZWNrUGhvbmUocGhvbmUgOiBhbnkpOiBib29sZWFue1xyXG4gICAgaWYgKHBob25lID09IG51bGwgfHwgcGhvbmUgPT0gJ251bGwnIHx8IHBob25lID09IHVuZGVmaW5lZCB8fCBwaG9uZS5sZW5ndGggID09IDApIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICB9XHJcbn1cclxuICAgXHJcbmNvbnRhY3RlZCgpIHtcclxuICAgICAgICB0aGlzLnNlbmRDb250YWN0TWVFbWFpbE1ldGhvZGUoKTtcclxuXHJcbiAgICB9XHJcbiAgICBjb250YWN0KCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU51bWJlciA9IHRydWU7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGNsb3NlTnVtYmVyKCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheU51bWJlciA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbmRDb250YWN0TWVFbWFpbE1ldGhvZGUoKSB7XHJcbiAgICAgICBcclxuICAgICAgICBpZih0aGlzLmZvcm0udmFsdWUucmVhc29uLm5hbWUgPT0gXCJEZW1hbmRlciBkJ2F1dHJlcyBkYXRlcyBkZSBQTVwiKXtcclxuICAgICAgICAgICAgdGhpcy5yZWFzb25Db250YWN0ID1SZWFzb25Db250YWN0Lk1vcmVEYXRlc0Zvcm1QbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLm5hbWUgPSB0aGlzLmZvcm0udmFsdWUubmFtZTtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IucGhvbmUgPSB0aGlzLmZvcm0udmFsdWUucGhvbmU7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLmV4dGVudGlvbk9yQ29tbWVudCA9IHRoaXMuZm9ybS52YWx1ZS5leHRlbnRpb25PckNvbW1lbnQ7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLmVtYWlsID0gdGhpcy5mb3JtLnZhbHVlLmVtYWlsO1xyXG4gICAgICAvLyAgdGhpcy5kZXRhaWxlZFBtSm9iLnJlYXNvbiA9ICh0aGlzLnJlYXNvbkNvbnRhY3QgPT09IFJlYXNvbkNvbnRhY3QuTW9yZURhdGVzRm9ybVBtKSA/IHRoaXMucmVhc29uc1swXS5uYW1lIDogdGhpcy5mb3JtLnZhbHVlLnJlYXNvbi5uYW1lO1xyXG4gICAgICAgIHRoaXMuZGV0YWlsZWRQbUpvYi5yZWFzb24gPSB0aGlzLmZvcm0udmFsdWUucmVhc29uLm5hbWU7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLmV4dGVudGlvbk9yQ29tbWVudCA9IHRoaXMuZm9ybS52YWx1ZS5leHRlbnRpb25PckNvbW1lbnQ7XHJcbiAgICAgICAgdGhpcy5kZXRhaWxlZFBtSm9iLmNvbW1lbnQgPSB0aGlzLmZvcm0udmFsdWUubWVzc2FnZTtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IucmVhc29uQ29udGFjdCA9IHRoaXMucmVhc29uQ29udGFjdDtcclxuICAgICAgICB0aGlzLmRldGFpbGVkUG1Kb2IuZnV0dXJlU3RhdHVzID0gdGhpcy5zbGVjdHNGdXR1cmVTdGF0dXModGhpcy5mb3JtLnZhbHVlLnJlYXNvbi5jb2RlKTtcclxuICAgICAgICB0aGlzLnNlbmREZXRhaWxlZFBtLmVtaXQodGhpcy5kZXRhaWxlZFBtSm9iKTtcclxuICAgIH1cclxuXHJcbiAgICBzbGVjdHNGdXR1cmVTdGF0dXMoc3RhdHVzOiBhbnkpIHtcclxuICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICAgICAgICBjYXNlIFJlYXNvbkNvZGUuTVBNOiByZXR1cm4gUG1Kb2JTdGF0dXMuV0FJVElORztcclxuICAgICAgICAgICAgY2FzZSBSZWFzb25Db2RlLlJQTTogcmV0dXJuIFBtSm9iU3RhdHVzLlJFUE9SVEVEO1xyXG4gICAgICAgICAgICBjYXNlIFJlYXNvbkNvZGUuQ1BNOiByZXR1cm4gUG1Kb2JTdGF0dXMuQ0FOQ0VMTEVEO1xyXG4gICAgICAgICAgICBjYXNlIFJlYXNvbkNvZGUuU0RJOiByZXR1cm4gUG1Kb2JTdGF0dXMuREVTSU5TVEFMTEVEO1xyXG4gICAgICAgICAgICBjYXNlIFJlYXNvbkNvZGUuT1RIOiByZXR1cm4gUG1Kb2JTdGF0dXMuT1RIRVI7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6IHJldHVybiBcIkVycmV1clwiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIG9uU3VibWl0KCkge1xyXG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogdGhpcy5nbG9iYWx0cmFuc2xhdGUuc3VtbWFyeUVycm9yLCBkZXRhaWw6IHRoaXMuZ2xvYmFsdHJhbnNsYXRlLmludmFsaWRGb3JtIH0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29udGFjdGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJldmVudFN0cmluZ0tleXByZXNzKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGlzTmFOKE51bWJlcihTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlKSkpIHx8XHJcbiAgICAgICAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpID09PSAnICdcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5cclxuXHJcbiIsIjxwLWRpYWxvZyBoZWFkZXI9XCJcIiBbbW9kYWxdPVwidHJ1ZVwiIFsodmlzaWJsZSldPVwiZGlzcGxheWNvbnRhY3RTdXBwb3J0XCIgIFttYXhpbWl6YWJsZV09XCJ0cnVlXCIgW2JyZWFrcG9pbnRzXT1cInsnOTYwcHgnOiAnNzV2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzkwMHB4JyxoZWlnaHQ6JzE0MDBweCd9XCIgW2RyYWdnYWJsZV09XCJmYWxzZVwiIFtyZXNpemFibGVdPVwidHJ1ZVwiIChvbkhpZGUpPVwiY2FuY2VsQ29udGFjdFN1cHBvcnQoKVwiPlxyXG4gICAgPHN0cm9uZz5cclxuICAgIDxoMyBjbGFzcz1cInRleHQtY2VudGVyIHRpdGxlXCI+IHt7dHJhbnNsYXRlLmhlYWRlcn19IDwvaDM+XHJcbiAgPC9zdHJvbmc+XHJcbiAgICA8YnI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0lmPVwidHJhbnNsYXRlICYmIGZvcm0gJiYgcmVhc29ucyBcIj5cclxuICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY2FyZC1iZ1wiID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZXVyIGNvbnRhY3QtYmxvY1wiIFtzdHlsZV09XCJ7aGVpZ2h0OicxNTBweCd9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImQtYmxvY2sgbXgtYXV0b1wiIHNyYz1cImFzc2V0cy9pbWcvR0VQb3J0YWwvcGhvbmUtY2FsbC0ucG5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjb3VudGVyIGNvbnRhY3QtaWNvbiB0ZXh0LWNlbnRlciBtdC00XCI+e3t0cmFuc2xhdGUuY29udGFjdGVkfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAqbmdJZj1cImZvcm1cIiBjbGFzcz1cImNvbnRhY3QxMDAtZm9ybSB2YWxpZGF0ZS1mb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGFjdDEwMC1mb3JtLXRpdGxlXCI+e3t0cmFuc2xhdGUudGl0bGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyTmFtZX19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPiogPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyTmFtZVwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLm5hbWUuaW52YWxpZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYubmFtZS5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLm5hbWUuZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWROYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLm5hbWUuZXJyb3JzLm1pbmxlbmd0aFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkTmFtZU1pbn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZ3JpZCBwLWZsdWlkIHAtbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1jb2wtMTIgcC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWx9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWxcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYuZW1haWwuaW52YWxpZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuZW1haWwuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5lbWFpbC5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZEVtYWlsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLmVtYWlsLmVycm9ycy5lbWFpbFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkRW1haWxGb3JtYXR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmV9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmVcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucGhvbmUuaW52YWxpZCB9XCIgKGtleXByZXNzKT1cInByZXZlbnRTdHJpbmdLZXlwcmVzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYucGhvbmUuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5waG9uZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZFBob25lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyZXh0ZW50aW9uT3JDb21tZW50fX08L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJleHRlbnRpb25PckNvbW1lbnRcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZXh0ZW50aW9uT3JDb21tZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUuc3lzdGVtfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+Kjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5zeXN0ZW1cIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwic3lzdGVtXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnN5c3RlbS5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5zeXN0ZW0uZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5zeXN0ZW0uZXJyb3JzPy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLndvcmtPcmRlcn19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS53b3JrT3JkZXJcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwid29ya09yZGVyXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLndvcmtPcmRlci5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi53b3JrT3JkZXIuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi53b3JrT3JkZXIuZXJyb3JzPy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnJlYXNvbn19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicmVhc29uc1wiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUuc2VsZWN0UmVhc29uXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFJlYXNvblwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIGZvcm1Db250cm9sTmFtZT1cInJlYXNvblwiICBvcHRpb25EaXNhYmxlZD1cImluYWN0aXZlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnJlYXNvbi5pbnZhbGlkIH1cIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnJlYXNvblwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJyZWFzb25cIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucmVhc29uLmludmFsaWQgfVwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5yZWFzb24uZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5yZWFzb24uZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVhc29uUmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUubWVzc2FnZX19IDwvc3Bhbj4gPHNwYW4gKm5nSWY9XCIgcmVhc29uQ29udGFjdCAhPT0nTW9yZURhdGVzRm9ybVBtJ1wiIGNsYXNzPVwicmVxdWlzXCI+Kjwvc3Bhbj46XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgcElucHV0VGV4dGFyZWEgc3R5bGU9XCIgbWluLWhlaWdodDoxMDBweDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO1wiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUubWVzc2FnZSArJy4uLidcIiBmb3JtQ29udHJvbE5hbWU9XCJtZXNzYWdlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzIH1cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5tZXNzYWdlLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLm1lc3NhZ2UuZXJyb3JzLm1pbmxlbmd0aFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkTWVzc2FnZU1pbn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWNvbnRhY3QxMDAtZm9ybS1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtY29udGFjdDEwMC1mb3JtLWJ0blwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhY3QxMDAtZm9ybS1iZ2J0blwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG9cIiBbbGFiZWxdPVwidHJhbnNsYXRlLmFjY2VwdFwiIGljb249XCJwaSBwaS10aHVtYnMtdXBcIiBbcFRvb2x0aXBdPVwidHJhbnNsYXRlLmFjY2VwdFwiICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG9cIiBbbGFiZWxdPVwidHJhbnNsYXRlLmFjY2VwdFwiIGljb249XCJwaSBwaS10aHVtYnMtdXBcIiBbcFRvb2x0aXBdPVwidHJhbnNsYXRlLmFjY2VwdFwiICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAoY2xpY2spPVwiY29udGFjdGVkKClcIj48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY2FyZC1iZ1wiICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGV1ciBjb250YWN0LWJsb2NcIiBbc3R5bGVdPVwie2hlaWdodDonMTUwcHgnfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG9cIiBzcmM9XCJhc3NldHMvaW1nL0dFUG9ydGFsL3Bob25lLWNhbGxlZC5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNvdW50ZXIgY29udGFjdC1pY29uIHRleHQtY2VudGVyIG10LTRcIj57e3RyYW5zbGF0ZS5jb250YWN0fX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIGNsYXNzPVwiZC1ibG9jayBteC1hdXRvXCIgW2xhYmVsXT1cInRyYW5zbGF0ZS5zZWVOdW1iZXJcIiBpY29uPVwicGkgcGktZXllXCIgW3BUb29sdGlwXT1cInRyYW5zbGF0ZS5hY2NlcHRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAoY2xpY2spPVwiY29udGFjdCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz1cImh0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcHM/cT0yODMsJTIwUnVlJTIwRGUlMjBsYSUyME1pbmllcmUtQlAzNCUyMCUyMDc4NTMzJTIwQlVDJTIwJUUyJTgwJTkzJTIwQ2VkZXgmYW1wO3Q9JmFtcDt6PTEzJmFtcDtpZT1VVEY4JmFtcDtpd2xvYz0mYW1wO291dHB1dD1lbWJlZFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjI1MFwiIHN0eWxlPVwiYm9yZGVyOjA7XCIgYWxsb3dmdWxsc2NyZWVuPVwiXCIgbG9hZGluZz1cImxhenlcIj48L2lmcmFtZT5cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJmcy00IG10LTNcIj4ge3t0cmFuc2xhdGUuaW5mb3JtYXRpb259fTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZW52ZWxvcGVcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuZW1haWxUZXh0fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS5lbWFpbH19IDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1tYXBcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuYWRkcmVzc1RleHR9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmFkcmVzc319PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS50b3dufX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmNvdW50cnl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuPC9wLWRpYWxvZz5cclxuPHAtZGlhbG9nICpuZ0lmPVwidHJhbnNsYXRlXCJbaGVhZGVyXT1cInRyYW5zbGF0ZS5zZXJ2aWNlQ2VudGVyUGhvbmVUZXh0XCIgW21vZGFsXT1cInRydWVcIiBbKHZpc2libGUpXT1cImRpc3BsYXlOdW1iZXJcIiAgW2JyZWFrcG9pbnRzXT1cInsnOTYwcHgnOiAnNzV2dyd9XCIgW3N0eWxlXT1cInt3aWR0aDogJzQwMHB4JyxoZWlnaHQ6JzIwMHB4J31cIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCIgW3Jlc2l6YWJsZV09XCJmYWxzZVwiIChvbkhpZGUpPVwiY2xvc2VOdW1iZXIoKVwiPlxyXG48YnI+XHJcbiAgPGg0IGNsYXNzPVwibnVtYmVyXCI+IDxzdHJvbmc+IDxpIGNsYXNzPVwicGkgcGktcGhvbmVcIj48L2k+ICAmbmJzcDt7e3RyYW5zbGF0ZS5jb250YWN0TnVtYmVyfX08L3N0cm9uZz48L2g0PlxyXG48L3AtZGlhbG9nPlxyXG5cclxuXHJcbjxwLXRvYXN0IHBvc2l0aW9uPVwidG9wLWNlbnRlclwiPjwvcC10b2FzdD4iXX0=
@@ -1,35 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/router";
4
- import * as i2 from "primeng/table";
5
- import * as i3 from "primeng/api";
6
- import * as i4 from "@angular/common";
7
- export class DashboardComponent {
8
- constructor() {
9
- this.toBeScheduledMaintenanceList = [];
10
- this.alreadyScheduledMaintenanceList = [];
11
- this.language = navigator.language.substr(0, 2).toLowerCase();
12
- }
13
- ngOnChanges(changes) { }
14
- }
15
- DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: DashboardComponent, selector: "awf-dashboard", inputs: { name: "name", email: "email", number: "number", systems: "systems", toBeScheduledMaintenanceList: "toBeScheduledMaintenanceList", alreadyScheduledMaintenanceList: "alreadyScheduledMaintenanceList", translate: "translate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"GE\">\r\n <div class=\"home\">\r\n <h3 class=\"title\">{{translate.title}}</h3>\r\n <div class=\"row\">\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12 card-bg\" style=\"cursor: pointer;\" routerLink=\"./systems\">\r\n <div class=\"conteur\">\r\n <img class=\"d-block mx-auto\" height=\"60px\" src=\"assets/img/GEPortal/tools.png\">\r\n <h3 class=\"counter text-center mt-4\">{{systems.length}} &nbsp; {{translate.systems}}</h3>\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12 card-bg\" style=\"cursor: pointer;\" routerLink=\"./maintenance\">\r\n <div class=\"conteur conteur bg--primary\">\r\n <img class=\"d-block mx-auto \" height=\"60px\" src=\"assets/img/GEPortal/calendar-check.png\">\r\n <h3 class=\"counter text-center mt-4\">{{toBeScheduledMaintenanceList.length}} &nbsp; {{translate.upComing}}</h3>\r\n </div>\r\n </div>\r\n <!-- <div class=\"col-md-6 card-bg\">\r\n <div class=\"d-block mx-auto conteur bg--primary\">\r\n <img class=\"d-block mx-auto\" height=\"60px\" src=\"assets/img/GEPortal/calendar-check.png\">\r\n <h3 class=\"counter text-center mt-4\"> {{alreadyScheduledMaintenanceList.length}} &nbsp; {{translate.toValidate}}</h3>\r\n </div>\r\n </div> -->\r\n </div> \r\n <div class=\"row mt-4\">\r\n <div class=\"col-md-12 card-bg\">\r\n <div class=\"conteur\">\r\n <h4> {{translate.upcoming}}</h4>\r\n <p-table [value]=\"toBeScheduledMaintenanceList\" responsiveLayout=\"scroll\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{translate.name}}</th>\r\n <th>{{translate.systemId}}</th>\r\n <th>{{translate.workorderId}}</th>\r\n <th>{{translate.endDateTime}}</th>\r\n </tr>\r\n </ng-template> \r\n <ng-template pTemplate=\"body\" let-product>\r\n <tr>\r\n <td>{{product.systemName }}</td>\r\n <td>{{product.systemId }}</td>\r\n <td>{{product.pmJob.workorderNumber}}</td>\r\n <td>{{product.pmJob.endDateTime | date: \"EEE dd MMM yyyy\":\"\":language}} </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\" >\r\n <div routerLink=\"./contact\" class=\"card- d-grid text-center justify-content-center align-items-center p-5\" style=\"cursor: pointer;\">\r\n <img src=\"assets/img/GEPortal/phone.png\" width=\"80px\" class=\"img-fluid mx-auto\">\r\n <h5 class=\"mt-5\">\u00A0{{ translate.contact}}</h5>\r\n </div>\r\n <div class=\"card- d-grid mt-4 p-4\">\r\n <h4>{{ translate.profil}}</h4>\r\n <div class=\"d-flex align-items-center mb-3 mt-4\"> <img src=\"assets/img/GEPortal/user.png\">\r\n <p>&nbsp;{{name}}</p>\r\n </div>\r\n <div class=\"d-flex align-items-center mb-3\"> <img src=\"assets/img/GEPortal/mail.png\">\r\n <p>&nbsp;{{email}}</p>\r\n </div>\r\n <!-- <div class=\"d-flex align-items-center mb-3\"> <img src=\"assets/img/GEPortal/map.png\">\r\n <p>31 rue marseille France</p>\r\n </div> -->\r\n <div class=\"d-flex align-items-center mb-3\"> <img src=\"assets/img/GEPortal/phone-call.png\">\r\n <p>&nbsp;{{number}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["h3.counter{font-size:20px}\n"], dependencies: [{ kind: "directive", type: i1.RouterLink, selector: ":not(a):not(area)[routerLink]", inputs: ["queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "groupRowsByOrder", "responsiveLayout", "breakpoint", "virtualRowHeight", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["selectAllChange", "selectionChange", "contextMenuSelectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "pipe", type: i4.DatePipe, name: "date" }] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: DashboardComponent, decorators: [{
18
- type: Component,
19
- args: [{ selector: 'awf-dashboard', template: "<div class=\"GE\">\r\n <div class=\"home\">\r\n <h3 class=\"title\">{{translate.title}}</h3>\r\n <div class=\"row\">\r\n <div class=\"col-md-8\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12 card-bg\" style=\"cursor: pointer;\" routerLink=\"./systems\">\r\n <div class=\"conteur\">\r\n <img class=\"d-block mx-auto\" height=\"60px\" src=\"assets/img/GEPortal/tools.png\">\r\n <h3 class=\"counter text-center mt-4\">{{systems.length}} &nbsp; {{translate.systems}}</h3>\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-md-12 card-bg\" style=\"cursor: pointer;\" routerLink=\"./maintenance\">\r\n <div class=\"conteur conteur bg--primary\">\r\n <img class=\"d-block mx-auto \" height=\"60px\" src=\"assets/img/GEPortal/calendar-check.png\">\r\n <h3 class=\"counter text-center mt-4\">{{toBeScheduledMaintenanceList.length}} &nbsp; {{translate.upComing}}</h3>\r\n </div>\r\n </div>\r\n <!-- <div class=\"col-md-6 card-bg\">\r\n <div class=\"d-block mx-auto conteur bg--primary\">\r\n <img class=\"d-block mx-auto\" height=\"60px\" src=\"assets/img/GEPortal/calendar-check.png\">\r\n <h3 class=\"counter text-center mt-4\"> {{alreadyScheduledMaintenanceList.length}} &nbsp; {{translate.toValidate}}</h3>\r\n </div>\r\n </div> -->\r\n </div> \r\n <div class=\"row mt-4\">\r\n <div class=\"col-md-12 card-bg\">\r\n <div class=\"conteur\">\r\n <h4> {{translate.upcoming}}</h4>\r\n <p-table [value]=\"toBeScheduledMaintenanceList\" responsiveLayout=\"scroll\">\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th>{{translate.name}}</th>\r\n <th>{{translate.systemId}}</th>\r\n <th>{{translate.workorderId}}</th>\r\n <th>{{translate.endDateTime}}</th>\r\n </tr>\r\n </ng-template> \r\n <ng-template pTemplate=\"body\" let-product>\r\n <tr>\r\n <td>{{product.systemName }}</td>\r\n <td>{{product.systemId }}</td>\r\n <td>{{product.pmJob.workorderNumber}}</td>\r\n <td>{{product.pmJob.endDateTime | date: \"EEE dd MMM yyyy\":\"\":language}} </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\" >\r\n <div routerLink=\"./contact\" class=\"card- d-grid text-center justify-content-center align-items-center p-5\" style=\"cursor: pointer;\">\r\n <img src=\"assets/img/GEPortal/phone.png\" width=\"80px\" class=\"img-fluid mx-auto\">\r\n <h5 class=\"mt-5\">\u00A0{{ translate.contact}}</h5>\r\n </div>\r\n <div class=\"card- d-grid mt-4 p-4\">\r\n <h4>{{ translate.profil}}</h4>\r\n <div class=\"d-flex align-items-center mb-3 mt-4\"> <img src=\"assets/img/GEPortal/user.png\">\r\n <p>&nbsp;{{name}}</p>\r\n </div>\r\n <div class=\"d-flex align-items-center mb-3\"> <img src=\"assets/img/GEPortal/mail.png\">\r\n <p>&nbsp;{{email}}</p>\r\n </div>\r\n <!-- <div class=\"d-flex align-items-center mb-3\"> <img src=\"assets/img/GEPortal/map.png\">\r\n <p>31 rue marseille France</p>\r\n </div> -->\r\n <div class=\"d-flex align-items-center mb-3\"> <img src=\"assets/img/GEPortal/phone-call.png\">\r\n <p>&nbsp;{{number}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["h3.counter{font-size:20px}\n"] }]
20
- }], ctorParameters: function () { return []; }, propDecorators: { name: [{
21
- type: Input
22
- }], email: [{
23
- type: Input
24
- }], number: [{
25
- type: Input
26
- }], systems: [{
27
- type: Input
28
- }], toBeScheduledMaintenanceList: [{
29
- type: Input
30
- }], alreadyScheduledMaintenanceList: [{
31
- type: Input
32
- }], translate: [{
33
- type: Input
34
- }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBVTFFLE1BQU0sT0FBTyxrQkFBa0I7SUFVN0I7UUFMUyxpQ0FBNEIsR0FBb0IsRUFBRSxDQUFDO1FBQ25ELG9DQUErQixHQUFvQixFQUFFLENBQUM7UUFFL0QsYUFBUSxHQUFXLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVqRCxDQUFDO0lBQ2pCLFdBQVcsQ0FBQyxPQUFzQixJQUFTLENBQUM7O2dIQVhqQyxrQkFBa0I7b0dBQWxCLGtCQUFrQixvVENWL0IsZ3JKQWlGQTs0RkR2RWEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7MEVBS2hCLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBQ0csK0JBQStCO3NCQUF2QyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uQ2hhbmdlcyxJbnB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZXRhaWxlZFBtSm9iIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RldGFpbGVkUG1Kb2IubW9kZWwnO1xyXG5pbXBvcnQgeyBTeXN0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvc3lzdGVtJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F3Zi1kYXNoYm9hcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgpIG5hbWUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZW1haWwhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbnVtYmVyITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN5c3RlbXMhOiBTeXN0ZW1bXSA7XHJcbiAgQElucHV0KCkgdG9CZVNjaGVkdWxlZE1haW50ZW5hbmNlTGlzdDogRGV0YWlsZWRQbUpvYltdID0gW107XHJcbiAgQElucHV0KCkgYWxyZWFkeVNjaGVkdWxlZE1haW50ZW5hbmNlTGlzdDogRGV0YWlsZWRQbUpvYltdID0gW107XHJcbiAgQElucHV0KCkgdHJhbnNsYXRlITogYW55OyBcclxuICBsYW5ndWFnZTogc3RyaW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlLnN1YnN0cigwLCAyKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHt9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIkdFXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaG9tZVwiPlxyXG4gICAgICAgIDxoMyBjbGFzcz1cInRpdGxlXCI+e3t0cmFuc2xhdGUudGl0bGV9fTwvaDM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLThcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNhcmQtYmdcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIiByb3V0ZXJMaW5rPVwiLi9zeXN0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRldXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImQtYmxvY2sgbXgtYXV0b1wiIGhlaWdodD1cIjYwcHhcIiBzcmM9XCJhc3NldHMvaW1nL0dFUG9ydGFsL3Rvb2xzLnBuZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY291bnRlciB0ZXh0LWNlbnRlciBtdC00XCI+e3tzeXN0ZW1zLmxlbmd0aH19ICZuYnNwOyB7e3RyYW5zbGF0ZS5zeXN0ZW1zfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNhcmQtYmdcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIiByb3V0ZXJMaW5rPVwiLi9tYWludGVuYW5jZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGV1ciBjb250ZXVyIGJnLS1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG8gXCIgaGVpZ2h0PVwiNjBweFwiIHNyYz1cImFzc2V0cy9pbWcvR0VQb3J0YWwvY2FsZW5kYXItY2hlY2sucG5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJjb3VudGVyIHRleHQtY2VudGVyIG10LTRcIj57e3RvQmVTY2hlZHVsZWRNYWludGVuYW5jZUxpc3QubGVuZ3RofX0gJm5ic3A7IHt7dHJhbnNsYXRlLnVwQ29taW5nfX08L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjYXJkLWJnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWJsb2NrIG14LWF1dG8gY29udGV1ciBiZy0tcHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImQtYmxvY2sgbXgtYXV0b1wiICBoZWlnaHQ9XCI2MHB4XCIgc3JjPVwiYXNzZXRzL2ltZy9HRVBvcnRhbC9jYWxlbmRhci1jaGVjay5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNvdW50ZXIgdGV4dC1jZW50ZXIgbXQtNFwiPiB7e2FscmVhZHlTY2hlZHVsZWRNYWludGVuYW5jZUxpc3QubGVuZ3RofX0gJm5ic3A7IHt7dHJhbnNsYXRlLnRvVmFsaWRhdGV9fTwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY2FyZC1iZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGV1clwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0PiB7e3RyYW5zbGF0ZS51cGNvbWluZ319PC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJ0b0JlU2NoZWR1bGVkTWFpbnRlbmFuY2VMaXN0XCIgcmVzcG9uc2l2ZUxheW91dD1cInNjcm9sbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoPnt7dHJhbnNsYXRlLm5hbWV9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3t0cmFuc2xhdGUuc3lzdGVtSWR9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3t0cmFuc2xhdGUud29ya29yZGVySWR9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGg+e3t0cmFuc2xhdGUuZW5kRGF0ZVRpbWV9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImJvZHlcIiBsZXQtcHJvZHVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7cHJvZHVjdC5zeXN0ZW1OYW1lIH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e3Byb2R1Y3Quc3lzdGVtSWQgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPnt7cHJvZHVjdC5wbUpvYi53b3Jrb3JkZXJOdW1iZXJ9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3twcm9kdWN0LnBtSm9iLmVuZERhdGVUaW1lIHwgZGF0ZTogXCJFRUUgZGQgTU1NIHl5eXlcIjpcIlwiOmxhbmd1YWdlfX0gPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLXRhYmxlPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiID5cclxuICAgICAgICAgICAgICAgIDxkaXYgcm91dGVyTGluaz1cIi4vY29udGFjdFwiIGNsYXNzPVwiY2FyZC0gZC1ncmlkIHRleHQtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIHAtNVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ltZy9HRVBvcnRhbC9waG9uZS5wbmdcIiB3aWR0aD1cIjgwcHhcIiBjbGFzcz1cImltZy1mbHVpZCBteC1hdXRvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibXQtNVwiPsKge3sgdHJhbnNsYXRlLmNvbnRhY3R9fTwvaDU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLSBkLWdyaWQgbXQtNCBwLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aDQ+e3sgdHJhbnNsYXRlLnByb2ZpbH19PC9oND5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0zIG10LTRcIj4gPGltZyBzcmM9XCJhc3NldHMvaW1nL0dFUG9ydGFsL3VzZXIucG5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwO3t7bmFtZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTNcIj4gPGltZyBzcmM9XCJhc3NldHMvaW1nL0dFUG9ydGFsL21haWwucG5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwO3t7ZW1haWx9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTNcIj4gPGltZyBzcmM9XCJhc3NldHMvaW1nL0dFUG9ydGFsL21hcC5wbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHA+MzEgcnVlIG1hcnNlaWxsZSBGcmFuY2U8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTNcIj4gPGltZyBzcmM9XCJhc3NldHMvaW1nL0dFUG9ydGFsL3Bob25lLWNhbGwucG5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPiZuYnNwO3t7bnVtYmVyfX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=