@seniorsistemas/yms-integration 1.31.1-f472999f-36a6-412f-af44-e2024a57be58 → 1.32.0-7a92407d-4195-45d3-80d8-96605c56a35a
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/seniorsistemas-yms-integration.umd.js +108 -22
- package/bundles/seniorsistemas-yms-integration.umd.js.map +1 -1
- package/bundles/seniorsistemas-yms-integration.umd.min.js +1 -1
- package/bundles/seniorsistemas-yms-integration.umd.min.js.map +1 -1
- package/esm2015/src/erp-senior/recebimento/form/recebimento-form.component.js +1 -1
- package/esm2015/src/wms/components/document-grid/document-grid.component.js +45 -14
- package/esm2015/src/wms/components/document-grid/document-grid.module.js +6 -3
- package/esm2015/src/wms/components/document-grid/insert-key/insert-key.component.js +38 -3
- package/esm2015/src/wms/components/document-grid/register-document/register-document.component.js +16 -7
- package/esm2015/src/wms/components/document-grid/register-document/register-document.module.js +4 -3
- package/esm2015/src/wms/entities/document/document-dto.js +1 -1
- package/esm2015/src/wms/entities/document/document.js +2 -1
- package/esm2015/src/wms/entities/invoice-condition/invoice-condition.js +8 -0
- package/esm5/src/erp-senior/recebimento/form/recebimento-form.component.js +1 -1
- package/esm5/src/wms/components/document-grid/document-grid.component.js +45 -14
- package/esm5/src/wms/components/document-grid/document-grid.module.js +6 -3
- package/esm5/src/wms/components/document-grid/insert-key/insert-key.component.js +39 -3
- package/esm5/src/wms/components/document-grid/register-document/register-document.component.js +16 -7
- package/esm5/src/wms/components/document-grid/register-document/register-document.module.js +4 -3
- package/esm5/src/wms/entities/document/document-dto.js +1 -1
- package/esm5/src/wms/entities/document/document.js +2 -1
- package/esm5/src/wms/entities/invoice-condition/invoice-condition.js +8 -0
- package/fesm2015/seniorsistemas-yms-integration.js +107 -22
- package/fesm2015/seniorsistemas-yms-integration.js.map +1 -1
- package/fesm5/seniorsistemas-yms-integration.js +108 -22
- package/fesm5/seniorsistemas-yms-integration.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-yms-integration.metadata.json +1 -1
- package/src/wms/components/document-grid/document-grid.component.d.ts +9 -0
- package/src/wms/components/document-grid/insert-key/insert-key.component.d.ts +4 -0
- package/src/wms/components/document-grid/register-document/register-document.component.d.ts +8 -3
- package/src/wms/entities/document/document-dto.d.ts +1 -0
- package/src/wms/entities/document/document.d.ts +2 -0
- package/src/wms/entities/invoice-condition/invoice-condition.d.ts +6 -0
|
@@ -10,6 +10,7 @@ import { AgendaService } from '../../entities/agenda/agenda.service';
|
|
|
10
10
|
import { DocumentService } from '../../entities/document/document.service';
|
|
11
11
|
import { WmsSystem } from '../../entities/wms-system/wms-system';
|
|
12
12
|
import { IntegrationService } from './../../entities/integration/integration.service';
|
|
13
|
+
import { InvoiceCondition } from "../../../../src/wms/entities/invoice-condition/invoice-condition";
|
|
13
14
|
var DocumentGridComponent = /** @class */ (function () {
|
|
14
15
|
function DocumentGridComponent(translate, documentService, confirmationService, integrationService, agendaService, utils) {
|
|
15
16
|
this.translate = translate;
|
|
@@ -21,7 +22,15 @@ var DocumentGridComponent = /** @class */ (function () {
|
|
|
21
22
|
this.viewDocument = new EventEmitter();
|
|
22
23
|
this.gridData = [];
|
|
23
24
|
this.enableButtonIsClienteExterno = true;
|
|
25
|
+
this.summary = "yms.int.wms_saved_document_message_title";
|
|
24
26
|
this.ngUnsubscribe = new Subject();
|
|
27
|
+
this.invoiceCondition = [
|
|
28
|
+
{ label: this.translate.instant("yms.int.wms_grid_document_invoice_no_way"), value: null },
|
|
29
|
+
{ label: this.translate.instant("yms.int.wms_grid_document_invoice_condition_authorized"), value: InvoiceCondition.AUTHORIZED },
|
|
30
|
+
{ label: this.translate.instant("yms.int.wms_grid_document_invoice_condition_manual_authorized"), value: InvoiceCondition.MANUAL_AUTHORIZED },
|
|
31
|
+
{ label: this.translate.instant("yms.int.wms_grid_document_invoice_condition_partial_authorized"), value: InvoiceCondition.PARTIAL_AUTHORIZED },
|
|
32
|
+
{ label: this.translate.instant("yms.int.wms_grid_document_invoice_condition_devolucion"), value: InvoiceCondition.AUTHORIZED },
|
|
33
|
+
];
|
|
25
34
|
this.selection = [];
|
|
26
35
|
}
|
|
27
36
|
DocumentGridComponent.prototype.ngOnInit = function () {
|
|
@@ -58,7 +67,7 @@ var DocumentGridComponent = /** @class */ (function () {
|
|
|
58
67
|
}
|
|
59
68
|
this.gridData.push(document);
|
|
60
69
|
this.disabled = false;
|
|
61
|
-
this.utils.message("success",
|
|
70
|
+
this.utils.message("success", this.summary, "yms.int.wms_success_message_description");
|
|
62
71
|
this.visibleDocumentRegister = false;
|
|
63
72
|
this.visibleInvoiceKey = false;
|
|
64
73
|
};
|
|
@@ -138,11 +147,17 @@ var DocumentGridComponent = /** @class */ (function () {
|
|
|
138
147
|
}
|
|
139
148
|
data.key = _this.updateKeyByWms(data);
|
|
140
149
|
_this.documentService.insert(data).subscribe(function () {
|
|
141
|
-
_this.
|
|
150
|
+
_this.sucessMessage();
|
|
142
151
|
});
|
|
143
152
|
_this.disabled = true;
|
|
144
153
|
_this.listDocuments(false);
|
|
145
154
|
}
|
|
155
|
+
else {
|
|
156
|
+
_this.documentService.update(data.id, data).subscribe(function () {
|
|
157
|
+
_this.sucessMessage();
|
|
158
|
+
_this.disabled = true;
|
|
159
|
+
});
|
|
160
|
+
}
|
|
146
161
|
});
|
|
147
162
|
}
|
|
148
163
|
};
|
|
@@ -209,17 +224,27 @@ var DocumentGridComponent = /** @class */ (function () {
|
|
|
209
224
|
if (this.isWmsSeniorConnect()) {
|
|
210
225
|
return tslib_1.__spread([
|
|
211
226
|
{ field: "key", header: this.translate.instant("yms.int.wms_purchaseOrder") }
|
|
212
|
-
], this.getColumnPartner()
|
|
227
|
+
], this.getColumnPartner(), [
|
|
228
|
+
this.getColumninvoiceCondition(),
|
|
229
|
+
]);
|
|
213
230
|
}
|
|
214
|
-
if (this.isWmsWIS()) {
|
|
215
|
-
return this.getColumnInvoiceAndlogistcUnit()
|
|
231
|
+
else if (this.isWmsWIS()) {
|
|
232
|
+
return tslib_1.__spread(this.getColumnInvoiceAndlogistcUnit(), [
|
|
233
|
+
this.getColumninvoiceCondition(),
|
|
234
|
+
]);
|
|
216
235
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
236
|
+
else {
|
|
237
|
+
return tslib_1.__spread([
|
|
238
|
+
{ field: "invoiceKey", header: this.translate.instant("yms.int.wms_register_document_invoice_key") }
|
|
239
|
+
], this.getColumnInvoiceAndlogistcUnit(), [
|
|
240
|
+
{ field: "ownerName", header: this.translate.instant("yms.int.wms_register_document_owner_name") },
|
|
241
|
+
{ field: "ownerDocument", header: this.translate.instant("yms.int.wms_register_document_owner_document") },
|
|
242
|
+
this.getColumninvoiceCondition(),
|
|
243
|
+
]);
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
DocumentGridComponent.prototype.getColumninvoiceCondition = function () {
|
|
247
|
+
return { field: "invoiceCondition", header: this.translate.instant("yms.int.wms_grid_document_invoice_condition") };
|
|
223
248
|
};
|
|
224
249
|
DocumentGridComponent.prototype.getColumnInvoiceAndlogistcUnit = function () {
|
|
225
250
|
return tslib_1.__spread([
|
|
@@ -242,6 +267,12 @@ var DocumentGridComponent = /** @class */ (function () {
|
|
|
242
267
|
DocumentGridComponent.prototype.isWmsWIS = function () {
|
|
243
268
|
return this.wmsSystem === WmsSystem.WIS;
|
|
244
269
|
};
|
|
270
|
+
DocumentGridComponent.prototype.isWmsSilt = function () {
|
|
271
|
+
return this.wmsSystem === WmsSystem.SENIOR;
|
|
272
|
+
};
|
|
273
|
+
DocumentGridComponent.prototype.sucessMessage = function () {
|
|
274
|
+
return this.utils.message("success", this.summary, "saved_message_content");
|
|
275
|
+
};
|
|
245
276
|
tslib_1.__decorate([
|
|
246
277
|
Input(),
|
|
247
278
|
tslib_1.__metadata("design:type", Object)
|
|
@@ -289,8 +320,8 @@ var DocumentGridComponent = /** @class */ (function () {
|
|
|
289
320
|
DocumentGridComponent = tslib_1.__decorate([
|
|
290
321
|
Component({
|
|
291
322
|
selector: 'document-grid',
|
|
292
|
-
template: "<div *ngIf=\"this.processType === 'RECEBIMENTO_WMS'; else processNotConfigured\">\n <p-panel>\n <p-header>\n <div class=\"buttons\">\n <div>\n <s-button\n label=\"{{'yms.int.wms_add_document' | translate}}\"\n priority=\"primary\"\n [model]=\"getActions()\"\n [auxiliary]=\"false\"\n [disabled]=\"!enableButtonIsClienteExterno\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_view_button' | translate}}\"\n priority=\"secondary\"\n [auxiliary]=\"false\"\n [disabled]=\"!selection || selection.length !== 1\"\n (onClick)=\"view()\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_delete_button' | translate}}\"\n priority=\"secondary\"\n [disabled]=\"!selection || !selection.length || !enableButtonIsClienteExterno\"\n (click)=\"onDelete()\">\n </s-button>\n </div>\n <s-button\n id=\"refresh-button\"\n priority=\"default\"\n iconClass=\"fa fa-refresh\"\n (onClick)=\"listDocuments(false)\"\n >\n </s-button>\n </div>\n </p-header>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\" *ngIf=\"gridData && gridData.length; else emptyList\">\n <p-table #documentTable [value]=\"gridData\"\n [columns]=\"gridColumns\" dataKey=\"key\" [lazy]=\"true\" [scrollable]=\"true\" [resizableColumns]=\"true\"\n sortMode=\"multiple\" [paginator]=\"true\" [totalRecords]=\"documentTotalRecords\" rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\" [(selection)]=\"selection\"\n [loading]=\"loading\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\"/>\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th id=\"checkbox\" class=\"table-checkbox\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th id=\"col\" *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"table-checkbox\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n <td *
|
|
293
|
-
styles: [".buttons{display:flex;justify-content:space-between}.center{flex-direction:column;text-align:center}.ui-g{display:block}.button-save{margin:5px 0}#refresh-button{color:#fff}.table-checkbox{width:50px}"]
|
|
323
|
+
template: "<div *ngIf=\"this.processType === 'RECEBIMENTO_WMS'; else processNotConfigured\">\n <p-panel>\n <p-header>\n <div class=\"buttons\">\n <div>\n <s-button\n label=\"{{'yms.int.wms_add_document' | translate}}\"\n priority=\"primary\"\n [model]=\"getActions()\"\n [auxiliary]=\"false\"\n [disabled]=\"!enableButtonIsClienteExterno\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_view_button' | translate}}\"\n priority=\"secondary\"\n [auxiliary]=\"false\"\n [disabled]=\"!selection || selection.length !== 1\"\n (onClick)=\"view()\">\n </s-button>\n <s-button\n label=\"{{'yms.wms_delete_button' | translate}}\"\n priority=\"secondary\"\n [disabled]=\"!selection || !selection.length || !enableButtonIsClienteExterno\"\n (click)=\"onDelete()\">\n </s-button>\n </div>\n <s-button\n id=\"refresh-button\"\n priority=\"default\"\n iconClass=\"fa fa-refresh\"\n (onClick)=\"listDocuments(false)\"\n >\n </s-button>\n </div>\n </p-header>\n <div class=\"ui-g\">\n <div class=\"ui-g-12\" *ngIf=\"gridData && gridData.length; else emptyList\">\n <p-table #documentTable [value]=\"gridData\"\n [columns]=\"gridColumns\" dataKey=\"key\" [lazy]=\"true\" [scrollable]=\"true\" [resizableColumns]=\"true\"\n sortMode=\"multiple\" [paginator]=\"true\" [totalRecords]=\"documentTotalRecords\" rows=\"10\"\n [rowsPerPageOptions]=\"[10, 20, 50, 100]\" [(selection)]=\"selection\"\n [loading]=\"loading\">\n <ng-template pTemplate=\"colgroup\" let-columns>\n <colgroup>\n <col *ngFor=\"let col of columns\" [style.width]=\"col.width\"/>\n </colgroup>\n </ng-template>\n <ng-template pTemplate=\"header\" let-columns>\n <tr>\n <th id=\"checkbox\" class=\"table-checkbox\">\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\n </th>\n <th id=\"col\" *ngFor=\"let col of columns\" [pSortableColumn]=\"col.field\" pResizableColumn>\n <div class=\"senior-header\">\n <span class=\"senior-header-title\">{{ col.header }}</span>\n <p-sortIcon [field]=\"col.field\"></p-sortIcon>\n </div>\n </th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\" let-rowData let-columns let-expanded=\"expanded\">\n <tr [pSelectableRow]=\"rowData\">\n <td class=\"table-checkbox\">\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\n </td>\n <td *ngIf=\"isWmsSeniorConnect()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"key\"]}}</span>\n </td>\n <td *ngIf=\"isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"invoiceKey\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"invoiceNumber\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"invoiceSerialNumber\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSeniorConnect() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"partnerName\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSeniorConnect() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"partnerDocument\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"logistcUnitName\"]}}</span>\n </td>\n <td *ngIf=\"isWmsWIS() || isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"logistcUnitDocument\"]}}</span>\n </td>\n <td *ngIf=\"isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"ownerName\"]}}</span>\n </td>\n <td *ngIf=\"isWmsSilt()\" (click)=\"selection = [rowData]\">\n <span>{{rowData[\"ownerDocument\"]}}</span>\n </td>\n <td (click)=\"selection = [rowData]\">\n <p-dropdown\n inputId=\"invoiceCondition\"\n name=\"invoiceCondition\"\n [autoWidth]=\"false\"\n [options]=\"invoiceCondition\"\n appendTo=\"body\"\n [(ngModel)]=\"rowData.invoiceCondition\"\n (onChange)=\"disabled = false\">\n </p-dropdown>\n </td>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"paginatorright\">\n <span [translate]=\"'total_records'\" [translateParams]=\"{ value: documentTotalRecords }\"></span>\n </ng-template>\n </p-table> \n </div>\n </div>\n <register-document\n [wmsSystem]=\"wmsSystem\"\n [edit]=\"edit\"\n [viewDocument]=\"selection\"\n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleDocumentRegister\"\n [agenda]=\"agenda\">\n </register-document> \n <insert-key\n [wmsSystem]=\"wmsSystem\" \n (document)=\"onChangeDocument($event)\"\n [(visible)]=\"visibleInvoiceKey\">\n </insert-key>\n </p-panel>\n</div>\n <div class=\"button-save\">\n <s-button \n priority=\"primary\" [label]=\"'save' | translate\"\n [disabled]=\"disabled || !this.gridData || !enableButtonIsClienteExterno\"\n (click)=\"save()\">\n </s-button>\n </div>\n\n<ng-template #emptyList>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\" [title]=\"'detail_empty_state_title' | translate\"\n [description]=\"'detail_empty_state_description' | translate\">\n </s-empty-state>\n </div>\n</ng-template>\n\n<ng-template #processNotConfigured>\n <div class=\"center\">\n <s-empty-state\n iconClass=\"fa fa-exclamation-triangle\"\n [title]=\"'yms.int.wms_there_no_process_type_configured_for_this_type_scheduling' | translate\">\n </s-empty-state>\n </div>\n</ng-template>",
|
|
324
|
+
styles: [".buttons{display:flex;justify-content:space-between}.center{flex-direction:column;text-align:center}.ui-g{display:block}.button-save{margin:5px 0}#refresh-button{color:#fff}.table-checkbox{width:50px}.invoice-condition .p-dropdown{position:relative;z-index:1000}"]
|
|
294
325
|
}),
|
|
295
326
|
tslib_1.__metadata("design:paramtypes", [TranslateService,
|
|
296
327
|
DocumentService,
|
|
@@ -302,4 +333,4 @@ var DocumentGridComponent = /** @class */ (function () {
|
|
|
302
333
|
return DocumentGridComponent;
|
|
303
334
|
}());
|
|
304
335
|
export { DocumentGridComponent };
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBdUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFZLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFvQixNQUFNLHNDQUFzQyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFvQyxrQkFBa0IsRUFBZSxNQUFNLGtEQUFrRCxDQUFDO0FBT3JJO0lBeUNJLCtCQUNxQixTQUEyQixFQUMzQixlQUFnQyxFQUNoQyxtQkFBd0MsRUFDeEMsa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVCLEtBQTBCO1FBTDFCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyx3QkFBbUIs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OzBDQUNMLFdBQVc7aUVBQU07SUFHeEM7UUFEQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7MENBQ0wsV0FBVztxRUFBTTtJQUc1QztRQURDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQzswQ0FDTCxXQUFXO3FFQUFNO0lBRzVDO1FBREMsU0FBUyxDQUFDLGtCQUFrQixDQUFDOzBDQUNMLFdBQVc7bUVBQU07SUFHMUM7UUFEQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7MENBQ0wsV0FBVztpRUFBTTtJQXZDL0IscUJBQXFCO1FBTGpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxlQUFlO1lBQ3pCLDJxTEFBNkM7O1NBRWhELENBQUM7aURBMkNrQyxnQkFBZ0I7WUFDVixlQUFlO1lBQ1gsbUJBQW1CO1lBQ3BCLGtCQUFrQjtZQUN2QixhQUFhO1lBQ3JCLG1CQUFtQjtPQS9DdEMscUJBQXFCLENBdVNqQztJQUFELDRCQUFDO0NBQUEsQUF2U0QsSUF1U0M7U0F2U1kscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50Q2hlY2tlZCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IENvbmZpcm1hdGlvblNlcnZpY2UsIE1lbnVJdGVtIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gXCJwcmltZW5nL3RhYmxlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCBlbXB0eSwgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFV0aWxzTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvdXRpbHMtbWVzc2FnZVwiO1xuaW1wb3J0IHsgQWdlbmRhU2VydmljZSwgSXNDbGllbnRlRXh0ZXJubyB9IGZyb20gJy4uLy4uL2VudGl0aWVzL2FnZW5kYS9hZ2VuZGEuc2VydmljZSc7XG5pbXBvcnQgeyBEb2N1bWVudCB9IGZyb20gXCIuLi8uLi9lbnRpdGllcy9kb2N1bWVudC9kb2N1bWVudFwiO1xuaW1wb3J0IHsgRG9jdW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBXbXNTeXN0ZW0gfSBmcm9tICcuLi8uLi9lbnRpdGllcy93bXMtc3lzdGVtL3dtcy1zeXN0ZW0nO1xuaW1wb3J0IHsgR2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmdPdXRwdXQsIEludGVncmF0aW9uU2VydmljZSwgUHJvY2Vzc1R5cGUgfSBmcm9tICcuLy4uLy4uL2VudGl0aWVzL2ludGVncmF0aW9uL2ludGVncmF0aW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvY3VtZW50LWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9kb2N1bWVudC1ncmlkLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50R3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cbiAgICBASW5wdXQoKSBhZ2VuZGE7XG4gICAgQElucHV0KCkgd21zU3lzdGVtOiBXbXNTeXN0ZW07XG4gICAgQE91dHB1dCgpIHZpc2libGVJbnZvaWNlS2V5OiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlRG9jdW1lbnRSZWdpc3RlcjogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSB2aWV3RG9jdW1lbnQ6IEV2ZW50RW1pdHRlcjxEb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZG9jdW1lbnRUb3RhbFJlY29yZHM6IG51bWJlcjtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IGFueTtcbiAgICBwdWJsaWMgZ3JpZERhdGE6IERvY3VtZW50W10gPSBbXTtcbiAgICBwdWJsaWMgc2VsZWN0aW9uOiBEb2N1bWVudFtdO1xuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbjtcbiAgICBwdWJsaWMgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgIHB1YmxpYyBlZGl0OiBib29sZWFuO1xuICAgIHB1YmxpYyBwcm9jZXNzVHlwZTogUHJvY2Vzc1R5cGU7XG4gICAgcHJpdmF0ZSBpc0NsaWVudGVFeHRlcm5vOiBib29sZWFuO1xuICAgIHB1YmxpYyBlbmFibGVCdXR0b25Jc0NsaWVudGVFeHRlcm5vID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBAVmlld0NoaWxkKFwiZG9jdW1lbnRUYWJsZVwiKVxuICAgIHB1YmxpYyB0YWJsZTogVGFibGU7XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tVGVtcGxhdGVcIilcbiAgICBwdWJsaWMgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tRmlsdGVyRmllbGRzXCIpXG4gICAgcHVibGljIGN1c3RvbUZpbHRlckZpZWxkczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkQ29sZ3JvdXBcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZENvbGdyb3VwOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUdyaWRIZWFkZXJcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZEhlYWRlcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkQm9keVwiKVxuICAgIHB1YmxpYyBjdXN0b21HcmlkQm9keTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb25maXJtYXRpb25TZXJ2aWNlOiBDb25maXJtYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGludGVncmF0aW9uU2VydmljZTogSW50ZWdyYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGFnZW5kYVNlcnZpY2U6IEFnZW5kYVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdXRpbHM6IFV0aWxzTWVzc2FnZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmVyaWZ5Q2xpZW50ZUV4dGVybm8oKTtcbiAgICAgICAgdGhpcy5nZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZygpO1xuICAgICAgICB0aGlzLmxpc3REb2N1bWVudHMoZmFsc2UpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZlcmlmeUNsaWVudGVFeHRlcm5vKCkge1xuICAgICAgICB0aGlzLmFnZW5kYVNlcnZpY2UuaXNDbGllbnRlRXh0ZXJubygpXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogSXNDbGllbnRlRXh0ZXJubykgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0NsaWVudGVFeHRlcm5vID0gcmVzdWx0LmlzQ2xpZW50ZUV4dGVybm87XG4gICAgICAgICAgICB0aGlzLmNhbnRFZGl0U3RhdHVzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmcoKSB7XG4gICAgICAgIHRoaXMuaW50ZWdyYXRpb25TZXJ2aWNlLmdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nKHRoaXMuYWdlbmRhLnRpcG9BZ2VuZGFtZW50by5pZClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogR2V0UHJvY2Vzc1R5cGVCeVNjaGVkdWxpbmdPdXRwdXQpID0+IHRoaXMucHJvY2Vzc1R5cGUgPSByZXN1bHQucHJvY2Vzc1R5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkNoYW5nZURvY3VtZW50KGRvY3VtZW50OiBEb2N1bWVudCkge1xuICAgICAgICBpZiAoIXRoaXMuaGFzRmlsbGVkVmFsdWVzKGRvY3VtZW50KSl7XG4gICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJlcnJvclwiLFwieW1zLmludC53bXNfc2F2ZV9lcnJvcl9yZWdpc3Rlcl9kb2N1bWVudF9tZXNzYWdlX3RpdGxlXCIsXCJ5bXMuaW50Lndtc19zYXZlX2Vycm9yX3JlZ2lzdGVyX2RvY3VtZW50X21lc3NhZ2VfZGVzY3JpcHRpb25cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFzc2lnbktleXMoZG9jdW1lbnQpO1xuXG4gICAgICAgIGNvbnN0IGR1cGxpY2F0ZURvY3VtZW50ID0gdGhpcy5ncmlkRGF0YS5maW5kKGdyaWREYXRhID0+IGdyaWREYXRhLmtleSA9PT0gZG9jdW1lbnQua2V5KTtcbiAgICAgICAgaWYgKGR1cGxpY2F0ZURvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJlcnJvclwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV90aXRsZVwiLFwieW1zLmludC53bXNfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ3JpZERhdGEucHVzaChkb2N1bWVudCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwic3VjY2Vzc1wiLCBcInltcy5pbnQud21zX3NhdmVkX2RvY3VtZW50X21lc3NhZ2VfdGl0bGVcIiwgXCJ5bXMuaW50Lndtc19zdWNjZXNzX21lc3NhZ2VfZGVzY3JpcHRpb25cIik7XG4gICAgICAgIHRoaXMudmlzaWJsZURvY3VtZW50UmVnaXN0ZXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy52aXNpYmxlSW52b2ljZUtleSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXNzaWduS2V5cyhkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKGRvY3VtZW50LmlkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFnZW5kYS5pZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuc2NoZWR1bGluZ0lkID0gdGhpcy5hZ2VuZGEuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQua2V5ID09PSB1bmRlZmluZWQgfHwgZG9jdW1lbnQua2V5ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQua2V5ID0gZG9jdW1lbnQuaW52b2ljZUtleTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1dtc1dJUygpKSB7XG4gICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmtleSA9IGAke2RvY3VtZW50Lmludm9pY2VOdW1iZXJ9OiR7ZG9jdW1lbnQuaW52b2ljZVNlcmlhbE51bWJlcn06JHtkb2N1bWVudC5wYXJ0bmVyRG9jdW1lbnR9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhc0ZpbGxlZFZhbHVlcyhkb2N1bWVudDogRG9jdW1lbnQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlcyA9IE9iamVjdC52YWx1ZXMoZG9jdW1lbnQpO1xuICAgICAgICByZXR1cm4gZm9ybVZhbHVlcy5zb21lKHZhbHVlID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSAnJyk7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGNhbnRFZGl0U3RhdHVzKCkge1xuICAgICAgICBjb25zdCBjYW50RWRpdFN0YXR1cyA9IFtcbiAgICAgICAgICAgICdDQU5DRUxBRE8nLFxuICAgICAgICAgICAgJ0VNX0VYRUNVQ0FPJyxcbiAgICAgICAgICAgICdDT05DTFVJRE8nLFxuICAgICAgICAgICAgJ0FHVUFSREFORE9fUE9SX1ZBTElEQUNBTydcbiAgICAgICAgXS5pbmNsdWRlcyh0aGlzLmFnZW5kYS5zdGF0dXMudG9TdHJpbmcoKSk7XG5cbiAgICAgICAgaWYoY2FudEVkaXRTdGF0dXMpIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlQnV0dG9uSXNDbGllbnRlRXh0ZXJubyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFjdGlvbnMoKTogTWVudUl0ZW1bXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuY2hlY2tXbXNTeXN0ZW1JbnZhbGlkKCksXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19zZWFyY2hcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVJbnZvaWNlS2V5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGljb246IFwiZmEgZmEtc2VhcmNoXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuY2hlY2tXbXNTeXN0ZW1JbnZhbGlkKCksXG4gICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19hZGRfZG9jdW1lbnRfcmVnaXN0ZXJcIiksXG4gICAgICAgICAgICAgICAgY29tbWFuZDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVEb2N1bWVudFJlZ2lzdGVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGljb246IFwiZmFzIGZhLXBlbi1zcXVhcmVcIlxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGVja1dtc1N5c3RlbUludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLndtc1N5c3RlbSAmJiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLk5PTkUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UHJvcChvYmo6IGFueSwgcGF0aDogYW55KSB7XG4gICAgICAgIHJldHVybiBwYXRoLnNwbGl0KFwiLlwiKS5yZWR1Y2UoKHJlc3VsdDogYW55LCBwcm9wOiBhbnkpID0+IChyZXN1bHRbcHJvcF0gPT09IHVuZGVmaW5lZCA/IFwiXCIgOiByZXN1bHRbcHJvcF0pLCBvYmopO1xuICAgIH1cblxuICAgIHB1YmxpYyB2aWV3KCkge1xuICAgICAgICB0aGlzLnZpZXdEb2N1bWVudC5lbWl0KHRoaXMuc2VsZWN0aW9uWzBdKTtcbiAgICAgICAgdGhpcy52aXNpYmxlRG9jdW1lbnRSZWdpc3RlciA9IHRydWU7XG4gICAgICAgIHRoaXMuZWRpdCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlKCkge1xuICAgICAgICBpZih0aGlzLmdyaWREYXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBpZighZGF0YS5pZCkge1xuICAgICAgICAgICAgICAgICAgICBpZighZGF0YS5zY2hlZHVsaW5nSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuc2NoZWR1bGluZ0lkID0gdGhpcy5hZ2VuZGEuaWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YS5rZXkgPSB0aGlzLnVwZGF0ZUtleUJ5V21zKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5pbnNlcnQoZGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcInN1Y2Nlc3NcIiwgXCJ5bXMuaW50Lndtc19zYXZlZF9kb2N1bWVudF9tZXNzYWdlX3RpdGxlXCIsIFwic2F2ZWRfbWVzc2FnZV9jb250ZW50XCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdERvY3VtZW50cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUtleUJ5V21zKGRhdGE6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF0YS5rZXkpIHtcbiAgICAgICAgICAgIGRhdGEua2V5ID0gZGF0YS5pbnZvaWNlS2V5O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUykge1xuICAgICAgICAgICAgZGF0YS5rZXkgPSBgJHtkYXRhLmludm9pY2VOdW1iZXJ9OiR7ZGF0YS5pbnZvaWNlU2VyaWFsTnVtYmVyfToke2RhdGEucGFydG5lckRvY3VtZW50fWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGEua2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkRlbGV0ZSgpIHtcbiAgICAgICAgdGhpcy5jb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImRlbGV0ZV9jb25maXJtYXRpb25fbWVzc2FnZVwiKSxcbiAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcImRlbGV0ZV9jb25maXJtYXRpb25fdGl0bGVcIiksXG4gICAgICAgICAgICBhY2NlcHQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZURvY3VtZW50SWZJZFVuZGZpbmVkKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb24ubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4odGhpcy5zZWxlY3Rpb24ubWFwKGRvY3VtZW50ID0+IHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmRlbGV0ZShkb2N1bWVudC5pZCkpKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJzdWNjZXNzXCIsIFwiZGVsZXRlZF9tZXNzYWdlX3RpdGxlXCIsIFwiZGVsZXRlZF9tZXNzYWdlX2NvbnRlbnRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGlzdERvY3VtZW50cyh0cnVlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVEb2N1bWVudElmSWRVbmRmaW5lZCgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uZm9yRWFjaCgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoIXZhbHVlLmlkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXhHcmlkRGF0YSA9IHRoaXMuZ3JpZERhdGEuZmluZEluZGV4KGRvY3VtZW50ID0+IGRvY3VtZW50LmtleSA9PT0gdmFsdWUua2V5KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEuc3BsaWNlKGluZGV4R3JpZERhdGEsIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBsaXN0RG9jdW1lbnRzKGlzRGVsZXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmxpc3Qoe1xuICAgICAgICAgICAgZmlsdGVyUXVlcnk6IGBzY2hlZHVsaW5nSWQgZXEgJyR7dGhpcy5hZ2VuZGEuaWR9J2BcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncmlkRGF0YSA9IGlzRGVsZXRlID8gdGhpcy5ncmlkRGF0YS5maWx0ZXIoaXRlbSA9PiAhaXRlbS5pZCkgOiBbXTtcblxuICAgICAgICAgICAgaWYoY29udGVudHMudG90YWxFbGVtZW50cyA+IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhLnB1c2goLi4uY29udGVudHMuY29udGVudHMpO1xuICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRUb3RhbFJlY29yZHMgPSBjb250ZW50cy50b3RhbEVsZW1lbnRzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50VG90YWxSZWNvcmRzID0gdGhpcy5ncmlkRGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBoYXNFbGVtZW50V2l0aG91dElkID0gdGhpcy5ncmlkRGF0YS5zb21lKGl0ZW0gPT4gIWl0ZW0uaWQpO1xuXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gIWhhc0VsZW1lbnRXaXRob3V0SWQ7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1ucygpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNXbXNTZW5pb3JDb25uZWN0KCkpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgeyBmaWVsZDogXCJrZXlcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcHVyY2hhc2VPcmRlclwiKSB9LFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uUGFydG5lcigpXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNXbXNXSVMoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uSW52b2ljZUFuZGxvZ2lzdGNVbml0KCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJpbnZvaWNlS2V5XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2ludm9pY2Vfa2V5XCIpIH0sXG4gICAgICAgICAgICAuLi50aGlzLmdldENvbHVtbkludm9pY2VBbmRsb2dpc3RjVW5pdCgpLFxuICAgICAgICAgICAgeyBmaWVsZDogXCJvd25lck5hbWVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfb3duZXJfbmFtZVwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJvd25lckRvY3VtZW50XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X293bmVyX2RvY3VtZW50XCIpIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5JbnZvaWNlQW5kbG9naXN0Y1VuaXQoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VOdW1iZXJcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9udW1iZXJcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwiaW52b2ljZVNlcmlhbE51bWJlclwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9pbnZvaWNlX3NlcmlhbF9udW1iZXJcIikgfSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uUGFydG5lcigpLFxuICAgICAgICAgICAgeyBmaWVsZDogXCJsb2dpc3RjVW5pdE5hbWVcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfbG9naXN0Y191bml0X25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwibG9naXN0Y1VuaXREb2N1bWVudFwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9sb2dpc3RjX3VuaXRfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtblBhcnRuZXIoKSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7IGZpZWxkOiBcInBhcnRuZXJOYW1lXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X3BhcnRuZXJfbmFtZVwiKSB9LFxuICAgICAgICAgICAgeyBmaWVsZDogXCJwYXJ0bmVyRG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfcGFydG5lcl9kb2N1bWVudFwiKSB9LFxuICAgICAgICBdO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1dtc1NlbmlvckNvbm5lY3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLlNFTklPUl9DT05ORUNUO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1dtc1dJUygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uV0lTO1xuICAgIH1cbn1cbiJdfQ==
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBdUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFZLE1BQU0sYUFBYSxDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFvQixNQUFNLHNDQUFzQyxDQUFDO0FBRXZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDakUsT0FBTyxFQUFvQyxrQkFBa0IsRUFBZSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3JJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBT3BHO0lBa0RJLCtCQUNxQixTQUEyQixFQUMzQixlQUFnQyxFQUNoQyxtQkFBd0MsRUFDeEMsa0JBQXNDLEVBQ3RDLGFBQTRCLEVBQzVCLEtBQTBCO1FBTDFCLGNBQVMsR0FBVCxTQUFTLENB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QUUsdUJBQXVCLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBbFVRO1FBQVIsS0FBSyxFQUFFOzt5REFBUTtJQUNQO1FBQVIsS0FBSyxFQUFFOzs0REFBc0I7SUFDcEI7UUFBVCxNQUFNLEVBQUU7O29FQUE0QjtJQUMzQjtRQUFULE1BQU0sRUFBRTs7MEVBQWtDO0lBRWpDO1FBQVQsTUFBTSxFQUFFOzBDQUFlLFlBQVk7K0RBQWdDO0lBa0JwRTtRQURDLFNBQVMsQ0FBQyxlQUFlLENBQUM7MENBQ2IsS0FBSzt3REFBQztJQUdwQjtRQURDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQzswQ0FDTCxXQUFXO2lFQUFNO0lBR3hDO1FBREMsU0FBUyxDQUFDLG9CQUFvQixDQUFDOzBDQUNMLFdBQVc7cUVBQU07SUFHNUM7UUFEQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7MENBQ0wsV0FBVztxRUFBTTtJQUc1QztRQURDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQzswQ0FDTCxXQUFXO21FQUFNO0lBRzFDO1FBREMsU0FBUyxDQUFDLGdCQUFnQixDQUFDOzBDQUNMLFdBQVc7aUVBQU07SUF4Qy9CLHFCQUFxQjtRQUxqQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZUFBZTtZQUN6QiwrcVBBQTZDOztTQUVoRCxDQUFDO2lEQW9Ea0MsZ0JBQWdCO1lBQ1YsZUFBZTtZQUNYLG1CQUFtQjtZQUNwQixrQkFBa0I7WUFDdkIsYUFBYTtZQUNyQixtQkFBbUI7T0F4RHRDLHFCQUFxQixDQXFVakM7SUFBRCw0QkFBQztDQUFBLEFBclVELElBcVVDO1NBclVZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudENoZWNrZWQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBDb25maXJtYXRpb25TZXJ2aWNlLCBNZW51SXRlbSB9IGZyb20gXCJwcmltZW5nL2FwaVwiO1xuaW1wb3J0IHsgVGFibGUgfSBmcm9tIFwicHJpbWVuZy90YWJsZVwiO1xuaW1wb3J0IHsgU3ViamVjdCwgZW1wdHksIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVdGlsc01lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3V0aWxzLW1lc3NhZ2VcIjtcbmltcG9ydCB7IEFnZW5kYVNlcnZpY2UsIElzQ2xpZW50ZUV4dGVybm8gfSBmcm9tICcuLi8uLi9lbnRpdGllcy9hZ2VuZGEvYWdlbmRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9jdW1lbnQgfSBmcm9tIFwiLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnRcIjtcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgV21zU3lzdGVtIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtJztcbmltcG9ydCB7IEdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nT3V0cHV0LCBJbnRlZ3JhdGlvblNlcnZpY2UsIFByb2Nlc3NUeXBlIH0gZnJvbSAnLi8uLi8uLi9lbnRpdGllcy9pbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEludm9pY2VDb25kaXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vc3JjL3dtcy9lbnRpdGllcy9pbnZvaWNlLWNvbmRpdGlvbi9pbnZvaWNlLWNvbmRpdGlvblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2RvY3VtZW50LWdyaWQnLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZG9jdW1lbnQtZ3JpZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9kb2N1bWVudC1ncmlkLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50R3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cbiAgICBASW5wdXQoKSBhZ2VuZGE7XG4gICAgQElucHV0KCkgd21zU3lzdGVtOiBXbXNTeXN0ZW07XG4gICAgQE91dHB1dCgpIHZpc2libGVJbnZvaWNlS2V5OiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlRG9jdW1lbnRSZWdpc3RlcjogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSB2aWV3RG9jdW1lbnQ6IEV2ZW50RW1pdHRlcjxEb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZG9jdW1lbnRUb3RhbFJlY29yZHM6IG51bWJlcjtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IGFueTtcbiAgICBwdWJsaWMgZ3JpZERhdGE6IERvY3VtZW50W10gPSBbXTtcbiAgICBwdWJsaWMgc2VsZWN0aW9uOiBEb2N1bWVudFtdO1xuICAgIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgbG9hZGluZzogYm9vbGVhbjtcbiAgICBwdWJsaWMgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgIHB1YmxpYyBlZGl0OiBib29sZWFuO1xuICAgIHB1YmxpYyBwcm9jZXNzVHlwZTogUHJvY2Vzc1R5cGU7XG4gICAgcHJpdmF0ZSBpc0NsaWVudGVFeHRlcm5vOiBib29sZWFuO1xuICAgIHB1YmxpYyBlbmFibGVCdXR0b25Jc0NsaWVudGVFeHRlcm5vID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VtbWFyeSA9IFwieW1zLmludC53bXNfc2F2ZWRfZG9jdW1lbnRfbWVzc2FnZV90aXRsZVwiO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBAVmlld0NoaWxkKFwiZG9jdW1lbnRUYWJsZVwiKVxuICAgIHB1YmxpYyB0YWJsZTogVGFibGU7XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tVGVtcGxhdGVcIilcbiAgICBwdWJsaWMgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiY3VzdG9tRmlsdGVyRmllbGRzXCIpXG4gICAgcHVibGljIGN1c3RvbUZpbHRlckZpZWxkczogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkQ29sZ3JvdXBcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZENvbGdyb3VwOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZChcImN1c3RvbUdyaWRIZWFkZXJcIilcbiAgICBwdWJsaWMgY3VzdG9tR3JpZEhlYWRlcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBWaWV3Q2hpbGQoXCJjdXN0b21HcmlkQm9keVwiKVxuICAgIHB1YmxpYyBjdXN0b21HcmlkQm9keTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHB1YmxpYyBpbnZvaWNlQ29uZGl0aW9uOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uIH1bXSA9IFtcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9ub193YXlcIiksIHZhbHVlOiBudWxsIH0sXG4gICAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2VfY29uZGl0aW9uX2F1dGhvcml6ZWRcIiksIHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uLkFVVEhPUklaRUQgfSxcbiAgICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2dyaWRfZG9jdW1lbnRfaW52b2ljZV9jb25kaXRpb25fbWFudWFsX2F1dGhvcml6ZWRcIiksIHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uLk1BTlVBTF9BVVRIT1JJWkVEIH0sXG4gICAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2VfY29uZGl0aW9uX3BhcnRpYWxfYXV0aG9yaXplZFwiKSwgdmFsdWU6IEludm9pY2VDb25kaXRpb24uUEFSVElBTF9BVVRIT1JJWkVEIH0sXG4gICAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19ncmlkX2RvY3VtZW50X2ludm9pY2VfY29uZGl0aW9uX2Rldm9sdWNpb25cIiksIHZhbHVlOiBJbnZvaWNlQ29uZGl0aW9uLkFVVEhPUklaRUQgfSxcbiAgICBdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpcm1hdGlvblNlcnZpY2U6IENvbmZpcm1hdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW50ZWdyYXRpb25TZXJ2aWNlOiBJbnRlZ3JhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgYWdlbmRhU2VydmljZTogQWdlbmRhU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1dGlsczogVXRpbHNNZXNzYWdlU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBbXTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52ZXJpZnlDbGllbnRlRXh0ZXJubygpO1xuICAgICAgICB0aGlzLmdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nKCk7XG4gICAgICAgIHRoaXMubGlzdERvY3VtZW50cyhmYWxzZSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyaWRDb2x1bW5zID0gdGhpcy5nZXRHcmlkQ29sdW1ucygpO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSB2ZXJpZnlDbGllbnRlRXh0ZXJubygpIHtcbiAgICAgICAgdGhpcy5hZ2VuZGFTZXJ2aWNlLmlzQ2xpZW50ZUV4dGVybm8oKVxuICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IElzQ2xpZW50ZUV4dGVybm8pID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXNDbGllbnRlRXh0ZXJubyA9IHJlc3VsdC5pc0NsaWVudGVFeHRlcm5vO1xuICAgICAgICAgICAgdGhpcy5jYW50RWRpdFN0YXR1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nKCkge1xuICAgICAgICB0aGlzLmludGVncmF0aW9uU2VydmljZS5nZXRQcm9jZXNzVHlwZUJ5U2NoZWR1bGluZyh0aGlzLmFnZW5kYS50aXBvQWdlbmRhbWVudG8uaWQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IEdldFByb2Nlc3NUeXBlQnlTY2hlZHVsaW5nT3V0cHV0KSA9PiB0aGlzLnByb2Nlc3NUeXBlID0gcmVzdWx0LnByb2Nlc3NUeXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DaGFuZ2VEb2N1bWVudChkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0ZpbGxlZFZhbHVlcyhkb2N1bWVudCkpe1xuICAgICAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwiZXJyb3JcIixcInltcy5pbnQud21zX3NhdmVfZXJyb3JfcmVnaXN0ZXJfZG9jdW1lbnRfbWVzc2FnZV90aXRsZVwiLFwieW1zLmludC53bXNfc2F2ZV9lcnJvcl9yZWdpc3Rlcl9kb2N1bWVudF9tZXNzYWdlX2Rlc2NyaXB0aW9uXCIpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hc3NpZ25LZXlzKGRvY3VtZW50KTtcblxuICAgICAgICBjb25zdCBkdXBsaWNhdGVEb2N1bWVudCA9IHRoaXMuZ3JpZERhdGEuZmluZChncmlkRGF0YSA9PiBncmlkRGF0YS5rZXkgPT09IGRvY3VtZW50LmtleSk7XG4gICAgICAgIGlmIChkdXBsaWNhdGVEb2N1bWVudCkge1xuICAgICAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwiZXJyb3JcIixcInltcy5pbnQud21zX2Vycm9yX3JlZ2lzdGVyX2RvY3VtZW50X21lc3NhZ2VfdGl0bGVcIixcInltcy5pbnQud21zX2Vycm9yX3JlZ2lzdGVyX2RvY3VtZW50X21lc3NhZ2VfZGVzY3JpcHRpb25cIik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdyaWREYXRhLnB1c2goZG9jdW1lbnQpO1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcInN1Y2Nlc3NcIiwgdGhpcy5zdW1tYXJ5LCBcInltcy5pbnQud21zX3N1Y2Nlc3NfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgdGhpcy52aXNpYmxlRG9jdW1lbnRSZWdpc3RlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnZpc2libGVJbnZvaWNlS2V5ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3NpZ25LZXlzKGRvY3VtZW50OiBEb2N1bWVudCkge1xuICAgICAgICBpZiAoZG9jdW1lbnQuaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWdlbmRhLmlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5zY2hlZHVsaW5nSWQgPSB0aGlzLmFnZW5kYS5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkb2N1bWVudC5rZXkgPT09IHVuZGVmaW5lZCB8fCBkb2N1bWVudC5rZXkgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5rZXkgPSBkb2N1bWVudC5pbnZvaWNlS2V5O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzV21zV0lTKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQua2V5ID0gYCR7ZG9jdW1lbnQuaW52b2ljZU51bWJlcn06JHtkb2N1bWVudC5pbnZvaWNlU2VyaWFsTnVtYmVyfToke2RvY3VtZW50LnBhcnRuZXJEb2N1bWVudH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaGFzRmlsbGVkVmFsdWVzKGRvY3VtZW50OiBEb2N1bWVudCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWVzID0gT2JqZWN0LnZhbHVlcyhkb2N1bWVudCk7XG4gICAgICAgIHJldHVybiBmb3JtVmFsdWVzLnNvbWUodmFsdWUgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09ICcnKTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgY2FudEVkaXRTdGF0dXMoKSB7XG4gICAgICAgIGNvbnN0IGNhbnRFZGl0U3RhdHVzID0gW1xuICAgICAgICAgICAgJ0NBTkNFTEFETycsXG4gICAgICAgICAgICAnRU1fRVhFQ1VDQU8nLFxuICAgICAgICAgICAgJ0NPTkNMVUlETycsXG4gICAgICAgICAgICAnQUdVQVJEQU5ET19QT1JfVkFMSURBQ0FPJ1xuICAgICAgICBdLmluY2x1ZGVzKHRoaXMuYWdlbmRhLnN0YXR1cy50b1N0cmluZygpKTtcblxuICAgICAgICBpZihjYW50RWRpdFN0YXR1cykge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVCdXR0b25Jc0NsaWVudGVFeHRlcm5vID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWN0aW9ucygpOiBNZW51SXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5jaGVja1dtc1N5c3RlbUludmFsaWQoKSxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3NlYXJjaFwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUludm9pY2VLZXkgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaWNvbjogXCJmYSBmYS1zZWFyY2hcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5jaGVja1dtc1N5c3RlbUludmFsaWQoKSxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX2FkZF9kb2N1bWVudF9yZWdpc3RlclwiKSxcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW107XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZURvY3VtZW50UmVnaXN0ZXIgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaWNvbjogXCJmYXMgZmEtcGVuLXNxdWFyZVwiXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrV21zU3lzdGVtSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMud21zU3lzdGVtICYmIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uTk9ORSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQcm9wKG9iajogYW55LCBwYXRoOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHBhdGguc3BsaXQoXCIuXCIpLnJlZHVjZSgocmVzdWx0OiBhbnksIHByb3A6IGFueSkgPT4gKHJlc3VsdFtwcm9wXSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IHJlc3VsdFtwcm9wXSksIG9iaik7XG4gICAgfVxuXG4gICAgcHVibGljIHZpZXcoKSB7XG4gICAgICAgIHRoaXMudmlld0RvY3VtZW50LmVtaXQodGhpcy5zZWxlY3Rpb25bMF0pO1xuICAgICAgICB0aGlzLnZpc2libGVEb2N1bWVudFJlZ2lzdGVyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lZGl0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmUoKSB7XG4gICAgICAgIGlmKHRoaXMuZ3JpZERhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5ncmlkRGF0YS5mb3JFYWNoKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIGlmKCFkYXRhLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmKCFkYXRhLnNjaGVkdWxpbmdJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5zY2hlZHVsaW5nSWQgPSB0aGlzLmFnZW5kYS5pZDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBkYXRhLmtleSA9IHRoaXMudXBkYXRlS2V5QnlXbXMoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnRTZXJ2aWNlLmluc2VydChkYXRhKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNlc3NNZXNzYWdlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saXN0RG9jdW1lbnRzKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS51cGRhdGUoZGF0YS5pZCwgZGF0YSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3VjZXNzTWVzc2FnZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVLZXlCeVdtcyhkYXRhOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIWRhdGEua2V5KSB7XG4gICAgICAgICAgICBkYXRhLmtleSA9IGRhdGEuaW52b2ljZUtleTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5XSVMpIHtcbiAgICAgICAgICAgIGRhdGEua2V5ID0gYCR7ZGF0YS5pbnZvaWNlTnVtYmVyfToke2RhdGEuaW52b2ljZVNlcmlhbE51bWJlcn06JHtkYXRhLnBhcnRuZXJEb2N1bWVudH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRhLmtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EZWxldGUoKSB7XG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uU2VydmljZS5jb25maXJtKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJkZWxldGVfY29uZmlybWF0aW9uX21lc3NhZ2VcIiksXG4gICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJkZWxldGVfY29uZmlybWF0aW9uX3RpdGxlXCIpLFxuICAgICAgICAgICAgYWNjZXB0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVEb2N1bWVudElmSWRVbmRmaW5lZCgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcmtKb2luKHRoaXMuc2VsZWN0aW9uLm1hcChkb2N1bWVudCA9PiB0aGlzLmRvY3VtZW50U2VydmljZS5kZWxldGUoZG9jdW1lbnQuaWQpKSlcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwic3VjY2Vzc1wiLCBcImRlbGV0ZWRfbWVzc2FnZV90aXRsZVwiLCBcImRlbGV0ZWRfbWVzc2FnZV9jb250ZW50XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpc3REb2N1bWVudHModHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRG9jdW1lbnRJZklkVW5kZmluZWQoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmZvckVhY2goKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF2YWx1ZS5pZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4R3JpZERhdGEgPSB0aGlzLmdyaWREYXRhLmZpbmRJbmRleChkb2N1bWVudCA9PiBkb2N1bWVudC5rZXkgPT09IHZhbHVlLmtleSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdyaWREYXRhLnNwbGljZShpbmRleEdyaWREYXRhLCAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbGlzdERvY3VtZW50cyhpc0RlbGV0ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5saXN0KHtcbiAgICAgICAgICAgIGZpbHRlclF1ZXJ5OiBgc2NoZWR1bGluZ0lkIGVxICcke3RoaXMuYWdlbmRhLmlkfSdgXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZERhdGEgPSBpc0RlbGV0ZSA/IHRoaXMuZ3JpZERhdGEuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uaWQpIDogW107XG5cbiAgICAgICAgICAgIGlmKGNvbnRlbnRzLnRvdGFsRWxlbWVudHMgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkRGF0YS5wdXNoKC4uLmNvbnRlbnRzLmNvbnRlbnRzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRvY3VtZW50VG90YWxSZWNvcmRzID0gY29udGVudHMudG90YWxFbGVtZW50cztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kb2N1bWVudFRvdGFsUmVjb3JkcyA9IHRoaXMuZ3JpZERhdGEubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaGFzRWxlbWVudFdpdGhvdXRJZCA9IHRoaXMuZ3JpZERhdGEuc29tZShpdGVtID0+ICFpdGVtLmlkKTtcblxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICFoYXNFbGVtZW50V2l0aG91dElkO1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IFtdO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JpZENvbHVtbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzV21zU2VuaW9yQ29ubmVjdCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHsgZmllbGQ6IFwia2V5XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3B1cmNoYXNlT3JkZXJcIikgfSxcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldENvbHVtblBhcnRuZXIoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldENvbHVtbmludm9pY2VDb25kaXRpb24oKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1dtc1dJUygpKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2V0Q29sdW1uSW52b2ljZUFuZGxvZ2lzdGNVbml0KCksXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDb2x1bW5pbnZvaWNlQ29uZGl0aW9uKCksXG4gICAgICAgICAgICBdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VLZXlcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9rZXlcIikgfSxcbiAgICAgICAgICAgICAgICAuLi50aGlzLmdldENvbHVtbkludm9pY2VBbmRsb2dpc3RjVW5pdCgpLFxuICAgICAgICAgICAgICAgIHsgZmllbGQ6IFwib3duZXJOYW1lXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X293bmVyX25hbWVcIikgfSxcbiAgICAgICAgICAgICAgICB7IGZpZWxkOiBcIm93bmVyRG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfb3duZXJfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgICAgICAgICB0aGlzLmdldENvbHVtbmludm9pY2VDb25kaXRpb24oKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbHVtbmludm9pY2VDb25kaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB7IGZpZWxkOiBcImludm9pY2VDb25kaXRpb25cIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfZ3JpZF9kb2N1bWVudF9pbnZvaWNlX2NvbmRpdGlvblwiKSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29sdW1uSW52b2ljZUFuZGxvZ2lzdGNVbml0KCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJpbnZvaWNlTnVtYmVyXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2ludm9pY2VfbnVtYmVyXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcImludm9pY2VTZXJpYWxOdW1iZXJcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfaW52b2ljZV9zZXJpYWxfbnVtYmVyXCIpIH0sXG4gICAgICAgICAgICAuLi50aGlzLmdldENvbHVtblBhcnRuZXIoKSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwibG9naXN0Y1VuaXROYW1lXCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X2xvZ2lzdGNfdW5pdF9uYW1lXCIpIH0sXG4gICAgICAgICAgICB7IGZpZWxkOiBcImxvZ2lzdGNVbml0RG9jdW1lbnRcIiwgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KFwieW1zLmludC53bXNfcmVnaXN0ZXJfZG9jdW1lbnRfbG9naXN0Y191bml0X2RvY3VtZW50XCIpIH0sXG4gICAgICAgIF07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2x1bW5QYXJ0bmVyKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBmaWVsZDogXCJwYXJ0bmVyTmFtZVwiLCBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXCJ5bXMuaW50Lndtc19yZWdpc3Rlcl9kb2N1bWVudF9wYXJ0bmVyX25hbWVcIikgfSxcbiAgICAgICAgICAgIHsgZmllbGQ6IFwicGFydG5lckRvY3VtZW50XCIsIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudChcInltcy5pbnQud21zX3JlZ2lzdGVyX2RvY3VtZW50X3BhcnRuZXJfZG9jdW1lbnRcIikgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXSVMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTaWx0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdWNlc3NNZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy51dGlscy5tZXNzYWdlKFwic3VjY2Vzc1wiLCB0aGlzLnN1bW1hcnksIFwic2F2ZWRfbWVzc2FnZV9jb250ZW50XCIpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -4,12 +4,13 @@ import { NgModule } from "@angular/core";
|
|
|
4
4
|
import { CommonModule } from "@angular/common";
|
|
5
5
|
import { TranslateModule } from "@ngx-translate/core";
|
|
6
6
|
import { ButtonModule, EmptyStateModule } from "@seniorsistemas/angular-components";
|
|
7
|
-
import { PanelModule } from 'primeng/primeng';
|
|
7
|
+
import { DropdownModule, PanelModule } from 'primeng/primeng';
|
|
8
8
|
import { TableModule } from "primeng/table";
|
|
9
9
|
import { RegisterDocumentModule } from './register-document/register-document.module';
|
|
10
10
|
import { InsertKeyModule } from './insert-key/insert-key.module';
|
|
11
11
|
import { ButtonModule as PrimeButtonModule } from "primeng/button";
|
|
12
12
|
import { ComponentsModule as LogisticaComponentsModule } from "@seniorsistemas/yms-components";
|
|
13
|
+
import { FormsModule } from '@angular/forms';
|
|
13
14
|
var DocumentGridModule = /** @class */ (function () {
|
|
14
15
|
function DocumentGridModule() {
|
|
15
16
|
}
|
|
@@ -28,11 +29,13 @@ var DocumentGridModule = /** @class */ (function () {
|
|
|
28
29
|
InsertKeyModule,
|
|
29
30
|
PrimeButtonModule,
|
|
30
31
|
LogisticaComponentsModule,
|
|
31
|
-
EmptyStateModule
|
|
32
|
+
EmptyStateModule,
|
|
33
|
+
DropdownModule,
|
|
34
|
+
FormsModule
|
|
32
35
|
],
|
|
33
36
|
})
|
|
34
37
|
], DocumentGridModule);
|
|
35
38
|
return DocumentGridModule;
|
|
36
39
|
}());
|
|
37
40
|
export { DocumentGridModule };
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvZG9jdW1lbnQtZ3JpZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxJQUFJLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGdCQUFnQixJQUFJLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBcUI3QztJQUFBO0lBQ0EsQ0FBQztJQURZLGtCQUFrQjtRQW5COUIsUUFBUSxDQUFDO1lBQ04sWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7WUFDckMsZUFBZSxFQUFFLENBQUMscUJBQXFCLENBQUM7WUFDeEMsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7WUFDaEMsT0FBTyxFQUFFO2dCQUNQLFlBQVk7Z0JBQ1osZUFBZTtnQkFDZixZQUFZO2dCQUNaLFdBQVc7Z0JBQ1gsV0FBVztnQkFDWCxzQkFBc0I7Z0JBQ3RCLGVBQWU7Z0JBQ2YsaUJBQWlCO2dCQUNqQix5QkFBeUI7Z0JBQ3pCLGdCQUFnQjtnQkFDaEIsY0FBYztnQkFDZCxXQUFXO2FBQ1o7U0FDSixDQUFDO09BQ1csa0JBQWtCLENBQzlCO0lBQUQseUJBQUM7Q0FBQSxBQURELElBQ0M7U0FEWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEb2N1bWVudEdyaWRDb21wb25lbnQgfSBmcm9tICcuL2RvY3VtZW50LWdyaWQuY29tcG9uZW50JztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIEVtcHR5U3RhdGVNb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50c1wiO1xuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUsIFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9wcmltZW5nJztcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvdGFibGVcIjtcbmltcG9ydCB7IFJlZ2lzdGVyRG9jdW1lbnRNb2R1bGUgfSBmcm9tICcuL3JlZ2lzdGVyLWRvY3VtZW50L3JlZ2lzdGVyLWRvY3VtZW50Lm1vZHVsZSc7XG5pbXBvcnQgeyBJbnNlcnRLZXlNb2R1bGUgfSBmcm9tICcuL2luc2VydC1rZXkvaW5zZXJ0LWtleS5tb2R1bGUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIGFzIFByaW1lQnV0dG9uTW9kdWxlIH0gZnJvbSBcInByaW1lbmcvYnV0dG9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnRzTW9kdWxlIGFzIExvZ2lzdGljYUNvbXBvbmVudHNNb2R1bGUgfSBmcm9tIFwiQHNlbmlvcnNpc3RlbWFzL3ltcy1jb21wb25lbnRzXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtEb2N1bWVudEdyaWRDb21wb25lbnRdLFxuICAgIGVudHJ5Q29tcG9uZW50czogW0RvY3VtZW50R3JpZENvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0RvY3VtZW50R3JpZENvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgUGFuZWxNb2R1bGUsXG4gICAgICBUYWJsZU1vZHVsZSxcbiAgICAgIFJlZ2lzdGVyRG9jdW1lbnRNb2R1bGUsXG4gICAgICBJbnNlcnRLZXlNb2R1bGUsXG4gICAgICBQcmltZUJ1dHRvbk1vZHVsZSxcbiAgICAgIExvZ2lzdGljYUNvbXBvbmVudHNNb2R1bGUsXG4gICAgICBFbXB0eVN0YXRlTW9kdWxlLFxuICAgICAgRHJvcGRvd25Nb2R1bGUsXG4gICAgICBGb3Jtc01vZHVsZVxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvY3VtZW50R3JpZE1vZHVsZSB7XG59XG4iXX0=
|
|
@@ -17,6 +17,7 @@ var InsertKeyComponent = /** @class */ (function () {
|
|
|
17
17
|
this.isLoading = false;
|
|
18
18
|
}
|
|
19
19
|
InsertKeyComponent.prototype.ngOnInit = function () {
|
|
20
|
+
var _this = this;
|
|
20
21
|
this.formGroup = this.formBuilder.group({
|
|
21
22
|
key: [undefined],
|
|
22
23
|
purchaseOrder: [undefined],
|
|
@@ -24,6 +25,9 @@ var InsertKeyComponent = /** @class */ (function () {
|
|
|
24
25
|
invoiceSerie: [undefined],
|
|
25
26
|
partnerDocument: [undefined]
|
|
26
27
|
});
|
|
28
|
+
this.formGroup.get('key').valueChanges.subscribe(function (nf) {
|
|
29
|
+
_this.validateKeyDetails(nf);
|
|
30
|
+
});
|
|
27
31
|
};
|
|
28
32
|
InsertKeyComponent.prototype.isWmsWis = function () {
|
|
29
33
|
return this.wmsSystem === WmsSystem.WIS;
|
|
@@ -69,6 +73,38 @@ var InsertKeyComponent = /** @class */ (function () {
|
|
|
69
73
|
_this.formGroup.reset();
|
|
70
74
|
});
|
|
71
75
|
};
|
|
76
|
+
InsertKeyComponent.prototype.validateKeyDetails = function (nf) {
|
|
77
|
+
if (!nf) {
|
|
78
|
+
this.keyErrorMessage = null;
|
|
79
|
+
this.setValuesOfKey(undefined, undefined, undefined);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
var nfLength = 44;
|
|
83
|
+
if (nf.length === nfLength) {
|
|
84
|
+
this.keyErrorMessage = null;
|
|
85
|
+
this.extractKeyDetails(nf);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.keyErrorMessage = "yms.int.wms_error_key_message";
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
InsertKeyComponent.prototype.extractKeyDetails = function (nf) {
|
|
92
|
+
var startCnpj = 6;
|
|
93
|
+
var endCnpj = 20;
|
|
94
|
+
var cnpj = nf.substring(startCnpj, endCnpj);
|
|
95
|
+
var startSerie = 22;
|
|
96
|
+
var endSerie = 25;
|
|
97
|
+
var serie = nf.substring(startSerie, endSerie);
|
|
98
|
+
var startInvoice = 25;
|
|
99
|
+
var endInvoice = 34;
|
|
100
|
+
var invoice = nf.substring(startInvoice, endInvoice);
|
|
101
|
+
this.setValuesOfKey(invoice, serie, cnpj);
|
|
102
|
+
};
|
|
103
|
+
InsertKeyComponent.prototype.setValuesOfKey = function (invoiceNumber, invoiceSerie, partnerDocument) {
|
|
104
|
+
this.formGroup.get('invoiceNumber').setValue(invoiceNumber);
|
|
105
|
+
this.formGroup.get('invoiceSerie').setValue(invoiceSerie);
|
|
106
|
+
this.formGroup.get('partnerDocument').setValue(partnerDocument);
|
|
107
|
+
};
|
|
72
108
|
InsertKeyComponent.prototype.cancel = function () {
|
|
73
109
|
this.visibleChange.emit(false);
|
|
74
110
|
};
|
|
@@ -94,8 +130,8 @@ var InsertKeyComponent = /** @class */ (function () {
|
|
|
94
130
|
InsertKeyComponent = tslib_1.__decorate([
|
|
95
131
|
Component({
|
|
96
132
|
selector: "insert-key",
|
|
97
|
-
template: "<form [formGroup]=\"formGroup\">\n <p-dialog [(visible)]=\"visible\" [modal]=\"true\" \n [draggable]=\"false\" (visibleChange)=\"cancel()\" (onShow)=\"onDialogShow()\">\n <p-header>{{'yms.int.wms_search_document' | translate}} {{ wmsSystem }}</p-header>\n <s-loading-state [loading]=\"isLoading\">\n <div class=\"flex py-2 justify-content-center spacing-bottom\"
|
|
98
|
-
styles: [".spacing-top{margin-top:10px}.spacing-bottom{margin-bottom:10px}.separator{width:100%;margin:5px 0;height:1px;background-color:#ccc}.size-input{width:480px}"]
|
|
133
|
+
template: "<form [formGroup]=\"formGroup\">\n <p-dialog [(visible)]=\"visible\" [modal]=\"true\" \n [draggable]=\"false\" (visibleChange)=\"cancel()\" (onShow)=\"onDialogShow()\">\n <p-header>{{'yms.int.wms_search_document' | translate}} {{ wmsSystem }}</p-header>\n <s-loading-state [loading]=\"isLoading\">\n <div class=\"flex py-2 justify-content-center spacing-bottom\"\n *ngIf=\"!isWmsSeniorConnect()\">\n <label for=\"key\">{{'yms.int.wms_insert_key_label' | translate}}</label>\n <input id=\"key\" class=\"size-input\" pInputText type=\"text\" formControlName=\"key\">\n <span class=\"error-message\">{{keyErrorMessage | translate}}</span>\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsSeniorConnect()\">\n <label for=\"purchaseOrder\">{{'yms.int.wms_purchaseOrder' | translate}} </label>\n <input id=\"purchaseOrder\" class=\"size-input\" pInputText type=\"text\" formControlName=\"purchaseOrder\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsWis()\">\n <label for=\"invoiceNumber\">{{'yms.int.wms_invoice_number' | translate}}</label>\n <input id=\"invoiceNumber\" class=\"size-input\" pInputText type=\"text\" formControlName=\"invoiceNumber\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsWis()\">\n <label for=\"invoiceSerie\">{{'yms.int.wms_invoice_serie' | translate}}</label>\n <input id=\"invoiceSerie\" class=\"size-input\" pInputText type=\"text\" formControlName=\"invoiceSerie\">\n </div>\n <div class=\"flex py-2 justify-content-center spacing-bottom\" *ngIf=\"isWmsWis()\">\n <label for=\"partnerDocument\">{{'yms.int.wms_partner_document' | translate}}</label>\n <input id=\"partnerDocument\" class=\"size-input\" pInputText type=\"text\" formControlName=\"partnerDocument\">\n </div>\n <div class=\"separator\"></div>\n <div class=\"spacing-top\">\n <s-button pButton label=\"{{'yms.int.wms_search' | translate}}\" (click)=\"add()\"></s-button>\n <s-button\n type=\"button\"\n class=\"ui-button-link\"\n pButton label=\"{{'cancel' | translate}}\"\n (click)=\"cancel()\">\n </s-button>\n </div>\n </s-loading-state>\n </p-dialog>\n\n</form>\n",
|
|
134
|
+
styles: [".spacing-top{margin-top:10px}.spacing-bottom{margin-bottom:10px}.separator{width:100%;margin:5px 0;height:1px;background-color:#ccc}.size-input{width:480px}.error-message{color:#c13018;display:flex}"]
|
|
99
135
|
}),
|
|
100
136
|
tslib_1.__metadata("design:paramtypes", [FormBuilder,
|
|
101
137
|
DocumentService,
|
|
@@ -104,4 +140,4 @@ var InsertKeyComponent = /** @class */ (function () {
|
|
|
104
140
|
return InsertKeyComponent;
|
|
105
141
|
}());
|
|
106
142
|
export { InsertKeyComponent };
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFRaEY7SUFVSSw0QkFDcUIsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDaEMsS0FBMEI7UUFGMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBWnJDLGFBQVEsR0FBMkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSXRDLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFLdEIsQ0FBQztJQUVKLHFDQUFRLEdBQVI7UUFDSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQ3BDLEdB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SUFDM0IsQ0FBQztJQXRGUztRQUFULE1BQU0sRUFBRTswQ0FBVyxZQUFZO3dEQUFnQztJQUV2RDtRQUFSLEtBQUssRUFBRTswQ0FBVSxZQUFZO3VEQUErQjtJQUNwRDtRQUFSLEtBQUssRUFBRTs7eURBQXNCO0lBQ3BCO1FBQVQsTUFBTSxFQUFFOzs2REFBb0M7SUFMcEMsa0JBQWtCO1FBTDlCLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLDRpRkFBMEM7O1NBRTdDLENBQUM7aURBWW9DLFdBQVc7WUFDUCxlQUFlO1lBQ3pCLG1CQUFtQjtPQWJ0QyxrQkFBa0IsQ0F3RjlCO0lBQUQseUJBQUM7Q0FBQSxBQXhGRCxJQXdGQztTQXhGWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBVdGlsc01lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxzL3V0aWxzLW1lc3NhZ2VcIjtcbmltcG9ydCB7IFdtc1N5c3RlbSB9IGZyb20gJy4uLy4uLy4uL2VudGl0aWVzL3dtcy1zeXN0ZW0vd21zLXN5c3RlbSc7XG5pbXBvcnQgeyBEb2N1bWVudFNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2RvY3VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmluZERvY3VtZW50c0lucHV0IH0gZnJvbSAnLi8uLi8uLi8uLi9lbnRpdGllcy9kb2N1bWVudC9maW5kLWRvY3VtZW50cy1pbnB1dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcImluc2VydC1rZXlcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL2luc2VydC1rZXkuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFsnLi9pbnNlcnQta2V5LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSW5zZXJ0S2V5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAT3V0cHV0KCkgZG9jdW1lbnQ6IEV2ZW50RW1pdHRlcjxEb2N1bWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBASW5wdXQoKSB2aXNpYmxlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQElucHV0KCkgd21zU3lzdGVtOiBXbXNTeXN0ZW07XG4gICAgQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMga2V5OiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdXRpbHM6IFV0aWxzTWVzc2FnZVNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBrZXk6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgcHVyY2hhc2VPcmRlcjogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlTnVtYmVyOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGludm9pY2VTZXJpZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBwYXJ0bmVyRG9jdW1lbnQ6IFt1bmRlZmluZWRdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1dtc1dpcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud21zU3lzdGVtID09PSBXbXNTeXN0ZW0uV0lTO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc1dtc1NlbmlvckNvbm5lY3QoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLlNFTklPUl9DT05ORUNUO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGQoKSB7XG4gICAgICAgIHRoaXMuc2VhcmNoS2V5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWFyY2hLZXkoKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBrZXk6IEZpbmREb2N1bWVudHNJbnB1dCA9IHtcbiAgICAgICAgICAgIGRvY3VtZW50S2V5czogW3RoaXMuZm9ybUdyb3VwLmdldCgna2V5JykudmFsdWVdLFxuICAgICAgICAgICAgaW52b2ljZXM6IFt7XG4gICAgICAgICAgICAgICAgbnVtYmVyOiB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VOdW1iZXInKS52YWx1ZSxcbiAgICAgICAgICAgICAgICBzZXJpYWxOdW1iZXI6IHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZVNlcmllJykudmFsdWUsXG4gICAgICAgICAgICAgICAgcGFydG5lckRvY3VtZW50OiB0aGlzLmZvcm1Hcm91cC5nZXQoJ3BhcnRuZXJEb2N1bWVudCcpLnZhbHVlXG4gICAgICAgICAgICB9XSxcbiAgICAgICAgICAgIGxvZ2lzdGNVbml0TmFtZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgc2l6ZTogMCxcbiAgICAgICAgICAgIG9mZnNldDogMFxuICAgICAgICB9O1xuICAgIFxuICAgICAgICB0aGlzLmRvY3VtZW50U2VydmljZS5maW5kRG9jdW1lbnRzKGtleSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVyci5lcnJvciAmJiBlcnIuZXJyb3IubWVzc2FnZS5pbmNsdWRlcyhcIjQwNFwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJlcnJvclwiLCBcInltcy5pbnQud21zX2Vycm9yX3NlYXJjaF9kb2N1bWVudF9tZXNzYWdlX2hlYWRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ5bXMuaW50Lndtc19lcnJvcl9zZWFyY2hfZG9jdW1lbnRfbm90X2ZvdW5kX21lc3NhZ2VfY29udGVudFwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWxzLnRyYW5zbGF0ZU1lc3NhZ2UoXCJlcnJvclwiLCBcInltcy5pbnQud21zX2Vycm9yX3NlYXJjaF9kb2N1bWVudF9tZXNzYWdlX2hlYWRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgXCJ5bXMuaW50Lndtc19lcnJvcl91bmtub3duX3NlYXJjaF9kb2N1bWVudF9tZXNzYWdlX2NvbnRlbnRcIiArIGVyci5lcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudDogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWNvbnRlbnQgfHwgY29udGVudC50b3RhbEVsZW1lbnRzIDwgMSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbHMubWVzc2FnZShcIndhcm5cIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3dhcm5pbmdfbWVzc2FnZV9oZWFkZXJcIiwgXCJ5bXMuaW50Lndtc19pbnNlcnRfa2V5X3dhcm5pbmdfbWVzc2FnZV9kZXNjcmlwdGlvblwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmVtaXQoY29udGVudC5jb250ZW50c1swXSk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuY2VsKCkge1xuICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgfVxuXG4gICAgb25EaWFsb2dTaG93KCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWtleS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMveW1zLWludGVncmF0aW9uLyIsInNvdXJjZXMiOlsic3JjL3dtcy9jb21wb25lbnRzL2RvY3VtZW50LWdyaWQvaW5zZXJ0LWtleS9pbnNlcnQta2V5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFRaEY7SUFXSSw0QkFDcUIsV0FBd0IsRUFDeEIsZUFBZ0MsRUFDaEMsS0FBMEI7UUFGMUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLFVBQUssR0FBTCxLQUFLLENBQXFCO1FBYnJDLGFBQVEsR0FBMkIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkQsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3RDLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFLdEIsQ0FBQztJQUVKLHFDQUFRLEdBQVI7UUFBQSxpQkFZQztRQVhHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENB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QUF0QixVQUF1QixhQUFxQixFQUFFLFlBQW9CLEVBQUUsZUFBdUI7UUFDdkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRU0sbUNBQU0sR0FBYjtRQUNJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCx5Q0FBWSxHQUFaO1FBQ0ksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBaklTO1FBQVQsTUFBTSxFQUFFOzBDQUFXLFlBQVk7d0RBQWdDO0lBRXZEO1FBQVIsS0FBSyxFQUFFOzBDQUFVLFlBQVk7dURBQStCO0lBQ3BEO1FBQVIsS0FBSyxFQUFFOzt5REFBc0I7SUFDcEI7UUFBVCxNQUFNLEVBQUU7OzZEQUFvQztJQUxwQyxrQkFBa0I7UUFMOUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLFlBQVk7WUFDdEIsa25GQUEwQzs7U0FFN0MsQ0FBQztpREFhb0MsV0FBVztZQUNQLGVBQWU7WUFDekIsbUJBQW1CO09BZHRDLGtCQUFrQixDQW1JOUI7SUFBRCx5QkFBQztDQUFBLEFBbklELElBbUlDO1NBbklZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFV0aWxzTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHMvdXRpbHMtbWVzc2FnZVwiO1xuaW1wb3J0IHsgV21zU3lzdGVtIH0gZnJvbSAnLi4vLi4vLi4vZW50aXRpZXMvd21zLXN5c3RlbS93bXMtc3lzdGVtJztcbmltcG9ydCB7IERvY3VtZW50U2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vZW50aXRpZXMvZG9jdW1lbnQvZG9jdW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBGaW5kRG9jdW1lbnRzSW5wdXQgfSBmcm9tICcuLy4uLy4uLy4uL2VudGl0aWVzL2RvY3VtZW50L2ZpbmQtZG9jdW1lbnRzLWlucHV0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiaW5zZXJ0LWtleVwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vaW5zZXJ0LWtleS5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogWycuL2luc2VydC1rZXkuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJbnNlcnRLZXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBPdXRwdXQoKSBkb2N1bWVudDogRXZlbnRFbWl0dGVyPERvY3VtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBJbnB1dCgpIHZpc2libGU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBASW5wdXQoKSB3bXNTeXN0ZW06IFdtc1N5c3RlbTtcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBrZXk6IHN0cmluZztcbiAgICBwdWJsaWMga2V5RXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICAgIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdXRpbHM6IFV0aWxzTWVzc2FnZVNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBrZXk6IFt1bmRlZmluZWRdLFxuICAgICAgICAgICAgcHVyY2hhc2VPcmRlcjogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBpbnZvaWNlTnVtYmVyOiBbdW5kZWZpbmVkXSxcbiAgICAgICAgICAgIGludm9pY2VTZXJpZTogW3VuZGVmaW5lZF0sXG4gICAgICAgICAgICBwYXJ0bmVyRG9jdW1lbnQ6IFt1bmRlZmluZWRdXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgna2V5JykudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgobmY6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUtleURldGFpbHMobmYpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNXaXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLndtc1N5c3RlbSA9PT0gV21zU3lzdGVtLldJUztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNXbXNTZW5pb3JDb25uZWN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy53bXNTeXN0ZW0gPT09IFdtc1N5c3RlbS5TRU5JT1JfQ09OTkVDVDtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWRkKCkge1xuICAgICAgICB0aGlzLnNlYXJjaEtleSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoS2V5KCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG5cbiAgICAgICAgY29uc3Qga2V5OiBGaW5kRG9jdW1lbnRzSW5wdXQgPSB7XG4gICAgICAgICAgICBkb2N1bWVudEtleXM6IFt0aGlzLmZvcm1Hcm91cC5nZXQoJ2tleScpLnZhbHVlXSxcbiAgICAgICAgICAgIGludm9pY2VzOiBbe1xuICAgICAgICAgICAgICAgIG51bWJlcjogdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlTnVtYmVyJykudmFsdWUsXG4gICAgICAgICAgICAgICAgc2VyaWFsTnVtYmVyOiB0aGlzLmZvcm1Hcm91cC5nZXQoJ2ludm9pY2VTZXJpZScpLnZhbHVlLFxuICAgICAgICAgICAgICAgIHBhcnRuZXJEb2N1bWVudDogdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyRG9jdW1lbnQnKS52YWx1ZVxuICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICBsb2dpc3RjVW5pdE5hbWU6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHNpemU6IDAsXG4gICAgICAgICAgICBvZmZzZXQ6IDBcbiAgICAgICAgfTtcbiAgICBcbiAgICAgICAgdGhpcy5kb2N1bWVudFNlcnZpY2UuZmluZERvY3VtZW50cyhrZXkpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIuZXJyb3IgJiYgZXJyLmVycm9yLm1lc3NhZ2UuaW5jbHVkZXMoXCI0MDRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlscy5tZXNzYWdlKFwiZXJyb3JcIiwgXCJ5bXMuaW50Lndtc19lcnJvcl9zZWFyY2hfZG9jdW1lbnRfbWVzc2FnZV9oZWFkZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwieW1zLmludC53bXNfZXJyb3Jfc2VhcmNoX2RvY3VtZW50X25vdF9mb3VuZF9tZXNzYWdlX2NvbnRlbnRcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlscy50cmFuc2xhdGVNZXNzYWdlKFwiZXJyb3JcIiwgXCJ5bXMuaW50Lndtc19lcnJvcl9zZWFyY2hfZG9jdW1lbnRfbWVzc2FnZV9oZWFkZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwieW1zLmludC53bXNfZXJyb3JfdW5rbm93bl9zZWFyY2hfZG9jdW1lbnRfbWVzc2FnZV9jb250ZW50XCIgKyBlcnIuZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKGNvbnRlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFjb250ZW50IHx8IGNvbnRlbnQudG90YWxFbGVtZW50cyA8IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWxzLm1lc3NhZ2UoXCJ3YXJuXCIsIFwieW1zLmludC53bXNfaW5zZXJ0X2tleV93YXJuaW5nX21lc3NhZ2VfaGVhZGVyXCIsIFwieW1zLmludC53bXNfaW5zZXJ0X2tleV93YXJuaW5nX21lc3NhZ2VfZGVzY3JpcHRpb25cIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgdGhpcy5kb2N1bWVudC5lbWl0KGNvbnRlbnQuY29udGVudHNbMF0pO1xuICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUtleURldGFpbHMobmY6IHN0cmluZykge1xuICAgICAgICBpZiAoIW5mKSB7XG4gICAgICAgICAgICB0aGlzLmtleUVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlc09mS2V5KHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbmZMZW5ndGggPSA0NDtcbiAgICAgICAgaWYgKG5mLmxlbmd0aCA9PT0gbmZMZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMua2V5RXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZXh0cmFjdEtleURldGFpbHMobmYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5rZXlFcnJvck1lc3NhZ2UgPSBcInltcy5pbnQud21zX2Vycm9yX2tleV9tZXNzYWdlXCI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGV4dHJhY3RLZXlEZXRhaWxzKG5mOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3RhcnRDbnBqID0gNjtcbiAgICAgICAgY29uc3QgZW5kQ25waiA9IDIwO1xuICAgICAgICBjb25zdCBjbnBqID0gbmYuc3Vic3RyaW5nKHN0YXJ0Q25waiwgZW5kQ25waik7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRTZXJpZSA9IDIyO1xuICAgICAgICBjb25zdCBlbmRTZXJpZSA9IDI1O1xuICAgICAgICBjb25zdCBzZXJpZSA9IG5mLnN1YnN0cmluZyhzdGFydFNlcmllLCBlbmRTZXJpZSk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRJbnZvaWNlID0gMjU7XG4gICAgICAgIGNvbnN0IGVuZEludm9pY2UgPSAzNDtcbiAgICAgICAgY29uc3QgaW52b2ljZSA9IG5mLnN1YnN0cmluZyhzdGFydEludm9pY2UsIGVuZEludm9pY2UpO1xuXG4gICAgICAgIHRoaXMuc2V0VmFsdWVzT2ZLZXkoaW52b2ljZSwgc2VyaWUsIGNucGopO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VmFsdWVzT2ZLZXkoaW52b2ljZU51bWJlcjogc3RyaW5nLCBpbnZvaWNlU2VyaWU6IHN0cmluZywgcGFydG5lckRvY3VtZW50OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdpbnZvaWNlTnVtYmVyJykuc2V0VmFsdWUoaW52b2ljZU51bWJlcik7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnaW52b2ljZVNlcmllJykuc2V0VmFsdWUoaW52b2ljZVNlcmllKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdwYXJ0bmVyRG9jdW1lbnQnKS5zZXRWYWx1ZShwYXJ0bmVyRG9jdW1lbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjYW5jZWwoKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBvbkRpYWxvZ1Nob3coKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgfVxufVxuIl19
|