@colijnit/transaction 256.1.8 → 256.1.9
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 +312 -181
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/lib/cache/service/transaction-business-object-cache-manager.service.js +1 -1
- package/esm2015/lib/cache/service/transaction-select-multiple-parameterized-cache.service.js +1 -1
- package/esm2015/lib/cache/service/transaction-select-single-parameterized-cache.service.js +1 -1
- package/esm2015/lib/component/core/base/dialog-transaction-base.component.js +2 -1
- package/esm2015/lib/component/core/base/transaction-base.component.js +30 -1
- package/esm2015/lib/component/core/base/transaction-search-tile-base.component.js +23 -4
- package/esm2015/lib/component/quick-send-button/quick-send-button.component.js +3 -2
- package/esm2015/lib/component/search/search-filter-panel/search-filter-panel.component.js +10 -4
- package/esm2015/lib/component/search/search-header-buttons/search-header-buttons.component.js +13 -4
- package/esm2015/lib/component/search/search-view-mode.service.js +1 -9
- package/esm2015/lib/component/search/search.component.js +28 -11
- package/esm2015/lib/component/transaction/transaction.component.js +1 -1
- package/esm2015/lib/component/transaction-button/transaction-button.component.js +8 -5
- package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-allocation-button-bar-button.component.js +3 -2
- package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +6 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method-button/transaction-header-delivery-method-button.component.js +5 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-deliverydate-definitive-button/transaction-header-deliverydate-definitive-button.component.js +4 -2
- package/esm2015/lib/component/transaction-header-fields/transaction-header-remaining-amount.component.js +2 -2
- package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +15 -26
- package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.js +1 -1
- package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.component.js +11 -10
- package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +4 -3
- package/esm2015/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.js +100 -101
- package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.js +13 -5
- package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line-base.component.js +4 -1
- package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.js +2 -2
- package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.js +8 -5
- package/esm2015/lib/component/transaction-line-fields/transaction-line-confirmed-delivery-date-button.component.js +5 -2
- package/esm2015/lib/component/transaction-line-fields/transaction-line-description.component.js +5 -3
- package/esm2015/lib/component/transaction-line-fields/transaction-line-drop-shipment-button.component.js +3 -14
- package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +4 -5
- package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +2 -1
- package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.js +7 -3
- package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +3 -1
- package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.js +7 -3
- package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.component.js +72 -70
- package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-search-sales-line-select-tile.component.js +20 -17
- package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.js +80 -70
- package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-quotation-tile/transaction-search-sales-quotation-tile.component.js +7 -5
- package/esm2015/lib/component/transaction-search/transaction-search.component.js +2 -1
- package/esm2015/lib/component/transaction-service-overview/transaction-service-overview.component.js +95 -80
- package/esm2015/lib/component/transaction-tags/transaction-tags.component.js +11 -5
- package/esm2015/lib/component/transaction-totals/transaction-totals.component.js +7 -3
- package/esm2015/lib/service/article.service.js +1 -1
- package/esm2015/lib/service/purchase-confirmation.service.js +4 -2
- package/esm2015/lib/service/transaction-connector-adapter.service.js +4 -1
- package/esm2015/lib/service/transaction-connector.service.js +45 -35
- package/esm2015/lib/service/transaction-relation.service.js +5 -4
- package/esm2015/lib/service/transaction.service.js +3 -3
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +592 -451
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/cache/service/transaction-business-object-cache-manager.service.d.ts +12 -14
- package/lib/cache/service/transaction-select-multiple-parameterized-cache.service.d.ts +2 -2
- package/lib/cache/service/transaction-select-single-parameterized-cache.service.d.ts +1 -2
- package/lib/component/core/base/transaction-search-tile-base.component.d.ts +10 -4
- package/lib/component/search/search-filter-panel/search-filter-panel.component.d.ts +4 -0
- package/lib/component/search/search-header-buttons/search-header-buttons.component.d.ts +3 -1
- package/lib/component/search/search-view-mode.service.d.ts +0 -1
- package/lib/component/search/search.component.d.ts +7 -3
- package/lib/component/transaction/transaction.component.d.ts +2 -1
- package/lib/component/transaction-button/transaction-button.component.d.ts +3 -1
- package/lib/component/transaction-internal/transaction-internal.component.d.ts +3 -2
- package/lib/component/transaction-line/transaction-planning-line/style/_layout.scss +0 -2
- package/lib/component/transaction-line/transaction-planning-line/style/_theme.scss +1 -3
- package/lib/component/transaction-line/transaction-planning-line/style/material.scss +1 -0
- package/lib/component/transaction-line/transaction-planning-line/transaction-planning-line.component.d.ts +2 -3
- package/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.d.ts +2 -0
- package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.d.ts +4 -3
- package/lib/component/transaction-line-fields/transaction-line-confirmed-delivery-date-button.component.d.ts +1 -0
- package/lib/component/transaction-line-fields/transaction-line-description.component.d.ts +1 -0
- package/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.d.ts +3 -2
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.component.d.ts +3 -1
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-search-sales-line-select-tile.component.d.ts +5 -4
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.d.ts +6 -2
- package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-quotation-tile/transaction-search-sales-quotation-tile.component.d.ts +3 -1
- package/lib/component/transaction-service-overview/transaction-service-overview.component.d.ts +19 -19
- package/lib/component/transaction-tags/transaction-tags.component.d.ts +3 -2
- package/lib/component/transaction-totals/transaction-totals.component.d.ts +3 -2
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
|
-
import { ApplicationRef, Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChildren, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { ApplicationRef, ChangeDetectionStrategy, Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChildren, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import { TransactionTypeCategory } from '../../enum/transaction-type-category.enum';
|
|
4
4
|
import { ContentViewMode } from '@colijnit/corecomponents_v12';
|
|
5
5
|
import { Icon } from '../../enum/icon.enum';
|
|
@@ -23,7 +23,7 @@ import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction
|
|
|
23
23
|
import { TransactionMarginInfo } from '@colijnit/transactionapi/build/model/transaction-margin-info.bo';
|
|
24
24
|
import { DeliveryPlanningService } from '../delivery-planning/service/delivery-planning.service';
|
|
25
25
|
import { DeliveryPlanningModes } from '../../enum/delivery-planning-modes.enum';
|
|
26
|
-
import { TransactionBaseService } from
|
|
26
|
+
import { TransactionBaseService } from '../../service/transaction-base.service';
|
|
27
27
|
export class TransactionInternalComponent {
|
|
28
28
|
constructor(iconCacheService, service, transactionEventService, _appRef, _dynamicComponentService, _transactionConnectorService, _transactionEventService, _screenConfigurationService, _dialogService, _lineSelectionService, _purchaseConfirmationService, _deliveryPlanningService, _transactionBaseService) {
|
|
29
29
|
this.iconCacheService = iconCacheService;
|
|
@@ -256,7 +256,7 @@ export class TransactionInternalComponent {
|
|
|
256
256
|
if(result) {*/
|
|
257
257
|
this._transactionEventService.requestCreateServiceOrderFromTransactionLine.next({ transaction: this.transaction, lineNr: lineNr });
|
|
258
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({
|
|
259
|
+
this.serviceRequested.emit({ transactionNr: this.transaction.transactionInfo.transactionNr, transactionId: this.transaction.transactionInfo.id, lineNr: lineNr });
|
|
260
260
|
/* }
|
|
261
261
|
});*/
|
|
262
262
|
}
|
|
@@ -411,8 +411,7 @@ TransactionInternalComponent.decorators = [
|
|
|
411
411
|
[screenConfigurationObject]="cfgNames.HeaderBranch"
|
|
412
412
|
screenConfigNativeElement>
|
|
413
413
|
</co-avatar>
|
|
414
|
-
<co-view-mode-buttons
|
|
415
|
-
*ngIf="!shouldShowTiles() && showViewModeButtons"
|
|
414
|
+
<co-view-mode-buttons *ngIf="!shouldShowTiles() && showViewModeButtons"
|
|
416
415
|
[showViewModes]="[viewModes.List, viewModes.Tiles]"
|
|
417
416
|
(viewModeChange)="handleViewModeChange($event)">
|
|
418
417
|
</co-view-mode-buttons>
|
|
@@ -449,9 +448,8 @@ TransactionInternalComponent.decorators = [
|
|
|
449
448
|
activeCategory === categories.SalesOrderQuotation ||
|
|
450
449
|
activeCategory === categories.ServiceOrderOverview">
|
|
451
450
|
</co-add-product>
|
|
452
|
-
<co-transaction-button
|
|
451
|
+
<co-transaction-button *ngIf="activeCategory !== categories.ServiceOrderService"
|
|
453
452
|
class="custom-width text-rule"
|
|
454
|
-
*ngIf="activeCategory !== categories.ServiceOrderService"
|
|
455
453
|
[iconData]="iconCacheService.getIcon(icons.TextSolid)"
|
|
456
454
|
(click)="handleTransactionText()">
|
|
457
455
|
</co-transaction-button>
|
|
@@ -462,9 +460,7 @@ TransactionInternalComponent.decorators = [
|
|
|
462
460
|
[transactionInfo]="transaction.transactionInfo"
|
|
463
461
|
></co-transaction-margin>
|
|
464
462
|
</div>
|
|
465
|
-
|
|
466
|
-
<co-transaction-totals
|
|
467
|
-
*ngIf="activeCategory !== category.ServiceOrderService"
|
|
463
|
+
<co-transaction-totals *ngIf="activeCategory !== category.ServiceOrderService"
|
|
468
464
|
[transactionInfo]="transaction.transactionInfo"
|
|
469
465
|
[transactionTotal]="transaction.transactionTotal"
|
|
470
466
|
[showDiscount]="true">
|
|
@@ -472,16 +468,12 @@ TransactionInternalComponent.decorators = [
|
|
|
472
468
|
</div>
|
|
473
469
|
</div>
|
|
474
470
|
|
|
475
|
-
<co-transaction-lines-side-panel
|
|
476
|
-
*ngIf="
|
|
477
|
-
transaction &&
|
|
478
|
-
(transaction.transactionInfo.transactionKind === transactionKind.CashDesk && !fullyInvoiced())"
|
|
471
|
+
<co-transaction-lines-side-panel *ngIf="transaction && (transaction.transactionInfo.transactionKind === transactionKind.CashDesk && !fullyInvoiced())"
|
|
479
472
|
[posOrderData]="posOrderData"
|
|
480
473
|
[transaction]="transaction">
|
|
481
474
|
</co-transaction-lines-side-panel>
|
|
482
475
|
|
|
483
|
-
<co-transaction-line-side-panel
|
|
484
|
-
*ngIf="showSidePanel"
|
|
476
|
+
<co-transaction-line-side-panel *ngIf="showSidePanel"
|
|
485
477
|
[transaction]="transaction"
|
|
486
478
|
[transactionInfo]="transaction.transactionInfo"
|
|
487
479
|
[transactionLine]="sidePanelTransactionLine"
|
|
@@ -490,8 +482,7 @@ TransactionInternalComponent.decorators = [
|
|
|
490
482
|
</co-transaction-line-side-panel>
|
|
491
483
|
|
|
492
484
|
<!--Popup voor wijzigen volgorde van tekstregels-->
|
|
493
|
-
<co-transaction-article-text-overview
|
|
494
|
-
*ngIf="showArticleTextOverview"
|
|
485
|
+
<co-transaction-article-text-overview *ngIf="showArticleTextOverview"
|
|
495
486
|
[transactionInfo]="transaction.transactionInfo"
|
|
496
487
|
[transactionLine]="transactionLine"
|
|
497
488
|
(closeClick)="closeArticleTextOverview()"
|
|
@@ -499,8 +490,7 @@ TransactionInternalComponent.decorators = [
|
|
|
499
490
|
</co-transaction-article-text-overview>
|
|
500
491
|
|
|
501
492
|
<!--Popup voor aanmaken en updaten transactietekstregels-->
|
|
502
|
-
<co-transaction-article-text
|
|
503
|
-
*ngIf="showTransactionText"
|
|
493
|
+
<co-transaction-article-text *ngIf="showTransactionText"
|
|
504
494
|
[header]="'ORDER_TEXT_LINE' | localize"
|
|
505
495
|
[transactionUuid]="transaction.transactionInfo.uuid"
|
|
506
496
|
[editText]="textToEdit"
|
|
@@ -513,8 +503,7 @@ TransactionInternalComponent.decorators = [
|
|
|
513
503
|
</co-transaction-article-text>
|
|
514
504
|
|
|
515
505
|
<!--Popup voor aanmaken en updaten artikeltekstregels-->
|
|
516
|
-
<co-transaction-article-text
|
|
517
|
-
*ngIf="showArticleText"
|
|
506
|
+
<co-transaction-article-text *ngIf="showArticleText"
|
|
518
507
|
[header]="'PRODUCT_DESCRIPTION_AND_TEXTS' | localize"
|
|
519
508
|
[transactionUuid]="transaction.transactionInfo.uuid"
|
|
520
509
|
[showArticleImageDescription]="transactionLine.articleBound"
|
|
@@ -528,15 +517,15 @@ TransactionInternalComponent.decorators = [
|
|
|
528
517
|
(cancelClick)="closeArticleText()">
|
|
529
518
|
</co-transaction-article-text>
|
|
530
519
|
|
|
531
|
-
<co-transaction-copy-order
|
|
532
|
-
*ngIf="showCopyOrderDialog"
|
|
520
|
+
<co-transaction-copy-order *ngIf="showCopyOrderDialog"
|
|
533
521
|
[transaction]="transaction"
|
|
534
522
|
(closeDialog)="showCopyOrderDialog = false">
|
|
535
523
|
</co-transaction-copy-order>
|
|
536
524
|
</div>
|
|
537
525
|
</ng-container>
|
|
538
526
|
`,
|
|
539
|
-
encapsulation: ViewEncapsulation.None
|
|
527
|
+
encapsulation: ViewEncapsulation.None,
|
|
528
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
|
540
529
|
},] }
|
|
541
530
|
];
|
|
542
531
|
TransactionInternalComponent.ctorParameters = () => [
|
|
@@ -571,4 +560,4 @@ TransactionInternalComponent.propDecorators = {
|
|
|
571
560
|
showClass: [{ type: HostBinding, args: ['class.co-transaction-internal',] }],
|
|
572
561
|
onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
|
|
573
562
|
};
|
|
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=
|
|
563
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvdHJhbnNhY3Rpb24taW50ZXJuYWwvdHJhbnNhY3Rpb24taW50ZXJuYWwuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsY0FBYyxFQUNkLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixZQUFZLEVBQ1osaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFFdkgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sbUVBQW1FLENBQUM7QUFJMUcsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0cs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QUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW4sXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW0nO1xyXG5pbXBvcnQge0NvbnRlbnRWaWV3TW9kZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ2ZnTmFtZX0gZnJvbSAnLi4vLi4vZW51bS90cmFuc2FjdGlvbi1jZmctbmFtZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLWxpbmUtc2lkZS1wYW5lbC90cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcclxuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtTdGF0dXNCYXJDZmdOYW1lc30gZnJvbSAnLi4vLi4vaW50ZXJmYWNlL3N0YXR1cy1iYXItY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0R5bmFtaWNDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7TGluZVNlbGVjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvbGluZS1zZWxlY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXJCdXR0b259IGZyb20gJy4uLy4uL21vZGVsL3RyYW5zYWN0aW9uLWJhci1idXR0b24nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYWRkLXRleHQtbGluZS1yZXF1ZXN0LmJvJztcclxuaW1wb3J0IHtPcmRlckxpbmVTZXREVE99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vcmRlci1saW5lLXNldC1kdG8nO1xyXG5pbXBvcnQge09yZGVyTGluZVNldEluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vcmRlci1saW5lLXNldC1pbmZvLmJvJztcclxuaW1wb3J0IHtcclxuICBUcmFuc2FjdGlvbkFkZE9yZGVyTGluZVNldFRleHRMaW5lUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtb3JkZXItbGluZS1zZXQtdGV4dC1saW5lLXJlcXVlc3QnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7UHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3B1cmNoYXNlLWNvbmZpcm1hdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtpc05pbGx9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb24nO1xyXG5pbXBvcnQge1Bvc09yZGVyRGF0YX0gZnJvbSAnLi4vLi4vbW9kZWwvcG9zLW9yZGVyLWRhdGEnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk1hcmdpbkluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1tYXJnaW4taW5mby5ibyc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ1NlcnZpY2V9IGZyb20gJy4uL2RlbGl2ZXJ5LXBsYW5uaW5nL3NlcnZpY2UvZGVsaXZlcnktcGxhbm5pbmcuc2VydmljZSc7XHJcbmltcG9ydCB7RGVsaXZlcnlQbGFubmluZ01vZGVzfSBmcm9tICcuLi8uLi9lbnVtL2RlbGl2ZXJ5LXBsYW5uaW5nLW1vZGVzLmVudW0nO1xyXG5pbXBvcnQge1BsYW5PcmRlcn0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BsYW4tb3JkZXIuYm8nO1xyXG5pbXBvcnQge1BsYW5uaW5nfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGxhbm5pbmcuYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tYmFzZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tdHJhbnNhY3Rpb24taW50ZXJuYWwnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGVkXCI+XHJcbiAgICAgIDxjby1jbGljay1ibG9jaz48L2NvLWNsaWNrLWJsb2NrPlxyXG4gICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyXHJcbiAgICAgICAgKm5nSWY9XCJzaG93SGVhZGVyXCJcclxuICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXHJcbiAgICAgICAgKHJlbGF0aW9uQ2hhbmdlKT1cImhhbmRsZVJlbGF0aW9uQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPC9jby10cmFuc2FjdGlvbi1oZWFkZXI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZXMtaGVhZGVyXCI+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzc1xyXG4gICAgICAgICAgKm5nSWY9XCJzaG93UXVpY2tBY2Nlc3NcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbVwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcclxuICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1idXR0b24tYmFyXHJcbiAgICAgICAgICAqbmdJZj1cInNob3dCdXR0b25CYXJcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbVwiXHJcbiAgICAgICAgICBbc2VsZWN0ZWRDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVCdXR0b25CYXJCdXR0b25DbGlja2VkKCRldmVudClcIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbi1iYXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lcy1oZWFkZXItaXRlbSByaWdodFwiPlxyXG4gICAgICAgICAgPGNvLWF2YXRhclxyXG4gICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLXNhbGVzLWF2YXRhclwiXHJcbiAgICAgICAgICAgIFtyZWxhdGlvbklkXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5oYW5kbGVkQnlcIlxyXG4gICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5IZWFkZXJIYW5kbGVkQnlcIlxyXG4gICAgICAgICAgICBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxyXG4gICAgICAgICAgPC9jby1hdmF0YXI+XHJcbiAgICAgICAgICA8Y28tYXZhdGFyXHJcbiAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tc2FsZXMtYXZhdGFyXCJcclxuICAgICAgICAgICAgW3JlbGF0aW9uSWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmJyYW5jaD8ucmVsYXRpb25JZFwiXHJcbiAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkhlYWRlckJyYW5jaFwiXHJcbiAgICAgICAgICAgIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XHJcbiAgICAgICAgICA8L2NvLWF2YXRhcj5cclxuICAgICAgICAgIDxjby12aWV3LW1vZGUtYnV0dG9ucyAqbmdJZj1cIiFzaG91bGRTaG93VGlsZXMoKSAmJiBzaG93Vmlld01vZGVCdXR0b25zXCJcclxuICAgICAgICAgICAgW3Nob3dWaWV3TW9kZXNdPVwiW3ZpZXdNb2Rlcy5MaXN0LCB2aWV3TW9kZXMuVGlsZXNdXCJcclxuICAgICAgICAgICAgKHZpZXdNb2RlQ2hhbmdlKT1cImhhbmRsZVZpZXdNb2RlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgIDwvY28tdmlldy1tb2RlLWJ1dHRvbnM+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgIDwhLS08Y28tdHJhbnNhY3Rpb24tZG9jdW1lbnQtYnV0dG9uLWJhciBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIj48L2NvLXRyYW5zYWN0aW9uLWRvY3VtZW50LWJ1dHRvbi1iYXI+LS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLWNvbnRlbnRcIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcnkuU2VydmljZU9yZGVyU2VydmljZVwiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldyBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiPjwvY28tdHJhbnNhY3Rpb24tc2VydmljZS1vdmVydmlldz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLXRpbGVzLXdyYXBwZXJcIiAqbmdJZj1cImFjdGl2ZVZpZXdNb2RlID09PSB2aWV3TW9kZXMuVGlsZXMgfHwgc2hvdWxkU2hvd1RpbGVzKCkgfHwgdHJhbnNhY3Rpb25QbGFubmluZ1wiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tY2FyZHNcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLnBsYW5uaW5nLWNhcmRzXT1cInRyYW5zYWN0aW9uUGxhbm5pbmdcIj5cclxuICAgICAgICAgICAgPC9jby10cmFuc2FjdGlvbi1jYXJkcz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVzLXdyYXBwZXJcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cIihhY3RpdmVWaWV3TW9kZSA9PT0gdmlld01vZGVzLkxpc3QgJiYgIXNob3VsZFNob3dUaWxlcygpKSAmJiBhY3RpdmVDYXRlZ29yeSAhPT0gY2F0ZWdvcnkuU2VydmljZU9yZGVyU2VydmljZSAmJiAhdHJhbnNhY3Rpb25QbGFubmluZ1wiPlxyXG4gICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZXNcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJhY3RpdmVDYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgKHNhdmVUcmFuc2FjdGlvbkxpbmUpPVwic2F2ZVRyYW5zYWN0aW9uTGluZVRleHQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmVzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWZvb3Rlci1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgPGNvLWFkZC1wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJDYXNoUmVnaXN0ZXIgfHxcclxuICAgICAgICAgICAgICAgIGFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yaWVzLlNhbGVzT3JkZXJPdmVydmlldyB8fFxyXG4gICAgICAgICAgICAgICAgYWN0aXZlQ2F0ZWdvcnkgPT09IGNhdGVnb3JpZXMuUHVyY2hhc2VPcmRlck92ZXJ2aWV3IHx8XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyUXVvdGF0aW9uIHx8XHJcbiAgICAgICAgICAgICAgICBhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TZXJ2aWNlT3JkZXJPdmVydmlld1wiPlxyXG4gICAgICAgICAgICAgIDwvY28tYWRkLXByb2R1Y3Q+XHJcbiAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWJ1dHRvbiAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICE9PSBjYXRlZ29yaWVzLlNlcnZpY2VPcmRlclNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20td2lkdGggdGV4dC1ydWxlXCJcclxuICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVGV4dFNvbGlkKVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlVHJhbnNhY3Rpb25UZXh0KClcIj5cclxuICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tZm9vdGVyLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1tYXJnaW4gKm5nSWY9XCJhY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcmllcy5TYWxlc09yZGVyTWFyZ2luSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbWFyZ2luPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLXRvdGFscyAqbmdJZj1cImFjdGl2ZUNhdGVnb3J5ICE9PSBjYXRlZ29yeS5TZXJ2aWNlT3JkZXJTZXJ2aWNlXCJcclxuICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uVG90YWxdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25Ub3RhbFwiXHJcbiAgICAgICAgICAgICAgW3Nob3dEaXNjb3VudF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDwvY28tdHJhbnNhY3Rpb24tdG90YWxzPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lcy1zaWRlLXBhbmVsICpuZ0lmPVwidHJhbnNhY3Rpb24gJiYgKHRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbktpbmQgPT09IHRyYW5zYWN0aW9uS2luZC5DYXNoRGVzayAmJiAhZnVsbHlJbnZvaWNlZCgpKVwiXHJcbiAgICAgICAgICBbcG9zT3JkZXJEYXRhXT1cInBvc09yZGVyRGF0YVwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIj5cclxuICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWxpbmVzLXNpZGUtcGFuZWw+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXNpZGUtcGFuZWwgKm5nSWY9XCJzaG93U2lkZVBhbmVsXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJ0cmFuc2FjdGlvblwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwiYWN0aXZlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgKGNhbmNlbENsaWNrKT1cInNob3dTaWRlUGFuZWwgPSBmYWxzZVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tbGluZS1zaWRlLXBhbmVsPlxyXG5cclxuICAgICAgICA8IS0tUG9wdXAgdm9vciB3aWp6aWdlbiB2b2xnb3JkZSB2YW4gdGVrc3RyZWdlbHMtLT5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3ICpuZ0lmPVwic2hvd0FydGljbGVUZXh0T3ZlcnZpZXdcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dE92ZXJ2aWV3KClcIlxyXG4gICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlQXJ0aWNsZVRleHRPdmVydmlldygpXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXc+XHJcblxyXG4gICAgICAgIDwhLS1Qb3B1cCB2b29yIGFhbm1ha2VuIGVuIHVwZGF0ZW4gdHJhbnNhY3RpZXRla3N0cmVnZWxzLS0+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dCAqbmdJZj1cInNob3dUcmFuc2FjdGlvblRleHRcIlxyXG4gICAgICAgICAgW2hlYWRlcl09XCInT1JERVJfVEVYVF9MSU5FJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvblV1aWRdPVwidHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWRcIlxyXG4gICAgICAgICAgW2VkaXRUZXh0XT1cInRleHRUb0VkaXRcIlxyXG4gICAgICAgICAgW29yZGVyTGluZVNldERUT109XCJzZWxlY3RlZE9yZGVyTGluZVNldERUT1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAoc2F2ZUNsaWNrKT1cInNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvblRleHQoKVwiXHJcbiAgICAgICAgICAoc2F2ZU9yZGVyTGluZVNldENsaWNrKT1cInNhdmVPcmRlckxpbmVTZXQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG5cclxuICAgICAgICA8IS0tUG9wdXAgdm9vciBhYW5tYWtlbiBlbiB1cGRhdGVuIGFydGlrZWx0ZWtzdHJlZ2Vscy0tPlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQgKm5nSWY9XCJzaG93QXJ0aWNsZVRleHRcIlxyXG4gICAgICAgICAgW2hlYWRlcl09XCInUFJPRFVDVF9ERVNDUklQVElPTl9BTkRfVEVYVFMnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uVXVpZF09XCJ0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZFwiXHJcbiAgICAgICAgICBbc2hvd0FydGljbGVJbWFnZURlc2NyaXB0aW9uXT1cInRyYW5zYWN0aW9uTGluZS5hcnRpY2xlQm91bmRcIlxyXG4gICAgICAgICAgW3Nob3dJbWFnZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYXJ0aWNsZUxpbmVOcl09XCJ0cmFuc2FjdGlvbkxpbmUubGluZU5yXCJcclxuICAgICAgICAgIFthcnRpY2xlUmVmXT1cInRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTnVtYmVyXCJcclxuICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgIFtlZGl0VGV4dF09XCJ0ZXh0VG9FZGl0XCJcclxuICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZUFydGljbGVMaW5lVGV4dCgkZXZlbnQpXCJcclxuICAgICAgICAgIChjbG9zZUNsaWNrKT1cImNsb3NlQXJ0aWNsZVRleHQoKVwiXHJcbiAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VBcnRpY2xlVGV4dCgpXCI+XHJcbiAgICAgICAgPC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQ+XHJcblxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1jb3B5LW9yZGVyICpuZ0lmPVwic2hvd0NvcHlPcmRlckRpYWxvZ1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwidHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgKGNsb3NlRGlhbG9nKT1cInNob3dDb3B5T3JkZXJEaWFsb2cgPSBmYWxzZVwiPlxyXG4gICAgICAgIDwvY28tdHJhbnNhY3Rpb24tY29weS1vcmRlcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uSW50ZXJuYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyByZWFkb25seSBjYXRlZ29yaWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgcmVhZG9ubHkgZGVsaXZlcnlQbGFubmluZ01vZGVzOiB0eXBlb2YgRGVsaXZlcnlQbGFubmluZ01vZGVzID0gRGVsaXZlcnlQbGFubmluZ01vZGVzO1xyXG4gIHB1YmxpYyByZWFkb25seSB2aWV3TW9kZXM6IHR5cGVvZiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGU7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcbiAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgVHJhbnNhY3Rpb25DZmdOYW1lID0gVHJhbnNhY3Rpb25DZmdOYW1lO1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvbktpbmQ6IHR5cGVvZiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNhdGVnb3J5OiB0eXBlb2YgVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkgPSBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeTtcclxuICBwdWJsaWMgc2NyZWVuV2lkdGg6IG51bWJlcjtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbihUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnQpXHJcbiAgcHVibGljIHNpZGVQYW5lbENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxUcmFuc2FjdGlvbkxpbmVTaWRlUGFuZWxDb21wb25lbnQ+O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9jb25maXJtYXRpb25BbmFseXNpc0lkID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmFjdGl2ZVJ1YnJpYyA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbjtcclxuICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbjtcclxuICAgIH1cclxuICAgIHRoaXMuX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZS5jb25maXJtYXRpb25BbmFseXNpc0lkID0gdGhpcy5fY29uZmlybWF0aW9uQW5hbHlzaXNJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY29uZmlybWF0aW9uQW5hbHlzaXNJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpcm1hdGlvbkFuYWx5c2lzSWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwb3NPcmRlckRhdGE6IFBvc09yZGVyRGF0YTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uKHZhbHVlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dIZWFkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Vmlld01vZGVCdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25QbGFubmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJzRGlydHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHJlbGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPigpO1xyXG5cclxuICAvL1RoaXMgb3V0cHV0IGV4aXN0cyBmb3IgYnVuZGxlIHB1cnBvc2VzLlxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzZXJ2aWNlUmVxdWVzdGVkOiBFdmVudEVtaXR0ZXI8e3RyYW5zYWN0aW9uTnI6IG51bWJlciwgdHJhbnNhY3Rpb25JZDogbnVtYmVyLCBsaW5lTnI6IG51bWJlcn0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7dHJhbnNhY3Rpb25OcjogbnVtYmVyLCB0cmFuc2FjdGlvbklkOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyfT4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaG93LXF1aWNrLWFjY2VzcycpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1F1aWNrQWNjZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zaG93LWJ1dHRvbi1iYXInKVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dCdXR0b25CYXI6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXRyYW5zYWN0aW9uLWludGVybmFsJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gZXZlbnQudGFyZ2V0LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWN0aXZlVmlld01vZGU6IENvbnRlbnRWaWV3TW9kZSA9IENvbnRlbnRWaWV3TW9kZS5MaXN0O1xyXG4gIHB1YmxpYyBhY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHVibGljIHNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG4gIHB1YmxpYyBzZWxlY3RlZE9yZGVyTGluZVNldERUTzogT3JkZXJMaW5lU2V0RFRPO1xyXG4gIHB1YmxpYyBzaG93U2lkZVBhbmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3VsZFNob3dTaWRlUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0FydGljbGVUZXh0T3ZlcnZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd1RyYW5zYWN0aW9uVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0NvcHlPcmRlckRpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBsb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgdGV4dFRvRWRpdDogc3RyaW5nO1xyXG4gIHB1YmxpYyBoaXN0b3JpY1RyYW5zYWN0aW9uTGluZXM6IFRyYW5zYWN0aW9uTGluZUluZm9bXSB8IG51bGw7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uTWFyZ2luSW5mbzogVHJhbnNhY3Rpb25NYXJnaW5JbmZvID0gbmV3IFRyYW5zYWN0aW9uTWFyZ2luSW5mbygpO1xyXG5cclxuICBwdWJsaWMgbGluZURyYWdnZWRPdmVyOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXNCYXJDb25maWdOYW1lczogU3RhdHVzQmFyQ2ZnTmFtZXMgPSB7XHJcbiAgICBzdGF0dXNCYXJCVDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCVCxcclxuICAgIHN0YXR1c0JhclRHOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclRHLFxyXG4gICAgc3RhdHVzQmFyUEE6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyUEEsXHJcbiAgICBzdGF0dXNCYXJQVjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJQVixcclxuICAgIHN0YXR1c0JhclRQOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhclRQLFxyXG4gICAgc3RhdHVzQmFyR1Q6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR1QsXHJcbiAgICBzdGF0dXNCYXJHUDogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJHUCxcclxuICAgIHN0YXR1c0JhckdMOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckdMLFxyXG4gICAgc3RhdHVzQmFyR0Y6IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyR0YsXHJcbiAgICBzdGF0dXNCYXJJQjogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJJQixcclxuICAgIHN0YXR1c0Jhck5UOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0Jhck5ULFxyXG4gICAgc3RhdHVzQmFyQk46IHRoaXMuY2ZnTmFtZXMuU3RhdHVzQmFyQk4sXHJcbiAgICBzdGF0dXNCYXJCRzogdGhpcy5jZmdOYW1lcy5TdGF0dXNCYXJCRyxcclxuICAgIHN0YXR1c0JhckZDOiB0aGlzLmNmZ05hbWVzLlN0YXR1c0JhckZDXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBuZXcgVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UoKTtcclxuICBwcml2YXRlIF9jb25maXJtYXRpb25BbmFseXNpc0lkOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2FwcFJlZjogQXBwbGljYXRpb25SZWYsXHJcbiAgICBwcml2YXRlIF9keW5hbWljQ29tcG9uZW50U2VydmljZTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2xpbmVTZWxlY3Rpb25TZXJ2aWNlOiBMaW5lU2VsZWN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX3B1cmNoYXNlQ29uZmlybWF0aW9uU2VydmljZTogUHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGVsaXZlcnlQbGFubmluZ1NlcnZpY2U6IERlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25CYXNlU2VydmljZTogVHJhbnNhY3Rpb25CYXNlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25VcGRhdGVkLnN1YnNjcmliZSgodHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKHRyYW5zYWN0aW9uKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3VsZFNob3dTaWRlUGFuZWwgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zYWN0aW9uTGluZSgpO1xyXG4gICAgICAgICAgLy8gaWYgKHRyYW5zYWN0aW9uPy50cmFuc2FjdGlvbkluZm8/LnV1aWQpIHtcclxuICAgICAgICAgIC8vICAgdGhpcy5nZXRUcmFuc2FjdGlvbk1hcmdpbkluZm8odHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICBpZiAodHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mby5pZCAmJiB0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcikge1xyXG4gICAgICAgICAgICB0aGlzLmdldFBsYW5PcmRlckZvclRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25NYXJnZVZpZXdDbGlja2VkLnN1YnNjcmliZSgobG9hZDogYm9vbGVhbik9PiB7XHJcbiAgICAgICAgaWYgKGxvYWQgJiYgdGhpcy5fdHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRUcmFuc2FjdGlvbk1hcmdpbkluZm8odGhpcy5fdHJhbnNhY3Rpb24/LnRyYW5zYWN0aW9uSW5mbz8udXVpZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUpID0+IHtcclxuICAgICAgICBpZiAocmVsYXRpb24pIHtcclxuICAgICAgICAgIHRoaXMucmVsYXRpb24gPSByZWxhdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25LaW5kU2V0LnN1YnNjcmliZSgoc2V0OiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKHNldCkge1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuY29uZmlybWF0aW9uQW5hbHlzaXNJZCA/IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPcmRlckNvbmZpcm1hdGlvbiA6IHRoaXMuc2VydmljZS5hY3RpdmVSdWJyaWM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmNvbm5lY3Rpb25Jbml0aWFsaXplZC5zdWJzY3JpYmUoKGluaXRpYWxpemVkOiBib29sZWFuKSA9PiB7XHJcbiAgICAgICAgaWYgKGluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgdGhpcy5fcHVyY2hhc2VDb25maXJtYXRpb25TZXJ2aWNlLmNvbmZpcm1hdGlvbk5lZWRlZC5zdWJzY3JpYmUoKG5lZWRlZDogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgIGlmIChuZWVkZWQpIHtcclxuICAgICAgICAgIHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZVNob3dTaWRlUGFuZWwodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzWzBdLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uTGluZURyYWdnZWRPdmVyLnN1YnNjcmliZSgobGluZU5yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5saW5lRHJhZ2dlZE92ZXIgPSBsaW5lTnI7XHJcbiAgICAgIH0pLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlbkFydGljbGVUZXh0T3ZlcnZpZXcuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkVHJhbnNhY3Rpb25UZXh0LnN1YnNjcmliZSgobGluZSkgPT4gdGhpcy5oYW5kbGVTaG93VHJhbnNhY3Rpb25UZXh0KGxpbmUpKSxcclxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UuYWRkQXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZVNob3dBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmVkaXRUcmFuc2FjdGlvblRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRUcmFuc2FjdGlvblRleHQobGluZSkpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5lZGl0QXJ0aWNsZVRleHQuc3Vic2NyaWJlKChsaW5lKSA9PiB0aGlzLmhhbmRsZUVkaXRBcnRpY2xlVGV4dChsaW5lKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VCdXR0b25DbGlja2VkLnN1YnNjcmliZSgobGluZU5yKSA9PiB0aGlzLmhhbmRsZUNyZWF0ZVNlcnZpY2VSZXF1ZXN0KGxpbmVOcikpLFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS5zaG93RXJyb3Iuc3Vic2NyaWJlKChlKSA9PlxyXG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKGUubWVzc2FnZSwgZS5sb2NhbGl6ZSwgZS5kZXRhaWxzKSksXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmNvcHlPcmRlci5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zaG93Q29weU9yZGVyRGlhbG9nID0gdHJ1ZSlcclxuICAgICk7XHJcbiAgICB0aGlzLnNjcmVlbldpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVJlbGF0aW9uQ2hhbmdlKHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5yZWxhdGlvbiA9IHJlbGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJ1dHRvbkJhckJ1dHRvbkNsaWNrZWQoYnV0dG9uOiBUcmFuc2FjdGlvbkJhckJ1dHRvbik6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVDYXRlZ29yeSA9IGJ1dHRvbi5jYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93U2lkZVBhbmVsKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8sIGZvcmNlOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChsaW5lIHx8IGZvcmNlKSB7XHJcbiAgICAgIHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgICAgdGhpcy5zaG93U2lkZVBhbmVsID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUcmFuc2FjdGlvblRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLmFkZFRyYW5zYWN0aW9uVGV4dC5uZXh0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93QXJ0aWNsZVRleHRPdmVydmlldyhsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICBpZiAobGluZSkge1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZSA9IGxpbmU7XHJcbiAgICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dUcmFuc2FjdGlvblRleHQobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRleHRUb0VkaXQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNlbGVjdGVkT3JkZXJMaW5lU2V0RFRPID0gbmV3IE9yZGVyTGluZVNldERUTygpO1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd0FydGljbGVUZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIGlmIChsaW5lKSB7XHJcbiAgICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUgPSBsaW5lO1xyXG4gICAgICB0aGlzLnNob3dBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVUcmFuc2FjdGlvbkxpbmVUZXh0KGRhdGE6IHsgcmVxdWVzdDogVHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QsIG5ldzogYm9vbGVhbiB9KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIWRhdGEubmV3KSB7IC8vdXBkYXRlXHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGV4dCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UuYWRkVGV4dExpbmUoXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgICBkYXRhLnJlcXVlc3QudGV4dCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC5hcnRpY2xlQm91bmQsXHJcbiAgICAgICAgMCxcclxuICAgICAgICAwLFxyXG4gICAgICAgIDApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlT3JkZXJMaW5lU2V0KGRhdGE6IHsgcmVxdWVzdDogT3JkZXJMaW5lU2V0RFRPLCBuZXc6IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFkYXRhLm5ldykge1xyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlT3JkZXJMaW5lU2V0KGRhdGEucmVxdWVzdCk7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVUZXh0TGluZShkYXRhLnJlcXVlc3QudHJhbnNhY3Rpb25VdWlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS51dWlkLCBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzLCBkYXRhLnJlcXVlc3QudGl0bGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgbmV3UmVxdWVzdDogVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QgPSBuZXcgVHJhbnNhY3Rpb25BZGRPcmRlckxpbmVTZXRUZXh0TGluZVJlcXVlc3QoKTtcclxuICAgICAgbmV3UmVxdWVzdC5vcmRlckxpbmVTZXRUZXh0ID0gZGF0YS5yZXF1ZXN0LnRleHQ7XHJcbiAgICAgIG5ld1JlcXVlc3QuYW1vdW50ID0gZGF0YS5yZXF1ZXN0LmFtb3VudDtcclxuICAgICAgbmV3UmVxdWVzdC5jYXRlZ29yeUlkID0gZGF0YS5yZXF1ZXN0LmNhdGVnb3J5SWQ7XHJcbiAgICAgIG5ld1JlcXVlc3QuY29sb3IgPSBkYXRhLnJlcXVlc3QuY29sb3I7XHJcbiAgICAgIG5ld1JlcXVlc3QudHJhbnNhY3Rpb25VdWlkID0gZGF0YS5yZXF1ZXN0LnRyYW5zYWN0aW9uVXVpZDtcclxuICAgICAgbmV3UmVxdWVzdC5zaG93T25Eb2N1bWVudHMgPSBkYXRhLnJlcXVlc3Quc2hvd09uRG9jdW1lbnRzO1xyXG4gICAgICBuZXdSZXF1ZXN0LnRleHQgPSBkYXRhLnJlcXVlc3QudGl0bGU7XHJcbiAgICAgIGF3YWl0IHRoaXMuc2VydmljZS5hZGRPcmRlckxpbmVTZXQobmV3UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2F2ZUFydGljbGVMaW5lVGV4dChkYXRhOiB7IHJlcXVlc3Q6IFRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0LCBuZXc6IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCFkYXRhLm5ldykgeyAvL3VwZGF0ZVxyXG4gICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlVGV4dExpbmUoZGF0YS5yZXF1ZXN0LnRyYW5zYWN0aW9uVXVpZCwgdGhpcy50cmFuc2FjdGlvbkxpbmUudXVpZCwgZGF0YS5yZXF1ZXN0LnNob3dPbkRvY3VtZW50cywgZGF0YS5yZXF1ZXN0LnRleHQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmFkZFRleHRMaW5lKFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC5zaG93T25Eb2N1bWVudHMsXHJcbiAgICAgICAgZGF0YS5yZXF1ZXN0LnRleHQsXHJcbiAgICAgICAgMCxcclxuICAgICAgICB0cnVlLFxyXG4gICAgICAgIGRhdGEucmVxdWVzdC5yZWZBcnRpY2xlTGluZU5yXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVFZGl0VHJhbnNhY3Rpb25UZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRPcmRlckxpbmVTZXREVE8gPSB0aGlzLl9nZXRPcmRlckxpbmVTZXRJZkV4aXN0cyhsaW5lKTtcclxuICAgIGlmIChpc05pbGwodGhpcy5zZWxlY3RlZE9yZGVyTGluZVNldERUTykpIHtcclxuICAgICAgdGhpcy50ZXh0VG9FZGl0ID0gbGluZS50ZXh0O1xyXG4gICAgfVxyXG4gICAgaWYgKGxpbmUuaXNUZXh0KSB7XHJcbiAgICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uVGV4dERpYWxvZygpO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKGxpbmUuYXJ0aWNsZUJvdW5kQ29uY2F0ZW5hdGVkVGV4dCAmJiBsaW5lLmFydGljbGVCb3VuZENvbmNhdGVuYXRlZFRleHQubGVuZ3RoID4gMCkge1xyXG4gICAgLy8gICB0aGlzLnNob3dBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRWRpdEFydGljbGVUZXh0KGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMudGV4dFRvRWRpdCA9IGxpbmUudGV4dDtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gbGluZTtcclxuICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICB0aGlzLnNob3dBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUNyZWF0ZVNlcnZpY2VSZXF1ZXN0KGxpbmVOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAobGluZU5yICYmIHRoaXMudHJhbnNhY3Rpb24pIHsvKlxyXG4gICAgICBsZXQgcmVxdWVzdDpDcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlVHJhbnNhY3Rpb25MaW5lUmVxdWVzdCA9IG5ldyBDcmVhdGVTZXJ2aWNlT3JkZXJXaXRoU291cmNlVHJhbnNhY3Rpb25MaW5lUmVxdWVzdCgpO1xyXG4gICAgICByZXF1ZXN0LnNvdXJjZUxpbmVOciA9IGxpbmUubGluZU5yO1xyXG4gICAgICByZXF1ZXN0LnNvdXJjZVRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgcmVxdWVzdC5jdXN0b21lclJlbGF0aW9uSWQgPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5yZWxhdGlvbklkO1xyXG4gICAgICByZXF1ZXN0LmJyYW5jaE5yID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uYnJhbmNoLnJlbGF0aW9uTnI7Ki9cclxuXHJcbiAgICAgIC8qdGhpcy5fdHJhbnNhY3Rpb25Db25uZWN0b3JTZXJ2aWNlLmNyZWF0ZVNlcnZpY2VPcmRlcldpdGhTb3VyY2VUcmFuc2FjdGlvbkxpbmUocmVxdWVzdCkudGhlbigocmVzdWx0OiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmKHJlc3VsdCkgeyovXHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnJlcXVlc3RDcmVhdGVTZXJ2aWNlT3JkZXJGcm9tVHJhbnNhY3Rpb25MaW5lLm5leHQoe3RyYW5zYWN0aW9uOiB0aGlzLnRyYW5zYWN0aW9uLCBsaW5lTnI6IGxpbmVOcn0pO1xyXG4gICAgICAvL2FkZGVkIGZvciBidW5kbGUgcHVycG9zZXMgc28gd2UgY2FuIHBhc3MgdGhlIHZhbHVlIGFsb25nIHdpdGhvdXQgdGhlIGV2ZW50IHNlcnZpY2UuIFVzZSB0aGUgZXZlbnQgc2VydmljZSBpbiBhbGwgb3RoZXIgY2FzZXMuXHJcbiAgICAgIHRoaXMuc2VydmljZVJlcXVlc3RlZC5lbWl0KHt0cmFuc2FjdGlvbk5yOiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yLCB0cmFuc2FjdGlvbklkOiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCwgbGluZU5yOiBsaW5lTnJ9KVxyXG4gICAgIC8qICAgfVxyXG4gICAgICB9KTsqL1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQXJ0aWNsZVRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVRyYW5zYWN0aW9uVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2hpZGVUcmFuc2FjdGlvblRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUFydGljbGVUZXh0T3ZlcnZpZXcoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dUcmFuc2FjdGlvblRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dUcmFuc2FjdGlvblRleHQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0ID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3VsZFNob3dUaWxlcygpOiBib29sZWFuIHtcclxuICAgIC8vIEFkanVzdCB0aGUgd2lkdGggY29uZGl0aW9uIGFzIG5lZWRlZFxyXG4gICAgcmV0dXJuIHRoaXMuc2NyZWVuV2lkdGggPCAxMjgwOyAvLyBTaG93IHRoZSBkaXYgaWYgc2NyZWVuIHdpZHRoIGlzIHNtYWxsZXIgdGhhbiAxMjgwcHhcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmdWxseUludm9pY2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLnRyYW5zYWN0aW9uICYmXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvICYmXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmhlYWRlckluZm9TdGF0dXMgJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cy5oYXNPd25Qcm9wZXJ0eSgnaXNGdWxseUludm9pY2VkJykgJiZcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaGVhZGVySW5mb1N0YXR1cy5pc0Z1bGx5SW52b2ljZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0T3JkZXJMaW5lU2V0SWZFeGlzdHMobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IE9yZGVyTGluZVNldERUTyB7XHJcbiAgICBpZiAoIWxpbmUub3JkZXJMaW5lU2V0Q29kZSkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGxpbmVTZXQ6IE9yZGVyTGluZVNldEluZm8gPSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vcmRlckxpbmVTZXRzLmZpbmQoc2V0ID0+IHNldC5vcmRlckxpbmVTZXRDb2RlID09PSBsaW5lLm9yZGVyTGluZVNldENvZGUpO1xyXG4gICAgICBpZiAoIWxpbmVTZXQpIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsZXQgRFRPOiBPcmRlckxpbmVTZXREVE8gPSBuZXcgT3JkZXJMaW5lU2V0RFRPKCk7XHJcbiAgICAgICAgRFRPLm9yZGVyTGluZVNldENvZGUgPSBsaW5lU2V0Lm9yZGVyTGluZVNldENvZGU7XHJcbiAgICAgICAgRFRPLm9yZGVyTGluZVNldElkID0gbGluZVNldC5vcmRlckxpbmVTZXRJZDtcclxuICAgICAgICBEVE8udGV4dCA9IGxpbmVTZXQudGV4dDtcclxuICAgICAgICBEVE8uYW1vdW50ID0gbGluZVNldC5hbW91bnQ7XHJcbiAgICAgICAgRFRPLnRpdGxlID0gbGluZVNldC50aXRsZTtcclxuICAgICAgICBEVE8uY29sb3IgPSBsaW5lU2V0LmNvbG9yO1xyXG4gICAgICAgIERUTy5jYXRlZ29yeUlkID0gbGluZVNldC5jYXRlZ29yeUlkO1xyXG4gICAgICAgIHJldHVybiBEVE87XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlVHJhbnNhY3Rpb25UZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25UZXh0ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd0FydGljbGVUZXh0T3ZlcnZpZXcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVHJhbnNhY3Rpb25MaW5lKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzXHJcbiAgICAgICAgLmZpbmQoKGxpbmUpID0+IGxpbmUubGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIHRoaXMuc2lkZVBhbmVsVHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzXHJcbiAgICAgICAgLmZpbmQoKGxpbmUpID0+IGxpbmUubGluZU5yID09PSB0aGlzLnNpZGVQYW5lbFRyYW5zYWN0aW9uTGluZS5saW5lTnIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2hvdWxkU2hvd1NpZGVQYW5lbCAmJiB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMgJiYgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5oYW5kbGVTaG93U2lkZVBhbmVsKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lc1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBwcml2YXRlIF9wcmVwYXJlSGVhZGVyKCk6IHZvaWQge1xyXG4gIC8vICAgICBpZiAodGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uSW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gIC8vICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk9yZGVySW5mb0hlYWRlcikuaW1tZWRpYXRlbHlIaWRkZW4oKSAmJlxyXG4gIC8vICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlBheW1lbnRJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpICYmXHJcbiAgLy8gICAgICAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVsaXZlcnlJbmZvSGVhZGVyKS5pbW1lZGlhdGVseUhpZGRlbigpKSB7XHJcbiAgLy8gICAgICAgICAvLyBub3RoaW5nIHRvIHNlZSBoZXJlXHJcbiAgLy8gICAgICAgICB0aGlzLnNob3dIZWFkZXIgPSBmYWxzZTtcclxuICAvLyAgICAgfVxyXG4gIC8vIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uTWFyZ2luSW5mbyh0cmFuc2FjdGlvblVVSUQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRyYW5zYWN0aW9uVVVJRCkge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uTWFyZ2luSW5mbyA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQmFzZVNlcnZpY2UubG9hZFRyYW5zYWN0aW9uTWFyZ2VJbmZvTGlzdCh0cmFuc2FjdGlvblVVSUQpO1xyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkJhc2VTZXJ2aWNlLnRyYW5zYWN0aW9uTG9jYWxNYXJnaW5JbmZvID0gcmVzdWx0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVZpZXdNb2RlQ2hhbmdlKG1vZGU6IENvbnRlbnRWaWV3TW9kZSkge1xyXG4gICAgdGhpcy5hY3RpdmVWaWV3TW9kZSA9IG1vZGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UGxhbk9yZGVyRm9yVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICBpZiAoIXRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRQbGFubmluZz8ucGxhbm5pbmdJZCkge1xyXG4gICAgICBjb25zdCBwbGFubmluZ1NvdXJjZXM6IFBsYW5uaW5nW10gPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvbkNvbm5lY3RvclNlcnZpY2UuZ2V0UGxhbm5pbmdTb3VyY2VzKCk7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmN1cnJlbnRQbGFubmluZyA9IHBsYW5uaW5nU291cmNlc1swXSA/IHBsYW5uaW5nU291cmNlc1swXSA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGxldCBwbGFuT3JkZXI6IFBsYW5PcmRlciA9IGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uQ29ubmVjdG9yU2VydmljZS5nZXRQbGFuT3JkZXIodHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkKTtcclxuXHJcbiAgICBpZihwbGFuT3JkZXIpIHtcclxuICAgICAgYXdhaXQgdGhpcy5fZGVsaXZlcnlQbGFubmluZ1NlcnZpY2UuZ2V0U2VxdWVuY2VPcmRlclZhbHVlKHBsYW5PcmRlcik7XHJcbiAgICAgIGF3YWl0IHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmdldE9yZGVyTGluZXNQbGFubmVkKHBsYW5PcmRlcik7XHJcbiAgICAgIHRoaXMuX2RlbGl2ZXJ5UGxhbm5pbmdTZXJ2aWNlLmxpbmVzUGxhbk9yZGVyID0gcGxhbk9yZGVyO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -113,4 +113,4 @@ TransactionBaseLineComponent.propDecorators = {
|
|
|
113
113
|
waitingForUserAction: [{ type: Output }],
|
|
114
114
|
showClass: [{ type: HostBinding, args: ["class.co-transaction-base-line",] }]
|
|
115
115
|
};
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS1saW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tYmFzZS1saW5lL3RyYW5zYWN0aW9uLWJhc2UtbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQTRDcEYsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHdCQUF3QjtJQXhDMUU7O1FBb0RTLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQU1wQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFHbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUc5Qiw2QkFBd0IsR0FBWSxLQUFLLENBQUM7UUFHMUMseUJBQW9CLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFHMUUseUJBQW9CLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFPMUUsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBRW5DLDZCQUF3QixHQUEwQjtZQUN2RCxjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjO1lBQzVDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCO1lBQ2xELGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWM7WUFDNUMsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWTtTQUN6QyxDQUFBO1FBRU8sbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsVUFBSyxHQUFtQixFQUFFLENBQUM7SUFvQ3JDLENBQUM7SUFwRkMsSUFDVyxhQUFhLENBQUMsS0FBYztRQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBMkJNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFjRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFtRCxFQUFFLEVBQUU7WUFDNUgsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDekUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6QyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVTLFNBQVM7UUFDakIsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO2dCQUNySSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7SUFDTSxtQkFBbUIsQ0FBQyxJQUF5QjtRQUNsRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7OztZQTdIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7OzRCQUdFLEtBQUs7aUNBU0wsS0FBSztrQ0FHTCxLQUFLOytCQUdMLEtBQUs7dUJBR0wsS0FBSzs0QkFHTCxLQUFLO3VDQUdMLEtBQUs7bUNBR0wsTUFBTTttQ0FHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7QWN0aW9uQnV0dG9uc0NmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvYWN0aW9uLWJ1dHRvbnMtY2ZnLW5hbWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1iYXNlLWxpbmUtd3JhcHBlclwiIGRhdGEtYWN0aW9uPVwib3BlblNpZGVQYW5lbFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1jb2xvci1pbmRpY2F0b3JcIiAqbmdJZj1cInNob3dDb2xvckluZGljYXRvclwiIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImNvbG9ySW5kaWNhdG9yQ29sb3JcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWJhc2UtbGluZS1zZWN0aW9uXCIgW2NsYXNzLmxpbmUtc3RhcnRdPVwiIXByZXZpZXdcIj5cclxuICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggKm5nSWY9XCJjaGVja2JveFwiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1jaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJjaGVja2JveFZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cImNoZWNrYm94UmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiY2hlY2tib3hWYWx1ZUNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICA+PC9jby1pbnB1dC1jaGVja2JveD5cclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1pbWFnZS1hbmQtZGVzY3JpcHRpb25cclxuICAgICAgICAgICpuZ0lmPVwidHJhbnNhY3Rpb25MaW5lLmlzQXJ0aWNsZSB8fCB0cmFuc2FjdGlvbkxpbmUuaXNQYXltZW50XCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWltYWdlLWFuZC1kZXNjcmlwdGlvbi13cmFwcGVyXCJcclxuICAgICAgICAgIFtwcmV2aWV3XT1cInByZXZpZXdcIlxyXG4gICAgICAgICAgW2lzRmlyc3RdPVwiaXNGaXJzdFwiXHJcbiAgICAgICAgICBbc2hvd1B1cmNoYXNlRGVzY109XCJzaG93UHVyY2hhc2VEZXNjQW5kUHJpY2VcIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgKGhhbmRsZURlbGV0ZUxpbmUpPVwiZGVsZXRlVHJhbnNhY3Rpb25MaW5lQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICAob3BlbkFydGljbGVUZXh0Q2xpY2tlZCk9XCJoYW5kbGVPcGVuQXJ0aWNsZVRleHQoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1pbWFnZS1hbmQtZGVzY3JpcHRpb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tYmFzZS1saW5lLXNlY3Rpb25cIiBbY2xhc3MubGluZS1lbmRdPVwiIXByZXZpZXdcIiBbY2xhc3MucHJldmlldy1tYXJnaW5dPVwicHJldmlld1wiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIXByZXZpZXcgJiYgYWN0aW9uQnV0dG9ucyAmJiBzaG93QWN0aW9uc0J1dHRvblwiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1idXR0b25zXCI+XHJcbiAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9uc1xyXG4gICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwiYWN0aW9uQnV0dG9uc0NvbmZpZ05hbWVzXCJcclxuICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICBbaXNGaXJzdF09XCJpc0ZpcnN0XCJcclxuICAgICAgICAgICAgW29yZGVyTGluZVNldHNdPVwib3JkZXJMaW5lU2V0c1wiXHJcbiAgICAgICAgICAgICh3YWl0aW5nRm9yVXNlckFjdGlvbik9XCJ3YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAoc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVTaG93U2lkZVBhbmVsKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9ucz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQmFzZUxpbmVDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjaGVja2JveFZhbHVlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9jaGVja2JveFZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrYm94VmFsdWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2hlY2tib3hWYWx1ZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dDb2xvckluZGljYXRvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjb2xvckluZGljYXRvckNvbG9yOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNoZWNrYm94UmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY2hlY2tib3g6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYWN0aW9uQnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dQdXJjaGFzZURlc2NBbmRQcmljZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgY2hlY2tib3hWYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHdhaXRpbmdGb3JVc2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWJhc2UtbGluZVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QWN0aW9uc0J1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgYWN0aW9uQnV0dG9uc0NvbmZpZ05hbWVzOiBBY3Rpb25CdXR0b25zQ2ZnTmFtZXMgPSB7XHJcbiAgICBhZGREb2N1bWVudEJ0bjogdGhpcy5jZmdOYW1lcy5BZGREb2N1bWVudEJ0bixcclxuICAgIGFkZFByb2R1Y3RUZXh0QnRuOiB0aGlzLmNmZ05hbWVzLkFkZFByb2R1Y3RUZXh0QnRuLFxyXG4gICAgYWRkTGluZVRleHRCdG46IHRoaXMuY2ZnTmFtZXMuQWRkTGluZVRleHRCdG4sXHJcbiAgICBzaWRlUGFuZWxCdG46IHRoaXMuY2ZnTmFtZXMuU2lkZVBhbmVsQnRuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja2JveFZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uTGluZUNoZWNrYm94Q2hhbmdlZC5zdWJzY3JpYmUoKGRhdGE6IHtsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvLCBjaGVja2VkOiBib29sZWFufSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhICYmIGRhdGEubGluZSAmJiBkYXRhLmxpbmUubGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tib3hWYWx1ZSA9IGRhdGEuY2hlY2tlZDtcclxuICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLm5leHQobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY29uZmlnU2V0KCkge1xyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuYWN0aW9uQnV0dG9uc0NvbmZpZ05hbWVzKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjdGlvbkJ1dHRvbnNDb25maWdOYW1lcy5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIHRoaXMuc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKGtleSkuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcclxuICAgICAgICB0aGlzLnNob3dBY3Rpb25zQnV0dG9uID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIGhhbmRsZVNob3dTaWRlUGFuZWwobGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS5vcGVuU2lkZVBhbmVsLm5leHQobGluZSlcclxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVPcGVuQXJ0aWNsZVRleHQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5BcnRpY2xlVGV4dE92ZXJ2aWV3Lm5leHQodGhpcy50cmFuc2FjdGlvbkxpbmUpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYmFzZS1saW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tYmFzZS1saW5lL3RyYW5zYWN0aW9uLWJhc2UtbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQTRDcEYsTUFBTSxPQUFPLDRCQUE2QixTQUFRLHdCQUF3QjtJQXhDMUU7O1FBb0RTLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQU1wQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFHbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUc5Qiw2QkFBd0IsR0FBWSxLQUFLLENBQUM7UUFHMUMseUJBQW9CLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFHMUUseUJBQW9CLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFPMUUsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBRW5DLDZCQUF3QixHQUEwQjtZQUN2RCxjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjO1lBQzVDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCO1lBQ2xELGNBQWMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWM7WUFDNUMsWUFBWSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWTtTQUN6QyxDQUFBO1FBRU8sbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsVUFBSyxHQUFtQixFQUFFLENBQUM7SUFvQ3JDLENBQUM7SUFwRkMsSUFDVyxhQUFhLENBQUMsS0FBYztRQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBMkJNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFjRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyw4QkFBOEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFtRCxFQUFFLEVBQUU7WUFDNUgsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtnQkFDekUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6QyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVTLFNBQVM7UUFDakIsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFO2dCQUNySSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO2dCQUM5QixPQUFPO2FBQ1I7U0FDRjtJQUNILENBQUM7SUFDTSxtQkFBbUIsQ0FBQyxJQUF5QjtRQUNsRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7OztZQTdIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2dCQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTthQUNoRDs7OzRCQUdFLEtBQUs7aUNBU0wsS0FBSztrQ0FHTCxLQUFLOytCQUdMLEtBQUs7dUJBR0wsS0FBSzs0QkFHTCxLQUFLO3VDQUdMLEtBQUs7bUNBR0wsTUFBTTttQ0FHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtBY3Rpb25CdXR0b25zQ2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9hY3Rpb24tYnV0dG9ucy1jZmctbmFtZXMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1iYXNlLWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWJhc2UtbGluZS13cmFwcGVyXCIgZGF0YS1hY3Rpb249XCJvcGVuU2lkZVBhbmVsXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWNvbG9yLWluZGljYXRvclwiICpuZ0lmPVwic2hvd0NvbG9ySW5kaWNhdG9yXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiY29sb3JJbmRpY2F0b3JDb2xvclwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tYmFzZS1saW5lLXNlY3Rpb25cIiBbY2xhc3MubGluZS1zdGFydF09XCIhcHJldmlld1wiPlxyXG4gICAgICAgIDxjby1pbnB1dC1jaGVja2JveCAqbmdJZj1cImNoZWNrYm94XCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImNoZWNrYm94VmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiY2hlY2tib3hSZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGVja2JveFZhbHVlQ2hhbmdlZC5lbWl0KCRldmVudClcIlxyXG4gICAgICAgID48L2NvLWlucHV0LWNoZWNrYm94PlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWltYWdlLWFuZC1kZXNjcmlwdGlvblxyXG4gICAgICAgICAgKm5nSWY9XCJ0cmFuc2FjdGlvbkxpbmUuaXNBcnRpY2xlIHx8IHRyYW5zYWN0aW9uTGluZS5pc1BheW1lbnRcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtaW1hZ2UtYW5kLWRlc2NyaXB0aW9uLXdyYXBwZXJcIlxyXG4gICAgICAgICAgW3ByZXZpZXddPVwicHJldmlld1wiXHJcbiAgICAgICAgICBbaXNGaXJzdF09XCJpc0ZpcnN0XCJcclxuICAgICAgICAgIFtzaG93UHVyY2hhc2VEZXNjXT1cInNob3dQdXJjaGFzZURlc2NBbmRQcmljZVwiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAoaGFuZGxlRGVsZXRlTGluZSk9XCJkZWxldGVUcmFuc2FjdGlvbkxpbmVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgIChvcGVuQXJ0aWNsZVRleHRDbGlja2VkKT1cImhhbmRsZU9wZW5BcnRpY2xlVGV4dCgkZXZlbnQpXCJcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWltYWdlLWFuZC1kZXNjcmlwdGlvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1iYXNlLWxpbmUtc2VjdGlvblwiIFtjbGFzcy5saW5lLWVuZF09XCIhcHJldmlld1wiIFtjbGFzcy5wcmV2aWV3LW1hcmdpbl09XCJwcmV2aWV3XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhcHJldmlldyAmJiBhY3Rpb25CdXR0b25zICYmIHNob3dBY3Rpb25zQnV0dG9uXCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zXHJcbiAgICAgICAgICAgIFtjb25maWdOYW1lc109XCJhY3Rpb25CdXR0b25zQ29uZmlnTmFtZXNcIlxyXG4gICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgIFtpc0ZpcnN0XT1cImlzRmlyc3RcIlxyXG4gICAgICAgICAgICBbb3JkZXJMaW5lU2V0c109XCJvcmRlckxpbmVTZXRzXCJcclxuICAgICAgICAgICAgKHdhaXRpbmdGb3JVc2VyQWN0aW9uKT1cIndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChzaWRlUGFuZWxCdXR0b25DbGlja2VkKT1cImhhbmRsZVNob3dTaWRlUGFuZWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CYXNlTGluZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNoZWNrYm94VmFsdWUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2NoZWNrYm94VmFsdWUgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tib3hWYWx1ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jaGVja2JveFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0NvbG9ySW5kaWNhdG9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNvbG9ySW5kaWNhdG9yQ29sb3I6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgY2hlY2tib3hSZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBjaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhY3Rpb25CdXR0b25zOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd1B1cmNoYXNlRGVzY0FuZFByaWNlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBjaGVja2JveFZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgd2FpdGluZ0ZvclVzZXJBY3Rpb246IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tYmFzZS1saW5lXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dBY3Rpb25zQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBhY3Rpb25CdXR0b25zQ29uZmlnTmFtZXM6IEFjdGlvbkJ1dHRvbnNDZmdOYW1lcyA9IHtcclxuICAgIGFkZERvY3VtZW50QnRuOiB0aGlzLmNmZ05hbWVzLkFkZERvY3VtZW50QnRuLFxyXG4gICAgYWRkUHJvZHVjdFRleHRCdG46IHRoaXMuY2ZnTmFtZXMuQWRkUHJvZHVjdFRleHRCdG4sXHJcbiAgICBhZGRMaW5lVGV4dEJ0bjogdGhpcy5jZmdOYW1lcy5BZGRMaW5lVGV4dEJ0bixcclxuICAgIHNpZGVQYW5lbEJ0bjogdGhpcy5jZmdOYW1lcy5TaWRlUGFuZWxCdG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NoZWNrYm94VmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lQ2hlY2tib3hDaGFuZ2VkLnN1YnNjcmliZSgoZGF0YToge2xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8sIGNoZWNrZWQ6IGJvb2xlYW59KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5saW5lICYmIGRhdGEubGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcikge1xyXG4gICAgICAgICAgdGhpcy5jaGVja2JveFZhbHVlID0gZGF0YS5jaGVja2VkO1xyXG4gICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5TaWRlUGFuZWwubmV4dChudWxsKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb25maWdTZXQoKSB7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5hY3Rpb25CdXR0b25zQ29uZmlnTmFtZXMpIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aW9uQnV0dG9uc0NvbmZpZ05hbWVzLmhhc093blByb3BlcnR5KGtleSkgJiYgdGhpcy5zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3Ioa2V5KS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xyXG4gICAgICAgIHRoaXMuc2hvd0FjdGlvbnNCdXR0b24gPSB0cnVlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlU2hvd1NpZGVQYW5lbChsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLm9wZW5TaWRlUGFuZWwubmV4dChsaW5lKVxyXG4gICAgdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZU9wZW5BcnRpY2xlVGV4dCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2Uub3BlbkFydGljbGVUZXh0T3ZlcnZpZXcubmV4dCh0aGlzLnRyYW5zYWN0aW9uTGluZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.component.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ApplicationRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver,
|
|
1
|
+
import { ApplicationRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, ComponentFactoryResolver, EventEmitter, HostBinding, Injector, Input, Output, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
|
|
2
2
|
import { TransactionMappingService } from '../../../service/transaction-mapping.service';
|
|
3
3
|
import { TransactionBaseComponent } from '../../core/base/transaction-base.component';
|
|
4
4
|
import { TransactionService } from '../../../service/transaction.service';
|
|
@@ -93,14 +93,15 @@ export class TransactionLineComponent extends TransactionBaseComponent {
|
|
|
93
93
|
if (!componentClass) {
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
this.appRef.attachView(this._componentRef.hostView);
|
|
96
|
+
const factory = this._compFactoryResolver.resolveComponentFactory(componentClass);
|
|
97
|
+
this._transactionLineContainer.clear();
|
|
98
|
+
this._componentRef = this._transactionLineContainer.createComponent(factory);
|
|
100
99
|
this._prepareProps();
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
this.changeDetector.markForCheck();
|
|
101
|
+
// const domElem = (this._componentRef.hostView as EmbeddedViewRef<any>)
|
|
102
|
+
// .rootNodes[0] as HTMLElement;
|
|
103
|
+
//
|
|
104
|
+
// this._transactionLineContainer.nativeElement.appendChild(domElem);
|
|
104
105
|
this._componentRef.onDestroy(() => {
|
|
105
106
|
this.appRef.detachView(this._componentRef.hostView);
|
|
106
107
|
});
|
|
@@ -144,7 +145,7 @@ TransactionLineComponent.ctorParameters = () => [
|
|
|
144
145
|
{ type: Injector }
|
|
145
146
|
];
|
|
146
147
|
TransactionLineComponent.propDecorators = {
|
|
147
|
-
container: [{ type: ViewChild, args: ['transactionLine', { read:
|
|
148
|
+
container: [{ type: ViewChild, args: ['transactionLine', { read: ViewContainerRef },] }],
|
|
148
149
|
activeCategory: [{ type: Input }],
|
|
149
150
|
preview: [{ type: Input }],
|
|
150
151
|
isFirst: [{ type: Input }],
|
|
@@ -154,4 +155,4 @@ TransactionLineComponent.propDecorators = {
|
|
|
154
155
|
showClass: [{ type: HostBinding, args: ["class.co-transaction-line",] }],
|
|
155
156
|
newLine: [{ type: HostBinding, args: ['class.new-line',] }]
|
|
156
157
|
};
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFDeEIsVUFBVSxFQUVWLFlBQVksRUFDWixXQUFXLEVBQ1gsUUFBUSxFQUNSLEtBQUssRUFJTCxNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQVdoSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsd0JBQXdCO0lBNkRwRSxZQUNTLHVCQUFnRCxFQUNoRCxPQUEyQixFQUMzQixnQkFBa0MsRUFDbEMscUNBQTRFLEVB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QUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQVhPLHVCQUF1QjtZQUx2QixrQkFBa0I7WUFJbEIsZ0JBQWdCO1lBRWhCLHFDQUFxQztZQUxyQyxpQkFBaUI7WUFFakIsdUJBQXVCO1lBeEI3QixpQkFBaUI7WUFtQlgseUJBQXlCO1lBakIvQix3QkFBd0I7WUFKeEIsY0FBYztZQVNkLFFBQVE7Ozt3QkFnQ1AsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTs2QkFPakQsS0FBSztzQkFVTCxLQUFLO3NCQUdMLEtBQUs7MEJBR0wsV0FBVyxTQUFDLGlCQUFpQixjQUM3QixLQUFLO21DQUdMLE1BQU07a0NBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsMkJBQTJCO3NCQUt2QyxXQUFXLFNBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRW1iZWRkZWRWaWV3UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0QmluZGluZyxcclxuICBJbmplY3RvcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBUeXBlLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25NYXBwaW5nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1tYXBwaW5nLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblRleHRMaW5lQ29tcG9uZW50fSBmcm9tICcuLi90cmFuc2FjdGlvbi10ZXh0LWxpbmUvdHJhbnNhY3Rpb24tdGV4dC1saW5lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiAjdHJhbnNhY3Rpb25MaW5lPjwvZGl2PlxyXG4gICAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCd0cmFuc2FjdGlvbkxpbmUnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2V0IGNvbnRhaW5lcihjb250ZW50KSB7XHJcbiAgICBpZiAoY29udGVudCkge1xyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIgPSBjb250ZW50O1xyXG4gICAgICB0aGlzLl9wcmVwYXJlQ29udGVudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFjdGl2ZUNhdGVnb3J5KHZhbHVlOiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSkge1xyXG4gICAgdGhpcy5fYWN0aXZlQ2F0ZWdvcnkgPSB2YWx1ZTtcclxuICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFjdGl2ZUNhdGVnb3J5KCk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5IHtcclxuICAgIHJldHVybiB0aGlzLl9hY3RpdmVDYXRlZ29yeTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHByZXZpZXc6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzRmlyc3Q6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmRyYWctb3ZlclwiKVxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRyYWdnZWRPdmVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB3YWl0aW5nRm9yVXNlckFjdGlvbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZGVzY3JpcHRpb25EYmxDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5uZXctbGluZScpXHJcbiAgcHVibGljIG5ld0xpbmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbi8vICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3hTaGFkb3cnKVxyXG4vLyAgIHB1YmxpYyBnZXQgYm94U2hhZG93KCk6IHN0cmluZyB7XHJcbi8vIC8qICAgIGlmICh0aGlzLmRyb3BTaGFkb3dDb2xvcikge1xyXG4vLyAgICAgICByZXR1cm4gYGluc2V0IDAgMCA3cHggMXB4ICR7dGhpcy5kcm9wU2hhZG93Q29sb3J9YDtcclxuLy8gICAgIH0gZWxzZSovIGlmICh0aGlzLmRyYWdnZWRPdmVyKSB7XHJcbi8vICAgICAgIHJldHVybiAnaW5zZXQgMCAwIDJweCAxcHggZ3JleSc7XHJcbi8vICAgICB9IGVsc2Uge1xyXG4vLyAgICAgICByZXR1cm4gJ25vbmUnO1xyXG4vLyAgICAgfVxyXG4vLyAgIH1cclxuXHJcbiAgLy8gcHVibGljIGRyb3BTaGFkb3dDb2xvcjogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIF90cmFuc2FjdGlvbkxpbmVDb250YWluZXI6IEVsZW1lbnRSZWY7XHJcbiAgLy8gcHJpdmF0ZSBfdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQ7XHJcbiAgcHJpdmF0ZSBfYWN0aXZlQ2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5O1xyXG4gIHByaXZhdGUgX2NvbXBvbmVudFJlZjogYW55O1xyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHB1YmxpYyB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG5cclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9tYXBwaW5nU2VydmljZTogVHJhbnNhY3Rpb25NYXBwaW5nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NvbXBGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcclxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgdHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgc2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgbGV0IHNob3VsZFByZXBhcmVQcm9wczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgZm9yIChsZXQga2V5IGluIGNoYW5nZXMpIHtcclxuICAgICAgaWYgKGtleSAhPT0gJ2RyYWdnZWRPdmVyJykge1xyXG4gICAgICAgIHNob3VsZFByZXBhcmVQcm9wcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChzaG91bGRQcmVwYXJlUHJvcHMpIHtcclxuICAgICAgdGhpcy5fcHJlcGFyZVByb3BzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lQWRkZWQuc3Vic2NyaWJlKChsaW5lTnI6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChsaW5lTnIgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnRyYW5zYWN0aW9uTGluZSAmJiB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIgPT09IGxpbmVOcikge1xyXG4gICAgICAgICAgdGhpcy5uZXdMaW5lID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lciA9IHVuZGVmaW5lZDtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25JbmZvU2V0KCkge1xyXG4gICAgc3VwZXIudHJhbnNhY3Rpb25JbmZvU2V0KCk7XHJcbiAgICB0aGlzLl9wcmVwYXJlQ29udGVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUNvbnRlbnQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25LaW5kIHx8ICF0aGlzLl9hY3RpdmVDYXRlZ29yeSB8fCAhdGhpcy5fdHJhbnNhY3Rpb25MaW5lQ29udGFpbmVyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29tcG9uZW50Q2xhc3M6IFR5cGU8VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50PjtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uTGluZS5pc1RleHQpIHtcclxuICAgICAgY29tcG9uZW50Q2xhc3MgPSBUcmFuc2FjdGlvblRleHRMaW5lQ29tcG9uZW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29tcG9uZW50Q2xhc3MgPSB0aGlzLl9tYXBwaW5nU2VydmljZS5nZXRUcmFuc2FjdGlvbkxpbmVDb21wb25lbnQodGhpcy50cmFuc2FjdGlvbktpbmQsIHRoaXMuX2FjdGl2ZUNhdGVnb3J5KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5fY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghY29tcG9uZW50Q2xhc3MpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX2NvbXBGYWN0b3J5UmVzb2x2ZXJcclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudENsYXNzKVxyXG4gICAgICAuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xyXG5cclxuICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5fY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuXHJcbiAgICB0aGlzLl9wcmVwYXJlUHJvcHMoKTtcclxuXHJcbiAgICBjb25zdCBkb21FbGVtID0gKHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55PilcclxuICAgICAgLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChkb21FbGVtKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xyXG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVQcm9wcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnByZXZpZXcgPSB0aGlzLnByZXZpZXc7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5pc0ZpcnN0ID0gdGhpcy5pc0ZpcnN0O1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkO1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudHJhbnNhY3Rpb24gPSB0aGlzLnRyYW5zYWN0aW9uO1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbkxpbmU7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50cmFuc2FjdGlvbkluZm8gPSB0aGlzLnRyYW5zYWN0aW9uSW5mbztcclxuICAgICAgLy8gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnRyYW5zYWN0aW9uSWQgPSB0aGlzLnRyYW5zYWN0aW9uSWQ7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuYWN0aXZlQ2F0ZWdvcnk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS53YWl0aW5nRm9yVXNlckFjdGlvbiA9IHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb247XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXNjcmlwdGlvbkRibENsaWNrID0gdGhpcy5kZXNjcmlwdGlvbkRibENsaWNrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUvdHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCx3QkFBd0IsRUFHeEIsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEVBQ1IsS0FBSyxFQUlMLE1BQU0sRUFHTixTQUFTLEVBQUUsZ0JBQWdCLEVBQzNCLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUNuRixPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQVdoSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsd0JBQXdCO0lBNkRwRSxZQUNTLHVCQUFnRCxFQUNoRCxPQUEyQixFQUMzQixnQkFBa0MsRUFDbEMscUNBQTRFLEVBRXpFLGlCQUFvQyxFQUNwQyxZQUFxQyxFQUNyQyxjQUFpQyxFQUNuQyxlQUEwQyxFQUMxQyxvQkFBOEMsRUFDOUMsTUFBc0IsRUFDdEIsUUFBa0I7UUFFMUIsS0FBSyxDQUFDLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLHFDQUFxQyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFiM0ksNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDBDQUFxQyxHQUFyQyxxQ0FBcUMsQ0FBdUM7UUFFekUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBeUI7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUEyQjtRQUMxQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQTBCO1FBQzlDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUEvQ3JCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRzdCLHlCQUFvQixHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzFFLHdCQUFtQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBUW5FLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFtQnhCLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBaUJuQyxDQUFDO0lBM0VELElBQThELFNBQVMsQ0FBQyxPQUFPO1FBQzdFLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLHlCQUF5QixHQUFHLE9BQU8sQ0FBQztZQUN6QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsSUFDVyxjQUFjLENBQUMsS0FBOEI7UUFDdEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFtQk0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQXlDRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxrQkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDeEMsS0FBSyxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUU7WUFDdkIsSUFBSSxHQUFHLEtBQUssYUFBYSxFQUFFO2dCQUN6QixrQkFBa0IsR0FBRyxJQUFJLENBQUM7YUFDM0I7U0FDRjtRQUNELElBQUksa0JBQWtCLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1lBQzdFLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRTtnQkFDMUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7YUFDckI7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxTQUFTLENBQUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxrQkFBa0I7UUFDMUIsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUNyRixPQUFPO1NBQ1I7UUFFRCxJQUFJLGNBQThDLENBQUM7UUFDbkQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUMvQixjQUFjLEdBQUcsNEJBQTRCLENBQUM7U0FDL0M7YUFBTTtZQUNMLGNBQWMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQy9HO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7U0FDaEM7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25CLE9BQU87U0FDUjtRQUVELE1BQU0sT0FBTyxHQUErQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUgsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVuQyx3RUFBd0U7UUFDeEUsa0NBQWtDO1FBQ2xDLEVBQUU7UUFDRixxRUFBcUU7UUFDckUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDckQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDM0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDbkUsa0VBQWtFO1lBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztZQUM3RSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDNUU7SUFDSCxDQUFDOzs7WUE3S0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFFBQVEsRUFBRTs7S0FFUDtnQkFDSCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtnQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07YUFDaEQ7OztZQVhPLHVCQUF1QjtZQUx2QixrQkFBa0I7WUFJbEIsZ0JBQWdCO1lBRWhCLHFDQUFxQztZQUxyQyxpQkFBaUI7WUFFakIsdUJBQXVCO1lBeEI3QixpQkFBaUI7WUFtQlgseUJBQXlCO1lBakIvQix3QkFBd0I7WUFKeEIsY0FBYztZQVNkLFFBQVE7Ozt3QkFnQ1AsU0FBUyxTQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFOzZCQU92RCxLQUFLO3NCQVVMLEtBQUs7c0JBR0wsS0FBSzswQkFHTCxXQUFXLFNBQUMsaUJBQWlCLGNBQzdCLEtBQUs7bUNBR0wsTUFBTTtrQ0FHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywyQkFBMkI7c0JBS3ZDLFdBQVcsU0FBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFwcGxpY2F0aW9uUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeSxcclxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgRWxlbWVudFJlZixcclxuICBFbWJlZGRlZFZpZXdSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFR5cGUsXHJcbiAgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gJy4uLy4uLy4uL2VudW0vdHJhbnNhY3Rpb24tdHlwZS1jYXRlZ29yeS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLW1hcHBpbmcuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVGV4dExpbmVDb21wb25lbnR9IGZyb20gJy4uL3RyYW5zYWN0aW9uLXRleHQtbGluZS90cmFuc2FjdGlvbi10ZXh0LWxpbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkltYWdlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICN0cmFuc2FjdGlvbkxpbmU+PC9kaXY+XHJcbiAgICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ3RyYW5zYWN0aW9uTGluZScsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBzZXQgY29udGFpbmVyKGNvbnRlbnQpIHtcclxuICAgIGlmIChjb250ZW50KSB7XHJcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lciA9IGNvbnRlbnQ7XHJcbiAgICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYWN0aXZlQ2F0ZWdvcnkodmFsdWU6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5KSB7XHJcbiAgICB0aGlzLl9hY3RpdmVDYXRlZ29yeSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fcHJlcGFyZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYWN0aXZlQ2F0ZWdvcnkoKTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUNhdGVnb3J5O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJldmlldzogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNGaXJzdDogYm9vbGVhbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZHJhZy1vdmVyXCIpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZHJhZ2dlZE92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHdhaXRpbmdGb3JVc2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBkZXNjcmlwdGlvbkRibENsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmVcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm5ldy1saW5lJylcclxuICBwdWJsaWMgbmV3TGluZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuLy8gICBASG9zdEJpbmRpbmcoJ3N0eWxlLmJveFNoYWRvdycpXHJcbi8vICAgcHVibGljIGdldCBib3hTaGFkb3coKTogc3RyaW5nIHtcclxuLy8gLyogICAgaWYgKHRoaXMuZHJvcFNoYWRvd0NvbG9yKSB7XHJcbi8vICAgICAgIHJldHVybiBgaW5zZXQgMCAwIDdweCAxcHggJHt0aGlzLmRyb3BTaGFkb3dDb2xvcn1gO1xyXG4vLyAgICAgfSBlbHNlKi8gaWYgKHRoaXMuZHJhZ2dlZE92ZXIpIHtcclxuLy8gICAgICAgcmV0dXJuICdpbnNldCAwIDAgMnB4IDFweCBncmV5JztcclxuLy8gICAgIH0gZWxzZSB7XHJcbi8vICAgICAgIHJldHVybiAnbm9uZSc7XHJcbi8vICAgICB9XHJcbi8vICAgfVxyXG5cclxuICAvLyBwdWJsaWMgZHJvcFNoYWRvd0NvbG9yOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcclxuICAvLyBwcml2YXRlIF90cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZDtcclxuICBwcml2YXRlIF9hY3RpdmVDYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcbiAgcHJpdmF0ZSBfY29tcG9uZW50UmVmOiBhbnk7XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcblxyXG4gICAgcHJvdGVjdGVkIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByb3RlY3RlZCBpbWFnZVNlcnZpY2U6IFRyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX21hcHBpbmdTZXJ2aWNlOiBUcmFuc2FjdGlvbk1hcHBpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfY29tcEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3JcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCB0cmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCBzZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBsZXQgc2hvdWxkUHJlcGFyZVByb3BzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gY2hhbmdlcykge1xyXG4gICAgICBpZiAoa2V5ICE9PSAnZHJhZ2dlZE92ZXInKSB7XHJcbiAgICAgICAgc2hvdWxkUHJlcGFyZVByb3BzID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHNob3VsZFByZXBhcmVQcm9wcykge1xyXG4gICAgICB0aGlzLl9wcmVwYXJlUHJvcHMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVBZGRlZC5zdWJzY3JpYmUoKGxpbmVOcjogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGxpbmVOciAhPT0gdW5kZWZpbmVkICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lICYmIHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOciA9PT0gbGluZU5yKSB7XHJcbiAgICAgICAgICB0aGlzLm5ld0xpbmUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25MaW5lQ29udGFpbmVyID0gdW5kZWZpbmVkO1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvbkluZm9TZXQoKSB7XHJcbiAgICBzdXBlci50cmFuc2FjdGlvbkluZm9TZXQoKTtcclxuICAgIHRoaXMuX3ByZXBhcmVDb250ZW50KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wcmVwYXJlQ29udGVudCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbktpbmQgfHwgIXRoaXMuX2FjdGl2ZUNhdGVnb3J5IHx8ICF0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBjb21wb25lbnRDbGFzczogVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+O1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lLmlzVGV4dCkge1xyXG4gICAgICBjb21wb25lbnRDbGFzcyA9IFRyYW5zYWN0aW9uVGV4dExpbmVDb21wb25lbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb21wb25lbnRDbGFzcyA9IHRoaXMuX21hcHBpbmdTZXJ2aWNlLmdldFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCh0aGlzLnRyYW5zYWN0aW9uS2luZCwgdGhpcy5fYWN0aXZlQ2F0ZWdvcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgaWYgKCFjb21wb25lbnRDbGFzcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+ID0gdGhpcy5fY29tcEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRDbGFzcyk7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIuY2xlYXIoKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZUNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcblxyXG4gICAgdGhpcy5fcHJlcGFyZVByb3BzKCk7XHJcblxyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuXHJcbiAgICAvLyBjb25zdCBkb21FbGVtID0gKHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55PilcclxuICAgIC8vICAgLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcclxuICAgIC8vXHJcbiAgICAvLyB0aGlzLl90cmFuc2FjdGlvbkxpbmVDb250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChkb21FbGVtKTtcclxuICAgIHRoaXMuX2NvbXBvbmVudFJlZi5vbkRlc3Ryb3koKCkgPT4ge1xyXG4gICAgICB0aGlzLmFwcFJlZi5kZXRhY2hWaWV3KHRoaXMuX2NvbXBvbmVudFJlZi5ob3N0Vmlldyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3ByZXBhcmVQcm9wcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9jb21wb25lbnRSZWYpIHtcclxuICAgICAgdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnByZXZpZXcgPSB0aGlzLnByZXZpZXc7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5pc0ZpcnN0ID0gdGhpcy5pc0ZpcnN0O1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGVkO1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudHJhbnNhY3Rpb24gPSB0aGlzLnRyYW5zYWN0aW9uO1xyXG4gICAgICB0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2UudHJhbnNhY3Rpb25MaW5lID0gdGhpcy50cmFuc2FjdGlvbkxpbmU7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS50cmFuc2FjdGlvbkluZm8gPSB0aGlzLnRyYW5zYWN0aW9uSW5mbztcclxuICAgICAgLy8gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlLnRyYW5zYWN0aW9uSWQgPSB0aGlzLnRyYW5zYWN0aW9uSWQ7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5hY3RpdmVDYXRlZ29yeSA9IHRoaXMuYWN0aXZlQ2F0ZWdvcnk7XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS53YWl0aW5nRm9yVXNlckFjdGlvbiA9IHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb247XHJcbiAgICAgIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXNjcmlwdGlvbkRibENsaWNrID0gdGhpcy5kZXNjcmlwdGlvbkRibENsaWNrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|