@senior-gestao-pessoas/payroll-core 9.5.0-fbdcba79-4ef6-4255-9628-f5e2e790112a → 9.5.0-feature-hcmgdp-11492-21838e72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js +465 -916
- package/bundles/senior-gestao-pessoas-payroll-core.umd.js.map +1 -1
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js +1 -16
- package/bundles/senior-gestao-pessoas-payroll-core.umd.min.js.map +1 -1
- package/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.d.ts +43 -10
- package/components/historical-pix-account/historical-pix-account.component.d.ts +10 -40
- package/components/historical-pix-account/historical-pix-account.service.d.ts +0 -1
- package/components/historical-pix-account-list/historical-pix-account-list.component.d.ts +2 -9
- package/components/utils/format-utils/format-utils.service.d.ts +3 -30
- package/esm2015/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +202 -34
- package/esm2015/components/historical-pix-account/historical-pix-account.component.js +29 -262
- package/esm2015/components/historical-pix-account/historical-pix-account.module.js +1 -5
- package/esm2015/components/historical-pix-account/historical-pix-account.service.js +1 -8
- package/esm2015/components/historical-pix-account-list/historical-pix-account-list.component.js +6 -44
- package/esm2015/components/utils/format-utils/format-utils.service.js +5 -88
- package/esm2015/public_api.js +1 -2
- package/esm2015/senior-gestao-pessoas-payroll-core.js +2 -3
- package/esm5/components/historical-pix-account/historical-pix-account-form/historical-pix-account-form.component.js +217 -58
- package/esm5/components/historical-pix-account/historical-pix-account.component.js +58 -304
- package/esm5/components/historical-pix-account/historical-pix-account.module.js +1 -5
- package/esm5/components/historical-pix-account/historical-pix-account.service.js +1 -8
- package/esm5/components/historical-pix-account-list/historical-pix-account-list.component.js +6 -49
- package/esm5/components/utils/format-utils/format-utils.service.js +5 -88
- package/esm5/public_api.js +1 -2
- package/esm5/senior-gestao-pessoas-payroll-core.js +2 -3
- package/fesm2015/senior-gestao-pessoas-payroll-core.js +500 -911
- package/fesm2015/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/fesm5/senior-gestao-pessoas-payroll-core.js +462 -912
- package/fesm5/senior-gestao-pessoas-payroll-core.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +0 -1
- package/senior-gestao-pessoas-payroll-core.d.ts +1 -2
- package/senior-gestao-pessoas-payroll-core.metadata.json +1 -1
- package/components/historical-pix-account/historical-pix-account-base.d.ts +0 -27
- package/components/shared/index.d.ts +0 -1
- package/components/shared/shared-state.service.d.ts +0 -24
- package/esm2015/components/historical-pix-account/historical-pix-account-base.js +0 -173
- package/esm2015/components/shared/index.js +0 -2
- package/esm2015/components/shared/shared-state.service.js +0 -54
- package/esm5/components/historical-pix-account/historical-pix-account-base.js +0 -186
- package/esm5/components/shared/index.js +0 -2
- package/esm5/components/shared/shared-state.service.js +0 -55
|
@@ -1,31 +1,42 @@
|
|
|
1
1
|
import * as tslib_1 from "tslib";
|
|
2
|
-
import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, AfterViewInit, ViewChild, } from "@angular/core";
|
|
3
|
-
import { FormGroup, FormBuilder } from "@angular/forms";
|
|
2
|
+
import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectorRef, OnDestroy, AfterViewInit, ViewChild, DoCheck, } from "@angular/core";
|
|
3
|
+
import { FormGroup, FormBuilder, Validators, ValidatorFn, AbstractControl } from "@angular/forms";
|
|
4
4
|
import { CustomFieldsComponent } from "@seniorsistemas/angular-components";
|
|
5
5
|
import { Subject } from "rxjs";
|
|
6
|
-
import { configEnabledFields, mountCustomToShow, } from "../../utils/helpers";
|
|
6
|
+
import { verifyValidationsForm, configEnabledFields, mountCustomToShow, } from "../../utils/helpers";
|
|
7
|
+
import { GenericValidator } from "../../utils/generic-validators";
|
|
7
8
|
import { FormatUtilsService } from "../../utils/format-utils/format-utils.service";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
constructor(formBuilder, cd, sharedStateService) {
|
|
12
|
-
super(formBuilder);
|
|
9
|
+
let HistoricalPixAccountFormComponent = class HistoricalPixAccountFormComponent {
|
|
10
|
+
constructor(formBuilder, cd) {
|
|
11
|
+
this.formBuilder = formBuilder;
|
|
13
12
|
this.cd = cd;
|
|
14
|
-
this.sharedStateService = sharedStateService;
|
|
15
13
|
this.withSideBar = true;
|
|
16
14
|
this.isEditMode = false;
|
|
17
|
-
this.
|
|
15
|
+
this.paramsForm = new FormGroup({});
|
|
16
|
+
this.defaultCpfNumber = null;
|
|
17
|
+
this.permitsEditBankAccountForm = false;
|
|
18
18
|
this.visibleChange = new EventEmitter();
|
|
19
19
|
this.pixAccountItemToList = new EventEmitter();
|
|
20
20
|
this.ngUnsubscribe = new Subject();
|
|
21
|
+
this.initialValidatorOfPercentage = [Validators.required, Validators.min(0.01)];
|
|
21
22
|
this.labelBtnAdd = "hcm.payroll.employees_add";
|
|
23
|
+
this.maxValuePercentage = 100.00;
|
|
22
24
|
this.visibleBtnSave = true;
|
|
23
25
|
this.isView = false;
|
|
24
26
|
this.isShowPixKeyFieldValidatorMessage = false;
|
|
25
|
-
this.
|
|
27
|
+
this.createFormGroup();
|
|
26
28
|
this.registerSubjects();
|
|
27
29
|
}
|
|
28
|
-
ngOnInit() {
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
}
|
|
32
|
+
ngDoCheck() {
|
|
33
|
+
if (this.pixAccountFormGroup && this.pixKeyType === "BANK_ACCOUNT") {
|
|
34
|
+
const pixKeyControl = this.pixAccountFormGroup.get("pixKey");
|
|
35
|
+
if (pixKeyControl && !pixKeyControl.disabled) {
|
|
36
|
+
pixKeyControl.disable();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
29
40
|
ngAfterViewInit() {
|
|
30
41
|
this.cd.detectChanges();
|
|
31
42
|
}
|
|
@@ -33,7 +44,39 @@ let HistoricalPixAccountFormComponent = class HistoricalPixAccountFormComponent
|
|
|
33
44
|
this.ngUnsubscribe.next(true);
|
|
34
45
|
this.ngUnsubscribe.unsubscribe();
|
|
35
46
|
}
|
|
36
|
-
registerSubjects() {
|
|
47
|
+
registerSubjects() {
|
|
48
|
+
}
|
|
49
|
+
createFormGroup() {
|
|
50
|
+
this.pixAccountFormGroup = this.formBuilder.group({
|
|
51
|
+
id: this.formBuilder.control(null),
|
|
52
|
+
index: this.formBuilder.control(null),
|
|
53
|
+
employee: this.formBuilder.control({ value: { tableId: null }, disabled: true }),
|
|
54
|
+
dateChange: this.formBuilder.control(null),
|
|
55
|
+
pixKeyType: this.formBuilder.control(null, Validators.required),
|
|
56
|
+
pixKey: this.formBuilder.control(null),
|
|
57
|
+
percentage: this.formBuilder.control(null, Validators.compose([
|
|
58
|
+
...this.initialValidatorOfPercentage,
|
|
59
|
+
Validators.max(this.maxValuePercentage),
|
|
60
|
+
])),
|
|
61
|
+
externalId: this.formBuilder.control(null),
|
|
62
|
+
customFields: this.formBuilder.control(null),
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
onChangePixKeyType(item) {
|
|
66
|
+
if (item.key) {
|
|
67
|
+
this.pixKeyType = item.key;
|
|
68
|
+
this.isShowPixKeyFieldValidatorMessage = true;
|
|
69
|
+
this.pixAccountFormGroup.get("pixKey").reset();
|
|
70
|
+
this.setPixKeyValidators(true);
|
|
71
|
+
if (item.key === "CPF") {
|
|
72
|
+
this.setDefaultCpfPixKey();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
onClearPixKeyType() {
|
|
77
|
+
this.isShowPixKeyFieldValidatorMessage = false;
|
|
78
|
+
this.pixAccountFormGroup.get("pixKey").reset();
|
|
79
|
+
}
|
|
37
80
|
get visible() {
|
|
38
81
|
return this._visible;
|
|
39
82
|
}
|
|
@@ -64,8 +107,7 @@ let HistoricalPixAccountFormComponent = class HistoricalPixAccountFormComponent
|
|
|
64
107
|
}
|
|
65
108
|
formatPixKeyTelephoneNumber() {
|
|
66
109
|
if (this.pixKeyType === "TELEPHONE") {
|
|
67
|
-
|
|
68
|
-
pixKeyCtrl.setValue(FormatUtilsService.getFormattedTelephoneNumber(pixKeyCtrl.value));
|
|
110
|
+
this.pixAccountFormGroup.get("pixKey").setValue(FormatUtilsService.getFormattedTelephoneNumber(this.pixAccountFormGroup.get("pixKey").value));
|
|
69
111
|
}
|
|
70
112
|
}
|
|
71
113
|
convertDTOToShowWithCustomFields(data) {
|
|
@@ -77,14 +119,14 @@ let HistoricalPixAccountFormComponent = class HistoricalPixAccountFormComponent
|
|
|
77
119
|
this.visibleBtnSave = isEditMode;
|
|
78
120
|
if (this.pixAccountFormGroup.get("pixKeyType").value) {
|
|
79
121
|
this.pixKeyType = this.pixAccountFormGroup.get("pixKeyType").value.key;
|
|
80
|
-
this.setPixKeyValidators(isEditMode
|
|
122
|
+
this.setPixKeyValidators(isEditMode);
|
|
81
123
|
this.formatPixKeyTelephoneNumber();
|
|
82
124
|
}
|
|
83
125
|
configEnabledFields(this.pixAccountFormGroup, isEditMode, [
|
|
84
126
|
"pixKeyType",
|
|
85
127
|
"pixKey",
|
|
86
128
|
"percentage",
|
|
87
|
-
"customFields"
|
|
129
|
+
"customFields",
|
|
88
130
|
], []);
|
|
89
131
|
}
|
|
90
132
|
close() {
|
|
@@ -92,11 +134,13 @@ let HistoricalPixAccountFormComponent = class HistoricalPixAccountFormComponent
|
|
|
92
134
|
this.visible = false;
|
|
93
135
|
}
|
|
94
136
|
addItem() {
|
|
137
|
+
this.pixAccountFormGroup.updateValueAndValidity();
|
|
138
|
+
verifyValidationsForm.call(this.pixAccountFormGroup);
|
|
95
139
|
if (this.pixAccountFormGroup.valid) {
|
|
96
140
|
if (this.employeeId) {
|
|
97
141
|
this.pixAccountFormGroup.get("employee").setValue({
|
|
98
142
|
tableId: this.employeeId,
|
|
99
|
-
name: ""
|
|
143
|
+
name: "",
|
|
100
144
|
});
|
|
101
145
|
}
|
|
102
146
|
this.pixAccountItemToList.emit(this.pixAccountFormGroup.getRawValue());
|
|
@@ -120,9 +164,13 @@ let HistoricalPixAccountFormComponent = class HistoricalPixAccountFormComponent
|
|
|
120
164
|
return {
|
|
121
165
|
prefix: "",
|
|
122
166
|
thousands: this.currency.thousandsSeparator,
|
|
123
|
-
decimal: this.currency.decimalSeparator
|
|
167
|
+
decimal: this.currency.decimalSeparator,
|
|
124
168
|
};
|
|
125
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* O Input que recebe a lista do component pai e chama o método de validação passando a lista recebida.
|
|
172
|
+
* @param pixAccountList
|
|
173
|
+
*/
|
|
126
174
|
set getListPixAccount(pixAccountList) {
|
|
127
175
|
if (pixAccountList) {
|
|
128
176
|
this.setValidatorsAccordingList(pixAccountList, null, false);
|
|
@@ -131,23 +179,143 @@ let HistoricalPixAccountFormComponent = class HistoricalPixAccountFormComponent
|
|
|
131
179
|
this.resetForm();
|
|
132
180
|
}
|
|
133
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Recebe a lista de registros já inseridos na tabela adiciona em uma variável os valores que serão usados para
|
|
184
|
+
* a validação dos campos "percentage" e "pixAccount".
|
|
185
|
+
* Quando tem index significa que está em uma edição, os valores na posição do registro da edição (index) não serão adicionados
|
|
186
|
+
* no array de comparação dos validators.
|
|
187
|
+
* @param pixAccountList
|
|
188
|
+
* @param index
|
|
189
|
+
*/
|
|
190
|
+
setValidatorsAccordingList(pixAccountList, index = null, isEditMode = true) {
|
|
191
|
+
this.pixAccountList = pixAccountList && pixAccountList.length ? [...pixAccountList] : [];
|
|
192
|
+
const percentageIncluded = [];
|
|
193
|
+
if (this.pixAccountList && this.pixAccountList.length) {
|
|
194
|
+
this.pixAccountList.filter((field, key) => {
|
|
195
|
+
if (field["percentage"] && key != index) {
|
|
196
|
+
percentageIncluded.push(field["percentage"]);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
this.beforeSetPixKeyTypeValidator();
|
|
201
|
+
this.setPixKeyValidators(isEditMode);
|
|
202
|
+
this.validatePercentageValid(percentageIncluded);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Antes de setar o validator prepara as variáveis necessária para que seja feita a validação do campo.
|
|
206
|
+
*/
|
|
207
|
+
setPixKeyValidators(isEditMode) {
|
|
208
|
+
const genericPixKey = this.pixAccountFormGroup.get("pixKey");
|
|
209
|
+
if (this.pixKeyType) {
|
|
210
|
+
switch (this.pixKeyType) {
|
|
211
|
+
case "TELEPHONE":
|
|
212
|
+
genericPixKey.setValidators(Validators.compose([
|
|
213
|
+
Validators.required, GenericValidator.isValidPhoneNumber,
|
|
214
|
+
]));
|
|
215
|
+
break;
|
|
216
|
+
case "EMAIL":
|
|
217
|
+
genericPixKey.setValidators(Validators.compose([
|
|
218
|
+
Validators.required, GenericValidator.isValidEmail,
|
|
219
|
+
]));
|
|
220
|
+
break;
|
|
221
|
+
case "CPF":
|
|
222
|
+
genericPixKey.setValidators(Validators.compose([
|
|
223
|
+
Validators.required, GenericValidator.isValidCpf,
|
|
224
|
+
]));
|
|
225
|
+
break;
|
|
226
|
+
case "CNPJ":
|
|
227
|
+
genericPixKey.setValidators(Validators.compose([
|
|
228
|
+
Validators.required, GenericValidator.isValidCnpj,
|
|
229
|
+
]));
|
|
230
|
+
break;
|
|
231
|
+
case "RANDOM_KEY":
|
|
232
|
+
genericPixKey.setValidators(Validators.required);
|
|
233
|
+
break;
|
|
234
|
+
default:
|
|
235
|
+
genericPixKey.setValidators(null);
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
if (isEditMode) {
|
|
239
|
+
genericPixKey.enable();
|
|
240
|
+
}
|
|
241
|
+
genericPixKey.updateValueAndValidity();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Este método calcula as parcentagens que já foram inseridas, e seta a diferença para chegar em
|
|
246
|
+
* 100% na validação do campo "percentage" como um novo maxValue;
|
|
247
|
+
* @param listValue
|
|
248
|
+
*/
|
|
249
|
+
validatePercentageValid(listValue) {
|
|
250
|
+
const percentage = this.pixAccountFormGroup.get("percentage");
|
|
251
|
+
this.maxValuePercentage = listValue
|
|
252
|
+
.reduce((currentValue, total) => currentValue - total, 100.00);
|
|
253
|
+
percentage
|
|
254
|
+
.setValidators(Validators.compose([
|
|
255
|
+
...this.initialValidatorOfPercentage,
|
|
256
|
+
Validators.max(this.maxValuePercentage),
|
|
257
|
+
]));
|
|
258
|
+
percentage.updateValueAndValidity();
|
|
259
|
+
}
|
|
134
260
|
set isViewMode(condition) {
|
|
135
261
|
this.isView = !!(condition && !this.withSideBar);
|
|
136
262
|
this.configEnableFields(!this.isView);
|
|
137
263
|
if (!this.isView)
|
|
138
264
|
this.resetForm();
|
|
139
265
|
}
|
|
140
|
-
|
|
141
|
-
|
|
266
|
+
phoneMask(event) {
|
|
267
|
+
FormatUtilsService.formatTelephoneInputEvent(event);
|
|
268
|
+
}
|
|
269
|
+
setDefaultCpfPixKey() {
|
|
270
|
+
if (this.defaultCpfNumber) {
|
|
271
|
+
this.pixAccountFormGroup.get("pixKey").setValue(this.defaultCpfNumber);
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
const sheetDocument = this.paramsForm.get("sheetDocument");
|
|
275
|
+
if (sheetDocument) {
|
|
276
|
+
const cpf = sheetDocument.get("cpfNumber").value;
|
|
277
|
+
if (cpf) {
|
|
278
|
+
this.pixAccountFormGroup.get("pixKey").setValue(cpf);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
beforeSetPixKeyTypeValidator() {
|
|
284
|
+
const pixKeyType = this.pixAccountFormGroup.get("pixKeyType");
|
|
285
|
+
if (this.pixAccountList && this.pixAccountList.length && pixKeyType) {
|
|
286
|
+
pixKeyType
|
|
287
|
+
.setValidators(Validators.compose([
|
|
288
|
+
Validators.required,
|
|
289
|
+
this.validateDuplicatePixKeyTypeBankAccount(this.pixAccountList),
|
|
290
|
+
]));
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
pixKeyType.setValidators(Validators.required);
|
|
294
|
+
}
|
|
142
295
|
}
|
|
143
|
-
|
|
144
|
-
|
|
296
|
+
validateDuplicatePixKeyTypeBankAccount(listCompare) {
|
|
297
|
+
return (control) => {
|
|
298
|
+
const value = control && control.value;
|
|
299
|
+
let condition = false;
|
|
300
|
+
listCompare.filter((field) => {
|
|
301
|
+
if (value) {
|
|
302
|
+
if (field["pixKeyType"].key === 'BANK_ACCOUNT' && value.key === field["pixKeyType"].key) {
|
|
303
|
+
return condition = true;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
if (condition && !this.permitsEditBankAccountForm) {
|
|
308
|
+
return { pixKeyTypeBankAccountDuplicate: true };
|
|
309
|
+
}
|
|
310
|
+
else {
|
|
311
|
+
return null;
|
|
312
|
+
}
|
|
313
|
+
};
|
|
145
314
|
}
|
|
146
315
|
};
|
|
147
316
|
HistoricalPixAccountFormComponent.ctorParameters = () => [
|
|
148
317
|
{ type: FormBuilder },
|
|
149
|
-
{ type: ChangeDetectorRef }
|
|
150
|
-
{ type: SharedStateService }
|
|
318
|
+
{ type: ChangeDetectorRef }
|
|
151
319
|
];
|
|
152
320
|
tslib_1.__decorate([
|
|
153
321
|
ViewChild(CustomFieldsComponent, { static: true })
|
|
@@ -169,7 +337,13 @@ tslib_1.__decorate([
|
|
|
169
337
|
], HistoricalPixAccountFormComponent.prototype, "isEditMode", void 0);
|
|
170
338
|
tslib_1.__decorate([
|
|
171
339
|
Input()
|
|
172
|
-
], HistoricalPixAccountFormComponent.prototype, "
|
|
340
|
+
], HistoricalPixAccountFormComponent.prototype, "paramsForm", void 0);
|
|
341
|
+
tslib_1.__decorate([
|
|
342
|
+
Input()
|
|
343
|
+
], HistoricalPixAccountFormComponent.prototype, "defaultCpfNumber", void 0);
|
|
344
|
+
tslib_1.__decorate([
|
|
345
|
+
Input()
|
|
346
|
+
], HistoricalPixAccountFormComponent.prototype, "permitsEditBankAccountForm", void 0);
|
|
173
347
|
tslib_1.__decorate([
|
|
174
348
|
Output()
|
|
175
349
|
], HistoricalPixAccountFormComponent.prototype, "visibleChange", void 0);
|
|
@@ -188,18 +362,12 @@ tslib_1.__decorate([
|
|
|
188
362
|
tslib_1.__decorate([
|
|
189
363
|
Input()
|
|
190
364
|
], HistoricalPixAccountFormComponent.prototype, "isViewMode", null);
|
|
191
|
-
tslib_1.__decorate([
|
|
192
|
-
Input()
|
|
193
|
-
], HistoricalPixAccountFormComponent.prototype, "paramsForm", null);
|
|
194
|
-
tslib_1.__decorate([
|
|
195
|
-
Input()
|
|
196
|
-
], HistoricalPixAccountFormComponent.prototype, "defaultCpfNumber", null);
|
|
197
365
|
HistoricalPixAccountFormComponent = tslib_1.__decorate([
|
|
198
366
|
Component({
|
|
199
367
|
selector: "pix-account",
|
|
200
|
-
template: "<div id=\"main\">\n <form
|
|
368
|
+
template: "<div id=\"main\">\n <form [formGroup]=\"pixAccountFormGroup\" autocomplete=\"off\">\n <div class=\"ui-fluid\">\n <div class=\"ui-g\">\n <!-- Tipo de chave -->\n <div class=\"ui-md-6 ui-sm-12 required\">\n <label>{{'hcm.payroll.employees_addition_pix_key_type'|translate}}</label>\n <input-rest-auto-complete-enum [dropdown]=\"true\" server=\"payroll\"\n enumeration=\"PixKeyType\"\n placeholder=\"{{'hcm.payroll.select' | translate}}\"\n name=\"pixKeyType\" [form]=\"pixAccountFormGroup\"\n (onSelect)=\"onChangePixKeyType($event)\"\n (onClear)=\"onClearPixKeyType()\"\n id=\"ta-pixKeyType\"></input-rest-auto-complete-enum>\n <s-control-errors [control]=\"pixAccountFormGroup.get('pixKeyType')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n pixKeyTypeBankAccountDuplicate: 'hcm.payroll.historical_pix_key_type_bank_account_duplicate' | translate\n }\">\n </s-control-errors>\n </div>\n <!--Chave Pix-->\n <div class=\"ui-md-6 ui-sm-12\" [ngClass]=\"{'required': pixKeyType !== 'BANK_ACCOUNT'}\">\n <label>{{'hcm.payroll.employees_addition_pix_key' | translate}}</label>\n <ng-container [ngSwitch]=\"pixKeyType\">\n <input *ngSwitchCase=\"'TELEPHONE'\" only-number\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n (keyup)=\"phoneMask($event)\" maxlength=\"15\"\n placeholder=\"(__) ____-____\">\n <p-inputMask *ngSwitchCase=\"'CPF'\"\n id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"___.___.___-__\"\n mask=\"999.999.999-99\" [unmask]=\"true\"></p-inputMask>\n <p-inputMask *ngSwitchCase=\"'CNPJ'\"\n id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"__.___.___/____-__\"\n mask=\"99.999.999/9999-99\" [unmask]=\"true\"></p-inputMask>\n <input *ngSwitchCase=\"'EMAIL'\"\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"\n placeholder=\"{{'hcm.payroll.employees_addition_email'|translate}}\"/>\n <input *ngSwitchCase=\"'BANK_ACCOUNT'\" disabled\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\"/>\n <input *ngSwitchDefault\n pInputText id=\"ta-pixKey\" name=\"pixKey\" formControlName=\"pixKey\" maxlength=\"100\" />\n </ng-container>\n <s-control-errors *ngIf=\"isShowPixKeyFieldValidatorMessage\" id=\"er-pix-key\"\n [control]=\"pixAccountFormGroup.get('pixKey')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n invalidPhoneNumber: 'hcm.payroll.employees_addition_invalid_phone_number' | translate: { value: pixAccountFormGroup.get('pixKey').value },\n invalidEmail: 'hcm.payroll.employees_addition_email_invalid' | translate,\n cpfNotValid: 'hcm.payroll.employees_addition_cpf_error' | translate,\n cnpjNotValid: 'hcm.payroll.employees_addition_cnpj_error' | translate\n }\">\n </s-control-errors>\n </div>\n <!--Percentual-->\n <div class=\"ui-md-6 ui-sm-12 required\">\n <label id=\"lb-percentage\"\n for=\"ff-percentage\">{{ 'hcm.payroll.historical_bank_account_label_percentage' | translate }}</label>\n <div class=\"ui-inputgroup\">\n <span class=\"ui-inputgroup-addon\">%</span>\n <input pInputText id=\"ff-percentage\" name=\"percentage\"\n formControlName=\"percentage\"\n currencyMask\n [options]=\"optionsPercentage\"\n [placeholder]=\"percentagePlaceholder\"/>\n </div>\n <s-control-errors [control]=\"pixAccountFormGroup.get('percentage')\"\n [errorMessages]=\"{\n required: 'hcm.payroll.required' | translate,\n maxlength: 'hcm.payroll.error_max_length' | translate: { value: '6' },\n max: 'hcm.payroll.error_max_value_number' | translate: { value: maxValuePercentage },\n min: 'hcm.payroll.error_min_value_number' | translate: { value: '0,01' }\n }\">\n </s-control-errors>\n </div>\n <div class=\"ui-g-12\">\n <p-fieldset\n legend=\"{{ 'hcm.payroll.custom_fields' | translate }}\"\n [attr.data-hidden]=\"!customFields || !customFields.fields.length\"\n >\n <s-custom-fields\n domain=\"hcm\"\n service=\"{{customService}}\"\n entity=\"{{customEntity}}\"\n formControlName=\"customFields\"\n [invalidErrorLabel]=\"'hcm.payroll.employees_invalid_field' | translate\"\n >\n </s-custom-fields>\n </p-fieldset>\n </div>\n </div>\n </div>\n </form>\n\n <div [ngClass]=\"withSideBar ? 'footer' : 'footer-s-border'\">\n <div class=\"form-group\">\n <s-button id=\"btn-save\" label=\"{{ labelBtnAdd | translate}}\" priority=\"primary\"\n (onClick)=\"addItem()\" *ngIf=\"visibleBtnSave && !this.isView\"></s-button>\n <s-button *ngIf=\"withSideBar\" id=\"btn-close\" label=\"{{'hcm.payroll.cancel'|translate}}\" priority=\"secondary\"\n priority=\"link\" (onClick)=\"close()\"></s-button>\n </div>\n </div>\n</div>\n",
|
|
201
369
|
styles: [".refresh{width:100%!important}#table-annuity .col-default-s{width:10%}#table-annuity .col-default-m{width:12%}#table-annuity .col-default-l{width:16%}#table-annuity .col-action{width:10%}#table-annuity .icon-warning{text-align:center!important;color:#ff6d00c7!important}@media screen and (max-width:612px){#table-annuity .col-default-1,#table-annuity .col-default-2{width:16%}#table-annuity .col-default-3{width:26%}#table-annuity .col-icon{width:10%}#table-annuity .col-action{width:27%}}#main{display:-webkit-box;display:flex;height:100%;width:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}#main form{height:100%}#main .footer{border-top:1px solid #ccc;padding-top:15px;margin-top:15px;flex-shrink:0;margin-bottom:-18px}#main .footer-s-border{padding-left:7px;flex-shrink:0;margin-bottom:-18px}"]
|
|
202
370
|
})
|
|
203
371
|
], HistoricalPixAccountFormComponent);
|
|
204
372
|
export { HistoricalPixAccountFormComponent };
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9oaXN0b3JpY2FsLXBpeC1hY2NvdW50L2hpc3RvcmljYWwtcGl4LWFjY291bnQtZm9ybS9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGFBQWEsRUFDYixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQXVCLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGlCQUFpQixHQUNwQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBTzFFLElBQWEsaUNBQWlDLEdBQTlDLE1BQWEsaUNBQWtDLFNBQVEsd0JBQXdCO0lBd0IzRSxZQUNJLFdBQXdCLEVBQ2hCLEVBQXFCLEVBQ3JCLGtCQUFzQztRQUU5QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIWCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FB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QUFHRDtJQURDLEtBQUssRUFBRTt5RUFHUDtBQTVLUSxpQ0FBaUM7SUFMN0MsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGFBQWE7UUFDdkIsazhOQUEyRDs7S0FFOUQsQ0FBQztHQUNXLGlDQUFpQyxDQTZLN0M7U0E3S1ksaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTnVtYmVyTG9jYWxlT3B0aW9ucywgQ3VzdG9tRmllbGRzQ29tcG9uZW50IH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtcbiAgICBjb25maWdFbmFibGVkRmllbGRzLFxuICAgIG1vdW50Q3VzdG9tVG9TaG93LFxufSBmcm9tIFwiLi4vLi4vdXRpbHMvaGVscGVyc1wiO1xuaW1wb3J0IHsgRm9ybWF0VXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2Zvcm1hdC11dGlscy9mb3JtYXQtdXRpbHMuc2VydmljZVwiO1xuaW1wb3J0IHsgU2hhcmVkU3RhdGVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9zaGFyZWQtc3RhdGUuc2VydmljZVwiO1xuaW1wb3J0IHsgSGlzdG9yaWNha1BpeEFjY291bnRCYXNlIH0gZnJvbSBcIi4uL2hpc3RvcmljYWwtcGl4LWFjY291bnQtYmFzZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJwaXgtYWNjb3VudFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vaGlzdG9yaWNhbC1waXgtYWNjb3VudC1mb3JtLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuLi9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEhpc3RvcmljYWxQaXhBY2NvdW50Rm9ybUNvbXBvbmVudCBleHRlbmRzIEhpc3RvcmljYWtQaXhBY2NvdW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBAVmlld0NoaWxkKEN1c3RvbUZpZWxkc0NvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBjdXN0b21GaWVsZHM6IEN1c3RvbUZpZWxkc0NvbXBvbmVudDtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW5jeTogTnVtYmVyTG9jYWxlT3B0aW9ucztcbiAgICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tRW50aXR5OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIGN1c3RvbVNlcnZpY2U6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgd2l0aFNpZGVCYXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0VkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dGaWVsZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIHB1YmxpYyB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpIHB1YmxpYyBwaXhBY2NvdW50SXRlbVRvTGlzdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIHByaXZhdGUgX3Zpc2libGU6IGJvb2xlYW47XG4gICAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlIGVtcGxveWVlSWQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBsYWJlbEJ0bkFkZDogc3RyaW5nID0gXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfYWRkXCI7XG4gICAgcHVibGljIHZpc2libGVCdG5TYXZlOiBib29sZWFuID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNWaWV3OiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGlzU2hvd1BpeEtleUZpZWxkVmFsaWRhdG9yTWVzc2FnZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBoaWRlRmllbGRzID0gdGhpcy5zaGFyZWRTdGF0ZVNlcnZpY2UuaGlkZUZpZWxkJDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHNoYXJlZFN0YXRlU2VydmljZTogU2hhcmVkU3RhdGVTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGZvcm1CdWlsZGVyKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlclN1YmplY3RzKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMubmdVbnN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJTdWJqZWN0cygpOiB2b2lkIHt9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQodGhpcy52aXNpYmxlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaXNFZGl0QW5kVmlld1ZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgICAgdGhpcy52aXNpYmxlQnRuU2F2ZSA9IHRydWU7XG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5jdXJyZW50SXRlbSAmJiBPYmplY3Qua2V5cyh2YWx1ZS5jdXJyZW50SXRlbSkubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLmNvbnZlcnREVE9Ub1Nob3dXaXRoQ3VzdG9tRmllbGRzKHsgLi4udmFsdWUuY3VycmVudEl0ZW0gfSkpO1xuICAgICAgICAgICAgdGhpcy5sYWJlbEJ0bkFkZCA9IFwiaGNtLnBheXJvbGwuZW1wbG95ZWVzX3VwZGF0ZVwiO1xuICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzQWNjb3JkaW5nTGlzdCh2YWx1ZS5saXN0RGF0YSwgdmFsdWUuY3VycmVudEl0ZW1bXCJpbmRleFwiXSwgdmFsdWUgJiYgdmFsdWVbXCJpc0VkaXRNb2RlXCJdKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1ZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0VuYWJsZUZpZWxkcyh2YWx1ZSAmJiB2YWx1ZVtcImlzRWRpdE1vZGVcIl0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVR5cGVcIikudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5waXhLZXlUeXBlID0gdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVR5cGVcIikudmFsdWUua2V5O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdFBpeEtleVRlbGVwaG9uZU51bWJlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGFiZWxCdG5BZGQgPSBcImhjbS5wYXlyb2xsLmVtcGxveWVlc19hZGRcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0UGl4S2V5VGVsZXBob25lTnVtYmVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5waXhLZXlUeXBlID09PSBcIlRFTEVQSE9ORVwiKSB7XG4gICAgICAgICAgICBjb25zdCBwaXhLZXlDdHJsID0gdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKTtcbiAgICAgICAgICAgIHBpeEtleUN0cmwuc2V0VmFsdWUoRm9ybWF0VXRpbHNTZXJ2aWNlLmdldEZvcm1hdHRlZFRlbGVwaG9uZU51bWJlcihwaXhLZXlDdHJsLnZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29udmVydERUT1RvU2hvd1dpdGhDdXN0b21GaWVsZHMoZGF0YTogb2JqZWN0KTogb2JqZWN0IHtcbiAgICAgICAgY29uc3Qgb2JqOiBhbnkgPSB7IC4uLmRhdGEgfTtcbiAgICAgICAgb2JqW1wiY3VzdG9tRmllbGRzXCJdID0gbW91bnRDdXN0b21Ub1Nob3cob2JqW1wiY3VzdG9tRmllbGRzXCJdKTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmZpZ0VuYWJsZUZpZWxkcyhpc0VkaXRNb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlzaWJsZUJ0blNhdmUgPSBpc0VkaXRNb2RlO1xuXG4gICAgICAgIGlmICh0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5VHlwZVwiKS52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5waXhLZXlUeXBlID0gdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVR5cGVcIikudmFsdWUua2V5O1xuICAgICAgICAgICAgdGhpcy5zZXRQaXhLZXlWYWxpZGF0b3JzKGlzRWRpdE1vZGUsIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cCk7XG4gICAgICAgICAgICB0aGlzLmZvcm1hdFBpeEtleVRlbGVwaG9uZU51bWJlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uZmlnRW5hYmxlZEZpZWxkcyh0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAsIGlzRWRpdE1vZGUsIFtcbiAgICAgICAgICAgIFwicGl4S2V5VHlwZVwiLFxuICAgICAgICAgICAgXCJwaXhLZXlcIixcbiAgICAgICAgICAgIFwicGVyY2VudGFnZVwiLFxuICAgICAgICAgICAgXCJjdXN0b21GaWVsZHNcIlxuICAgICAgICBdLCBbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC52YWxpZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZW1wbG95ZWVJZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJlbXBsb3llZVwiKS5zZXRWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgIHRhYmxlSWQ6IHRoaXMuZW1wbG95ZWVJZCxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJcIlxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5waXhBY2NvdW50SXRlbVRvTGlzdC5lbWl0KHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICB0aGlzLmxhYmVsQnRuQWRkID0gXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfYWRkXCI7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkcyAmJiB0aGlzLmN1c3RvbUZpZWxkcy5mb3JtR3JvdXApIHRoaXMuY3VzdG9tRmllbGRzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGVyY2VudGFnZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgMCR7dGhpcy5jdXJyZW5jeSAmJiB0aGlzLmN1cnJlbmN5LmRlY2ltYWxTZXBhcmF0b3J9MDBgO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb3B0aW9uc1BlcmNlbnRhZ2UoKTogb2JqZWN0IHtcbiAgICAgICAgcmV0dXJuIHsgLi4udGhpcy5nZXRPcHRpb25zKCksIHByZWNpc2lvbjogMiB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3B0aW9ucygpOiBhbnkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJlZml4OiBcIlwiLFxuICAgICAgICAgICAgdGhvdXNhbmRzOiB0aGlzLmN1cnJlbmN5LnRob3VzYW5kc1NlcGFyYXRvcixcbiAgICAgICAgICAgIGRlY2ltYWw6IHRoaXMuY3VycmVuY3kuZGVjaW1hbFNlcGFyYXRvclxuICAgICAgICB9O1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBnZXRMaXN0UGl4QWNjb3VudChwaXhBY2NvdW50TGlzdDogb2JqZWN0W10pIHtcbiAgICAgICAgaWYgKHBpeEFjY291bnRMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbGlkYXRvcnNBY2NvcmRpbmdMaXN0KHBpeEFjY291bnRMaXN0LCBudWxsLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlzVmlld01vZGUoY29uZGl0aW9uOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuaXNWaWV3ID0gISEoY29uZGl0aW9uICYmICF0aGlzLndpdGhTaWRlQmFyKTtcbiAgICAgICAgdGhpcy5jb25maWdFbmFibGVGaWVsZHMoIXRoaXMuaXNWaWV3KTtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmlldykgdGhpcy5yZXNldEZvcm0oKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcGFyYW1zRm9ybSh2YWx1ZTogRm9ybUdyb3VwKSB7XG4gICAgICB0aGlzLl9wYXJhbXNGb3JtID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGRlZmF1bHRDcGZOdW1iZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9kZWZhdWx0Q3BmTnVtYmVyID0gdmFsdWU7XG4gICAgfVxufVxuIl19
|
|
373
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC1waXgtYWNjb3VudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItZ2VzdGFvLXBlc3NvYXMvcGF5cm9sbC1jb3JlLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9oaXN0b3JpY2FsLXBpeC1hY2NvdW50L2hpc3RvcmljYWwtcGl4LWFjY291bnQtZm9ybS9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGFBQWEsRUFDYixTQUFTLEVBQ1QsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUF1QixxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUNILHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsaUJBQWlCLEdBQ3BCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFPbkYsSUFBYSxpQ0FBaUMsR0FBOUMsTUFBYSxpQ0FBaUM7SUF5QzFDLFlBQ1ksV0FBd0IsRUFDeEIsRUFBcUI7UUFEckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFoQzFCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRTVCLGVBQVUsR0FBWSxLQUFLLENBQUM7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QUE7O1lBaFY0QixXQUFXO1lBQ3BCLGlCQUFpQjs7QUF6Q2pDO0lBREMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO3VFQUNmO0FBR3BDO0lBREMsS0FBSyxFQUFFO21FQUM2QjtBQUVyQztJQURDLEtBQUssRUFBRTt1RUFDb0I7QUFFNUI7SUFEQyxLQUFLLEVBQUU7d0VBQ3FCO0FBRTdCO0lBREMsS0FBSyxFQUFFO3NFQUMyQjtBQUVuQztJQURDLEtBQUssRUFBRTtxRUFDMkI7QUFFbkM7SUFEQyxLQUFLLEVBQUU7cUVBQ3lDO0FBRWpEO0lBREMsS0FBSyxFQUFFOzJFQUMrQjtBQUV2QztJQURDLEtBQUssRUFBRTtxRkFDMkM7QUFHbkQ7SUFEQyxNQUFNLEVBQUU7d0VBQ2lFO0FBRTFFO0lBREMsTUFBTSxFQUFFOytFQUNnRTtBQXFGekU7SUFEQyxLQUFLLEVBQUU7Z0VBR1A7QUFRRDtJQURDLEtBQUssRUFBRTsyRUFxQlA7QUFpRkQ7SUFEQyxLQUFLLEVBQUU7MEVBT1A7QUE2RkQ7SUFEQyxLQUFLLEVBQUU7bUVBS1A7QUFuVVEsaUNBQWlDO0lBTDdDLFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxhQUFhO1FBQ3ZCLG81TkFBMkQ7O0tBRTlELENBQUM7R0FDVyxpQ0FBaUMsQ0EwWDdDO1NBMVhZLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBEb0NoZWNrLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgVmFsaWRhdG9yRm4sIEFic3RyYWN0Q29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgTnVtYmVyTG9jYWxlT3B0aW9ucywgQ3VzdG9tRmllbGRzQ29tcG9uZW50IH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtcbiAgICB2ZXJpZnlWYWxpZGF0aW9uc0Zvcm0sXG4gICAgY29uZmlnRW5hYmxlZEZpZWxkcyxcbiAgICBtb3VudEN1c3RvbVRvU2hvdyxcbn0gZnJvbSBcIi4uLy4uL3V0aWxzL2hlbHBlcnNcIjtcbmltcG9ydCB7IEdlbmVyaWNWYWxpZGF0b3IgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZ2VuZXJpYy12YWxpZGF0b3JzXCI7XG5pbXBvcnQgeyBGb3JtYXRVdGlsc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZm9ybWF0LXV0aWxzL2Zvcm1hdC11dGlscy5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInBpeC1hY2NvdW50XCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9oaXN0b3JpY2FsLXBpeC1hY2NvdW50LWZvcm0uY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4uL2hpc3RvcmljYWwtcGl4LWFjY291bnQuY29tcG9uZW50LnNjc3NcIl1cbn0pXG5leHBvcnQgY2xhc3MgSGlzdG9yaWNhbFBpeEFjY291bnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xuICAgIEBWaWV3Q2hpbGQoQ3VzdG9tRmllbGRzQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRzQ29tcG9uZW50O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VycmVuY3k6IE51bWJlckxvY2FsZU9wdGlvbnM7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VzdG9tRW50aXR5OiBzdHJpbmc7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY3VzdG9tU2VydmljZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHdpdGhTaWRlQmFyOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpc0VkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFyYW1zRm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGVmYXVsdENwZk51bWJlcjogc3RyaW5nID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwZXJtaXRzRWRpdEJhbmtBY2NvdW50Rm9ybTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcGl4QWNjb3VudEl0ZW1Ub0xpc3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuO1xuICAgIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBlbXBsb3llZUlkOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBwaXhBY2NvdW50TGlzdDogb2JqZWN0W107XG4gICAgcHJpdmF0ZSBpbml0aWFsVmFsaWRhdG9yT2ZQZXJjZW50YWdlOiBWYWxpZGF0b3JGbltdID0gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluKDAuMDEpXTtcblxuXG4gICAgcHVibGljIGxhYmVsQnRuQWRkOiBzdHJpbmcgPSBcImhjbS5wYXlyb2xsLmVtcGxveWVlc19hZGRcIjtcbiAgICBwdWJsaWMgcGl4QWNjb3VudEZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBtYXhWYWx1ZVBlcmNlbnRhZ2U6IG51bWJlciA9IDEwMC4wMDtcbiAgICBwdWJsaWMgdmlzaWJsZUJ0blNhdmU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIHB1YmxpYyBpc1ZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgcGl4S2V5VHlwZTogc3RyaW5nO1xuICAgIHB1YmxpYyBpc1Nob3dQaXhLZXlGaWVsZFZhbGlkYXRvck1lc3NhZ2UgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdWJqZWN0cygpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgIH1cblxuICAgIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cCAmJiB0aGlzLnBpeEtleVR5cGUgPT09IFwiQkFOS19BQ0NPVU5UXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHBpeEtleUNvbnRyb2wgPSB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5XCIpO1xuICAgICAgICAgICAgaWYgKHBpeEtleUNvbnRyb2wgJiYgIXBpeEtleUNvbnRyb2wuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBwaXhLZXlDb250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlclN1YmplY3RzKCk6IHZvaWQge1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGlkOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICBpbmRleDogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKG51bGwpLFxuICAgICAgICAgICAgZW1wbG95ZWU6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7IHZhbHVlOiB7IHRhYmxlSWQ6IG51bGwgfSwgZGlzYWJsZWQ6IHRydWUgfSksXG4gICAgICAgICAgICBkYXRlQ2hhbmdlOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICBwaXhLZXlUeXBlOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICBwaXhLZXk6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChudWxsKSxcbiAgICAgICAgICAgIHBlcmNlbnRhZ2U6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5pdGlhbFZhbGlkYXRvck9mUGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heCh0aGlzLm1heFZhbHVlUGVyY2VudGFnZSksXG4gICAgICAgICAgICBdKSksXG4gICAgICAgICAgICBleHRlcm5hbElkOiB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wobnVsbCksXG4gICAgICAgICAgICBjdXN0b21GaWVsZHM6IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChudWxsKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2hhbmdlUGl4S2V5VHlwZShpdGVtOiBhbnkpIHtcbiAgICAgICAgaWYgKGl0ZW0ua2V5KSB7XG4gICAgICAgICAgICB0aGlzLnBpeEtleVR5cGUgPSBpdGVtLmtleTtcbiAgICAgICAgICAgIHRoaXMuaXNTaG93UGl4S2V5RmllbGRWYWxpZGF0b3JNZXNzYWdlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlcIikucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0UGl4S2V5VmFsaWRhdG9ycyh0cnVlKTtcblxuICAgICAgICAgICAgaWYoaXRlbS5rZXkgPT09IFwiQ1BGXCIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRDcGZQaXhLZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkNsZWFyUGl4S2V5VHlwZSgpIHtcbiAgICAgICAgdGhpcy5pc1Nob3dQaXhLZXlGaWVsZFZhbGlkYXRvck1lc3NhZ2UgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKS5yZXNldCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh0aGlzLnZpc2libGUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc0VkaXRBbmRWaWV3VmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgICB0aGlzLnZpc2libGVCdG5TYXZlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmN1cnJlbnRJdGVtICYmIE9iamVjdC5rZXlzKHZhbHVlLmN1cnJlbnRJdGVtKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5wYXRjaFZhbHVlKHRoaXMuY29udmVydERUT1RvU2hvd1dpdGhDdXN0b21GaWVsZHMoey4uLnZhbHVlLmN1cnJlbnRJdGVtfSkpO1xuICAgICAgICAgICAgdGhpcy5sYWJlbEJ0bkFkZCA9IFwiaGNtLnBheXJvbGwuZW1wbG95ZWVzX3VwZGF0ZVwiO1xuICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzQWNjb3JkaW5nTGlzdCh2YWx1ZS5saXN0RGF0YSwgdmFsdWUuY3VycmVudEl0ZW1bXCJpbmRleFwiXSwgdmFsdWUgJiYgdmFsdWVbXCJpc0VkaXRNb2RlXCJdKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1ZpZXcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ0VuYWJsZUZpZWxkcyh2YWx1ZSAmJiB2YWx1ZVtcImlzRWRpdE1vZGVcIl0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZih0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5VHlwZVwiKS52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBpeEtleVR5cGUgPSB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5VHlwZVwiKS52YWx1ZS5rZXk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXRQaXhLZXlUZWxlcGhvbmVOdW1iZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxhYmVsQnRuQWRkID0gXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfYWRkXCI7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHByaXZhdGUgZm9ybWF0UGl4S2V5VGVsZXBob25lTnVtYmVyKCkge1xuICAgICAgICBpZiAodGhpcy5waXhLZXlUeXBlID09PSBcIlRFTEVQSE9ORVwiKSB7XG4gICAgICAgICAgICB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5XCIpLnNldFZhbHVlKEZvcm1hdFV0aWxzU2VydmljZS5nZXRGb3JtYXR0ZWRUZWxlcGhvbmVOdW1iZXIodGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKS52YWx1ZSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnZlcnREVE9Ub1Nob3dXaXRoQ3VzdG9tRmllbGRzKGRhdGE6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IG9iajogYW55ID0gey4uLiBkYXRhfTtcbiAgICAgICAgb2JqW1wiY3VzdG9tRmllbGRzXCJdID0gbW91bnRDdXN0b21Ub1Nob3cob2JqW1wiY3VzdG9tRmllbGRzXCJdKTtcbiAgICAgICAgcmV0dXJuIG9iajtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmZpZ0VuYWJsZUZpZWxkcyhpc0VkaXRNb2RlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZUJ0blNhdmUgPSBpc0VkaXRNb2RlO1xuXG4gICAgICAgIGlmKHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlUeXBlXCIpLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnBpeEtleVR5cGUgPSB0aGlzLnBpeEFjY291bnRGb3JtR3JvdXAuZ2V0KFwicGl4S2V5VHlwZVwiKS52YWx1ZS5rZXk7XG4gICAgICAgICAgICB0aGlzLnNldFBpeEtleVZhbGlkYXRvcnMoaXNFZGl0TW9kZSk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybWF0UGl4S2V5VGVsZXBob25lTnVtYmVyKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdFbmFibGVkRmllbGRzKHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cCwgaXNFZGl0TW9kZSwgW1xuICAgICAgICAgICAgXCJwaXhLZXlUeXBlXCIsXG4gICAgICAgICAgICBcInBpeEtleVwiLFxuICAgICAgICAgICAgXCJwZXJjZW50YWdlXCIsXG4gICAgICAgICAgICBcImN1c3RvbUZpZWxkc1wiLFxuICAgICAgICBdLCBbXSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgdmVyaWZ5VmFsaWRhdGlvbnNGb3JtLmNhbGwodGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwKTtcblxuICAgICAgICBpZiAodGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLnZhbGlkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5lbXBsb3llZUlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcImVtcGxveWVlXCIpLnNldFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgdGFibGVJZDogdGhpcy5lbXBsb3llZUlkLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5waXhBY2NvdW50SXRlbVRvTGlzdC5lbWl0KHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpKTtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICB0aGlzLmxhYmVsQnRuQWRkID0gXCJoY20ucGF5cm9sbC5lbXBsb3llZXNfYWRkXCI7XG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkcyAmJiB0aGlzLmN1c3RvbUZpZWxkcy5mb3JtR3JvdXApIHRoaXMuY3VzdG9tRmllbGRzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGVyY2VudGFnZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgMCR7IHRoaXMuY3VycmVuY3kgJiYgdGhpcy5jdXJyZW5jeS5kZWNpbWFsU2VwYXJhdG9yIH0wMGA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBvcHRpb25zUGVyY2VudGFnZSgpOiBvYmplY3Qge1xuICAgICAgICByZXR1cm4geyAuLi50aGlzLmdldE9wdGlvbnMoKSwgcHJlY2lzaW9uOiAyIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcHRpb25zKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVmaXg6IFwiXCIsXG4gICAgICAgICAgICB0aG91c2FuZHM6IHRoaXMuY3VycmVuY3kudGhvdXNhbmRzU2VwYXJhdG9yLFxuICAgICAgICAgICAgZGVjaW1hbDogdGhpcy5jdXJyZW5jeS5kZWNpbWFsU2VwYXJhdG9yLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE8gSW5wdXQgcXVlIHJlY2ViZSBhIGxpc3RhIGRvIGNvbXBvbmVudCBwYWkgZSBjaGFtYSBvIG3DqXRvZG8gZGUgdmFsaWRhw6fDo28gcGFzc2FuZG8gYSBsaXN0YSByZWNlYmlkYS5cbiAgICAgKiBAcGFyYW0gcGl4QWNjb3VudExpc3RcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgZ2V0TGlzdFBpeEFjY291bnQocGl4QWNjb3VudExpc3Q6IG9iamVjdFtdKSB7XG4gICAgICAgIGlmIChwaXhBY2NvdW50TGlzdCkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWxpZGF0b3JzQWNjb3JkaW5nTGlzdChwaXhBY2NvdW50TGlzdCwgbnVsbCwgZmFsc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlY2ViZSBhIGxpc3RhIGRlIHJlZ2lzdHJvcyBqw6EgaW5zZXJpZG9zIG5hIHRhYmVsYSBhZGljaW9uYSBlbSB1bWEgdmFyacOhdmVsIG9zIHZhbG9yZXMgcXVlIHNlcsOjbyB1c2Fkb3MgcGFyYVxuICAgICAqIGEgdmFsaWRhw6fDo28gZG9zIGNhbXBvcyBcInBlcmNlbnRhZ2VcIiBlIFwicGl4QWNjb3VudFwiLlxuICAgICAqIFF1YW5kbyB0ZW0gaW5kZXggc2lnbmlmaWNhIHF1ZSBlc3TDoSBlbSB1bWEgZWRpw6fDo28sIG9zIHZhbG9yZXMgbmEgcG9zacOnw6NvIGRvIHJlZ2lzdHJvIGRhIGVkacOnw6NvIChpbmRleCkgbsOjbyBzZXLDo28gYWRpY2lvbmFkb3NcbiAgICAgKiBubyBhcnJheSBkZSBjb21wYXJhw6fDo28gZG9zIHZhbGlkYXRvcnMuXG4gICAgICogQHBhcmFtIHBpeEFjY291bnRMaXN0XG4gICAgICogQHBhcmFtIGluZGV4XG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRWYWxpZGF0b3JzQWNjb3JkaW5nTGlzdChwaXhBY2NvdW50TGlzdDogb2JqZWN0W10sIGluZGV4OiBudW1iZXIgPSBudWxsLCBpc0VkaXRNb2RlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnBpeEFjY291bnRMaXN0ID0gcGl4QWNjb3VudExpc3QgJiYgcGl4QWNjb3VudExpc3QubGVuZ3RoID8gWy4uLnBpeEFjY291bnRMaXN0XSA6IFtdO1xuXG4gICAgICAgIGNvbnN0IHBlcmNlbnRhZ2VJbmNsdWRlZDogYW55ID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMucGl4QWNjb3VudExpc3QgJiYgdGhpcy5waXhBY2NvdW50TGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudExpc3QuZmlsdGVyKChmaWVsZDogYW55LCBrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGRbXCJwZXJjZW50YWdlXCJdICYmIGtleSAhPSBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBwZXJjZW50YWdlSW5jbHVkZWQucHVzaChmaWVsZFtcInBlcmNlbnRhZ2VcIl0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5iZWZvcmVTZXRQaXhLZXlUeXBlVmFsaWRhdG9yKCk7XG4gICAgICAgIHRoaXMuc2V0UGl4S2V5VmFsaWRhdG9ycyhpc0VkaXRNb2RlKTtcbiAgICAgICAgdGhpcy52YWxpZGF0ZVBlcmNlbnRhZ2VWYWxpZChwZXJjZW50YWdlSW5jbHVkZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFudGVzIGRlIHNldGFyIG8gdmFsaWRhdG9yIHByZXBhcmEgYXMgdmFyacOhdmVpcyBuZWNlc3PDoXJpYSBwYXJhIHF1ZSBzZWphIGZlaXRhIGEgdmFsaWRhw6fDo28gZG8gY2FtcG8uXG4gICAgICovXG4gICAgcHVibGljIHNldFBpeEtleVZhbGlkYXRvcnMoaXNFZGl0TW9kZTogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBnZW5lcmljUGl4S2V5ID0gdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKTtcbiAgICAgICAgaWYgKHRoaXMucGl4S2V5VHlwZSkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnBpeEtleVR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFwiVEVMRVBIT05FXCI6XG4gICAgICAgICAgICAgICAgICAgIGdlbmVyaWNQaXhLZXkuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCwgR2VuZXJpY1ZhbGlkYXRvci5pc1ZhbGlkUGhvbmVOdW1iZXIsXG4gICAgICAgICAgICAgICAgICAgIF0pKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkVNQUlMXCI6XG4gICAgICAgICAgICAgICAgICAgIGdlbmVyaWNQaXhLZXkuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCwgR2VuZXJpY1ZhbGlkYXRvci5pc1ZhbGlkRW1haWwsXG4gICAgICAgICAgICAgICAgICAgIF0pKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIkNQRlwiOlxuICAgICAgICAgICAgICAgICAgICBnZW5lcmljUGl4S2V5LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsIEdlbmVyaWNWYWxpZGF0b3IuaXNWYWxpZENwZixcbiAgICAgICAgICAgICAgICAgICAgXSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwiQ05QSlwiOlxuICAgICAgICAgICAgICAgICAgICBnZW5lcmljUGl4S2V5LnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5jb21wb3NlKFtcbiAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsIEdlbmVyaWNWYWxpZGF0b3IuaXNWYWxpZENucGosXG4gICAgICAgICAgICAgICAgICAgIF0pKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcIlJBTkRPTV9LRVlcIjpcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBnZW5lcmljUGl4S2V5LnNldFZhbGlkYXRvcnMobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZihpc0VkaXRNb2RlKSB7XG4gICAgICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS5lbmFibGUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZ2VuZXJpY1BpeEtleS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEVzdGUgbcOpdG9kbyBjYWxjdWxhIGFzIHBhcmNlbnRhZ2VucyBxdWUgasOhIGZvcmFtIGluc2VyaWRhcywgZSBzZXRhIGEgZGlmZXJlbsOnYSBwYXJhIGNoZWdhciBlbVxuICAgICAqIDEwMCUgbmEgdmFsaWRhw6fDo28gZG8gY2FtcG8gXCJwZXJjZW50YWdlXCIgY29tbyB1bSBub3ZvIG1heFZhbHVlO1xuICAgICAqIEBwYXJhbSBsaXN0VmFsdWVcbiAgICAgKi9cbiAgICBwcml2YXRlIHZhbGlkYXRlUGVyY2VudGFnZVZhbGlkKGxpc3RWYWx1ZTogbnVtYmVyW10pIHtcbiAgICAgICAgY29uc3QgcGVyY2VudGFnZSA9IHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwZXJjZW50YWdlXCIpO1xuICAgICAgICB0aGlzLm1heFZhbHVlUGVyY2VudGFnZSA9IGxpc3RWYWx1ZVxuICAgICAgICAgICAgLnJlZHVjZSgoY3VycmVudFZhbHVlLCB0b3RhbCkgPT4gY3VycmVudFZhbHVlIC0gdG90YWwsXG4gICAgICAgICAgICAgICAgMTAwLjAwLFxuICAgICAgICAgICAgKTtcblxuICAgICAgICBwZXJjZW50YWdlXG4gICAgICAgICAgICAuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UoW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuaW5pdGlhbFZhbGlkYXRvck9mUGVyY2VudGFnZSxcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1heCh0aGlzLm1heFZhbHVlUGVyY2VudGFnZSksXG4gICAgICAgICAgICBdKSk7XG4gICAgICAgIHBlcmNlbnRhZ2UudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBpc1ZpZXdNb2RlKGNvbmRpdGlvbjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmlzVmlldyA9ICEhKGNvbmRpdGlvbiAmJiAhdGhpcy53aXRoU2lkZUJhcik7XG4gICAgICAgIHRoaXMuY29uZmlnRW5hYmxlRmllbGRzKCF0aGlzLmlzVmlldyk7XG4gICAgICAgIGlmICghdGhpcy5pc1ZpZXcpIHRoaXMucmVzZXRGb3JtKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHBob25lTWFzayhldmVudDogYW55KSB7XG4gICAgICAgIEZvcm1hdFV0aWxzU2VydmljZS5mb3JtYXRUZWxlcGhvbmVJbnB1dEV2ZW50KGV2ZW50KTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0Q3BmUGl4S2V5KCkge1xuICAgICAgICBpZih0aGlzLmRlZmF1bHRDcGZOdW1iZXIpIHtcbiAgICAgICAgICAgIHRoaXMucGl4QWNjb3VudEZvcm1Hcm91cC5nZXQoXCJwaXhLZXlcIikuc2V0VmFsdWUodGhpcy5kZWZhdWx0Q3BmTnVtYmVyKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHNoZWV0RG9jdW1lbnQgPSB0aGlzLnBhcmFtc0Zvcm0uZ2V0KFwic2hlZXREb2N1bWVudFwiKTtcbiAgICAgICAgICAgIGlmKHNoZWV0RG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjcGYgPSBzaGVldERvY3VtZW50LmdldChcImNwZk51bWJlclwiKS52YWx1ZTtcbiAgICAgICAgICAgICAgICBpZihjcGYpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVwiKS5zZXRWYWx1ZShjcGYpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBiZWZvcmVTZXRQaXhLZXlUeXBlVmFsaWRhdG9yKCkge1xuICAgICAgICBjb25zdCBwaXhLZXlUeXBlID0gdGhpcy5waXhBY2NvdW50Rm9ybUdyb3VwLmdldChcInBpeEtleVR5cGVcIik7XG5cbiAgICAgICAgaWYgKHRoaXMucGl4QWNjb3VudExpc3QgJiYgdGhpcy5waXhBY2NvdW50TGlzdC5sZW5ndGggJiYgcGl4S2V5VHlwZSkge1xuICAgICAgICAgICAgcGl4S2V5VHlwZVxuICAgICAgICAgICAgICAgIC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMuY29tcG9zZShbXG4gICAgICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGVEdXBsaWNhdGVQaXhLZXlUeXBlQmFua0FjY291bnQodGhpcy5waXhBY2NvdW50TGlzdCksXG4gICAgICAgICAgICAgICAgXSkpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwaXhLZXlUeXBlLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlRHVwbGljYXRlUGl4S2V5VHlwZUJhbmtBY2NvdW50KGxpc3RDb21wYXJlOiBvYmplY3RbXSkge1xuICAgICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvcnMgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sICYmIGNvbnRyb2wudmFsdWU7XG4gICAgICAgICAgICBsZXQgY29uZGl0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICBsaXN0Q29tcGFyZS5maWx0ZXIoKGZpZWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZih2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRbXCJwaXhLZXlUeXBlXCJdLmtleSA9PT0gJ0JBTktfQUNDT1VOVCcgJiYgdmFsdWUua2V5ID09PSBmaWVsZFtcInBpeEtleVR5cGVcIl0ua2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29uZGl0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uICYmICF0aGlzLnBlcm1pdHNFZGl0QmFua0FjY291bnRGb3JtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgcGl4S2V5VHlwZUJhbmtBY2NvdW50RHVwbGljYXRlOiB0cnVlIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|