@colijnit/transaction 256.1.6 → 256.1.8
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/colijnit-transaction.umd.js +154 -84
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/lib/component/add-product/add-product.component.js +5 -5
- package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +9 -2
- package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-direct-sell.component.js +87 -68
- package/esm2015/lib/component/transaction/transaction.component.js +6 -2
- package/esm2015/lib/component/transaction-create-wizard/transaction-create-wizard.component.js +14 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-deposit-amount.component.js +16 -11
- package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +6 -1
- package/esm2015/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.js +4 -4
- package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +2 -2
- package/esm2015/lib/component/transaction-search/transaction-search.component.js +8 -1
- package/esm2015/lib/service/transaction-connector-adapter.service.js +5 -5
- package/esm2015/lib/service/transaction-connector.service.js +5 -5
- package/esm2015/lib/service/transaction.service.js +11 -11
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +164 -108
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.d.ts +5 -1
- package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-direct-sell.component.d.ts +8 -4
- package/lib/component/transaction/transaction.component.d.ts +5 -1
- package/lib/component/transaction-create-wizard/transaction-create-wizard.component.d.ts +4 -1
- package/lib/component/transaction-internal/transaction-internal.component.d.ts +4 -0
- package/lib/component/transaction-search/transaction-search.component.d.ts +2 -0
- package/lib/service/transaction-connector-adapter.service.d.ts +2 -2
- package/lib/service/transaction-connector.service.d.ts +2 -2
- package/lib/service/transaction.service.d.ts +5 -5
- package/package.json +1 -1
- package/colijnit-transaction-256.1.4.tgz +0 -0
- package/colijnit-transaction-256.1.5.tgz +0 -0
|
@@ -39,16 +39,21 @@ TransactionHeaderDepositAmountComponent.decorators = [
|
|
|
39
39
|
{ type: Component, args: [{
|
|
40
40
|
selector: "co-transaction-header-deposit-amount",
|
|
41
41
|
template: `
|
|
42
|
-
<span
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
<span
|
|
43
|
+
*ngIf="(!editMode || headerReadonly) && !defaultEditMode"
|
|
44
|
+
[textContent]="(transactionInfo.depositAmount | coCurrency) || '...'"
|
|
45
|
+
[tooltip]="tooltipMessage">
|
|
46
|
+
</span>
|
|
47
|
+
<co-input-text
|
|
48
|
+
#input
|
|
49
|
+
*ngIf="editMode || defaultEditMode"
|
|
50
|
+
[placeholder]="showLabel ? ('DOWNPAYMENT' | localize) : ''"
|
|
51
|
+
[showSaveCancel]="!headerReadonly"
|
|
52
|
+
[hidden]="hidden"
|
|
53
|
+
[readonly]="readonly || headerReadonly"
|
|
54
|
+
[model]="transactionInfo.depositAmount | coCurrency"
|
|
55
|
+
(blur)="editMode = false">
|
|
56
|
+
</co-input-text>
|
|
52
57
|
`,
|
|
53
58
|
providers: [{
|
|
54
59
|
provide: SCREEN_CONFIG_ADAPTER_COMPONENT_INTERFACE_NAME,
|
|
@@ -62,4 +67,4 @@ TransactionHeaderDepositAmountComponent.propDecorators = {
|
|
|
62
67
|
businessRuleApplied: [{ type: Output }],
|
|
63
68
|
showClass: [{ type: HostBinding, args: ['class.co-transaction-header-deposit-amount',] }]
|
|
64
69
|
};
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtYW1vdW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWhlYWRlci1maWVsZHMvdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtYW1vdW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxrQkFBa0IsRUFBRSw4Q0FBOEMsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2hILE9BQU8sRUFBQyxrQ0FBa0MsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBMkJ2RyxNQUFNLE9BQU8sdUNBQXdDLFNBQVEsa0NBQWtDO0lBekIvRjs7UUFxQ1Msd0JBQW1CLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFHekUsY0FBUyxHQUFZLElBQUksQ0FBQztJQW1CbkMsQ0FBQztJQWpDQyxJQUFzRCxLQUFLLENBQUMsT0FBTztRQUNqRSxJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDekI7YUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQVdZLE1BQU0sQ0FBQyxNQUFjOztZQUNoQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNYLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDWjtZQUNELElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsS0FBSyxNQUFNLEVBQUU7Z0JBQ3pFLE1BQU0sb0JBQW9CLEdBQVcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUM7Z0JBQ3hFLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9DQUFvQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3hJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO2lCQUMzQjtnQkFDRCxPQUFPLE9BQU8sQ0FBQzthQUNoQjtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztLQUFBOzs7WUExREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxzQ0FBc0M7Z0JBQ2hELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDtnQkFDRCxTQUFTLEVBQUUsQ0FBQzt3QkFDVixPQUFPLEVBQUUsOENBQThDO3dCQUN2RCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVDQUF1QyxDQUFDO3FCQUN2RSxDQUFDO2dCQUNGLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7b0JBRUUsU0FBUyxTQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRTtrQ0FVL0MsTUFBTTt3QkFHTixXQUFXLFNBQUMsNENBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SW5wdXRUZXh0Q29tcG9uZW50LCBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbklucHV0RmllbGRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24taW5wdXQtZmllbGQtYmFzZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtYW1vdW50XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxzcGFuXHJcbiAgICAgICpuZ0lmPVwiKCFlZGl0TW9kZSAgfHwgaGVhZGVyUmVhZG9ubHkpICYmICFkZWZhdWx0RWRpdE1vZGVcIlxyXG4gICAgICBbdGV4dENvbnRlbnRdPVwiKHRyYW5zYWN0aW9uSW5mby5kZXBvc2l0QW1vdW50IHwgY29DdXJyZW5jeSkgfHwgJy4uLidcIlxyXG4gICAgICBbdG9vbHRpcF09XCJ0b29sdGlwTWVzc2FnZVwiPlxyXG4gICAgPC9zcGFuPlxyXG4gICAgPGNvLWlucHV0LXRleHRcclxuICAgICAgI2lucHV0XHJcbiAgICAgICpuZ0lmPVwiZWRpdE1vZGUgfHwgZGVmYXVsdEVkaXRNb2RlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInNob3dMYWJlbCA/ICgnRE9XTlBBWU1FTlQnIHwgbG9jYWxpemUpIDogJydcIlxyXG4gICAgICBbc2hvd1NhdmVDYW5jZWxdPVwiIWhlYWRlclJlYWRvbmx5XCJcclxuICAgICAgW2hpZGRlbl09XCJoaWRkZW5cIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgaGVhZGVyUmVhZG9ubHlcIlxyXG4gICAgICBbbW9kZWxdPVwidHJhbnNhY3Rpb25JbmZvLmRlcG9zaXRBbW91bnQgfCBjb0N1cnJlbmN5XCJcclxuICAgICAgKGJsdXIpPVwiZWRpdE1vZGUgPSBmYWxzZVwiPlxyXG4gICAgPC9jby1pbnB1dC10ZXh0PlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyYW5zYWN0aW9uSGVhZGVyRGVwb3NpdEFtb3VudENvbXBvbmVudClcclxuICB9XSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkhlYWRlckRlcG9zaXRBbW91bnRDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbklucHV0RmllbGRCYXNlQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgcmVhZDogSW5wdXRUZXh0Q29tcG9uZW50IH0pIHNldCBjaGlsZChjb250ZW50KSB7XHJcbiAgICBpZiAoY29udGVudCkge1xyXG4gICAgICB0aGlzLmlucHV0ID0gY29udGVudDtcclxuICAgICAgdGhpcy5pbnB1dC5jb21taXQgPSAoYW1vdW50KSA9PiB0aGlzLmhhbmRsZUNvbW1pdChhbW91bnQpO1xyXG4gICAgICB0aGlzLnNldEVkaXRNb2RlKGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5pbnB1dCkge1xyXG4gICAgICB0aGlzLnNldEVkaXRNb2RlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgYnVzaW5lc3NSdWxlQXBwbGllZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZXBvc2l0LWFtb3VudCcpXHJcbiAgcHVibGljIHNob3dDbGFzczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHB1YmxpYyBpbnB1dDogSW5wdXRUZXh0Q29tcG9uZW50O1xyXG4gIHB1YmxpYyBhbW91bnQ6IG51bWJlcjtcclxuXHJcbiAgcHVibGljIGFzeW5jIGNvbW1pdChhbW91bnQ6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKCFhbW91bnQpIHtcclxuICAgICAgYW1vdW50ID0gMDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uSW5mbyAmJiB0aGlzLnRyYW5zYWN0aW9uSW5mby5kZXBvc2l0QW1vdW50ICE9PSBhbW91bnQpIHtcclxuICAgICAgY29uc3Qgb2xkRG93blBheVBlcmNlbnRhZ2U6IG51bWJlciA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmRlcG9zaXRBbW91bnQ7XHJcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS51cGRhdGVIZWFkZXJUcmFuc2FjdGlvbkRlcG9zaXRBbW91bnQodGhpcy50cmFuc2FjdGlvbkluZm8udXVpZCwgYW1vdW50LCB0aGlzLmxvY2tBbmRTYXZlKTtcclxuICAgICAgaWYgKCFzdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5tb2RlbCA9IGFtb3VudDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gc3VjY2VzcztcclxuICAgIH1cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -52,6 +52,8 @@ export class TransactionInternalComponent {
|
|
|
52
52
|
this.transactionPlanning = false;
|
|
53
53
|
this.cashRegistersDirty = false;
|
|
54
54
|
this.relationChange = new EventEmitter();
|
|
55
|
+
//This output exists for bundle purposes.
|
|
56
|
+
this.serviceRequested = new EventEmitter();
|
|
55
57
|
this.showQuickAccess = true;
|
|
56
58
|
this.showButtonBar = true;
|
|
57
59
|
this.activeViewMode = ContentViewMode.List;
|
|
@@ -253,6 +255,8 @@ export class TransactionInternalComponent {
|
|
|
253
255
|
/*this._transactionConnectorService.createServiceOrderWithSourceTransactionLine(request).then((result: TransactionInfoResponse) => {
|
|
254
256
|
if(result) {*/
|
|
255
257
|
this._transactionEventService.requestCreateServiceOrderFromTransactionLine.next({ transaction: this.transaction, lineNr: lineNr });
|
|
258
|
+
//added for bundle purposes so we can pass the value along without the event service. Use the event service in all other cases.
|
|
259
|
+
this.serviceRequested.emit({ transaction: this.transaction.transactionInfo.transactionNr, lineNr: lineNr });
|
|
256
260
|
/* }
|
|
257
261
|
});*/
|
|
258
262
|
}
|
|
@@ -561,9 +565,10 @@ TransactionInternalComponent.propDecorators = {
|
|
|
561
565
|
transactionPlanning: [{ type: Input }],
|
|
562
566
|
cashRegistersDirty: [{ type: Input }],
|
|
563
567
|
relationChange: [{ type: Output }],
|
|
568
|
+
serviceRequested: [{ type: Output }],
|
|
564
569
|
showQuickAccess: [{ type: HostBinding, args: ['class.show-quick-access',] }, { type: Input }],
|
|
565
570
|
showButtonBar: [{ type: HostBinding, args: ['class.show-button-bar',] }, { type: Input }],
|
|
566
571
|
showClass: [{ type: HostBinding, args: ['class.co-transaction-internal',] }],
|
|
567
572
|
onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
|
|
568
573
|
};
|
|
569
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taW50ZXJuYWwvdHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUV2SCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUkxRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsYUFB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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrS1Q7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQWpNTyxnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBRWxCLHVCQUF1QjtZQTFCN0IsY0FBYztZQXlCUix1QkFBdUI7WUFZdkIsMkJBQTJCO1lBWDNCLHVCQUF1QjtZQUN2QixxQ0FBcUM7WUFDckMsYUFBYTtZQUNiLG9CQUFvQjtZQVNwQiwyQkFBMkI7WUFLM0IsdUJBQXVCO1lBS3ZCLHNCQUFzQjs7O2tDQW1MM0IsWUFBWSxTQUFDLGlDQUFpQzt1QkFHOUMsS0FBSztxQ0FHTCxLQUFLOzJCQWNMLEtBQUs7MEJBR0wsS0FBSzt5QkFXTCxLQUFLO2tDQUdMLEtBQUs7a0NBR0wsS0FBSztpQ0FHTCxLQUFLOzZCQUdMLE1BQU07OEJBR04sV0FBVyxTQUFDLHlCQUF5QixjQUNyQyxLQUFLOzRCQUdMLFdBQVcsU0FBQyx1QkFBdUIsY0FDbkMsS0FBSzt3QkFHTCxXQUFXLFNBQUMsK0JBQStCO3VCQUszQyxZQUFZLFNBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge0NvbnRlbnRWaWV3TW9kZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ2ZnTmFtZX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi1jZmctbmFtZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtTdGF0dXNCYXJDZmdOYW1lc30gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3N0YXR1cy1iYXItY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0R5bmFtaWNDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7TGluZVNlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvbGluZS1zZWxlY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXJCdXR0b259IGZyb20gJy4uLy4uL21vZGVsL3RyYW5zYWN0aW9uLWJhci1idXR0b24nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYWRkLXRleHQtbGluZS1yZXF1ZXN0LmJvJztcclxuaW1wb3J0IHtPcmRlckxpbmVTZXREVE99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vcmRlci1saW5lLXNldC1kdG8nO1xyXG5pbXBvcnQge09yZGVyTGluZVNldEluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vcmRlci1saW5lLXNldC1pbmZvLmJvJztcclxuaW1wb3J0IHtcclxuICBUcmFuc2FjdGlvbkFkZE9yZGVyTGluZVNldFRleHRMaW5lUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtb3JkZXItbGluZS1zZXQtdGV4dC1saW5lLXJlcXVlc3QnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtpc05pbGx9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb24nO1xyXG5pbXBvcnQge1Bvc09yZGVyRGF0YX0gZnJvbSAnLi4vLi4vbW9kZWwvcG9zLW9yZGVyLWRhdGEnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk1hcmdpbkluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1tYXJnaW4taW5mby5ibyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ01vZGVzfSBmcm9tICcuLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLW1vZGVzLmVudW0nO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLmJvXCI7XHJcbmltcG9ydCB7UGxhbk9yZGVyTGluZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFuLW9yZGVyLWxpbmUuYm9cIjtcclxuaW1wb3J0IHtQbGFubmluZ30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wbGFubmluZy5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWJhc2Uuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1pbnRlcm5hbCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZWRcIj5cclxuICAgICAgPGNvLWNsaWNrLWJsb2NrPjwvY28tY2xpY2stYmxvY2s+XHJcbiAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXJcclxuICAgICAgICAqbmdJZj1cInNob3dIZWFkZXJcIlxyXG4gICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAocmVsYXRpb25DaGFuZ2UpPVwiaGFuZGxlUmVsYXRpb25DaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlcj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXJcIj5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dRdWlja0FjY2Vzc1wiXHJcbiAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWhlYWRlci1pdGVtXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICBbcmVsYXRpb25dPVwicmVsYXRpb25cIlxyXG4gICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3M+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICpuZ0lmPVwic2hvd0J1dHRvbkJhclwiXHJcbiAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWhlYWRlci1pdGVtXCJcclxuICAgICAgICAgIFtzZWxlY3RlZENhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgIChidXR0b25DbGlja2VkKT1cImhhbmRsZUJ1dHRvbkJhckJ1dHRvbkNsaWNrZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tYnV0dG9uLWJhcj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWhlYWRlci1pdGVtIHJpZ2h0XCI+XHJcbiAgICAgICAgICA8Y28tYXZhdGFyXHJcbiAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tc2FsZXMtYXZhdGFyXCJcclxuICAgICAgICAgICAgW3JlbGF0aW9uSWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmhhbmRsZWRCeVwiXHJcbiAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckhhbmRsZWRCeVwiXHJcbiAgICAgICAgICAgIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XHJcbiAgICAgICAgICA8L2NvLWF2YXRhcj5cclxuICAgICAgICAgIDxjby1hdmF0YXJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zYWxlcy1hdmF0YXJcIlxyXG4gICAgICAgICAgICBbcmVsYXRpb25JZF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uYnJhbmNoPy5yZWxhdGlvbklkXCJcclxuICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVyQnJhbmNoXCJcclxuICAgICAgICAgICAgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudD5cclxuICAgICAgICAgIDwvY28tYXZhdGFyPlxyXG4gICAgICAgICAgPGNvLXZpZXctbW9kZS1idXR0b25zXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIXNob3VsZFNob3dUaWxlcygpICYmIHNob3dWaWV3TW9kZUJ1dHRvbnNcIlxyXG4gICAgICAgICAgICBbc2hvd1ZpZXdNb2Rlc109XCJbdmlld01vZGVzLkxpc3QsIHZpZXdNb2Rlcy5UaWxlc11cIlxyXG4gICAgICAgICAgICAodmlld01vZGVDaGFuZ2UpPVwiaGFuZGxlVmlld01vZGVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jby12aWV3LW1vZGUtYnV0dG9ucz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtY29udGVudC13cmFwcGVyXCI+XHJcbiAgICAgICAgPCEtLTxjby10cmFuc2FjdGlvbi1kb2N1bWVudC1idXR0b24tYmFyIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiPjwvY28tdHJhbnNhY3Rpb24tZG9jdW1lbnQtYnV0dG9uLWJhcj4tLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtY29udGVudFwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yeS5TZXJ2aWNlT3JkZXJTZXJ2aWNlXCI+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3IFtwb3NPcmRlckRhdGFdPVwicG9zT3JkZXJEYXRhXCIgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCI+PC9jby10cmFuc2FjdGlvbi1zZXJ2aWNlLW92ZXJ2aWV3PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tdGlsZXMtd3JhcHBlclwiICpuZ0lmPVwiYWN0aXZlVmlld01vZGUgPT09IHZpZXdNb2Rlcy5UaWxlcyB8fCBzaG91bGRTaG93VGlsZXMoKSB8fCB0cmFuc2FjdGlvblBsYW5uaW5nXCI+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1jYXJkc1xyXG4gICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICBbY2xhc3MucGxhbm5pbmctY2FyZHNdPVwidHJhbnNhY3Rpb25QbGFubmluZ1wiPlxyXG4gICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWNhcmRzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiKGFjdGl2ZVZpZXdNb2RlID09PSB2aWV3TW9kZXMuTGlzdCAmJiAhc2hvdWxkU2hvd1RpbGVzKCkpICYmIGFjdGl2ZUNhdGVnb3J5ICE9PSBjYXRlZ29yeS5TZXJ2aWNlT3JkZXJTZXJ2aWNlICYmICF0cmFuc2FjdGlvblBsYW5uaW5nXCI+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lc1xyXG4gICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgICAgICAoc2F2ZVRyYW5zYWN0aW9uTGluZSk9XCJzYXZlVHJhbnNhY3Rpb25MaW5lVGV4dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tbGluZXM+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1mb290ZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLWxlZnRcIj5cclxuICAgICAgICAgICAgICA8Y28tYWRkLXByb2R1Y3RcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuU2FsZXNPcmRlckNhc2hSZWdpc3RlciB8fFxyXG4gICAgICAgICAgICAgICAgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuU2FsZXNPcmRlck92ZXJ2aWV3IHx8XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5QdXJjaGFzZU9yZGVyT3ZlcnZpZXcgfHxcclxuICAgICAgICAgICAgICAgIGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJRdW90YXRpb24gfHxcclxuICAgICAgICAgICAgICAgIGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNlcnZpY2VPcmRlck92ZXJ2aWV3XCI+XHJcbiAgICAgICAgICAgICAgPC9jby1hZGQtcHJvZHVjdD5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS13aWR0aCB0ZXh0LXJ1bGVcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSAhPT0gY2F0ZWdvcmllcy5TZXJ2aWNlT3JkZXJTZXJ2aWNlXCJcclxuICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVGV4dFNvbGlkKVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVHJhbnNhY3Rpb25UZXh0KClcIj5cclxuICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1tYXJnaW4gKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyTWFyZ2luSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbWFyZ2luPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi10b3RhbHNcclxuICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICE9PSBjYXRlZ29yeS5TZXJ2aWNlT3JkZXJTZXJ2aWNlXCJcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uVG90YWxdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25Ub3RhbFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dEaXNjb3VudF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tdG90YWxzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lcy1zaWRlLXBhbmVsXHJcbiAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgdHJhbnNhY3Rpb24gJiZcclxuICAgICAgICAgICh0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kID09PSB0cmFuc2FjdGlvbktpbmQuQ2FzaERlc2sgJiYgIWZ1bGx5SW52b2ljZWQoKSlcIlxyXG4gICAgICAgICAgW3Bvc09yZGVyRGF0YV09XCJwb3NPcmRlckRhdGFcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1saW5lcy1zaWRlLXBhbmVsPlxyXG5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dTaWRlUGFuZWxcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwic2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwic2hvd1NpZGVQYW5lbCA9IGZhbHNlXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWw+XHJcblxyXG4gICAgICAgIDwhLS1Qb3B1cCB2b29yIHdpanppZ2VuIHZvbGdvcmRlIHZhbiB0ZWtzdHJlZ2Vscy0tPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXdcclxuICAgICAgICAgICpuZ0lmPVwic2hvd0FydGljbGVUZXh0T3ZlcnZpZXdcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dE92ZXJ2aWV3KClcIlxyXG4gICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlQXJ0aWNsZVRleHRPdmVydmlldygpXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXc+XHJcblxyXG4gICAgICAgIDwhLS1Qb3B1cCB2b29yIGFhbm1ha2VuIGVuIHVwZGF0ZW4gdHJhbnNhY3RpZXRla3N0cmVnZWxzLS0+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dFxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93VHJhbnNhY3Rpb25UZXh0XCJcclxuICAgICAgICAgIFtoZWFkZXJdPVwiJ09SREVSX1RFWFRfTElORScgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25VdWlkXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkXCJcclxuICAgICAgICAgIFtlZGl0VGV4dF09XCJ0ZXh0VG9FZGl0XCJcclxuICAgICAgICAgIFtvcmRlckxpbmVTZXREVE9dPVwic2VsZWN0ZWRPcmRlckxpbmVTZXREVE9cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgKHNhdmVDbGljayk9XCJzYXZlVHJhbnNhY3Rpb25MaW5lVGV4dCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNsb3NlVHJhbnNhY3Rpb25UZXh0KClcIlxyXG4gICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlVHJhbnNhY3Rpb25UZXh0KClcIlxyXG4gICAgICAgICAgKHNhdmVPcmRlckxpbmVTZXRDbGljayk9XCJzYXZlT3JkZXJMaW5lU2V0KCRldmVudClcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dD5cclxuXHJcbiAgICAgICAgPCEtLVBvcHVwIHZvb3IgYWFubWFrZW4gZW4gdXBkYXRlbiBhcnRpa2VsdGVrc3RyZWdlbHMtLT5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0XHJcbiAgICAgICAgICAqbmdJZj1cInNob3dBcnRpY2xlVGV4dFwiXHJcbiAgICAgICAgICBbaGVhZGVyXT1cIidQUk9EVUNUX0RFU0NSSVBUSU9OX0FORF9URVhUUycgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25VdWlkXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkXCJcclxuICAgICAgICAgIFtzaG93QXJ0aWNsZUltYWdlRGVzY3JpcHRpb25dPVwidHJhbnNhY3Rpb25MaW5lLmFydGljbGVCb3VuZFwiXHJcbiAgICAgICAgICBbc2hvd0ltYWdlXT1cImZhbHNlXCJcclxuICAgICAgICAgIFthcnRpY2xlTGluZU5yXT1cInRyYW5zYWN0aW9uTGluZS5saW5lTnJcIlxyXG4gICAgICAgICAgW2FydGljbGVSZWZdPVwidHJhbnNhY3Rpb25MaW5lLmFydGljbGVOdW1iZXJcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgW2VkaXRUZXh0XT1cInRleHRUb0VkaXRcIlxyXG4gICAgICAgICAgKHNhdmVDbGljayk9XCJzYXZlQXJ0aWNsZUxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dCgpXCJcclxuICAgICAgICAgIChjYW5jZWxDbGljayk9XCJjbG9zZUFydGljbGVUZXh0KClcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dD5cclxuXHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWNvcHktb3JkZXJcclxuICAgICAgICAgICpuZ0lmPVwic2hvd0NvcHlPcmRlckRpYWxvZ1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgKGNsb3NlRGlhbG9nKT1cInNob3dDb3B5T3JkZXJEaWFsb2cgPSBmYWxzZVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tY29weS1vcmRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uSW50ZXJuYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBjYXRlZ29yaWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGVsaXZlcnlQbGFubmluZ01vZGVzOiB0eXBlb2YgRGVsaXZlcnlQbGFubmluZ01vZGVzID0gRGVsaXZlcnlQbGFubmluZ01vZGVzO1xyXG4gIHB1YmxpYyByZWFkb25seSB2aWV3TW9kZXM6IHR5cGVvZiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25DZmdOYW1lID0gVHJhbnNhY3Rpb25DZmdOYW1lO1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbktpbmQ6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgc2NyZWVuV2lkdGg6IG51bWJlcjtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnQpXHJcbiAgcHVibGljIHNpZGVQYW5lbENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnQ+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmFjdGl2ZVJ1YnJpYyA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbjtcclxuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbjtcclxuICAgIH1cclxuICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25BbmFseXNpc0lkID0gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwb3NPcmRlckRhdGE6IFBvc09yZGVyRGF0YTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uKHZhbHVlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Vmlld01vZGVCdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25QbGFubmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJzRGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlbGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNob3ctcXVpY2stYWNjZXNzJylcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93UXVpY2tBY2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNob3ctYnV0dG9uLWJhcicpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0J1dHRvbkJhcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24taW50ZXJuYWwnKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnLCBbJyRldmVudCddKVxyXG4gIG9uUmVzaXplKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSBldmVudC50YXJnZXQuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhY3RpdmVWaWV3TW9kZTogQ29udGVudFZpZXdNb2RlID0gQ29udGVudFZpZXdNb2RlLkxpc3Q7XHJcbiAgcHVibGljIGFjdGl2ZUNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XHJcbiAgcHVibGljIHNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPOiBPcmRlckxpbmVTZXREVE87XHJcbiAgcHVibGljIHNob3dTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvdWxkU2hvd1NpZGVQYW5lbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHRPdmVydmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93VHJhbnNhY3Rpb25UZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dBcnRpY2xlVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93Q29weU9yZGVyRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0ZXh0VG9FZGl0OiBzdHJpbmc7XHJcbiAgcHVibGljIGhpc3RvcmljVHJhbnNhY3Rpb25MaW5lczogVHJhbnNhY3Rpb25MaW5lSW5mb1tdIHwgbnVsbDtcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25NYXJnaW5JbmZvOiBUcmFuc2FjdGlvbk1hcmdpbkluZm8gPSBuZXcgVHJhbnNhY3Rpb25NYXJnaW5JbmZvKCk7XHJcblxyXG4gIHB1YmxpYyBsaW5lRHJhZ2dlZE92ZXI6IG51bWJlcjtcclxuXHJcbiAgcHVibGljIHN0YXR1c0JhckNvbmZpZ05hbWVzOiBTdGF0dXNCYXJDZmdOYW1lcyA9IHtcclxuICAgIHN0YXR1c0JhckJUOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJULFxyXG4gICAgc3RhdHVzQmFyVEc6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVEcsXHJcbiAgICBzdGF0dXNCYXJQQTogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQQSxcclxuICAgIHN0YXR1c0JhclBWOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclBWLFxyXG4gICAgc3RhdHVzQmFyVFA6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVFAsXHJcbiAgICBzdGF0dXNCYXJHVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHVCxcclxuICAgIHN0YXR1c0JhckdQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdQLFxyXG4gICAgc3RhdHVzQmFyR0w6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0wsXHJcbiAgICBzdGF0dXNCYXJHRjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHRixcclxuICAgIHN0YXR1c0JhcklCOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhcklCLFxyXG4gICAgc3RhdHVzQmFyTlQ6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyTlQsXHJcbiAgICBzdGF0dXNCYXJCTjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCTixcclxuICAgIHN0YXR1c0JhckJHOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJHLFxyXG4gICAgc3RhdHVzQmFyRkM6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyRkNcclxuICB9O1xyXG5cclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSA9IG5ldyBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSgpO1xyXG4gIHByaXZhdGUgX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIHByaXZhdGUgX2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbGluZVNlbGVjdGlvblNlcnZpY2U6IExpbmVTZWxlY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlOiBQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkJhc2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkJhc2VTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvblVwZGF0ZWQuc3Vic2NyaWJlKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAodHJhbnNhY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcclxuICAgICAgICAgIHRoaXMudXBkYXRlVHJhbnNhY3Rpb25MaW5lKCk7XHJcbiAgICAgICAgICAvLyBpZiAodHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCkge1xyXG4gICAgICAgICAgLy8gICB0aGlzLmdldFRyYW5zYWN0aW9uTWFyZ2luSW5mbyh0cmFuc2FjdGlvbj8udHJhbnNhY3Rpb25JbmZvPy51dWlkKTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIGlmICh0cmFuc2FjdGlvbj8udHJhbnNhY3Rpb25JbmZvLmlkICYmIHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0UGxhbk9yZGVyRm9yVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvbk1hcmdlVmlld0NsaWNrZWQuc3Vic2NyaWJlKChsb2FkOiBib29sZWFuKT0+IHtcclxuICAgICAgICBpZiAobG9hZCAmJiB0aGlzLl90cmFuc2FjdGlvbj8udHJhbnNhY3Rpb25JbmZvPy51dWlkKSB7XHJcbiAgICAgICAgICB0aGlzLmdldFRyYW5zYWN0aW9uTWFyZ2luSW5mbyh0aGlzLl90cmFuc2FjdGlvbj8udHJhbnNhY3Rpb25JbmZvPy51dWlkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlcnZpY2UucmVsYXRpb25VcGRhdGVkLnN1YnNjcmliZSgocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSkgPT4ge1xyXG4gICAgICAgIGlmIChyZWxhdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5yZWxhdGlvbiA9IHJlbGF0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvbktpbmRTZXQuc3Vic2NyaWJlKChzZXQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoc2V0KSB7XHJcbiAgICAgICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gdGhpcy5jb25maXJtYXRpb25BbmFseXNpc0lkID8gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uIDogdGhpcy5zZXJ2aWNlLmFjdGl2ZVJ1YnJpYztcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY29ubmVjdGlvbkluaXRpYWxpemVkLnN1YnNjcmliZSgoaW5pdGlhbGl6ZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl9wdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2UuY29uZmlybWF0aW9uTmVlZGVkLnN1YnNjcmliZSgobmVlZGVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKG5lZWRlZCkge1xyXG4gICAgICAgICAgdGhpcy5zaG91bGRTaG93U2lkZVBhbmVsID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlU2hvd1NpZGVQYW5lbCh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNbMF0sIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lRHJhZ2dlZE92ZXIuc3Vic2NyaWJlKChsaW5lTnIpID0+IHtcclxuICAgICAgICB0aGlzLmxpbmVEcmFnZ2VkT3ZlciA9IGxpbmVOcjtcclxuICAgICAgfSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5TaWRlUGFuZWwuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dTaWRlUGFuZWwobGluZSkpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuQXJ0aWNsZVRleHRPdmVydmlldy5zdWJzY3JpYmUoKGxpbmUpID0+IHRoaXMuaGFuZGxlU2hvd0FydGljbGVUZXh0T3ZlcnZpZXcobGluZSkpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5hZGRUcmFuc2FjdGlvblRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dUcmFuc2FjdGlvblRleHQobGluZSkpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5hZGRBcnRpY2xlVGV4dC5zdWJzY3JpYmUoKGxpbmUpID0+IHRoaXMuaGFuZGxlU2hvd0FydGljbGVUZXh0KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuZWRpdFRyYW5zYWN0aW9uVGV4dC5zdWJzY3JpYmUoKGxpbmUpID0+IHRoaXMuaGFuZGxlRWRpdFRyYW5zYWN0aW9uVGV4dChsaW5lKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmVkaXRBcnRpY2xlVGV4dC5zdWJzY3JpYmUoKGxpbmUpID0+IHRoaXMuaGFuZGxlRWRpdEFydGljbGVUZXh0KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuY3JlYXRlU2VydmljZUJ1dHRvbkNsaWNrZWQuc3Vic2NyaWJlKChsaW5lTnIpID0+IHRoaXMuaGFuZGxlQ3JlYXRlU2VydmljZVJlcXVlc3QobGluZU5yKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnNob3dFcnJvci5zdWJzY3JpYmUoKGUpID0+XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93RXJyb3IoZS5tZXNzYWdlLCBlLmxvY2FsaXplLCBlLmRldGFpbHMpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuY29weU9yZGVyLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3dDb3B5T3JkZXJEaWFsb2cgPSB0cnVlKVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlUmVsYXRpb25DaGFuZ2UocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uID0gcmVsYXRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQnV0dG9uQmFyQnV0dG9uQ2xpY2tlZChidXR0b246IFRyYW5zYWN0aW9uQmFyQnV0dG9uKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gYnV0dG9uLmNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dTaWRlUGFuZWwobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbywgZm9yY2U6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGxpbmUgfHwgZm9yY2UpIHtcclxuICAgICAgdGhpcy5zaWRlUGFuZWxUcmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICB0aGlzLnNob3dTaWRlUGFuZWwgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRyYW5zYWN0aW9uVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkVHJhbnNhY3Rpb25UZXh0Lm5leHQodGhpcy50cmFuc2FjdGlvbkxpbmUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIGlmIChsaW5lKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlldyA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd1RyYW5zYWN0aW9uVGV4dChsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcmRlckxpbmVTZXREVE8gPSBuZXcgT3JkZXJMaW5lU2V0RFRPKCk7XHJcbiAgICB0aGlzLnNob3dUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93QXJ0aWNsZVRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgaWYgKGxpbmUpIHtcclxuICAgICAgdGhpcy50ZXh0VG9FZGl0ID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2F2ZVRyYW5zYWN0aW9uTGluZVRleHQoZGF0YTogeyByZXF1ZXN0OiBUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdCwgbmV3OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghZGF0YS5uZXcpIHsgLy91cGRhdGVcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZVRleHRMaW5lKGRhdGEucmVxdWVzdC50cmFuc2FjdGlvblV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLnV1aWQsIGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHMsIGRhdGEucmVxdWVzdC50ZXh0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRUZXh0TGluZShcclxuICAgICAgICBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC50ZXh0LFxyXG4gICAgICAgIDAsXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LmFydGljbGVCb3VuZCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIDAsXHJcbiAgICAgICAgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5faGlkZVRyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVPcmRlckxpbmVTZXQoZGF0YTogeyByZXF1ZXN0OiBPcmRlckxpbmVTZXREVE8sIG5ldzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIWRhdGEubmV3KSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVPcmRlckxpbmVTZXQoZGF0YS5yZXF1ZXN0KTtcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZVRleHRMaW5lKGRhdGEucmVxdWVzdC50cmFuc2FjdGlvblV1aWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLnV1aWQsIGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHMsIGRhdGEucmVxdWVzdC50aXRsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBuZXdSZXF1ZXN0OiBUcmFuc2FjdGlvbkFkZE9yZGVyTGluZVNldFRleHRMaW5lUmVxdWVzdCA9IG5ldyBUcmFuc2FjdGlvbkFkZE9yZGVyTGluZVNldFRleHRMaW5lUmVxdWVzdCgpO1xyXG4gICAgICBuZXdSZXF1ZXN0Lm9yZGVyTGluZVNldFRleHQgPSBkYXRhLnJlcXVlc3QudGV4dDtcclxuICAgICAgbmV3UmVxdWVzdC5hbW91bnQgPSBkYXRhLnJlcXVlc3QuYW1vdW50O1xyXG4gICAgICBuZXdSZXF1ZXN0LmNhdGVnb3J5SWQgPSBkYXRhLnJlcXVlc3QuY2F0ZWdvcnlJZDtcclxuICAgICAgbmV3UmVxdWVzdC5jb2xvciA9IGRhdGEucmVxdWVzdC5jb2xvcjtcclxuICAgICAgbmV3UmVxdWVzdC50cmFuc2FjdGlvblV1aWQgPSBkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkO1xyXG4gICAgICBuZXdSZXF1ZXN0LnNob3dPbkRvY3VtZW50cyA9IGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHM7XHJcbiAgICAgIG5ld1JlcXVlc3QudGV4dCA9IGRhdGEucmVxdWVzdC50aXRsZTtcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZE9yZGVyTGluZVNldChuZXdSZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlQXJ0aWNsZUxpbmVUZXh0KGRhdGE6IHsgcmVxdWVzdDogVHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QsIG5ldzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIWRhdGEubmV3KSB7IC8vdXBkYXRlXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkVGV4dExpbmUoXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgICBkYXRhLnJlcXVlc3QudGV4dCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIHRydWUsXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnJlZkFydGljbGVMaW5lTnJcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUVkaXRUcmFuc2FjdGlvblRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9yZGVyTGluZVNldERUTyA9IHRoaXMuX2dldE9yZGVyTGluZVNldElmRXhpc3RzKGxpbmUpO1xyXG4gICAgaWYgKGlzTmlsbCh0aGlzLnNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPKSkge1xyXG4gICAgICB0aGlzLnRleHRUb0VkaXQgPSBsaW5lLnRleHQ7XHJcbiAgICB9XHJcbiAgICBpZiAobGluZS5pc1RleHQpIHtcclxuICAgICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgICB9XHJcbiAgICAvLyBpZiAobGluZS5hcnRpY2xlQm91bmRDb25jYXRlbmF0ZWRUZXh0ICYmIGxpbmUuYXJ0aWNsZUJvdW5kQ29uY2F0ZW5hdGVkVGV4dC5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVFZGl0QXJ0aWNsZVRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXh0VG9FZGl0ID0gbGluZS50ZXh0O1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgdGhpcy5faGlkZUFydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ3JlYXRlU2VydmljZVJlcXVlc3QobGluZU5yOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChsaW5lTnIgJiYgdGhpcy50cmFuc2FjdGlvbikgey8qXHJcbiAgICAgIGxldCByZXF1ZXN0OkNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VUcmFuc2FjdGlvbkxpbmVSZXF1ZXN0ID0gbmV3IENyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VUcmFuc2FjdGlvbkxpbmVSZXF1ZXN0KCk7XHJcbiAgICAgIHJlcXVlc3Quc291cmNlTGluZU5yID0gbGluZS5saW5lTnI7XHJcbiAgICAgIHJlcXVlc3Quc291cmNlVHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICByZXF1ZXN0LmN1c3RvbWVyUmVsYXRpb25JZCA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uSWQ7XHJcbiAgICAgIHJlcXVlc3QuYnJhbmNoTnIgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5icmFuY2gucmVsYXRpb25OcjsqL1xyXG5cclxuICAgICAgLyp0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuY3JlYXRlU2VydmljZU9yZGVyV2l0aFNvdXJjZVRyYW5zYWN0aW9uTGluZShyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYocmVzdWx0KSB7Ki9cclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UucmVxdWVzdENyZWF0ZVNlcnZpY2VPcmRlckZyb21UcmFuc2FjdGlvbkxpbmUubmV4dCh7dHJhbnNhY3Rpb246IHRoaXMudHJhbnNhY3Rpb24sIGxpbmVOcjogbGluZU5yfSk7XHJcbiAgICAgLyogICB9XHJcbiAgICAgIH0pOyovXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VBcnRpY2xlVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlVHJhbnNhY3Rpb25UZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5faGlkZVRyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQXJ0aWNsZVRleHRPdmVydmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1RyYW5zYWN0aW9uVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uVGV4dCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0FydGljbGVUZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlldyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvdWxkU2hvd1RpbGVzKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gQWRqdXN0IHRoZSB3aWR0aCBjb25kaXRpb24gYXMgbmVlZGVkXHJcbiAgICByZXR1cm4gdGhpcy5zY3JlZW5XaWR0aCA8IDEyODA7IC8vIFNob3cgdGhlIGRpdiBpZiBzY3JlZW4gd2lkdGggaXMgc21hbGxlciB0aGFuIDEyODBweFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGZ1bGx5SW52b2ljZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHRoaXMudHJhbnNhY3Rpb24gJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8gJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cyAmJlxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5oZWFkZXJJbmZvU3RhdHVzLmhhc093blByb3BlcnR5KCdpc0Z1bGx5SW52b2ljZWQnKSAmJlxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5oZWFkZXJJbmZvU3RhdHVzLmlzRnVsbHlJbnZvaWNlZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRPcmRlckxpbmVTZXRJZkV4aXN0cyhsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogT3JkZXJMaW5lU2V0RFRPIHtcclxuICAgIGlmICghbGluZS5vcmRlckxpbmVTZXRDb2RlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbGluZVNldDogT3JkZXJMaW5lU2V0SW5mbyA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLm9yZGVyTGluZVNldHMuZmluZChzZXQgPT4gc2V0Lm9yZGVyTGluZVNldENvZGUgPT09IGxpbmUub3JkZXJMaW5lU2V0Q29kZSk7XHJcbiAgICAgIGlmICghbGluZVNldCkge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBEVE86IE9yZGVyTGluZVNldERUTyA9IG5ldyBPcmRlckxpbmVTZXREVE8oKTtcclxuICAgICAgICBEVE8ub3JkZXJMaW5lU2V0Q29kZSA9IGxpbmVTZXQub3JkZXJMaW5lU2V0Q29kZTtcclxuICAgICAgICBEVE8ub3JkZXJMaW5lU2V0SWQgPSBsaW5lU2V0Lm9yZGVyTGluZVNldElkO1xyXG4gICAgICAgIERUTy50ZXh0ID0gbGluZVNldC50ZXh0O1xyXG4gICAgICAgIERUTy5hbW91bnQgPSBsaW5lU2V0LmFtb3VudDtcclxuICAgICAgICBEVE8udGl0bGUgPSBsaW5lU2V0LnRpdGxlO1xyXG4gICAgICAgIERUTy5jb2xvciA9IGxpbmVTZXQuY29sb3I7XHJcbiAgICAgICAgRFRPLmNhdGVnb3J5SWQgPSBsaW5lU2V0LmNhdGVnb3J5SWQ7XHJcbiAgICAgICAgcmV0dXJuIERUTztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGlkZUFydGljbGVUZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dUcmFuc2FjdGlvblRleHQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHRPdmVydmlldyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVUcmFuc2FjdGlvbkxpbmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUpIHtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNcclxuICAgICAgICAuZmluZCgobGluZSkgPT4gbGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaWRlUGFuZWxUcmFuc2FjdGlvbkxpbmUpIHtcclxuICAgICAgdGhpcy5zaWRlUGFuZWxUcmFuc2FjdGlvbkxpbmUgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXNcclxuICAgICAgICAuZmluZCgobGluZSkgPT4gbGluZS5saW5lTnIgPT09IHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lLmxpbmVOcik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zaG91bGRTaG93U2lkZVBhbmVsICYmIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcyAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmhhbmRsZVNob3dTaWRlUGFuZWwodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHByaXZhdGUgX3ByZXBhcmVIZWFkZXIoKTogdm9pZCB7XHJcbiAgLy8gICAgIGlmICh0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25JbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgLy8gICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuT3JkZXJJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgLy8gICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUGF5bWVudEluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkgJiZcclxuICAvLyAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZWxpdmVyeUluZm9IZWFkZXIpLmltbWVkaWF0ZWx5SGlkZGVuKCkpIHtcclxuICAvLyAgICAgICAgIC8vIG5vdGhpbmcgdG8gc2VlIGhlcmVcclxuICAvLyAgICAgICAgIHRoaXMuc2hvd0hlYWRlciA9IGZhbHNlO1xyXG4gIC8vICAgICB9XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb25NYXJnaW5JbmZvKHRyYW5zYWN0aW9uVVVJRDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodHJhbnNhY3Rpb25VVUlEKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdDogVHJhbnNhY3Rpb25NYXJnaW5JbmZvID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25CYXNlU2VydmljZS5sb2FkVHJhbnNhY3Rpb25NYXJnZUluZm9MaXN0KHRyYW5zYWN0aW9uVVVJRCk7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uQmFzZVNlcnZpY2UudHJhbnNhY3Rpb25Mb2NhbE1hcmdpbkluZm8gPSByZXN1bHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVmlld01vZGVDaGFuZ2UobW9kZTogQ29udGVudFZpZXdNb2RlKSB7XHJcbiAgICB0aGlzLmFjdGl2ZVZpZXdNb2RlID0gbW9kZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQbGFuT3JkZXJGb3JUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpIHtcclxuICAgIGlmICghdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFBsYW5uaW5nPy5wbGFubmluZ0lkKSB7XHJcbiAgICAgIGNvbnN0IHBsYW5uaW5nU291cmNlczogUGxhbm5pbmdbXSA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5nZXRQbGFubmluZ1NvdXJjZXMoKTtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFBsYW5uaW5nID0gcGxhbm5pbmdTb3VyY2VzWzBdID8gcGxhbm5pbmdTb3VyY2VzWzBdIDogdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgbGV0IHBsYW5PcmRlcjogUGxhbk9yZGVyID0gYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmdldFBsYW5PcmRlcih0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQpO1xyXG5cclxuICAgIGlmKHBsYW5PcmRlcikge1xyXG4gICAgICBhd2FpdCB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5nZXRTZXF1ZW5jZU9yZGVyVmFsdWUocGxhbk9yZGVyKTtcclxuICAgICAgYXdhaXQgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZ2V0T3JkZXJMaW5lc1BsYW5uZWQocGxhbk9yZGVyKTtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXIgPSBwbGFuT3JkZXI7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
574
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taW50ZXJuYWwvdHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUV2SCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUkxRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUM3RyxPQUFPLEVBQUMsYUFB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QUM7Z0JBQ3JFLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQzthQUMxRDs7S0FDRjs7O1lBbG1CRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHlCQUF5QjtnQkFDbkMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrS1Q7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQWpNTyxnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBRWxCLHVCQUF1QjtZQTFCN0IsY0FBYztZQXlCUix1QkFBdUI7WUFZdkIsMkJBQTJCO1lBWDNCLHVCQUF1QjtZQUN2QixxQ0FBcUM7WUFDckMsYUFBYTtZQUNiLG9CQUFvQjtZQVNwQiwyQkFBMkI7WUFLM0IsdUJBQXVCO1lBS3ZCLHNCQUFzQjs7O2tDQW1MM0IsWUFBWSxTQUFDLGlDQUFpQzt1QkFHOUMsS0FBSztxQ0FHTCxLQUFLOzJCQWNMLEtBQUs7MEJBR0wsS0FBSzt5QkFXTCxLQUFLO2tDQUdMLEtBQUs7a0NBR0wsS0FBSztpQ0FHTCxLQUFLOzZCQUdMLE1BQU07K0JBSU4sTUFBTTs4QkFHTixXQUFXLFNBQUMseUJBQXlCLGNBQ3JDLEtBQUs7NEJBR0wsV0FBVyxTQUFDLHVCQUF1QixjQUNuQyxLQUFLO3dCQUdMLFdBQVcsU0FBQywrQkFBK0I7dUJBSzNDLFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgUXVlcnlMaXN0LFxyXG4gIFZpZXdDaGlsZHJlbixcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7Q29udGVudFZpZXdNb2RlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25DZmdOYW1lfSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLWNmZy1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVNpZGVQYW5lbENvbXBvbmVudH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsL3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSAnLi4vLi4vbW9kZWwvcmVsYXRpb24tYW55LXR5cGUnO1xyXG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1N0YXR1c0JhckNmZ05hbWVzfSBmcm9tICcuLi8uLi9pbnRlcmZhY2Uvc3RhdHVzLWJhci1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RHluYW1pY0NvbXBvbmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZHluYW1pYy1jb21wb25lbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtMaW5lU2VsZWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9saW5lLXNlbGVjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhckJ1dHRvbn0gZnJvbSAnLi4vLi4vbW9kZWwvdHJhbnNhY3Rpb24tYmFyLWJ1dHRvbic7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtdGV4dC1saW5lLXJlcXVlc3QuYm8nO1xyXG5pbXBvcnQge09yZGVyTGluZVNldERUT30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmUtc2V0LWR0byc7XHJcbmltcG9ydCB7T3JkZXJMaW5lU2V0SW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL29yZGVyLWxpbmUtc2V0LWluZm8uYm8nO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uQWRkT3JkZXJMaW5lU2V0VGV4dExpbmVSZXF1ZXN0XHJcbn0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWFkZC1vcmRlci1saW5lLXNldC10ZXh0LWxpbmUtcmVxdWVzdCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtQdXJjaGFzZUNvbmZpcm1hdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcHVyY2hhc2UtY29uZmlybWF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge2lzTmlsbH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdXRpbHMvZnVuY3Rpb24vaXMtbmlsbC5mdW5jdGlvbic7XHJcbmltcG9ydCB7UG9zT3JkZXJEYXRhfSBmcm9tICcuLi8uLi9tb2RlbC9wb3Mtb3JkZXItZGF0YSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTWFyZ2luSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLW1hcmdpbi1pbmZvLmJvJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSAnLi4vZGVsaXZlcnktcGxhbm5pbmcvc2VydmljZS9kZWxpdmVyeS1wbGFubmluZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nTW9kZXN9IGZyb20gJy4uLy4uL2VudW0vZGVsaXZlcnktcGxhbm5pbmctbW9kZXMuZW51bSc7XHJcbmltcG9ydCB7UGxhbk9yZGVyfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm9cIjtcclxuaW1wb3J0IHtQbGFuT3JkZXJMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXItbGluZS5ib1wiO1xyXG5pbXBvcnQge1BsYW5uaW5nfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW5uaW5nLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tYmFzZS5zZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvLXRyYW5zYWN0aW9uLWludGVybmFsJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRlZFwiPlxyXG4gICAgICA8Y28tY2xpY2stYmxvY2s+PC9jby1jbGljay1ibG9jaz5cclxuICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlclxyXG4gICAgICAgICpuZ0lmPVwic2hvd0hlYWRlclwiXHJcbiAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICBbcmVsYXRpb25dPVwicmVsYXRpb25cIlxyXG4gICAgICAgIChyZWxhdGlvbkNoYW5nZSk9XCJoYW5kbGVSZWxhdGlvbkNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgIDwvY28tdHJhbnNhY3Rpb24taGVhZGVyPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWhlYWRlclwiPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1xdWljay1hY2Nlc3NcclxuICAgICAgICAgICpuZ0lmPVwic2hvd1F1aWNrQWNjZXNzXCJcclxuICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtaGVhZGVyLWl0ZW1cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcz5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYnV0dG9uLWJhclxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93QnV0dG9uQmFyXCJcclxuICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtaGVhZGVyLWl0ZW1cIlxyXG4gICAgICAgICAgW3NlbGVjdGVkQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrZWQpPVwiaGFuZGxlQnV0dG9uQmFyQnV0dG9uQ2xpY2tlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1idXR0b24tYmFyPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtaGVhZGVyLWl0ZW0gcmlnaHRcIj5cclxuICAgICAgICAgIDxjby1hdmF0YXJcclxuICAgICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1zYWxlcy1hdmF0YXJcIlxyXG4gICAgICAgICAgICBbcmVsYXRpb25JZF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGFuZGxlZEJ5XCJcclxuICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuSGVhZGVySGFuZGxlZEJ5XCJcclxuICAgICAgICAgICAgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudD5cclxuICAgICAgICAgIDwvY28tYXZhdGFyPlxyXG4gICAgICAgICAgPGNvLWF2YXRhclxyXG4gICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLXNhbGVzLWF2YXRhclwiXHJcbiAgICAgICAgICAgIFtyZWxhdGlvbklkXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5icmFuY2g/LnJlbGF0aW9uSWRcIlxyXG4gICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5IZWFkZXJCcmFuY2hcIlxyXG4gICAgICAgICAgICBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxyXG4gICAgICAgICAgPC9jby1hdmF0YXI+XHJcbiAgICAgICAgICA8Y28tdmlldy1tb2RlLWJ1dHRvbnNcclxuICAgICAgICAgICAgKm5nSWY9XCIhc2hvdWxkU2hvd1RpbGVzKCkgJiYgc2hvd1ZpZXdNb2RlQnV0dG9uc1wiXHJcbiAgICAgICAgICAgIFtzaG93Vmlld01vZGVzXT1cIlt2aWV3TW9kZXMuTGlzdCwgdmlld01vZGVzLlRpbGVzXVwiXHJcbiAgICAgICAgICAgICh2aWV3TW9kZUNoYW5nZSk9XCJoYW5kbGVWaWV3TW9kZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2NvLXZpZXctbW9kZS1idXR0b25zPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1jb250ZW50LXdyYXBwZXJcIj5cclxuICAgICAgICA8IS0tPGNvLXRyYW5zYWN0aW9uLWRvY3VtZW50LWJ1dHRvbi1iYXIgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCI+PC9jby10cmFuc2FjdGlvbi1kb2N1bWVudC1idXR0b24tYmFyPi0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1jb250ZW50XCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3J5LlNlcnZpY2VPcmRlclNlcnZpY2VcIj5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXNlcnZpY2Utb3ZlcnZpZXcgW3Bvc09yZGVyRGF0YV09XCJwb3NPcmRlckRhdGFcIiBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIj48L2NvLXRyYW5zYWN0aW9uLXNlcnZpY2Utb3ZlcnZpZXc+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi10aWxlcy13cmFwcGVyXCIgKm5nSWY9XCJhY3RpdmVWaWV3TW9kZSA9PT0gdmlld01vZGVzLlRpbGVzIHx8IHNob3VsZFNob3dUaWxlcygpIHx8IHRyYW5zYWN0aW9uUGxhbm5pbmdcIj5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWNhcmRzXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5wbGFubmluZy1jYXJkc109XCJ0cmFuc2FjdGlvblBsYW5uaW5nXCI+XHJcbiAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tY2FyZHM+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgKm5nSWY9XCIoYWN0aXZlVmlld01vZGUgPT09IHZpZXdNb2Rlcy5MaXN0ICYmICFzaG91bGRTaG93VGlsZXMoKSkgJiYgYWN0aXZlQ2F0ZWdvcnkgIT09IGNhdGVnb3J5LlNlcnZpY2VPcmRlclNlcnZpY2UgJiYgIXRyYW5zYWN0aW9uUGxhbm5pbmdcIj5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmVzXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgIChzYXZlVHJhbnNhY3Rpb25MaW5lKT1cInNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KCRldmVudClcIj5cclxuICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1saW5lcz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZvb3Rlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1mb290ZXItbGVmdFwiPlxyXG4gICAgICAgICAgICAgIDxjby1hZGQtcHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyQ2FzaFJlZ2lzdGVyIHx8XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyT3ZlcnZpZXcgfHxcclxuICAgICAgICAgICAgICAgIGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlB1cmNoYXNlT3JkZXJPdmVydmlldyB8fFxyXG4gICAgICAgICAgICAgICAgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuU2FsZXNPcmRlclF1b3RhdGlvbiB8fFxyXG4gICAgICAgICAgICAgICAgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuU2VydmljZU9yZGVyT3ZlcnZpZXdcIj5cclxuICAgICAgICAgICAgICA8L2NvLWFkZC1wcm9kdWN0PlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1idXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLXdpZHRoIHRleHQtcnVsZVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICE9PSBjYXRlZ29yaWVzLlNlcnZpY2VPcmRlclNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UZXh0U29saWQpXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVUcmFuc2FjdGlvblRleHQoKVwiPlxyXG4gICAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1mb290ZXItY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLW1hcmdpbiAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJNYXJnaW5JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1tYXJnaW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXRvdGFsc1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlQ2F0ZWdvcnkgIT09IGNhdGVnb3J5LlNlcnZpY2VPcmRlclNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25Ub3RhbF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvblRvdGFsXCJcclxuICAgICAgICAgICAgICBbc2hvd0Rpc2NvdW50XT1cInRydWVcIj5cclxuICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi10b3RhbHM+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmVzLXNpZGUtcGFuZWxcclxuICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICB0cmFuc2FjdGlvbiAmJlxyXG4gICAgICAgICAgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IHRyYW5zYWN0aW9uS2luZC5DYXNoRGVzayAmJiAhZnVsbHlJbnZvaWNlZCgpKVwiXHJcbiAgICAgICAgICBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmVzLXNpZGUtcGFuZWw+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWxcclxuICAgICAgICAgICpuZ0lmPVwic2hvd1NpZGVQYW5lbFwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJzaWRlUGFuZWxUcmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgW2FjdGl2ZUNhdGVnb3J5XT1cImFjdGl2ZUNhdGVnb3J5XCJcclxuICAgICAgICAgIChjYW5jZWxDbGljayk9XCJzaG93U2lkZVBhbmVsID0gZmFsc2VcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbD5cclxuXHJcbiAgICAgICAgPCEtLVBvcHVwIHZvb3Igd2lqemlnZW4gdm9sZ29yZGUgdmFuIHRla3N0cmVnZWxzLS0+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dC1vdmVydmlld1xyXG4gICAgICAgICAgKm5nSWY9XCJzaG93QXJ0aWNsZVRleHRPdmVydmlld1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZUFydGljbGVUZXh0T3ZlcnZpZXcoKVwiXHJcbiAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dE92ZXJ2aWV3KClcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dC1vdmVydmlldz5cclxuXHJcbiAgICAgICAgPCEtLVBvcHVwIHZvb3IgYWFubWFrZW4gZW4gdXBkYXRlbiB0cmFuc2FjdGlldGVrc3RyZWdlbHMtLT5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0XHJcbiAgICAgICAgICAqbmdJZj1cInNob3dUcmFuc2FjdGlvblRleHRcIlxyXG4gICAgICAgICAgW2hlYWRlcl09XCInT1JERVJfVEVYVF9MSU5FJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWRcIlxyXG4gICAgICAgICAgW2VkaXRUZXh0XT1cInRleHRUb0VkaXRcIlxyXG4gICAgICAgICAgW29yZGVyTGluZVNldERUT109XCJzZWxlY3RlZE9yZGVyTGluZVNldERUT1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAoc2F2ZUNsaWNrKT1cInNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAoc2F2ZU9yZGVyTGluZVNldENsaWNrKT1cInNhdmVPcmRlckxpbmVTZXQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG5cclxuICAgICAgICA8IS0tUG9wdXAgdm9vciBhYW5tYWtlbiBlbiB1cGRhdGVuIGFydGlrZWx0ZWtzdHJlZ2Vscy0tPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHRcclxuICAgICAgICAgICpuZ0lmPVwic2hvd0FydGljbGVUZXh0XCJcclxuICAgICAgICAgIFtoZWFkZXJdPVwiJ1BST0RVQ1RfREVTQ1JJUFRJT05fQU5EX1RFWFRTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWRcIlxyXG4gICAgICAgICAgW3Nob3dBcnRpY2xlSW1hZ2VEZXNjcmlwdGlvbl09XCJ0cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUJvdW5kXCJcclxuICAgICAgICAgIFtzaG93SW1hZ2VdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2FydGljbGVMaW5lTnJdPVwidHJhbnNhY3Rpb25MaW5lLmxpbmVOclwiXHJcbiAgICAgICAgICBbYXJ0aWNsZVJlZl09XCJ0cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZU51bWJlclwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICBbZWRpdFRleHRdPVwidGV4dFRvRWRpdFwiXHJcbiAgICAgICAgICAoc2F2ZUNsaWNrKT1cInNhdmVBcnRpY2xlTGluZVRleHQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZUFydGljbGVUZXh0KClcIlxyXG4gICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlQXJ0aWNsZVRleHQoKVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tY29weS1vcmRlclxyXG4gICAgICAgICAgKm5nSWY9XCJzaG93Q29weU9yZGVyRGlhbG9nXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAoY2xvc2VEaWFsb2cpPVwic2hvd0NvcHlPcmRlckRpYWxvZyA9IGZhbHNlXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1jb3B5LW9yZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25JbnRlcm5hbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3JpZXM6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWxpdmVyeVBsYW5uaW5nTW9kZXM6IHR5cGVvZiBEZWxpdmVyeVBsYW5uaW5nTW9kZXMgPSBEZWxpdmVyeVBsYW5uaW5nTW9kZXM7XHJcbiAgcHVibGljIHJlYWRvbmx5IHZpZXdNb2RlczogdHlwZW9mIENvbnRlbnRWaWV3TW9kZSA9IENvbnRlbnRWaWV3TW9kZTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2ZnTmFtZXM6IHR5cGVvZiBUcmFuc2FjdGlvbkNmZ05hbWUgPSBUcmFuc2FjdGlvbkNmZ05hbWU7XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zYWN0aW9uS2luZDogdHlwZW9mIFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZDtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcnk6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG4gIHB1YmxpYyBzY3JlZW5XaWR0aDogbnVtYmVyO1xyXG5cclxuICBAVmlld0NoaWxkcmVuKFRyYW5zYWN0aW9uTGluZVNpZGVQYW5lbENvbXBvbmVudClcclxuICBwdWJsaWMgc2lkZVBhbmVsQ29tcG9uZW50czogUXVlcnlMaXN0PFRyYW5zYWN0aW9uTGluZVNpZGVQYW5lbENvbXBvbmVudD47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjb25maXJtYXRpb25BbmFseXNpc0lkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLnNlcnZpY2UuYWN0aXZlUnVicmljID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uO1xyXG4gICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9uO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbkFuYWx5c2lzSWQgPSB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjb25maXJtYXRpb25BbmFseXNpc0lkKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBvc09yZGVyRGF0YTogUG9zT3JkZXJEYXRhO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb24odmFsdWU6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2Uge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dWaWV3TW9kZUJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblBsYW5uaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNhc2hSZWdpc3RlcnNEaXJ0eTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcmVsYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkFueVR5cGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkFueVR5cGU+KCk7XHJcblxyXG4gIC8vVGhpcyBvdXRwdXQgZXhpc3RzIGZvciBidW5kbGUgcHVycG9zZXMuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNlcnZpY2VSZXF1ZXN0ZWQ6IEV2ZW50RW1pdHRlcjx7dHJhbnNhY3Rpb246IG51bWJlciwgbGluZU5yOiBudW1iZXJ9PiA9IG5ldyBFdmVudEVtaXR0ZXI8e3RyYW5zYWN0aW9uOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyfT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaG93LXF1aWNrLWFjY2VzcycpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1F1aWNrQWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaG93LWJ1dHRvbi1iYXInKVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dCdXR0b25CYXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLWludGVybmFsJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZlVmlld01vZGU6IENvbnRlbnRWaWV3TW9kZSA9IENvbnRlbnRWaWV3TW9kZS5MaXN0O1xyXG4gIHB1YmxpYyBhY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHVibGljIHNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG4gIHB1YmxpYyBzZWxlY3RlZE9yZGVyTGluZVNldERUTzogT3JkZXJMaW5lU2V0RFRPO1xyXG4gIHB1YmxpYyBzaG93U2lkZVBhbmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3VsZFNob3dTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0FydGljbGVUZXh0T3ZlcnZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1RyYW5zYWN0aW9uVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0NvcHlPcmRlckRpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdGV4dFRvRWRpdDogc3RyaW5nO1xyXG4gIHB1YmxpYyBoaXN0b3JpY1RyYW5zYWN0aW9uTGluZXM6IFRyYW5zYWN0aW9uTGluZUluZm9bXSB8IG51bGw7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTWFyZ2luSW5mbzogVHJhbnNhY3Rpb25NYXJnaW5JbmZvID0gbmV3IFRyYW5zYWN0aW9uTWFyZ2luSW5mbygpO1xyXG5cclxuICBwdWJsaWMgbGluZURyYWdnZWRPdmVyOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXNCYXJDb25maWdOYW1lczogU3RhdHVzQmFyQ2ZnTmFtZXMgPSB7XHJcbiAgICBzdGF0dXNCYXJCVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCVCxcclxuICAgIHN0YXR1c0JhclRHOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclRHLFxyXG4gICAgc3RhdHVzQmFyUEE6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyUEEsXHJcbiAgICBzdGF0dXNCYXJQVjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQVixcclxuICAgIHN0YXR1c0JhclRQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclRQLFxyXG4gICAgc3RhdHVzQmFyR1Q6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR1QsXHJcbiAgICBzdGF0dXNCYXJHUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHUCxcclxuICAgIHN0YXR1c0JhckdMOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdMLFxyXG4gICAgc3RhdHVzQmFyR0Y6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0YsXHJcbiAgICBzdGF0dXNCYXJJQjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJJQixcclxuICAgIHN0YXR1c0Jhck5UOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0Jhck5ULFxyXG4gICAgc3RhdHVzQmFyQk46IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyQk4sXHJcbiAgICBzdGF0dXNCYXJCRzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCRyxcclxuICAgIHN0YXR1c0JhckZDOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckZDXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBuZXcgVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UoKTtcclxuICBwcml2YXRlIF9jb25maXJtYXRpb25BbmFseXNpc0lkOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FwcFJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICBwcml2YXRlIF9keW5hbWljQ29tcG9uZW50U2VydmljZTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2xpbmVTZWxlY3Rpb25TZXJ2aWNlOiBMaW5lU2VsZWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25CYXNlU2VydmljZTogVHJhbnNhY3Rpb25CYXNlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25VcGRhdGVkLnN1YnNjcmliZSgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHRyYW5zYWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3VsZFNob3dTaWRlUGFuZWwgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zYWN0aW9uTGluZSgpO1xyXG4gICAgICAgICAgLy8gaWYgKHRyYW5zYWN0aW9uPy50cmFuc2FjdGlvbkluZm8/LnV1aWQpIHtcclxuICAgICAgICAgIC8vICAgdGhpcy5nZXRUcmFuc2FjdGlvbk1hcmdpbkluZm8odHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mby5pZCAmJiB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcikge1xyXG4gICAgICAgICAgICB0aGlzLmdldFBsYW5PcmRlckZvclRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25NYXJnZVZpZXdDbGlja2VkLnN1YnNjcmliZSgobG9hZDogYm9vbGVhbik9PiB7XHJcbiAgICAgICAgaWYgKGxvYWQgJiYgdGhpcy5fdHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRUcmFuc2FjdGlvbk1hcmdpbkluZm8odGhpcy5fdHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUpID0+IHtcclxuICAgICAgICBpZiAocmVsYXRpb24pIHtcclxuICAgICAgICAgIHRoaXMucmVsYXRpb24gPSByZWxhdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25LaW5kU2V0LnN1YnNjcmliZSgoc2V0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHNldCkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuY29uZmlybWF0aW9uQW5hbHlzaXNJZCA/IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbiA6IHRoaXMuc2VydmljZS5hY3RpdmVSdWJyaWM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmNvbm5lY3Rpb25Jbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKGluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbk5lZWRlZC5zdWJzY3JpYmUoKG5lZWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChuZWVkZWQpIHtcclxuICAgICAgICAgIHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZVNob3dTaWRlUGFuZWwodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzWzBdLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uTGluZURyYWdnZWRPdmVyLnN1YnNjcmliZSgobGluZU5yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5saW5lRHJhZ2dlZE92ZXIgPSBsaW5lTnI7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlbkFydGljbGVUZXh0T3ZlcnZpZXcuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkVHJhbnNhY3Rpb25UZXh0LnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93VHJhbnNhY3Rpb25UZXh0KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkQXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmVkaXRUcmFuc2FjdGlvblRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRUcmFuc2FjdGlvblRleHQobGluZSkpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5lZGl0QXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VCdXR0b25DbGlja2VkLnN1YnNjcmliZSgobGluZU5yKSA9PiB0aGlzLmhhbmRsZUNyZWF0ZVNlcnZpY2VSZXF1ZXN0KGxpbmVOcikpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zaG93RXJyb3Iuc3Vic2NyaWJlKChlKSA9PlxyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKGUubWVzc2FnZSwgZS5sb2NhbGl6ZSwgZS5kZXRhaWxzKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNvcHlPcmRlci5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93Q29weU9yZGVyRGlhbG9nID0gdHJ1ZSlcclxuICAgICk7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVJlbGF0aW9uQ2hhbmdlKHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5yZWxhdGlvbiA9IHJlbGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJ1dHRvbkJhckJ1dHRvbkNsaWNrZWQoYnV0dG9uOiBUcmFuc2FjdGlvbkJhckJ1dHRvbik6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IGJ1dHRvbi5jYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93U2lkZVBhbmVsKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8sIGZvcmNlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChsaW5lIHx8IGZvcmNlKSB7XHJcbiAgICAgIHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgICAgdGhpcy5zaG93U2lkZVBhbmVsID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUcmFuc2FjdGlvblRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmFkZFRyYW5zYWN0aW9uVGV4dC5uZXh0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93QXJ0aWNsZVRleHRPdmVydmlldyhsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICBpZiAobGluZSkge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dUcmFuc2FjdGlvblRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRleHRUb0VkaXQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPID0gbmV3IE9yZGVyTGluZVNldERUTygpO1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd0FydGljbGVUZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIGlmIChsaW5lKSB7XHJcbiAgICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICB0aGlzLnNob3dBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KGRhdGE6IHsgcmVxdWVzdDogVHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QsIG5ldzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIWRhdGEubmV3KSB7IC8vdXBkYXRlXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkVGV4dExpbmUoXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgICBkYXRhLnJlcXVlc3QudGV4dCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC5hcnRpY2xlQm91bmQsXHJcbiAgICAgICAgMCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlT3JkZXJMaW5lU2V0KGRhdGE6IHsgcmVxdWVzdDogT3JkZXJMaW5lU2V0RFRPLCBuZXc6IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFkYXRhLm5ldykge1xyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlT3JkZXJMaW5lU2V0KGRhdGEucmVxdWVzdCk7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGl0bGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbmV3UmVxdWVzdDogVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QoKTtcclxuICAgICAgbmV3UmVxdWVzdC5vcmRlckxpbmVTZXRUZXh0ID0gZGF0YS5yZXF1ZXN0LnRleHQ7XHJcbiAgICAgIG5ld1JlcXVlc3QuYW1vdW50ID0gZGF0YS5yZXF1ZXN0LmFtb3VudDtcclxuICAgICAgbmV3UmVxdWVzdC5jYXRlZ29yeUlkID0gZGF0YS5yZXF1ZXN0LmNhdGVnb3J5SWQ7XHJcbiAgICAgIG5ld1JlcXVlc3QuY29sb3IgPSBkYXRhLnJlcXVlc3QuY29sb3I7XHJcbiAgICAgIG5ld1JlcXVlc3QudHJhbnNhY3Rpb25VdWlkID0gZGF0YS5yZXF1ZXN0LnRyYW5zYWN0aW9uVXVpZDtcclxuICAgICAgbmV3UmVxdWVzdC5zaG93T25Eb2N1bWVudHMgPSBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzO1xyXG4gICAgICBuZXdSZXF1ZXN0LnRleHQgPSBkYXRhLnJlcXVlc3QudGl0bGU7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRPcmRlckxpbmVTZXQobmV3UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2F2ZUFydGljbGVMaW5lVGV4dChkYXRhOiB7IHJlcXVlc3Q6IFRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0LCBuZXc6IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFkYXRhLm5ldykgeyAvL3VwZGF0ZVxyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlVGV4dExpbmUoZGF0YS5yZXF1ZXN0LnRyYW5zYWN0aW9uVXVpZCwgdGhpcy50cmFuc2FjdGlvbkxpbmUudXVpZCwgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cywgZGF0YS5yZXF1ZXN0LnRleHQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRleHRMaW5lKFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHMsXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnRleHQsXHJcbiAgICAgICAgMCxcclxuICAgICAgICB0cnVlLFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC5yZWZBcnRpY2xlTGluZU5yXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVFZGl0VHJhbnNhY3Rpb25UZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcmRlckxpbmVTZXREVE8gPSB0aGlzLl9nZXRPcmRlckxpbmVTZXRJZkV4aXN0cyhsaW5lKTtcclxuICAgIGlmIChpc05pbGwodGhpcy5zZWxlY3RlZE9yZGVyTGluZVNldERUTykpIHtcclxuICAgICAgdGhpcy50ZXh0VG9FZGl0ID0gbGluZS50ZXh0O1xyXG4gICAgfVxyXG4gICAgaWYgKGxpbmUuaXNUZXh0KSB7XHJcbiAgICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKGxpbmUuYXJ0aWNsZUJvdW5kQ29uY2F0ZW5hdGVkVGV4dCAmJiBsaW5lLmFydGljbGVCb3VuZENvbmNhdGVuYXRlZFRleHQubGVuZ3RoID4gMCkge1xyXG4gICAgLy8gICB0aGlzLnNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRWRpdEFydGljbGVUZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMudGV4dFRvRWRpdCA9IGxpbmUudGV4dDtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICB0aGlzLnNob3dBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNyZWF0ZVNlcnZpY2VSZXF1ZXN0KGxpbmVOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAobGluZU5yICYmIHRoaXMudHJhbnNhY3Rpb24pIHsvKlxyXG4gICAgICBsZXQgcmVxdWVzdDpDcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlVHJhbnNhY3Rpb25MaW5lUmVxdWVzdCA9IG5ldyBDcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlVHJhbnNhY3Rpb25MaW5lUmVxdWVzdCgpO1xyXG4gICAgICByZXF1ZXN0LnNvdXJjZUxpbmVOciA9IGxpbmUubGluZU5yO1xyXG4gICAgICByZXF1ZXN0LnNvdXJjZVRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgcmVxdWVzdC5jdXN0b21lclJlbGF0aW9uSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5yZWxhdGlvbklkO1xyXG4gICAgICByZXF1ZXN0LmJyYW5jaE5yID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uYnJhbmNoLnJlbGF0aW9uTnI7Ki9cclxuXHJcbiAgICAgIC8qdGhpcy5fdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VUcmFuc2FjdGlvbkxpbmUocmVxdWVzdCkudGhlbigocmVzdWx0OiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmKHJlc3VsdCkgeyovXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnJlcXVlc3RDcmVhdGVTZXJ2aWNlT3JkZXJGcm9tVHJhbnNhY3Rpb25MaW5lLm5leHQoe3RyYW5zYWN0aW9uOiB0aGlzLnRyYW5zYWN0aW9uLCBsaW5lTnI6IGxpbmVOcn0pO1xyXG4gICAgICAvL2FkZGVkIGZvciBidW5kbGUgcHVycG9zZXMgc28gd2UgY2FuIHBhc3MgdGhlIHZhbHVlIGFsb25nIHdpdGhvdXQgdGhlIGV2ZW50IHNlcnZpY2UuIFVzZSB0aGUgZXZlbnQgc2VydmljZSBpbiBhbGwgb3RoZXIgY2FzZXMuXHJcbiAgICAgIHRoaXMuc2VydmljZVJlcXVlc3RlZC5lbWl0KHt0cmFuc2FjdGlvbjogdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25OciwgbGluZU5yOiBsaW5lTnJ9KVxyXG4gICAgIC8qICAgfVxyXG4gICAgICB9KTsqL1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQXJ0aWNsZVRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVRyYW5zYWN0aW9uVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUFydGljbGVUZXh0T3ZlcnZpZXcoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dUcmFuc2FjdGlvblRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dUcmFuc2FjdGlvblRleHQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3VsZFNob3dUaWxlcygpOiBib29sZWFuIHtcclxuICAgIC8vIEFkanVzdCB0aGUgd2lkdGggY29uZGl0aW9uIGFzIG5lZWRlZFxyXG4gICAgcmV0dXJuIHRoaXMuc2NyZWVuV2lkdGggPCAxMjgwOyAvLyBTaG93IHRoZSBkaXYgaWYgc2NyZWVuIHdpZHRoIGlzIHNtYWxsZXIgdGhhbiAxMjgwcHhcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmdWxseUludm9pY2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLnRyYW5zYWN0aW9uICYmXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvICYmXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmhlYWRlckluZm9TdGF0dXMgJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cy5oYXNPd25Qcm9wZXJ0eSgnaXNGdWxseUludm9pY2VkJykgJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cy5pc0Z1bGx5SW52b2ljZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0T3JkZXJMaW5lU2V0SWZFeGlzdHMobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IE9yZGVyTGluZVNldERUTyB7XHJcbiAgICBpZiAoIWxpbmUub3JkZXJMaW5lU2V0Q29kZSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGxpbmVTZXQ6IE9yZGVyTGluZVNldEluZm8gPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzLmZpbmQoc2V0ID0+IHNldC5vcmRlckxpbmVTZXRDb2RlID09PSBsaW5lLm9yZGVyTGluZVNldENvZGUpO1xyXG4gICAgICBpZiAoIWxpbmVTZXQpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgRFRPOiBPcmRlckxpbmVTZXREVE8gPSBuZXcgT3JkZXJMaW5lU2V0RFRPKCk7XHJcbiAgICAgICAgRFRPLm9yZGVyTGluZVNldENvZGUgPSBsaW5lU2V0Lm9yZGVyTGluZVNldENvZGU7XHJcbiAgICAgICAgRFRPLm9yZGVyTGluZVNldElkID0gbGluZVNldC5vcmRlckxpbmVTZXRJZDtcclxuICAgICAgICBEVE8udGV4dCA9IGxpbmVTZXQudGV4dDtcclxuICAgICAgICBEVE8uYW1vdW50ID0gbGluZVNldC5hbW91bnQ7XHJcbiAgICAgICAgRFRPLnRpdGxlID0gbGluZVNldC50aXRsZTtcclxuICAgICAgICBEVE8uY29sb3IgPSBsaW5lU2V0LmNvbG9yO1xyXG4gICAgICAgIERUTy5jYXRlZ29yeUlkID0gbGluZVNldC5jYXRlZ29yeUlkO1xyXG4gICAgICAgIHJldHVybiBEVE87XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVHJhbnNhY3Rpb25MaW5lKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzXHJcbiAgICAgICAgLmZpbmQoKGxpbmUpID0+IGxpbmUubGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzXHJcbiAgICAgICAgLmZpbmQoKGxpbmUpID0+IGxpbmUubGluZU5yID09PSB0aGlzLnNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMgJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBwcml2YXRlIF9wcmVwYXJlSGVhZGVyKCk6IHZvaWQge1xyXG4gIC8vICAgICBpZiAodGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uSW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gIC8vICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk9yZGVySW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gIC8vICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlBheW1lbnRJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgLy8gICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVsaXZlcnlJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpKSB7XHJcbiAgLy8gICAgICAgICAvLyBub3RoaW5nIHRvIHNlZSBoZXJlXHJcbiAgLy8gICAgICAgICB0aGlzLnNob3dIZWFkZXIgPSBmYWxzZTtcclxuICAvLyAgICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uTWFyZ2luSW5mbyh0cmFuc2FjdGlvblVVSUQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRyYW5zYWN0aW9uVVVJRCkge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uTWFyZ2luSW5mbyA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQmFzZVNlcnZpY2UubG9hZFRyYW5zYWN0aW9uTWFyZ2VJbmZvTGlzdCh0cmFuc2FjdGlvblVVSUQpO1xyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkJhc2VTZXJ2aWNlLnRyYW5zYWN0aW9uTG9jYWxNYXJnaW5JbmZvID0gcmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVZpZXdNb2RlQ2hhbmdlKG1vZGU6IENvbnRlbnRWaWV3TW9kZSkge1xyXG4gICAgdGhpcy5hY3RpdmVWaWV3TW9kZSA9IG1vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UGxhbk9yZGVyRm9yVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICBpZiAoIXRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRQbGFubmluZz8ucGxhbm5pbmdJZCkge1xyXG4gICAgICBjb25zdCBwbGFubmluZ1NvdXJjZXM6IFBsYW5uaW5nW10gPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuZ2V0UGxhbm5pbmdTb3VyY2VzKCk7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRQbGFubmluZyA9IHBsYW5uaW5nU291cmNlc1swXSA/IHBsYW5uaW5nU291cmNlc1swXSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGxldCBwbGFuT3JkZXI6IFBsYW5PcmRlciA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5nZXRQbGFuT3JkZXIodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKTtcclxuXHJcbiAgICBpZihwbGFuT3JkZXIpIHtcclxuICAgICAgYXdhaXQgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZ2V0U2VxdWVuY2VPcmRlclZhbHVlKHBsYW5PcmRlcik7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldE9yZGVyTGluZXNQbGFubmVkKHBsYW5PcmRlcik7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmxpbmVzUGxhbk9yZGVyID0gcGxhbk9yZGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -115,9 +115,9 @@ TransactionPlanningLineComponent.decorators = [
|
|
|
115
115
|
[isFirst]="isFirst"
|
|
116
116
|
[draggable]="!linePlanned"
|
|
117
117
|
(dragstart)="dragStarted($event)"
|
|
118
|
-
[checkbox]="
|
|
119
|
-
[checkboxValue]="transactionLine.selected"
|
|
120
|
-
[checkboxReadonly]="
|
|
118
|
+
[checkbox]="true"
|
|
119
|
+
[checkboxValue]="transactionLine.selected || !allowPartialDelivery()"
|
|
120
|
+
[checkboxReadonly]="!allowPartialDelivery()"
|
|
121
121
|
(checkboxValueChanged)="handleCheckBoxValueChanged($event, transactionLine)"
|
|
122
122
|
(click)="handleLineClicked($event)"
|
|
123
123
|
observeVisibility #observer=visibilityObserve
|
|
@@ -225,4 +225,4 @@ TransactionPlanningLineComponent.propDecorators = {
|
|
|
225
225
|
handleMouseOver: [{ type: HostListener, args: ["mouseover", ["$event"],] }],
|
|
226
226
|
handleMouseLeave: [{ type: HostListener, args: ["mouseleave", ["$event"],] }]
|
|
227
227
|
};
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLXBsYW5uaW5nLWxpbmUvdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzFGLE9BQU8sRUFDTCxxQ0FBcUMsRUFDdEMsTUFBTSxpRkFBaUYsQ0FBQztBQUN6RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUdyRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwy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QUFTLFNBQUMscUNBQXFDO2tDQUcvQyxNQUFNO3dCQUdOLFdBQVcsU0FBQyxvQ0FBb0M7OEJBS2hELFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7K0JBS3BDLFlBQVksU0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvc3RvY2stc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnNDb21wb25lbnRcclxufSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zL3RyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtTdGF0dXNCYXJDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3N0YXR1cy1iYXItY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7TGluZURpc2NvdW50Q2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9saW5lLWRpc2NvdW50LWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge09yZGVyTGluZVNldFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvb3JkZXItbGluZS1zZXQtc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSBcIi4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXBsYW5uaW5nLW92ZXJ2aWV3LWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWJhc2UtbGluZVxyXG4gICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgW3ByZXZpZXddPVwicHJldmlld1wiXHJcbiAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RcIlxyXG4gICAgICBbZHJhZ2dhYmxlXT1cIiFsaW5lUGxhbm5lZFwiXHJcbiAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXHJcbiAgICAgIFtjaGVja2JveF09XCIhbGluZVBsYW5uZWQgJiYgYWxsb3dQYXJ0aWFsRGVsaXZlcnkoKVwiXHJcbiAgICAgIFtjaGVja2JveFZhbHVlXT1cInRyYW5zYWN0aW9uTGluZS5zZWxlY3RlZFwiXHJcbiAgICAgIFtjaGVja2JveFJlYWRvbmx5XT1cImZhbHNlXCJcclxuICAgICAgKGNoZWNrYm94VmFsdWVDaGFuZ2VkKT1cImhhbmRsZUNoZWNrQm94VmFsdWVDaGFuZ2VkKCRldmVudCwgdHJhbnNhY3Rpb25MaW5lKVwiXHJcbiAgICAgIChjbGljayk9XCJoYW5kbGVMaW5lQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAgICAgb2JzZXJ2ZVZpc2liaWxpdHkgI29ic2VydmVyPXZpc2liaWxpdHlPYnNlcnZlXHJcbiAgICAgICh2aXNpYmlsaXR5Q2hhbmdlKT1cImhhbmRsZVZpc2liaWxpdHlDaGFuZ2UodHJhbnNhY3Rpb25MaW5lLCAkZXZlbnQpXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmFuc2FjdGlvbkxpbmUuaXNBcnRpY2xlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj0hcHJldmlldyBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZXh0ZW5kZWQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uMVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0NPTU1JU1NJT05fQ09ERScgfCBsb2NhbGl6ZVwiICpuZ0lmPVwiaXNGaXJzdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1jb21taXNzaW9uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZUNvbW1pc3Npb25cIlxyXG4gICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtY29tbWlzc2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uMlwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1dBUkVIT1VTRV9BTkRfU1RBVFVTJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzRmlyc3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZVdhcmVob3VzZVwiXHJcbiAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UtYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXN0YXR1c2JhclxyXG4gICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuU3RhdHVzQmFyXCJcclxuICAgICAgICAgICAgICAgIFtjb25maWdOYW1lc109XCJzdGF0dXNCYXJDb25maWdOYW1lc1wiXHJcbiAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiY2F0ZWdvcnkuU2FsZXNPcmRlclBsYW5uaW5nXCI+PC9jby10cmFuc2FjdGlvbi1saW5lLXN0YXR1c2Jhcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4zXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCInREVMSVZFUllfSU5GT1JNQVRJT04nIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNGaXJzdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1idXR0b25cclxuICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVEZWxpdmVyeU1ldGhvZFwiXHJcbiAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1idXR0b24+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktZGF0ZS1idXR0b24gY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWRhdGUgdHdvLWNvbHVtblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZURlbGl2ZXJ5RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWRhdGUtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidUT1RBTFNfQU5EX0RJU0NPVU5UJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0ZpcnN0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS12YXQtYnV0dG9uICpuZ0lmPVwiIXByZXZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVWYXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtdmF0LWJ1dHRvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtdG90YWxzXCI+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtcHJpY2UgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1wcmljZSBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZVByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0RWRpdE1vZGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtcHJpY2U+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGlzY291bnQtYnV0dG9uICpuZ0lmPVwiIXByZXZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lRGlzY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwiZGlzY291bnRDb25maWdOYW1lc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtZGlzY291bnQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1hbW91bnRcIj5cclxuICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWFtb3VudCBjbGFzcz1cImFtb3VudC1udW1iZXItcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lQW1vdW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1hbW91bnQ+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGNvLWVkaXRhYmxlLWxhYmVsIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHMtdG90YWwgcHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lTmV0TGluZVRvdGFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cInRyYW5zYWN0aW9uTGluZS5kaXNwbGF5TmV0TGluZVRvdGFsIHwgY29DdXJyZW5jeTogdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlZGl0TW9kZWxdPVwidHJhbnNhY3Rpb25MaW5lLmRpc3BsYXlOZXRMaW5lVG90YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29tbWl0XT1cIiFyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgPjwvY28tZWRpdGFibGUtbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9jby10cmFuc2FjdGlvbi1iYXNlLWxpbmU+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIC8vY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uUGxhbm5pbmdMaW5lQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3l7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoVHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uc0NvbXBvbmVudClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uczogVHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uc0NvbXBvbmVudDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGRlc2NyaXB0aW9uRGJsQ2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tb3ZlcnZpZXctbGluZVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJtb3VzZW92ZXJcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIHB1YmxpYyBoYW5kbGVNb3VzZU92ZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMubW91c2VPdmVyID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoXCJtb3VzZWxlYXZlXCIsIFtcIiRldmVudFwiXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VMZWF2ZShldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9jazogU3RvY2tTdGF0dXMgPSBTdG9ja1N0YXR1cy5Mb3c7XHJcbiAgcHVibGljIG1vdXNlT3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoYXNPcGVuZWRTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHN0YXR1c0JhckNvbmZpZ05hbWVzOiBTdGF0dXNCYXJDZmdOYW1lcyA9IHtcclxuICAgIHN0YXR1c0JhckJUOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckJULFxyXG4gICAgc3RhdHVzQmFyVEc6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVEcsXHJcbiAgICBzdGF0dXNCYXJQQTogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQQSxcclxuICAgIHN0YXR1c0JhclBWOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclBWLFxyXG4gICAgc3RhdHVzQmFyVFA6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyVFAsXHJcbiAgICBzdGF0dXNCYXJHVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHVCxcclxuICAgIHN0YXR1c0JhckdQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdQLFxyXG4gICAgc3RhdHVzQmFyR0w6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0wsXHJcbiAgICBzdGF0dXNCYXJHRjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHRlxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRpc2NvdW50Q29uZmlnTmFtZXM6IExpbmVEaXNjb3VudENmZ05hbWVzID0ge1xyXG4gICAgbGluZVByaWNlTGlzdDogdGhpcy5jZmdOYW1lcy5MaW5lUHJpY2VMaXN0LFxyXG4gICAgbGluZURpc2NvdW50QW1vdW50OiB0aGlzLmNmZ05hbWVzLkxpbmVEaXNjb3VudEFtb3VudCxcclxuICAgIGxpbmVEaXNjb3VudFBlcmNlbnRhZ2U6IHRoaXMuY2ZnTmFtZXMuTGluZURpc2NvdW50UGVyY2VudGFnZSxcclxuICAgIGxpbmVEaXNjb3VudFNwZWNpYWw6IHRoaXMuY2ZnTmFtZXMuTGluZURpc2NvdW50U3BlY2lhbCxcclxuICAgIGxpbmVEaXNjb3VudFF1YW50dW06IHRoaXMuY2ZnTmFtZXMuTGluZURpc2NvdW50UXVhbnR1bVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTGluZVRvQmVQaWNrZWRDb21wbGV0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9kZWxpdmVyeVBsYW5uaW5nU2VydmljZTogRGVsaXZlcnlQbGFubmluZ1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2NyZWVuQ29uZmlnU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBvcmRlckxpbmVTZXRTZXJ2aWNlOiBPcmRlckxpbmVTZXRTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCBzY3JlZW5Db25maWdTZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCB0cmFuc2FjdGlvblNlcnZpY2UsIGNoYW5nZURldGVjdG9yKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zZWxlY3RBbGxTYWxlc09yZGVyTGluZXNUb0JlUGlja2VkLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5zZWxlY3RlZCA9IHZhbHVlICYmICF0aGlzLnRyYW5zYWN0aW9uTGluZVRvQmVQaWNrZWRDb21wbGV0ZWQ7XHJcbiAgICAgIH0pXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICBpZih0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5wbGFuT3JkZXJEYXRlKSB7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnBsYW5PcmRlckRhdGUgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2hlY2tCb3hWYWx1ZUNoYW5nZWQodmFsdWU6IGJvb2xlYW4sIGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIGlmKHZhbHVlICYmICF0aGlzLmhhc09wZW5lZFNpZGVQYW5lbCkge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlblNpZGVQYW5lbC5uZXh0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICAgICAgICB0aGlzLmhhc09wZW5lZFNpZGVQYW5lbCA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5zZWxlY3RlZCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUxpbmVDbGlja2VkKG1vdXNlQ2xpY2s6IFBvaW50ZXJFdmVudCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXI/LmxpbmVzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhbk9yZGVyRGF0ZSA9IG5ldyBEYXRlKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmxpbmVzUGxhbk9yZGVyLmxpbmVzWzBdLmRlbGl2ZXJ5RGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGFyZ2V0OiBIVE1MRWxlbWVudCA9IDxIVE1MRWxlbWVudD5tb3VzZUNsaWNrLnRhcmdldDtcclxuICAgIGlmICh0YXJnZXQgJiYgdGFyZ2V0LmRhdGFzZXQgJiYgdGFyZ2V0LmRhdGFzZXRbJ2FjdGlvbiddICYmIHRhcmdldC5kYXRhc2V0WydhY3Rpb24nXSA9PT0gJ29wZW5TaWRlUGFuZWwnKSB7XHJcblxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5TaWRlUGFuZWwubmV4dCh0aGlzLnRyYW5zYWN0aW9uTGluZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZHJhZ1N0YXJ0ZWQoZXY6IGFueSkge1xyXG4gICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuY3VycmVudFRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgIGV2LmRhdGFUcmFuc2Zlci5zZXREYXRhKFwidGV4dFwiLCBcImxpbmVzXCIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBsaW5lUGxhbm5lZCgpIHtcclxuICAgIGlmKCF0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICF0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcj8ubGluZXM/LmZpbmQobGluZSA9PiBsaW5lLm9yaWdpbmFsTGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFsbG93UGFydGlhbERlbGl2ZXJ5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25JbmZvPy5hbGxvd1BhcnRpYWxEZWxpdmVyeTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLXBsYW5uaW5nLWxpbmUvdHJhbnNhY3Rpb24tcGxhbm5pbmctbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzFGLE9BQU8sRUFDTCxxQ0FBcUMsRUFDdEMsTUFBTSxpRkFBaUYsQ0FBQztBQUN6RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUdyRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV4RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwy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QUFTLFNBQUMscUNBQXFDO2tDQUcvQyxNQUFNO3dCQUdOLFdBQVcsU0FBQyxvQ0FBb0M7OEJBS2hELFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7K0JBS3BDLFlBQVksU0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvc3RvY2stc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnNDb21wb25lbnRcclxufSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zL3RyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtTdGF0dXNCYXJDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3N0YXR1cy1iYXItY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7TGluZURpc2NvdW50Q2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9saW5lLWRpc2NvdW50LWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge09yZGVyTGluZVNldFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2Uvb3JkZXItbGluZS1zZXQtc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtEZWxpdmVyeVBsYW5uaW5nU2VydmljZX0gZnJvbSBcIi4uLy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXBsYW5uaW5nLW92ZXJ2aWV3LWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWJhc2UtbGluZVxyXG4gICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgW3ByZXZpZXddPVwicHJldmlld1wiXHJcbiAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RcIlxyXG4gICAgICBbZHJhZ2dhYmxlXT1cIiFsaW5lUGxhbm5lZFwiXHJcbiAgICAgIChkcmFnc3RhcnQpPVwiZHJhZ1N0YXJ0ZWQoJGV2ZW50KVwiXHJcbiAgICAgIFtjaGVja2JveF09XCJ0cnVlXCJcclxuICAgICAgW2NoZWNrYm94VmFsdWVdPVwidHJhbnNhY3Rpb25MaW5lLnNlbGVjdGVkIHx8ICFhbGxvd1BhcnRpYWxEZWxpdmVyeSgpXCJcclxuICAgICAgW2NoZWNrYm94UmVhZG9ubHldPVwiIWFsbG93UGFydGlhbERlbGl2ZXJ5KClcIlxyXG4gICAgICAoY2hlY2tib3hWYWx1ZUNoYW5nZWQpPVwiaGFuZGxlQ2hlY2tCb3hWYWx1ZUNoYW5nZWQoJGV2ZW50LCB0cmFuc2FjdGlvbkxpbmUpXCJcclxuICAgICAgKGNsaWNrKT1cImhhbmRsZUxpbmVDbGlja2VkKCRldmVudClcIlxyXG4gICAgICBvYnNlcnZlVmlzaWJpbGl0eSAjb2JzZXJ2ZXI9dmlzaWJpbGl0eU9ic2VydmVcclxuICAgICAgKHZpc2liaWxpdHlDaGFuZ2UpPVwiaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSh0cmFuc2FjdGlvbkxpbmUsICRldmVudClcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc0FydGljbGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPSFwcmV2aWV3IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1leHRlbmRlZC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4xXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCInQ09NTUlTU0lPTl9DT0RFJyB8IGxvY2FsaXplXCIgKm5nSWY9XCJpc0ZpcnN0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWNvbW1pc3Npb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lQ29tbWlzc2lvblwiXHJcbiAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1jb21taXNzaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2x1bW4yXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cmFuc2FjdGlvbi1maWVsZC1sYWJlbFwiIFt0ZXh0Q29udGVudF09XCInV0FSRUhPVVNFX0FORF9TVEFUVVMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNGaXJzdFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS13YXJlaG91c2UtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lV2FyZWhvdXNlXCJcclxuICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1idXR0b24+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyXHJcbiAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TdGF0dXNCYXJcIlxyXG4gICAgICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cInN0YXR1c0JhckNvbmZpZ05hbWVzXCJcclxuICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJjYXRlZ29yeS5TYWxlc09yZGVyUGxhbm5pbmdcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbjNcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRyYW5zYWN0aW9uLWZpZWxkLWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9JTkZPUk1BVElPTicgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0ZpcnN0XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZURlbGl2ZXJ5TWV0aG9kXCJcclxuICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1kYXRlLWJ1dHRvbiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktZGF0ZSB0d28tY29sdW1uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lRGVsaXZlcnlEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktZGF0ZS1idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJhbnNhY3Rpb24tZmllbGQtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ1RPVEFMU19BTkRfRElTQ09VTlQnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImlzRmlyc3RcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXZhdC1idXR0b24gKm5nSWY9XCIhcHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuTGluZVZhdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS12YXQtYnV0dG9uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHNcIj5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1wcmljZSBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtdG90YWxzLXByaWNlIHByaWNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5MaW5lUHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkluZm9dPVwidHJhbnNhY3Rpb25JbmZvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dMYWJlbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRFZGl0TW9kZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1wcmljZT5cclxuICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1kaXNjb3VudC1idXR0b24gKm5nSWY9XCIhcHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVEaXNjb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWdOYW1lc109XCJkaXNjb3VudENvbmZpZ05hbWVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1kaXNjb3VudC1idXR0b24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtdG90YWxzLWFtb3VudFwiPlxyXG4gICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtYW1vdW50IGNsYXNzPVwiYW1vdW50LW51bWJlci1waWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVBbW91bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWFtb3VudD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8Y28tZWRpdGFibGUtbGFiZWwgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy10b3RhbCBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkxpbmVOZXRMaW5lVG90YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwidHJhbnNhY3Rpb25MaW5lLmRpc3BsYXlOZXRMaW5lVG90YWwgfCBjb0N1cnJlbmN5OiB0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRNb2RlbF09XCJ0cmFuc2FjdGlvbkxpbmUuZGlzcGxheU5ldExpbmVUb3RhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21taXRdPVwiIXJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICA+PC9jby1lZGl0YWJsZS1sYWJlbD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2NvLXRyYW5zYWN0aW9uLWJhc2UtbGluZT5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgLy9jaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25QbGFubmluZ0xpbmVDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveXtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcnk6IHR5cGVvZiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG5cclxuXHJcbiAgQFZpZXdDaGlsZChUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50KVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zOiBUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50O1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzY3JpcHRpb25EYmxDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1vdmVydmlldy1saW5lXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlb3ZlclwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlT3ZlcihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNlbGVhdmVcIiwgW1wiJGV2ZW50XCJdKVxyXG4gIHB1YmxpYyBoYW5kbGVNb3VzZUxlYXZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0b2NrOiBTdG9ja1N0YXR1cyA9IFN0b2NrU3RhdHVzLkxvdztcclxuICBwdWJsaWMgbW91c2VPdmVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGhhc09wZW5lZFNpZGVQYW5lbDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgc3RhdHVzQmFyQ29uZmlnTmFtZXM6IFN0YXR1c0JhckNmZ05hbWVzID0ge1xyXG4gICAgc3RhdHVzQmFyQlQ6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyQlQsXHJcbiAgICBzdGF0dXNCYXJURzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJURyxcclxuICAgIHN0YXR1c0JhclBBOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclBBLFxyXG4gICAgc3RhdHVzQmFyUFY6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyUFYsXHJcbiAgICBzdGF0dXNCYXJUUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJUUCxcclxuICAgIHN0YXR1c0JhckdUOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdULFxyXG4gICAgc3RhdHVzQmFyR1A6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR1AsXHJcbiAgICBzdGF0dXNCYXJHTDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHTCxcclxuICAgIHN0YXR1c0JhckdGOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdGXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzY291bnRDb25maWdOYW1lczogTGluZURpc2NvdW50Q2ZnTmFtZXMgPSB7XHJcbiAgICBsaW5lUHJpY2VMaXN0OiB0aGlzLmNmZ05hbWVzLkxpbmVQcmljZUxpc3QsXHJcbiAgICBsaW5lRGlzY291bnRBbW91bnQ6IHRoaXMuY2ZnTmFtZXMuTGluZURpc2NvdW50QW1vdW50LFxyXG4gICAgbGluZURpc2NvdW50UGVyY2VudGFnZTogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRQZXJjZW50YWdlLFxyXG4gICAgbGluZURpc2NvdW50U3BlY2lhbDogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRTcGVjaWFsLFxyXG4gICAgbGluZURpc2NvdW50UXVhbnR1bTogdGhpcy5jZmdOYW1lcy5MaW5lRGlzY291bnRRdWFudHVtXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lVG9CZVBpY2tlZENvbXBsZXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlOiBEZWxpdmVyeVBsYW5uaW5nU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyBzY3JlZW5Db25maWdTZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIG9yZGVyTGluZVNldFNlcnZpY2U6IE9yZGVyTGluZVNldFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICkge1xyXG4gICAgc3VwZXIodHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsIGljb25DYWNoZVNlcnZpY2UsIHNjcmVlbkNvbmZpZ1NlcnZpY2UsIGltYWdlU2VydmljZSwgZGljdGlvbmFyeVNlcnZpY2UsIHRyYW5zYWN0aW9uU2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnNlbGVjdEFsbFNhbGVzT3JkZXJMaW5lc1RvQmVQaWNrZWQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLnNlbGVjdGVkID0gdmFsdWUgJiYgIXRoaXMudHJhbnNhY3Rpb25MaW5lVG9CZVBpY2tlZENvbXBsZXRlZDtcclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIGlmKHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLnBsYW5PcmRlckRhdGUpIHtcclxuICAgICAgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UucGxhbk9yZGVyRGF0ZSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVDaGVja0JveFZhbHVlQ2hhbmdlZCh2YWx1ZTogYm9vbGVhbiwgbGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgaWYodmFsdWUgJiYgIXRoaXMuaGFzT3BlbmVkU2lkZVBhbmVsKSB7XHJcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLm5leHQodGhpcy50cmFuc2FjdGlvbkxpbmUpO1xyXG4gICAgICAgIHRoaXMuaGFzT3BlbmVkU2lkZVBhbmVsID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lLnNlbGVjdGVkID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlTGluZUNsaWNrZWQobW91c2VDbGljazogUG9pbnRlckV2ZW50KTogdm9pZCB7XHJcbiAgICBpZih0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5saW5lc1BsYW5PcmRlcj8ubGluZXM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5wbGFuT3JkZXJEYXRlID0gbmV3IERhdGUodGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UubGluZXNQbGFuT3JkZXIubGluZXNbMF0uZGVsaXZlcnlEYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0YXJnZXQ6IEhUTUxFbGVtZW50ID0gPEhUTUxFbGVtZW50Pm1vdXNlQ2xpY2sudGFyZ2V0O1xyXG4gICAgaWYgKHRhcmdldCAmJiB0YXJnZXQuZGF0YXNldCAmJiB0YXJnZXQuZGF0YXNldFsnYWN0aW9uJ10gJiYgdGFyZ2V0LmRhdGFzZXRbJ2FjdGlvbiddID09PSAnb3BlblNpZGVQYW5lbCcpIHtcclxuXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlblNpZGVQYW5lbC5uZXh0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkcmFnU3RhcnRlZChldjogYW55KSB7XHJcbiAgICB0aGlzLl9kZWxpdmVyeVBsYW5uaW5nU2VydmljZS5jdXJyZW50VHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgZXYuZGF0YVRyYW5zZmVyLnNldERhdGEoXCJ0ZXh0XCIsIFwibGluZXNcIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxpbmVQbGFubmVkKCkge1xyXG4gICAgaWYoIXRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmxpbmVzUGxhbk9yZGVyKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gIXRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmxpbmVzUGxhbk9yZGVyPy5saW5lcz8uZmluZChsaW5lID0+IGxpbmUub3JpZ2luYWxMaW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWxsb3dQYXJ0aWFsRGVsaXZlcnkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbkluZm8/LmFsbG93UGFydGlhbERlbGl2ZXJ5O1xyXG4gIH1cclxuXHJcbn1cclxuIl19
|
package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js
CHANGED
|
@@ -45,7 +45,7 @@ export class TransactionLineSupplierButtonComponent extends TransactionBaseCompo
|
|
|
45
45
|
this._getSupplierDescription();
|
|
46
46
|
}
|
|
47
47
|
_getSupplierDescription() {
|
|
48
|
-
if (this.transactionLine && this.transactionLine.isArticle && this.transactionLine.supplierDescription === undefined
|
|
48
|
+
if (this.transactionLine && this.transactionLine.isArticle && this.transactionLine.supplierDescription === undefined) {
|
|
49
49
|
this._relationService.getRelationById(this.transactionLine.supplierId).then((relations) => {
|
|
50
50
|
const relation = relations && relations.length > 0 ? relations[0] : null;
|
|
51
51
|
this.transactionLine.supplierDescription = relation ? relation.displayName : "";
|
|
@@ -108,4 +108,4 @@ TransactionLineSupplierButtonComponent.ctorParameters = () => [
|
|
|
108
108
|
TransactionLineSupplierButtonComponent.propDecorators = {
|
|
109
109
|
showClass: [{ type: HostBinding, args: ["class.co-transaction-line-supplier-button",] }]
|
|
110
110
|
};
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zdXBwbGllci1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZS1maWVsZHMvdHJhbnNhY3Rpb24tbGluZS1zdXBwbGllci1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFdEYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFFbkcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLDhDQUE4QyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUEwQjVGLE1BQU0sT0FBTyxzQ0FBdUMsU0FBUSx3QkFBd0I7SUFTbEYsWUFDUyx1QkFBZ0QsRUFDaEQsT0FBMkIsRUFDM0IsZ0JBQWtDLEVBQ2xDLHFDQUE0RSxFQUN6RSxpQkFBb0MsRUFDcEMsWUFBcUMs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RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUUsQ0FBQztLQUFBOzs7WUF0RkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQ0FBcUM7Z0JBQy9DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7O0dBZVQ7Z0JBQ0QsU0FBUyxFQUFFLENBQUM7d0JBQ1YsT0FBTyxFQUFFLDhDQUE4Qzt3QkFDdkQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQztxQkFBQztpQkFDdkU7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQTdCTyx1QkFBdUI7WUFQdkIsa0JBQWtCO1lBUWxCLGdCQUFnQjtZQUVoQixxQ0FBcUM7WUFKckMsaUJBQWlCO1lBR2pCLHVCQUF1QjtZQVZ2QixpQkFBaUI7WUFFakIsMEJBQTBCOzs7d0JBc0MvQixXQUFXLFNBQUMsMkNBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1yZWxhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1B1cmNoYXNlQWR2aWNlRmlsdGVyc30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLWFkdmljZS1maWx0ZXJzJztcclxuaW1wb3J0IHtQdXJjaGFzZUFkdmljZUxpbmV9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wdXJjaGFzZS1hZHZpY2UtbGluZS5ibyc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmUtc3VwcGxpZXItYnV0dG9uXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby10cmFuc2FjdGlvbi1idXR0b25cclxuICAgICAgICBbaGlkZGVuXT1cImhpZGRlblwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICBbbGFiZWxdPVwidHJhbnNhY3Rpb25MaW5lLnN1cHBsaWVyRGVzY3JpcHRpb24gPyB0cmFuc2FjdGlvbkxpbmUuc3VwcGxpZXJEZXNjcmlwdGlvbiA6ICgnU1VQUExJRVInIHwgbG9jYWxpemUpXCJcclxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3BlbkRpYWxvZygkZXZlbnQpXCJcclxuICAgICAgICBbY2xhc3NdPVwiJ2N1c3RvbS13aWR0aCdcIlxyXG4gICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuSW5kdXN0cnlSZWd1bGFyKVwiXHJcbiAgICA+PC9jby10cmFuc2FjdGlvbi1idXR0b24+XHJcbiAgICA8Y28tZGlhbG9nLXRyYW5zYWN0aW9uLWxpbmUtc3VwcGxpZXIgKm5nSWY9XCJzaG93RGlhbG9nU3VwcGxpZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXV0b0Nsb3NlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlKT1cInNob3dEaWFsb2dTdXBwbGllciA9IGZhbHNlXCJcclxuICAgID48L2NvLWRpYWxvZy10cmFuc2FjdGlvbi1saW5lLXN1cHBsaWVyPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRSxcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRyYW5zYWN0aW9uTGluZVN1cHBsaWVyQnV0dG9uQ29tcG9uZW50KX1cclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZVN1cHBsaWVyQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IHtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1zdXBwbGllci1idXR0b25cIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0RpYWxvZ1N1cHBsaWVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3JlbGF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCBzZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlT3BlbkRpYWxvZyhldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5ICYmIGF3YWl0IHRoaXMubG9ja1RyYW5zYWN0aW9uKCkpIHtcclxuICAgICAgdGhpcy5zaG93RGlhbG9nU3VwcGxpZXIgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25MaW5lU2V0KCk6IHZvaWQge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25MaW5lU2V0KCk7XHJcbiAgICB0aGlzLl9nZXRTdXBwbGllckRlc2NyaXB0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdmlzaWJpbGl0eVNldCh2aXNpYmxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBzdXBlci52aXNpYmlsaXR5U2V0KHZpc2libGUpO1xyXG4gICAgdGhpcy5fZ2V0U3VwcGxpZXJEZXNjcmlwdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0U3VwcGxpZXJEZXNjcmlwdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uTGluZSAmJiB0aGlzLnRyYW5zYWN0aW9uTGluZS5pc0FydGljbGUgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUuc3VwcGxpZXJEZXNjcmlwdGlvbiA9PT0gdW5kZWZpbmVkICYmIHRoaXMudmlzaWJsZSkge1xyXG4gICAgICB0aGlzLl9yZWxhdGlvblNlcnZpY2UuZ2V0UmVsYXRpb25CeUlkKHRoaXMudHJhbnNhY3Rpb25MaW5lLnN1cHBsaWVySWQpLnRoZW4oKHJlbGF0aW9uczogUmVsYXRpb25MaXN0T2JqZWN0W10pID0+IHtcclxuICAgICAgICBjb25zdCByZWxhdGlvbjogUmVsYXRpb25MaXN0T2JqZWN0ID0gcmVsYXRpb25zICYmIHJlbGF0aW9ucy5sZW5ndGggPiAwID8gcmVsYXRpb25zWzBdIDogbnVsbDtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5zdXBwbGllckRlc2NyaXB0aW9uID0gcmVsYXRpb24gPyByZWxhdGlvbi5kaXNwbGF5TmFtZSA6IFwiXCI7XHJcbiAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJlYWRvbmx5ID0gIXRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVGcmVlU3VwcGxpZXI7XHJcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVXNpbmcgZ29vZElkIGFzIGEgcGFyYW1ldGVyIHNob3VsZCByZXR1cm4gYSBzaW5nbGUgcmVzdWx0IHdoaWNoIGNhbiBiZSB1c2VkIGZvciB0aGUgc2lkZXBhbmVsIGluIGlzc3VlIElPTkUtMzQ5ODRcclxuICBwcml2YXRlIGFzeW5jIF9nZXRQdXJjaGFzZUFkdmljZUxpbmVzKHdhcmVob3VzZU5vOiBudW1iZXIsIGdvb2RJZD86IG51bWJlcik6IFByb21pc2U8UHVyY2hhc2VBZHZpY2VMaW5lW10+IHtcclxuICAgIGNvbnN0IGZpbHRlck9iamVjdDogUHVyY2hhc2VBZHZpY2VGaWx0ZXJzID0gbmV3IFB1cmNoYXNlQWR2aWNlRmlsdGVycygpO1xyXG4gICAgZmlsdGVyT2JqZWN0LnRyYW5zYWN0aW9uS2luZCA9ICdBJztcclxuICAgIGZpbHRlck9iamVjdC5wdXJjaGFzZUFkdmljZSA9IHRydWU7XHJcbiAgICBmaWx0ZXJPYmplY3QuY29tbWlzc2lvbkFkdmljZSA9IGZhbHNlO1xyXG4gICAgZmlsdGVyT2JqZWN0Lm9yZGVyRm9yQ29tQ29kZTEgPSB0cnVlO1xyXG4gICAgZmlsdGVyT2JqZWN0LndhcmVob3VzZUNvbGxlY3Rpb24gPSBbd2FyZWhvdXNlTm9dO1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFB1cmNoYXNlQWR2aWNlTGluZXMoZmlsdGVyT2JqZWN0LCBnb29kSWQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zdXBwbGllci1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24tbGluZS1maWVsZHMvdHJhbnNhY3Rpb24tbGluZS1zdXBwbGllci1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFdEYsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFFbkcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0csT0FBTyxFQUFDLDhDQUE4QyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUEwQjVGLE1BQU0sT0FBTyxzQ0FBdUMsU0FBUSx3QkFBd0I7SUFTbEYsWUFDUyx1QkFBZ0QsRUFDaEQsT0FBMkIsRUFDM0IsZ0JBQWtDLEVBQ2xDLHFDQUE0RSxFQUN6RSxpQkFBb0MsRUFDcEMsWUFBcUMs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QWtCLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlFLENBQUM7S0FBQTs7O1lBdEZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUNBQXFDO2dCQUMvQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztHQWVUO2dCQUNELFNBQVMsRUFBRSxDQUFDO3dCQUNWLE9BQU8sRUFBRSw4Q0FBOEM7d0JBQ3ZELFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0NBQXNDLENBQUM7cUJBQUM7aUJBQ3ZFO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUE3Qk8sdUJBQXVCO1lBUHZCLGtCQUFrQjtZQVFsQixnQkFBZ0I7WUFFaEIscUNBQXFDO1lBSnJDLGlCQUFpQjtZQUdqQix1QkFBdUI7WUFWdkIsaUJBQWlCO1lBRWpCLDBCQUEwQjs7O3dCQXNDL0IsV0FBVyxTQUFDLDJDQUEyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcmVsYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7UmVsYXRpb25MaXN0T2JqZWN0fSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtQdXJjaGFzZUFkdmljZUZpbHRlcnN9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wdXJjaGFzZS1hZHZpY2UtZmlsdGVycyc7XHJcbmltcG9ydCB7UHVyY2hhc2VBZHZpY2VMaW5lfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHVyY2hhc2UtYWR2aWNlLWxpbmUuYm8nO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7U0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1saW5lLXN1cHBsaWVyLWJ1dHRvblwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tdHJhbnNhY3Rpb24tYnV0dG9uXHJcbiAgICAgICAgW2hpZGRlbl09XCJoaWRkZW5cIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgW2xhYmVsXT1cInRyYW5zYWN0aW9uTGluZS5zdXBwbGllckRlc2NyaXB0aW9uID8gdHJhbnNhY3Rpb25MaW5lLnN1cHBsaWVyRGVzY3JpcHRpb24gOiAoJ1NVUFBMSUVSJyB8IGxvY2FsaXplKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZU9wZW5EaWFsb2coJGV2ZW50KVwiXHJcbiAgICAgICAgW2NsYXNzXT1cIidjdXN0b20td2lkdGgnXCJcclxuICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkluZHVzdHJ5UmVndWxhcilcIlxyXG4gICAgPjwvY28tdHJhbnNhY3Rpb24tYnV0dG9uPlxyXG4gICAgPGNvLWRpYWxvZy10cmFuc2FjdGlvbi1saW5lLXN1cHBsaWVyICpuZ0lmPVwic2hvd0RpYWxvZ1N1cHBsaWVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9DbG9zZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbG9zZSk9XCJzaG93RGlhbG9nU3VwcGxpZXIgPSBmYWxzZVwiXHJcbiAgICA+PC9jby1kaWFsb2ctdHJhbnNhY3Rpb24tbGluZS1zdXBwbGllcj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IFNDUkVFTl9DT05GSUdfQURBUFRFUl9DT01QT05FTlRfSU5URVJGQUNFX05BTUUsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUcmFuc2FjdGlvbkxpbmVTdXBwbGllckJ1dHRvbkNvbXBvbmVudCl9XHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVTdXBwbGllckJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCB7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmUtc3VwcGxpZXItYnV0dG9uXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dEaWFsb2dTdXBwbGllcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9yZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgc2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZU9wZW5EaWFsb2coZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICghdGhpcy5yZWFkb25seSAmJiBhd2FpdCB0aGlzLmxvY2tUcmFuc2FjdGlvbigpKSB7XHJcbiAgICAgIHRoaXMuc2hvd0RpYWxvZ1N1cHBsaWVyID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uTGluZVNldCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLnRyYW5zYWN0aW9uTGluZVNldCgpO1xyXG4gICAgdGhpcy5fZ2V0U3VwcGxpZXJEZXNjcmlwdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZpc2liaWxpdHlTZXQodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgc3VwZXIudmlzaWJpbGl0eVNldCh2aXNpYmxlKTtcclxuICAgIHRoaXMuX2dldFN1cHBsaWVyRGVzY3JpcHRpb24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFN1cHBsaWVyRGVzY3JpcHRpb24oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUgJiYgdGhpcy50cmFuc2FjdGlvbkxpbmUuaXNBcnRpY2xlICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lLnN1cHBsaWVyRGVzY3JpcHRpb24gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLl9yZWxhdGlvblNlcnZpY2UuZ2V0UmVsYXRpb25CeUlkKHRoaXMudHJhbnNhY3Rpb25MaW5lLnN1cHBsaWVySWQpLnRoZW4oKHJlbGF0aW9uczogUmVsYXRpb25MaXN0T2JqZWN0W10pID0+IHtcclxuICAgICAgICBjb25zdCByZWxhdGlvbjogUmVsYXRpb25MaXN0T2JqZWN0ID0gcmVsYXRpb25zICYmIHJlbGF0aW9ucy5sZW5ndGggPiAwID8gcmVsYXRpb25zWzBdIDogbnVsbDtcclxuICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5zdXBwbGllckRlc2NyaXB0aW9uID0gcmVsYXRpb24gPyByZWxhdGlvbi5kaXNwbGF5TmFtZSA6IFwiXCI7XHJcbiAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnJlYWRvbmx5ID0gIXRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVGcmVlU3VwcGxpZXI7XHJcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVXNpbmcgZ29vZElkIGFzIGEgcGFyYW1ldGVyIHNob3VsZCByZXR1cm4gYSBzaW5nbGUgcmVzdWx0IHdoaWNoIGNhbiBiZSB1c2VkIGZvciB0aGUgc2lkZXBhbmVsIGluIGlzc3VlIElPTkUtMzQ5ODRcclxuICBwcml2YXRlIGFzeW5jIF9nZXRQdXJjaGFzZUFkdmljZUxpbmVzKHdhcmVob3VzZU5vOiBudW1iZXIsIGdvb2RJZD86IG51bWJlcik6IFByb21pc2U8UHVyY2hhc2VBZHZpY2VMaW5lW10+IHtcclxuICAgIGNvbnN0IGZpbHRlck9iamVjdDogUHVyY2hhc2VBZHZpY2VGaWx0ZXJzID0gbmV3IFB1cmNoYXNlQWR2aWNlRmlsdGVycygpO1xyXG4gICAgZmlsdGVyT2JqZWN0LnRyYW5zYWN0aW9uS2luZCA9ICdBJztcclxuICAgIGZpbHRlck9iamVjdC5wdXJjaGFzZUFkdmljZSA9IHRydWU7XHJcbiAgICBmaWx0ZXJPYmplY3QuY29tbWlzc2lvbkFkdmljZSA9IGZhbHNlO1xyXG4gICAgZmlsdGVyT2JqZWN0Lm9yZGVyRm9yQ29tQ29kZTEgPSB0cnVlO1xyXG4gICAgZmlsdGVyT2JqZWN0LndhcmVob3VzZUNvbGxlY3Rpb24gPSBbd2FyZWhvdXNlTm9dO1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFB1cmNoYXNlQWR2aWNlTGluZXMoZmlsdGVyT2JqZWN0LCBnb29kSWQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|