@colijnit/transaction 257.1.0 → 257.1.2
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 +1109 -1034
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +653 -654
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +654 -655
- package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +3 -3
- package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +3 -3
- package/esm2015/lib/component/checkout/checkout.component.js +4 -4
- package/esm2015/lib/component/checkout/checkout.module.js +6 -8
- package/esm2015/lib/component/core/base/transaction-lines-base.component.js +41 -4
- package/esm2015/lib/component/purchase-confirmation-lines/purchase-confirmation-lines.component.js +10 -2
- package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +143 -111
- package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.js +4 -2
- package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.js +2 -2
- package/esm2015/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.js +37 -21
- package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +16 -14
- package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +4 -36
- package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +8 -37
- package/esm2015/lib/component/transaction-lines-popup/transaction-lines-popup.component.js +15 -10
- package/esm2015/lib/component/transaction-navigation-button/transaction-navigation-button.component.js +4 -2
- package/esm2015/lib/component/transaction-navigation-button-list/transaction-navigation-button-list.component.js +12 -5
- package/esm2015/lib/enum/checkout-cfg-name.enum.js +4 -4
- package/esm2015/lib/model/transaction-line-view-model.js +7 -0
- package/esm2015/lib/service/line-selection.service.js +18 -3
- package/esm2015/lib/service/purchase-confirmation.service.js +48 -1
- package/esm2015/lib/service/transaction-base.service.js +10 -6
- package/esm2015/lib/service/transaction-event.service.js +2 -1
- package/esm2015/lib/transaction-version.js +3 -3
- package/fesm2015/colijnit-transaction.js +583 -508
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +2 -2
- package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +2 -2
- package/lib/component/checkout/checkout.component.d.ts +2 -2
- package/lib/component/core/base/transaction-lines-base.component.d.ts +23 -2
- package/lib/component/transaction-line/transaction-line-label/style/_layout.scss +6 -0
- package/lib/component/transaction-line/transaction-overview-line/style/_layout.scss +15 -0
- package/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.d.ts +8 -2
- package/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.d.ts +16 -9
- package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +5 -4
- package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +0 -19
- package/lib/component/transaction-lines/transaction-lines.component.d.ts +1 -19
- package/lib/component/transaction-lines-popup/style/_layout.scss +4 -0
- package/lib/component/transaction-lines-popup/transaction-lines-popup.component.d.ts +3 -1
- package/lib/component/transaction-navigation-button/transaction-navigation-button.component.d.ts +1 -0
- package/lib/component/transaction-navigation-button-list/style/_layout.scss +2 -0
- package/lib/component/transaction-navigation-button-list/transaction-navigation-button-list.component.d.ts +4 -0
- package/lib/enum/checkout-cfg-name.enum.d.ts +3 -3
- package/lib/model/transaction-line-view-model.d.ts +7 -0
- package/lib/service/line-selection.service.d.ts +6 -0
- package/lib/service/purchase-confirmation.service.d.ts +14 -4
- package/lib/service/transaction-event.service.d.ts +1 -0
- package/package.json +1 -1
- package/esm2015/lib/component/checkout/service/checkout-screen-configuration.service.js +0 -48
- package/lib/component/checkout/service/checkout-screen-configuration.service.d.ts +0 -12
|
@@ -6,7 +6,7 @@ import { DictionaryService } from '../../../service/dictionary.service';
|
|
|
6
6
|
import { Icon } from '../../../enum/icon.enum';
|
|
7
7
|
import { IconCacheService } from '../../../service/icon-cache.service';
|
|
8
8
|
import { CheckoutCfgName } from '../../../enum/checkout-cfg-name.enum';
|
|
9
|
-
import {
|
|
9
|
+
import { TransactionScreenConfigurationService } from '../../../service/transaction-screen-configuration.service';
|
|
10
10
|
export class CheckoutOverviewDeliveryEditComponent {
|
|
11
11
|
constructor(_dictionaryService, _formMasterService, _screenConfigService, service, iconService) {
|
|
12
12
|
this._dictionaryService = _dictionaryService;
|
|
@@ -248,7 +248,7 @@ CheckoutOverviewDeliveryEditComponent.decorators = [
|
|
|
248
248
|
CheckoutOverviewDeliveryEditComponent.ctorParameters = () => [
|
|
249
249
|
{ type: DictionaryService },
|
|
250
250
|
{ type: FormMasterService },
|
|
251
|
-
{ type:
|
|
251
|
+
{ type: TransactionScreenConfigurationService },
|
|
252
252
|
{ type: TransactionService },
|
|
253
253
|
{ type: IconCacheService }
|
|
254
254
|
];
|
|
@@ -259,4 +259,4 @@ CheckoutOverviewDeliveryEditComponent.propDecorators = {
|
|
|
259
259
|
invalidSubmit: [{ type: Output }],
|
|
260
260
|
showClass: [{ type: HostBinding, args: ["class.co-checkout-overview-delivery-edit",] }]
|
|
261
261
|
};
|
|
262
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUNOLFlBQVksRUFDWixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGlCQUFpQixFQUFFLDhDQUE4QyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFJL0csT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFdEUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBR3JFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQStIcEcsTUFBTSxPQUFPLHFDQUFxQztJQW9GaEQsWUFDVSxrQkFBcUMsRUFDckMsa0JBQXFDLEVBQ3JDLG9CQUF3RCxFQUN6RCxPQUEyQixFQUMzQixXQUE2QjtRQUo1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFv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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0dUO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxpQkFBaUI7b0JBQ2pCO3dCQUNFLE9BQU8sRUFBRSw4Q0FBOEM7d0JBQ3ZELFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUNBQXFDLENBQUM7cUJBQ3JFO2lCQUNGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFySU8saUJBQWlCO1lBTmpCLGlCQUFpQjtZQWFqQixrQ0FBa0M7WUFUbEMsa0JBQWtCO1lBS2xCLGdCQUFnQjs7OzJCQXVJckIsWUFBWSxTQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7MEJBWS9DLEtBQUs7MEJBR0wsTUFBTTs0QkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywwQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtTWFzdGVyU2VydmljZSwgU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XG5pbXBvcnQge01hcmtldGluZ30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL21hcmtldGluZy5ibyc7XG5pbXBvcnQge0RlbGl2ZXJ5TWV0aG9kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktbWV0aG9kLmJvJztcbmltcG9ydCB7RGVsaXZlcnlPcHRpb259IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1vcHRpb24uYm8nO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1RleHRWYWx1ZUNvbnRhaW5lcn0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvdGV4dC12YWx1ZS1jb250YWluZXInO1xuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi8uLi9lbnVtL2ljb24uZW51bSc7XG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcbmltcG9ydCB7QWRkcmVzc30gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm8nO1xuaW1wb3J0IHtHZW5kZXJUeXBlfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9nZW5kZXItdHlwZS5lbnVtJztcbmltcG9ydCB7Q2hlY2tvdXRDZmdOYW1lfSBmcm9tICcuLi8uLi8uLi9lbnVtL2NoZWNrb3V0LWNmZy1uYW1lLmVudW0nO1xuaW1wb3J0IHtDaGVja291dFNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi9zZXJ2aWNlL2NoZWNrb3V0LXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjby1jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0XCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktZWRpdC1jb250ZW50XCI+XG4gICAgICAgICAgPGNvLWZvcm0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1mb3JtLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1sYWJlbC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAjaW5kZXhMYWJlbD48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInREVMSVZFUllfREFUQScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktbWV0aG9kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuRGVsaXZlcnlNZXRob2RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJPbldpemFyZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsaXZlcnlNZXRob2RDaGFuZ2UpPVwiY3VycmVudERlbGl2ZXJ5TWV0aG9kID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LW1ldGhvZD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS1kYXRlIGNsYXNzPVwiaGVhZGVyLWRlbGl2ZXJ5LWRlbGl2ZXJ5ZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5EZWxpdmVyeURhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktZGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wcmVmZXJyZWQtZGVsaXZlcnktZGF0ZSBjbGFzcz1cImhlYWRlci1kZWxpdmVyeS1kZWxpdmVyeWRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlByZWZlcmVkRGVsaXZlcnlEYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXByZWZlcnJlZC1kZWxpdmVyeS1kYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBhcnRpYWwtZGVsaXZlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5QYXJ0aWFsRGVsaXZlcnlcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1wYXJ0aWFsLWRlbGl2ZXJ5PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkRlbGl2ZXJ5T3B0aW9uc1wiIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSBbaGVhZGVyVGl0bGVdPVwiJ0FERF9ERUxJVkVSWV9PUFRJT04nIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuVHJpYW5nbGVEb3duKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS1vcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5EZWxpdmVyeU9wdGlvbnNcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS1vcHRpb25zPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28tY29sbGFwc2libGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCIgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVtYXJrc1wiIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSBbaGVhZGVyVGl0bGVdPVwiJ0FERF9SRU1BUksnIHwgbG9jYWxpemVcIiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmlhbmdsZURvd24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXJlbWFya3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbWFya3NcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1yZW1hcmtzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28tY29sbGFwc2libGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCIgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVmZXJlbmNlXCIgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWNvbGxhcHNpYmxlIFtoZWFkZXJUaXRsZV09XCInQUREX1JFRkVSRU5DRScgfCBsb2NhbGl6ZVwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlRyaWFuZ2xlRG93bilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItcmVmZXJlbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5SZWZlcmVuY2VcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1yZWZlcmVuY2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlZmVyZW5jZVJlbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXJlbGF0aW9uLXJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVmZXJlbmNlUmVsYXRpb25cIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1yZWxhdGlvbi1yZWZlcmVuY2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dEb3duUGF5bWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1sYWJlbC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gI2luZGV4TGFiZWw+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidET1dOUEFZTUVOVCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtcGVyY2VudGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5EZXBvc2l0UGVyY2VudGFnZVwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtcGVyY2VudGFnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGVwb3NpdC1hbW91bnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuRGVwb3NpdEFtb3VudFwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtYW1vdW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dPcmRlckRhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICNpbmRleExhYmVsPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInT1JERVJfREFUQScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWJyYW5jaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5CcmFuY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2ltcGxlXT1cInRydWVcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1icmFuY2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWFkbWluaXN0cmF0aXZlLXJlbGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkFkbWluaXN0cmF0aXZlTWFuYWdlclwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWFkbWluaXN0cmF0aXZlLXJlbGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBheW1lbnQtY29uZGl0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUGF5bWVudENvbmRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1wYXltZW50LWNvbmRpdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1zYWxlcy1wZXJzb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TYWxlc1BlcnNvblwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXNhbGVzLXBlcnNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIiAqbmdJZj1cInNob3dPcmRlclBhcmFtZXRlcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWRlZmluaXRpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkRlZmluaXRpdmVcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWZpbml0aXZlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItaG9sZC1jb2RlcyAqbmdJZj1cIiF0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25EZWZpbml0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLk9uSG9sZENvZGVzXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItaG9sZC1jb2Rlcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLk1hcmtldGluZ0NvZGVcIiBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInTUFSS0VUSU5HX0NPREUnIHwgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItbWFya2V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLk1hcmtldGluZ0NvZGVcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1tYXJrZXRpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvY28tZm9ybT5cbiAgICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtcbiAgICBGb3JtTWFzdGVyU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudClcbiAgICB9XG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgQ2hlY2tvdXRDZmdOYW1lID0gQ2hlY2tvdXRDZmdOYW1lO1xuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcblxuICBAVmlld0NoaWxkcmVuKFwiaW5kZXhMYWJlbFwiLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2V0IHZpZXdDaGlsZHJlbihjaGlsZHJlbikge1xuICAgIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzcGFucyA9IGNoaWxkcmVuLnRvQXJyYXkoKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IHNwYW5zW2ldO1xuICAgICAgICBpZiAoc3Bhbi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgc3Bhbi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IChpICsgMSA8IDEwKSA/ICcwJyArIChpICsgMSkudG9TdHJpbmcoKSA6IChpICsgMSkudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB2YWxpZFN1Ym1pdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaW52YWxpZFN1Ym1pdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXRcIilcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIHB1YmxpYyBkZWxpdmVyeVR5cGVzOiBEZWxpdmVyeVR5cGVbXSA9IFtcbiAgLy8gICB7Y29kZTogJzEnLCBkZXNjcmlwdGlvbjogJ0Jlem9yZ2VuJywgaWNvbjogdGhpcy5pY29ucy5EZWxpdmVyeVRydWNrLCBwcmljZTogODl9LFxuICAvLyAgIHtjb2RlOiAnMicsIGRlc2NyaXB0aW9uOiAnQmV6b3JnZW4gJiBtb250ZXJlbicsIGljb246IHRoaXMuaWNvbnMuQ2FsZW5kYXJEYXksIHByaWNlOiAxMTl9LFxuICAvLyAgIHtjb2RlOiAnMycsIGRlc2NyaXB0aW9uOiAnTWVlbmVtZW4nLCBpY29uOiB0aGlzLmljb25zLlRydWNrfSxcbiAgLy8gXTtcbiAgcHVibGljIGRlbGl2ZXJ5T3B0aW9uTGlzdDogRGVsaXZlcnlPcHRpb25bXSA9IFtdO1xuICBwdWJsaWMgZGVsaXZlcnlPcHRpb25zOiBEZWxpdmVyeU9wdGlvbltdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU9wdGlvbkZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwifTtcbiAgcHVibGljIGRlbGl2ZXJ5TWV0aG9kczogRGVsaXZlcnlNZXRob2RbXSA9IFtdO1xuICBwdWJsaWMgZGVsaXZlcnlNZXRob2RGaWVsZHM6IFRleHRWYWx1ZUNvbnRhaW5lciA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIn07XG4gIHB1YmxpYyBkZWxpdmVyeVR5cGVJZHg6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGN1cnJlbnREZWxpdmVyeU1ldGhvZDogRGVsaXZlcnlNZXRob2Q7XG5cbiAgcHVibGljIGNoYW5nZUxvY2F0aW9uUG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHRyYW5zYWN0aW9uRGVmaW5pdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBuZXdBZGRyZXNzOiBBZGRyZXNzO1xuICBwdWJsaWMgcHJlZmVycmVkRGF0ZU9wdGlvbnM6IFRleHRWYWx1ZUNvbnRhaW5lcltdID0gW1xuICAgIHt0ZXh0OiBcIk5PVF9BRlRFUlwiLCB2YWx1ZTogXCI+XCJ9LFxuICAgIHt0ZXh0OiBcIk5PVF9CRUZPUkVcIiwgdmFsdWU6IFwiPFwifSxcbiAgICB7dGV4dDogXCJPTl9EQVRFXCIsIHZhbHVlOiBcIj1cIn0sXG4gIF07XG4gIHB1YmxpYyBhZGRyZXNzVG9FZGl0OiBBZGRyZXNzO1xuICBwdWJsaWMgcHJlZmVycmVkRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHB1YmxpYyBnZW5kZXI6IEdlbmRlclR5cGU7XG4gIHB1YmxpYyBtYXJrZXRpbmc6IE1hcmtldGluZ1tdID0gW107XG4gIHB1YmxpYyBtYXJrZXRpbmdGaWVsZHM6IE9iamVjdCA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIn07XG4gIHB1YmxpYyBtYXJrZXRpbmdDb2RlOiBzdHJpbmc7XG4gIHB1YmxpYyBhc3NlbWJseUNvc3RzOiBudW1iZXI7XG4gIHB1YmxpYyBkZWxpdmVyeUNvc3RzOiBudW1iZXI7XG5cbiAgLy8gVE9ETzogRGV6ZSB2ZWxkZW4gbm9nIG9wbmVtZW4gaW4gVHJhbnNhY3Rpb24hIVxuICBwdWJsaWMgZGVsaXZlcnlEYXRlRmluYWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGFzc2VtYmx5RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHB1YmxpYyB0b3RhbEFzc2VtYmx5VGltZTogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIGRyb3BzaGlwbWVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0Rvd25QYXltZW50OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93T3JkZXJEYXRhOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93T3JkZXJQYXJhbWV0ZXJzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBkZWxpdmVyeURhdGUoKTogRGF0ZSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5RGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uZGVsaXZlcnlEYXRlO1xuICB9XG5cbiAgcHVibGljIHNldCBkZWxpdmVyeURhdGUodmFsdWU6IERhdGUpIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2Zvcm1NYXN0ZXJTZXJ2aWNlOiBGb3JtTWFzdGVyU2VydmljZSxcbiAgICBwcml2YXRlIF9zY3JlZW5Db25maWdTZXJ2aWNlOiBDaGVja291dFNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5jb25maWdTZXQuc3Vic2NyaWJlKChjb25maWdPYmplY3RzOiBPYmplY3RDb25maWd1cmF0aW9uW10pID0+IHtcbiAgICAgICAgICBpZiAoY29uZmlnT2JqZWN0cyAmJiBjb25maWdPYmplY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0Rvd25QYXltZW50ID0gdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVwb3NpdFBlcmNlbnRhZ2UpLmltbWVkaWF0ZWx5VmlzaWJsZSgpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVwb3NpdEFtb3VudCkuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XG4gICAgICAgICAgICB0aGlzLnNob3dPcmRlckRhdGEgPSB0aGlzLl9zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5CcmFuY2gpLmltbWVkaWF0ZWx5VmlzaWJsZSgpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuQWRtaW5pc3RyYXRpdmVNYW5hZ2VyKS5pbW1lZGlhdGVseVZpc2libGUoKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk1hcmtldGluZ0NvZGUpLmltbWVkaWF0ZWx5VmlzaWJsZSgpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVmaW5pdGl2ZSkuaW1tZWRpYXRlbHlWaXNpYmxlKCkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5PbkhvbGRDb2RlcykuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XG4gICAgICAgICAgICB0aGlzLnNob3dPcmRlclBhcmFtZXRlcnMgPSB0aGlzLl9zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZWZpbml0aXZlKS5pbW1lZGlhdGVseVZpc2libGUoKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk9uSG9sZENvZGVzKS5pbW1lZGlhdGVseVZpc2libGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKVxuICAgIGlmICh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCkge1xuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnRyeVRvTG9ja1RyYW5zYWN0aW9uKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby52ZXJzaW9uKTtcbiAgICB9XG4gICAgdGhpcy5kZWxpdmVyeUNvc3RzID0gdGhpcy5jYWxjdWxhdGVEZWxpdmVyeUNvc3RzKCk7XG4gICAgdGhpcy5hc3NlbWJseUNvc3RzID0gdGhpcy5jYWxjdWxhdGVBc3NlbWJseUNvc3RzKCk7XG4gICAgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5TWV0aG9kcygpLnRoZW4oKG1ldGhvZHM6IERlbGl2ZXJ5TWV0aG9kW10pID0+IHtcbiAgICAgIHRoaXMuZGVsaXZlcnlNZXRob2RzID0gbWV0aG9kcy5maWx0ZXIobSA9PiBtLndlYnNob3ApO1xuICAgICAgdGhpcy5jdXJyZW50RGVsaXZlcnlNZXRob2QgPSB0aGlzLmRlbGl2ZXJ5TWV0aG9kcy5maW5kKGQgPT4gZC5jb2RlID09PSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeU1ldGhvZCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5T3B0aW9ucygpLnRoZW4oKG9wdGlvbnM6IERlbGl2ZXJ5T3B0aW9uW10pID0+IHtcbiAgICAgIHRoaXMuZGVsaXZlcnlPcHRpb25MaXN0ID0gb3B0aW9ucztcbiAgICB9KTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0TWFya2V0aW5nQ29kZXMoKS50aGVuKChtYXJrZXRpbmdDb2RlczogTWFya2V0aW5nW10pID0+IHtcbiAgICAgIHRoaXMubWFya2V0aW5nID0gbWFya2V0aW5nQ29kZXM7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGVsaXZlcnlPcHRpb25zQnlEZWxpdmVyeU1ldGhvZChkZWxpdmVyeU1ldGhvZDogRGVsaXZlcnlNZXRob2QpOiBEZWxpdmVyeU9wdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5kZWxpdmVyeU9wdGlvbkxpc3QuZmlsdGVyKGRlbGl2ZXJ5T3B0aW9uID0+IGRlbGl2ZXJ5TWV0aG9kLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uLmNvZGUpICE9PSAtMSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZURlbGl2ZXJ5Q29zdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlQXNzZW1ibHlDb3N0cygpOiBudW1iZXIge1xuICAgIHJldHVybiAwO1xuICB9XG59XG4iXX0=
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUosT0FBTyxFQUFDLGlCQUFpQixFQUFFLDhDQUE4QyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFJL0csT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFeEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFdEUsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBR3JFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUdyRSxPQUFPLEVBQUMscUNBQXFDLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQTZIaEgsTUFBTSxPQUFPLHFDQUFxQztJQW9GaEQsWUFDVSxrQkFBcUMsRUFDckMsa0JBQXFDLEVBQ3JDLG9CQUEyRCxFQUM1RCxPQUEyQixFQUMzQixXQUE2QjtRQUo1Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF1QztRQUM1RCxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUF4RnRCLGFBQVEsR0FBMkIsZUFBZSxDQUFDO1FBQ25ELFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBa0JuQyxnQkFBVyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRzNELGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFPcEUsMkNBQTJDO1FBQzNDLHFGQUFxRjtRQUNyRiwrRkFBK0Y7UUFDL0Ysa0VBQWtFO1FBQ2xFLEtBQUs7UUFDRSx1QkFBa0IsR0FBcUIsRUFBRSxDQUFDO1FBQzFDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUN2Qyx5QkFBb0IsR0FBdUIsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsQ0FBQztRQUNoRixvQkFBZSxHQUFxQixFQUFFLENBQUM7UUFDdkMseUJBQW9CLEdBQXVCLEVBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUM7UUFDaEYsb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFJNUIsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUd2Qyx5QkFBb0IsR0FBeUI7WUFDbEQsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUM7WUFDL0IsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUM7WUFDaEMsRUFBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUM7U0FDOUIsQ0FBQztRQUVLLGtCQUFhLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVqQyxjQUFTLEdBQWdCLEVBQUUsQ0FBQztRQUM1QixvQkFBZSxHQUFXLEVBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUM7UUFLdEUsaURBQWlEO1FBQzFDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUNuQyxpQkFBWSxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFDaEMsc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBQy9CLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQWFwQyxVQUFLLEdBQW1CLEVBQUUsQ0FBQztJQVNuQyxDQUFDO0lBdkZELElBQXNELFlBQVksQ0FBQyxRQUFRO1FBQ3pFLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25DLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDN0Y7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQVlNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUEyQ0QsSUFBVyxZQUFZO1FBQ3JCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztTQUM1RDtRQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFXLFlBQVksQ0FBQyxLQUFXO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDeEQsQ0FBQztJQWFZLFFBQVE7O1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBb0MsRUFBRSxFQUFFO2dCQUNyRixJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO3dCQUM1SCxJQUFJLENBQUMsb0JBQW9CLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUMxRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGtCQUFrQixFQUFFO3dCQUMvRyxJQUFJLENBQUMsb0JBQW9CLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLGtCQUFrQixFQUFFO3dCQUM3RyxJQUFJLENBQUMsb0JBQW9CLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTt3QkFDckcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsa0JBQWtCLEVBQUU7d0JBQ2xHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQ3hHLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxrQkFBa0IsRUFBRTt3QkFDekgsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztpQkFDekc7WUFDSCxDQUFDLENBQUMsQ0FDTCxDQUFBO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RELE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdEo7WUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQXlCLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFILENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQXlCLEVBQUUsRUFBRTtnQkFDbkUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUEyQixFQUFFLEVBQUU7Z0JBQ3BFLElBQUksQ0FBQyxTQUFTLEdBQUcsY0FBYyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRU0scUNBQXFDLENBQUMsY0FBOEI7UUFDekUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUgsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTyxzQkFBc0I7UUFDNUIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOzs7WUEzUUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0dUO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxpQkFBaUI7b0JBQ2pCO3dCQUNFLE9BQU8sRUFBRSw4Q0FBOEM7d0JBQ3ZELFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUNBQXFDLENBQUM7cUJBQ3JFO2lCQUNGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUFySU8saUJBQWlCO1lBTmpCLGlCQUFpQjtZQWVqQixxQ0FBcUM7WUFYckMsa0JBQWtCO1lBS2xCLGdCQUFnQjs7OzJCQXVJckIsWUFBWSxTQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7MEJBWS9DLEtBQUs7MEJBR0wsTUFBTTs0QkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywwQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZHJlbiwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtTWFzdGVyU2VydmljZSwgU0NSRUVOX0NPTkZJR19BREFQVEVSX0NPTVBPTkVOVF9JTlRFUkZBQ0VfTkFNRX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XG5pbXBvcnQge01hcmtldGluZ30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL21hcmtldGluZy5ibyc7XG5pbXBvcnQge0RlbGl2ZXJ5TWV0aG9kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktbWV0aG9kLmJvJztcbmltcG9ydCB7RGVsaXZlcnlPcHRpb259IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1vcHRpb24uYm8nO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge1RleHRWYWx1ZUNvbnRhaW5lcn0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvdGV4dC12YWx1ZS1jb250YWluZXInO1xuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWluZm8tcmVzcG9uc2UuYm8nO1xuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi8uLi9lbnVtL2ljb24uZW51bSc7XG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcbmltcG9ydCB7QWRkcmVzc30gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm8nO1xuaW1wb3J0IHtHZW5kZXJUeXBlfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9nZW5kZXItdHlwZS5lbnVtJztcbmltcG9ydCB7Q2hlY2tvdXRDZmdOYW1lfSBmcm9tICcuLi8uLi8uLi9lbnVtL2NoZWNrb3V0LWNmZy1uYW1lLmVudW0nO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjby1jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0XCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVsaXZlcnktZWRpdC1jb250ZW50XCI+XG4gICAgICAgICAgPGNvLWZvcm0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1mb3JtLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1sYWJlbC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAjaW5kZXhMYWJlbD48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInREVMSVZFUllfREFUQScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktbWV0aG9kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuRGVsaXZlcnlNZXRob2RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWx0ZXJPbldpemFyZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsaXZlcnlNZXRob2RDaGFuZ2UpPVwiY3VycmVudERlbGl2ZXJ5TWV0aG9kID0gJGV2ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlbGl2ZXJ5LW1ldGhvZD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS1kYXRlIGNsYXNzPVwiaGVhZGVyLWRlbGl2ZXJ5LWRlbGl2ZXJ5ZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5EZWxpdmVyeURhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItZGVsaXZlcnktZGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1wcmVmZXJyZWQtZGVsaXZlcnktZGF0ZSBjbGFzcz1cImhlYWRlci1kZWxpdmVyeS1kZWxpdmVyeWRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlByZWZlcmVkRGVsaXZlcnlEYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXByZWZlcnJlZC1kZWxpdmVyeS1kYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBhcnRpYWwtZGVsaXZlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5QYXJ0aWFsRGVsaXZlcnlcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1wYXJ0aWFsLWRlbGl2ZXJ5PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkRlbGl2ZXJ5T3B0aW9uc1wiIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSBbaGVhZGVyVGl0bGVdPVwiJ0FERF9ERUxJVkVSWV9PUFRJT04nIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuVHJpYW5nbGVEb3duKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS1vcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5EZWxpdmVyeU9wdGlvbnNcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWxpdmVyeS1vcHRpb25zPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28tY29sbGFwc2libGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCIgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVtYXJrc1wiIHNjcmVlbkNvbmZpZ05hdGl2ZUVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxjby1jb2xsYXBzaWJsZSBbaGVhZGVyVGl0bGVdPVwiJ0FERF9SRU1BUksnIHwgbG9jYWxpemVcIiBbaWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmlhbmdsZURvd24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXJlbWFya3NcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbWFya3NcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1yZW1hcmtzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvY28tY29sbGFwc2libGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCIgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVmZXJlbmNlXCIgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLWNvbGxhcHNpYmxlIFtoZWFkZXJUaXRsZV09XCInQUREX1JFRkVSRU5DRScgfCBsb2NhbGl6ZVwiIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlRyaWFuZ2xlRG93bilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItcmVmZXJlbmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5SZWZlcmVuY2VcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1yZWZlcmVuY2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlZmVyZW5jZVJlbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuQ29uZmlnTmF0aXZlRWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXJlbGF0aW9uLXJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVmZXJlbmNlUmVsYXRpb25cIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1yZWxhdGlvbi1yZWZlcmVuY2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jby1jb2xsYXBzaWJsZT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dEb3duUGF5bWVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1sYWJlbC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gI2luZGV4TGFiZWw+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidET1dOUEFZTUVOVCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtcGVyY2VudGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5EZXBvc2l0UGVyY2VudGFnZVwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtcGVyY2VudGFnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItZGVwb3NpdC1hbW91bnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuRGVwb3NpdEFtb3VudFwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWRlcG9zaXQtYW1vdW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dPcmRlckRhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICNpbmRleExhYmVsPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInT1JERVJfREFUQScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWJyYW5jaFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5CcmFuY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2ltcGxlXT1cInRydWVcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1icmFuY2g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWFkbWluaXN0cmF0aXZlLXJlbGF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkFkbWluaXN0cmF0aXZlTWFuYWdlclwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLWFkbWluaXN0cmF0aXZlLXJlbGF0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLXBheW1lbnQtY29uZGl0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUGF5bWVudENvbmRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1wYXltZW50LWNvbmRpdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWhlYWRlci1zYWxlcy1wZXJzb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5TYWxlc1BlcnNvblwiPjwvY28tdHJhbnNhY3Rpb24taGVhZGVyLXNhbGVzLXBlcnNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIiAqbmdJZj1cInNob3dPcmRlclBhcmFtZXRlcnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y28tdHJhbnNhY3Rpb24taGVhZGVyLWRlZmluaXRpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLkRlZmluaXRpdmVcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1kZWZpbml0aXZlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItaG9sZC1jb2RlcyAqbmdJZj1cIiF0cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25EZWZpbml0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLk9uSG9sZENvZGVzXCI+PC9jby10cmFuc2FjdGlvbi1oZWFkZXItaG9sZC1jb2Rlcz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLk1hcmtldGluZ0NvZGVcIiBzY3JlZW5Db25maWdOYXRpdmVFbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiIFt0ZXh0Q29udGVudF09XCInTUFSS0VUSU5HX0NPREUnIHwgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1oZWFkZXItbWFya2V0aW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLk1hcmtldGluZ0NvZGVcIj48L2NvLXRyYW5zYWN0aW9uLWhlYWRlci1tYXJrZXRpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvY28tZm9ybT5cbiAgICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtcbiAgICBGb3JtTWFzdGVyU2VydmljZSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTQ1JFRU5fQ09ORklHX0FEQVBURVJfQ09NUE9ORU5UX0lOVEVSRkFDRV9OQU1FLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudClcbiAgICB9XG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgQ2hlY2tvdXRDZmdOYW1lID0gQ2hlY2tvdXRDZmdOYW1lO1xuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcblxuICBAVmlld0NoaWxkcmVuKFwiaW5kZXhMYWJlbFwiLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgc2V0IHZpZXdDaGlsZHJlbihjaGlsZHJlbikge1xuICAgIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzcGFucyA9IGNoaWxkcmVuLnRvQXJyYXkoKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IHNwYW5zW2ldO1xuICAgICAgICBpZiAoc3Bhbi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgc3Bhbi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IChpICsgMSA8IDEwKSA/ICcwJyArIChpICsgMSkudG9TdHJpbmcoKSA6IChpICsgMSkudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB2YWxpZFN1Ym1pdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaW52YWxpZFN1Ym1pdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXRcIilcbiAgcHVibGljIHNob3dDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIHB1YmxpYyBkZWxpdmVyeVR5cGVzOiBEZWxpdmVyeVR5cGVbXSA9IFtcbiAgLy8gICB7Y29kZTogJzEnLCBkZXNjcmlwdGlvbjogJ0Jlem9yZ2VuJywgaWNvbjogdGhpcy5pY29ucy5EZWxpdmVyeVRydWNrLCBwcmljZTogODl9LFxuICAvLyAgIHtjb2RlOiAnMicsIGRlc2NyaXB0aW9uOiAnQmV6b3JnZW4gJiBtb250ZXJlbicsIGljb246IHRoaXMuaWNvbnMuQ2FsZW5kYXJEYXksIHByaWNlOiAxMTl9LFxuICAvLyAgIHtjb2RlOiAnMycsIGRlc2NyaXB0aW9uOiAnTWVlbmVtZW4nLCBpY29uOiB0aGlzLmljb25zLlRydWNrfSxcbiAgLy8gXTtcbiAgcHVibGljIGRlbGl2ZXJ5T3B0aW9uTGlzdDogRGVsaXZlcnlPcHRpb25bXSA9IFtdO1xuICBwdWJsaWMgZGVsaXZlcnlPcHRpb25zOiBEZWxpdmVyeU9wdGlvbltdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU9wdGlvbkZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0ge3RleHQ6IFwiZGVzY3JpcHRpb25cIiwgdmFsdWU6IFwiY29kZVwifTtcbiAgcHVibGljIGRlbGl2ZXJ5TWV0aG9kczogRGVsaXZlcnlNZXRob2RbXSA9IFtdO1xuICBwdWJsaWMgZGVsaXZlcnlNZXRob2RGaWVsZHM6IFRleHRWYWx1ZUNvbnRhaW5lciA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIn07XG4gIHB1YmxpYyBkZWxpdmVyeVR5cGVJZHg6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGN1cnJlbnREZWxpdmVyeU1ldGhvZDogRGVsaXZlcnlNZXRob2Q7XG5cbiAgcHVibGljIGNoYW5nZUxvY2F0aW9uUG9wdXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHRyYW5zYWN0aW9uRGVmaW5pdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBuZXdBZGRyZXNzOiBBZGRyZXNzO1xuICBwdWJsaWMgcHJlZmVycmVkRGF0ZU9wdGlvbnM6IFRleHRWYWx1ZUNvbnRhaW5lcltdID0gW1xuICAgIHt0ZXh0OiBcIk5PVF9BRlRFUlwiLCB2YWx1ZTogXCI+XCJ9LFxuICAgIHt0ZXh0OiBcIk5PVF9CRUZPUkVcIiwgdmFsdWU6IFwiPFwifSxcbiAgICB7dGV4dDogXCJPTl9EQVRFXCIsIHZhbHVlOiBcIj1cIn0sXG4gIF07XG4gIHB1YmxpYyBhZGRyZXNzVG9FZGl0OiBBZGRyZXNzO1xuICBwdWJsaWMgcHJlZmVycmVkRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHB1YmxpYyBnZW5kZXI6IEdlbmRlclR5cGU7XG4gIHB1YmxpYyBtYXJrZXRpbmc6IE1hcmtldGluZ1tdID0gW107XG4gIHB1YmxpYyBtYXJrZXRpbmdGaWVsZHM6IE9iamVjdCA9IHt0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIn07XG4gIHB1YmxpYyBtYXJrZXRpbmdDb2RlOiBzdHJpbmc7XG4gIHB1YmxpYyBhc3NlbWJseUNvc3RzOiBudW1iZXI7XG4gIHB1YmxpYyBkZWxpdmVyeUNvc3RzOiBudW1iZXI7XG5cbiAgLy8gVE9ETzogRGV6ZSB2ZWxkZW4gbm9nIG9wbmVtZW4gaW4gVHJhbnNhY3Rpb24hIVxuICBwdWJsaWMgZGVsaXZlcnlEYXRlRmluYWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGFzc2VtYmx5RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHB1YmxpYyB0b3RhbEFzc2VtYmx5VGltZTogc3RyaW5nID0gXCJcIjtcbiAgcHVibGljIGRyb3BzaGlwbWVudDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0Rvd25QYXltZW50OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93T3JkZXJEYXRhOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93T3JkZXJQYXJhbWV0ZXJzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBkZWxpdmVyeURhdGUoKTogRGF0ZSB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5RGF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uZGVsaXZlcnlEYXRlO1xuICB9XG5cbiAgcHVibGljIHNldCBkZWxpdmVyeURhdGUodmFsdWU6IERhdGUpIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeURhdGUgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2Zvcm1NYXN0ZXJTZXJ2aWNlOiBGb3JtTWFzdGVyU2VydmljZSxcbiAgICBwcml2YXRlIF9zY3JlZW5Db25maWdTZXJ2aWNlOiBUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5jb25maWdTZXQuc3Vic2NyaWJlKChjb25maWdPYmplY3RzOiBPYmplY3RDb25maWd1cmF0aW9uW10pID0+IHtcbiAgICAgICAgICBpZiAoY29uZmlnT2JqZWN0cyAmJiBjb25maWdPYmplY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0Rvd25QYXltZW50ID0gdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVwb3NpdFBlcmNlbnRhZ2UpLmltbWVkaWF0ZWx5VmlzaWJsZSgpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVwb3NpdEFtb3VudCkuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XG4gICAgICAgICAgICB0aGlzLnNob3dPcmRlckRhdGEgPSB0aGlzLl9zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5CcmFuY2gpLmltbWVkaWF0ZWx5VmlzaWJsZSgpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuQWRtaW5pc3RyYXRpdmVNYW5hZ2VyKS5pbW1lZGlhdGVseVZpc2libGUoKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk1hcmtldGluZ0NvZGUpLmltbWVkaWF0ZWx5VmlzaWJsZSgpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVmaW5pdGl2ZSkuaW1tZWRpYXRlbHlWaXNpYmxlKCkgfHxcbiAgICAgICAgICAgICAgICB0aGlzLl9zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5PbkhvbGRDb2RlcykuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XG4gICAgICAgICAgICB0aGlzLnNob3dPcmRlclBhcmFtZXRlcnMgPSB0aGlzLl9zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZWZpbml0aXZlKS5pbW1lZGlhdGVseVZpc2libGUoKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk9uSG9sZENvZGVzKS5pbW1lZGlhdGVseVZpc2libGUoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgKVxuICAgIGlmICh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCkge1xuICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnRyeVRvTG9ja1RyYW5zYWN0aW9uKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby52ZXJzaW9uKTtcbiAgICB9XG4gICAgdGhpcy5kZWxpdmVyeUNvc3RzID0gdGhpcy5jYWxjdWxhdGVEZWxpdmVyeUNvc3RzKCk7XG4gICAgdGhpcy5hc3NlbWJseUNvc3RzID0gdGhpcy5jYWxjdWxhdGVBc3NlbWJseUNvc3RzKCk7XG4gICAgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5TWV0aG9kcygpLnRoZW4oKG1ldGhvZHM6IERlbGl2ZXJ5TWV0aG9kW10pID0+IHtcbiAgICAgIHRoaXMuZGVsaXZlcnlNZXRob2RzID0gbWV0aG9kcy5maWx0ZXIobSA9PiBtLndlYnNob3ApO1xuICAgICAgdGhpcy5jdXJyZW50RGVsaXZlcnlNZXRob2QgPSB0aGlzLmRlbGl2ZXJ5TWV0aG9kcy5maW5kKGQgPT4gZC5jb2RlID09PSB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5kZWxpdmVyeU1ldGhvZCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5T3B0aW9ucygpLnRoZW4oKG9wdGlvbnM6IERlbGl2ZXJ5T3B0aW9uW10pID0+IHtcbiAgICAgIHRoaXMuZGVsaXZlcnlPcHRpb25MaXN0ID0gb3B0aW9ucztcbiAgICB9KTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0TWFya2V0aW5nQ29kZXMoKS50aGVuKChtYXJrZXRpbmdDb2RlczogTWFya2V0aW5nW10pID0+IHtcbiAgICAgIHRoaXMubWFya2V0aW5nID0gbWFya2V0aW5nQ29kZXM7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGVsaXZlcnlPcHRpb25zQnlEZWxpdmVyeU1ldGhvZChkZWxpdmVyeU1ldGhvZDogRGVsaXZlcnlNZXRob2QpOiBEZWxpdmVyeU9wdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5kZWxpdmVyeU9wdGlvbkxpc3QuZmlsdGVyKGRlbGl2ZXJ5T3B0aW9uID0+IGRlbGl2ZXJ5TWV0aG9kLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uLmNvZGUpICE9PSAtMSk7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZURlbGl2ZXJ5Q29zdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlQXNzZW1ibHlDb3N0cygpOiBudW1iZXIge1xuICAgIHJldHVybiAwO1xuICB9XG59XG4iXX0=
|
|
@@ -13,8 +13,8 @@ import { SupplierFullObject } from '@colijnit/relationapi/build/model/supplier-f
|
|
|
13
13
|
import { TransactionRelationService } from '../../../service/transaction-relation.service';
|
|
14
14
|
import { TransactionDialogService } from '../../../service/transaction-dialog.service';
|
|
15
15
|
import { CheckoutCfgName } from '../../../enum/checkout-cfg-name.enum';
|
|
16
|
-
import { CheckoutScreenConfigurationService } from '../service/checkout-screen-configuration.service';
|
|
17
16
|
import { RelationSuggestionsService } from '../../../service/relation-suggestions.service';
|
|
17
|
+
import { TransactionScreenConfigurationService } from '../../../service/transaction-screen-configuration.service';
|
|
18
18
|
export class CheckoutOverviewRelationEditComponent {
|
|
19
19
|
constructor(service, _formMaster, _relationService, _dialogService, _screenConfigService, _suggestionsService) {
|
|
20
20
|
this.service = service;
|
|
@@ -416,7 +416,7 @@ CheckoutOverviewRelationEditComponent.ctorParameters = () => [
|
|
|
416
416
|
{ type: FormMasterService },
|
|
417
417
|
{ type: TransactionRelationService },
|
|
418
418
|
{ type: TransactionDialogService },
|
|
419
|
-
{ type:
|
|
419
|
+
{ type: TransactionScreenConfigurationService },
|
|
420
420
|
{ type: RelationSuggestionsService }
|
|
421
421
|
];
|
|
422
422
|
CheckoutOverviewRelationEditComponent.propDecorators = {
|
|
@@ -432,4 +432,4 @@ CheckoutOverviewRelationEditComponent.propDecorators = {
|
|
|
432
432
|
relationChange: [{ type: Output }],
|
|
433
433
|
showClass: [{ type: HostBinding, args: ['class.co-checkout-overview-relation-edit',] }]
|
|
434
434
|
};
|
|
435
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRS9FLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUM3RixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDakYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBRS9FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUMxRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUk3RixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwrQ0FBK0Ms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O2tDQUdMLEtBQUs7MEJBR0wsTUFBTTs0QkFHTixNQUFNO29DQUdOLE1BQU07bUNBR04sTUFBTTs2QkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywwQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XG5pbXBvcnQge0Zvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7Q291bnRyeX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvdW50cnkuYm8nO1xuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi8uLi9lbnVtL2ljb24uZW51bSc7XG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvJztcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1raW5kLmVudW0nO1xuaW1wb3J0IHtBZGRyZXNzVHlwZX0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vYWRkcmVzcy10eXBlLmVudW0nO1xuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gJy4uLy4uLy4uL21vZGVsL3JlbGF0aW9uLWFueS10eXBlJztcbmltcG9ydCB7QWRkcmVzc30gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm8nO1xuaW1wb3J0IHtSZWxhdGlvbk5hbWVLaW5kfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1uYW1lLWtpbmQuZW51bSc7XG5pbXBvcnQge1N1cHBsaWVyRnVsbE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3N1cHBsaWVyLWZ1bGwtb2JqZWN0LmJvJztcbmltcG9ydCB7UmVsYXRpb259IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi5ibyc7XG5pbXBvcnQge1JlbGF0aW9uTGlzdE9iamVjdH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWxpc3Qtb2JqZWN0LmJvJztcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHQnO1xuaW1wb3J0IHtUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1yZWxhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNhY3Rpb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7UmVsYXRpb25TdWdnZXN0aW9uc1JlcXVlc3R9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9yZWxhdGlvbi1zdWdnZXN0aW9ucy1yZXF1ZXN0LmludGVyZmFjZSc7XG5pbXBvcnQge0NoZWNrb3V0Q2ZnTmFtZX0gZnJvbSAnLi4vLi4vLi4vZW51bS9jaGVja291dC1jZmctbmFtZS5lbnVtJztcbmltcG9ydCB7UmVsYXRpb25HZW5lcmFsQ2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9yZWxhdGlvbi1nZW5lcmFsLWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtSZWxhdGlvbkFkZHJlc3NDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3JlbGF0aW9uLWFkZHJlc3MtY2ZnLW5hbWVzLmludGVyZmFjZSc7XG5pbXBvcnQge1JlbGF0aW9uQ29udGFjdERldGFpbHNDZmdOYW1lc30gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlL3JlbGF0aW9uLWNvbnRhY3QtZGV0YWlscy1jZmctbmFtZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2hlY2tvdXRTY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0gZnJvbSAnLi4vc2VydmljZS9jaGVja291dC1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7UmVsYXRpb25TdWdnZXN0aW9uc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvcmVsYXRpb24tc3VnZ2VzdGlvbnMuc2VydmljZSc7XG5pbXBvcnQge09iamVjdENvbmZpZ3VyYXRpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInJlbGF0aW9uLWVkaXQtY29udGVudFwiPlxuICAgICAgPGNvLWZvcm0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1mb3JtLXdyYXBwZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtY29sdW1uXCI+XG4gICAgICAgICAgICA8c3BhbiAjaW5kZXhMYWJlbD48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidQRVJTT05BTF9EQVRBJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLWNvbHVtblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgIDxjby1yZWxhdGlvbi10eXBlICpuZ0lmPVwicmVsYXRpb25LaW5kID09PSByZWxLaW5kLkN1c3RvbWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVsYXRpb25UeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbGF0aW9uQ2hhbmdlKT1cImhhbmRsZVJlbGF0aW9uVHlwZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tdHlwZT5cbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImVtcHR5LXJlbGF0aW9uLWJ1dHRvbiBkZWZhdWx0LXdpZHRoXCIgW2xhYmVsXT1cIidFTVBUWScgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtcHR5UmVsYXRpb24oJGV2ZW50KVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIiAqbmdJZj1cInJlbGF0aW9uS2luZCA9PT0gcmVsS2luZC5DdXN0b21lclwiPlxuICAgICAgICAgICAgICA8cmVsYXRpb24tY3VzdG9tZXItZ3JvdXBzXG4gICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVsYXRpb25DdXN0b21lckdyb3VwXCJcbiAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY3VzdG9tZXJHcm91cFwiXG4gICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZUN1c3RvbWVyR3JvdXBDaGFuZ2UoJGV2ZW50KVwiIHJlcXVpcmVkPlxuICAgICAgICAgICAgICA8L3JlbGF0aW9uLWN1c3RvbWVyLWdyb3Vwcz5cbiAgICAgICAgICAgICAgPHJlbGF0aW9uLWN1c3RvbWVyLWxhbmd1YWdlc1xuICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbGF0aW9uTGFuZ3VhZ2VcIlxuICAgICAgICAgICAgICAgIFttb2RlbF09XCJjdXN0b21lckxhbmd1YWdlXCJcbiAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlQ3VzdG9tZXJMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDwvcmVsYXRpb24tY3VzdG9tZXItbGFuZ3VhZ2VzPlxuICAgICAgICAgICAgICA8cmVsYXRpb24tY3VzdG9tZXItdGl0bGVzXG4gICAgICAgICAgICAgICAgW3NjcmVlbkNvbmZpZ3VyYXRpb25PYmplY3RdPVwiY2ZnTmFtZXMuUmVsYXRpb25UaXRsZVwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cImN1c3RvbWVyVGl0bGVcIlxuICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVDdXN0b21lclRpdGxlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgPC9yZWxhdGlvbi1jdXN0b21lci10aXRsZXM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tZ2VuZXJhbFxuICAgICAgICAgICAgICAgIFtjb25maWdOYW1lc109XCJyZWxhdGlvbkdlbmVyYWxDb25maWdOYW1lc1wiXG4gICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcbiAgICAgICAgICAgICAgICBbcmVsYXRpb25UeXBlXT1cInJlbGF0aW9uVHlwZVwiXG4gICAgICAgICAgICAgICAgKHJlbGF0aW9uQ2hhbmdlKT1cInVwZGF0ZVJlbGF0aW9uKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZUZvclN1Z2dlc3Rpb25zKT1cImhhbmRsZUlucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICA+PC9jby1yZWxhdGlvbi1nZW5lcmFsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWFkZHJlc3NcbiAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwicmVsYXRpb25BZGRyZXNzQ29uZmlnTmFtZXNcIlxuICAgICAgICAgICAgICAgIFthZGRyZXNzXT1cImFkZHJlc3NcIlxuICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZUZvclN1Z2dlc3Rpb25zKT1cImhhbmRsZUlucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICA+PC9jby1yZWxhdGlvbi1hZGRyZXNzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dBZGRyZXNzZXNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLWNvbHVtblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tYWRkcmVzc2VzXG4gICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwicmVsYXRpb25cIlxuICAgICAgICAgICAgICAgICAgW2FkZHJlc3Nlc109XCJyZWxhdGlvbi5hZGRyZXNzZXNcIlxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiYWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZE5hd05yXT1cImRlbGl2ZXJ5QWRkcmVzc05hd05yXCJcbiAgICAgICAgICAgICAgICAgIChzZWxlY3RlZE5hd05yQ2hhbmdlKT1cImhhbmRsZURlbGl2ZXJ5QWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9jby1yZWxhdGlvbi1hZGRyZXNzZXM+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtY29sdW1uXCIgKm5nSWY9XCJyZWxhdGlvbktpbmQgPT09IHJlbEtpbmQuQ3VzdG9tZXJcIj5cbiAgICAgICAgICAgICAgPHNwYW4gI2luZGV4TGFiZWw+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidJTlZPSUNFX0FERFJFU1MnIHwgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLWNvbHVtblwiICpuZ0lmPVwicmVsYXRpb25LaW5kID09PSByZWxLaW5kLkN1c3RvbWVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jaGVja2JveCBbKG1vZGVsKV09XCJzZXJ2aWNlLmludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiY2hlY2tTYW1lQWRkcmVzcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidTQU1FX0FTX0RFTElWRVJZJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVydmlldy1kZWxpdmVyeS1pbnZvaWNlLWFkZHJlc3NcIiAqbmdJZj1cIiFzZXJ2aWNlLmludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnlcIlxuICAgICAgICAgICAgICAgICAgIEBzaG93SGlkZUludm9pY2VBZGRyZXNzPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWFkZHJlc3Nlc1xuICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwicmVsYXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBbYWRkcmVzc2VzXT1cInJlbGF0aW9uLmFjdGl2ZUFkZHJlc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImFkZHJlc3NUeXBlLkJpbGxpbmdBZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkTmF3TnJdPVwiaW52b2ljZUFkZHJlc3NOYXdOclwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZE5hd05yQ2hhbmdlKT1cImludm9pY2VBZGRyZXNzQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9jby1yZWxhdGlvbi1hZGRyZXNzZXM+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDb250YWN0RGV0YWlsc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWNvbHVtblwiPlxuICAgICAgICAgICAgICA8c3BhbiAjaW5kZXhMYWJlbD48L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ0NPTlRBQ1RfREVUQUlMUycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1jb250YWN0LWRldGFpbHNcbiAgICAgICAgICAgICAgICAgIFtjb25maWdOYW1lc109XCJjb250YWN0RGV0YWlsc0NvbmZpZ05hbWVzXCJcbiAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInJlbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbktpbmRdPVwicmVsYXRpb25LaW5kXCI+PC9jby1yZWxhdGlvbi1jb250YWN0LWRldGFpbHM+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlbGF0aW9uS2luZCA9PT0gcmVsS2luZC5DdXN0b21lciAmJiBzaG93UHJlZmVyZW5jZXNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1sYWJlbC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPHNwYW4gI2luZGV4TGFiZWw+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidQUklWQUNZX1BSRUZFUkVOQ0VTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLXByZWZlcmVuY2VzXG4gICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiPjwvY28tcmVsYXRpb24tcHJlZmVyZW5jZXM+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jby1mb3JtPlxuICAgIDwvZGl2PlxuICBgLFxuICBwcm92aWRlcnM6IFtcbiAgICBGb3JtTWFzdGVyU2VydmljZSxcbiAgICBSZWxhdGlvblN1Z2dlc3Rpb25zU2VydmljZVxuICBdLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc2hvd0hpZGVJbnZvaWNlQWRkcmVzcycsIFtcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe2hlaWdodDogMCwgb3BhY2l0eTogMH0pKSxcbiAgICAgIHN0YXRlKCcqJywgc3R5bGUoe2hlaWdodDogJyonLCBvcGFjaXR5OiAxfSkpLFxuICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiAqJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1pbi1vdXQnKSksXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBhbmltYXRlKCcyMDBtcyBlYXNlLW91dCcpKVxuICAgIF0pXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRPdmVydmlld1JlbGF0aW9uRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IGNmZ05hbWVzOiB0eXBlb2YgQ2hlY2tvdXRDZmdOYW1lID0gQ2hlY2tvdXRDZmdOYW1lO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVsS2luZDogdHlwZW9mIFJlbGF0aW9uS2luZCA9IFJlbGF0aW9uS2luZDtcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XG4gIHB1YmxpYyByZWFkb25seSBhZGRyZXNzVHlwZTogdHlwZW9mIEFkZHJlc3NUeXBlID0gQWRkcmVzc1R5cGU7XG5cbiAgQFZpZXdDaGlsZHJlbignaW5kZXhMYWJlbCcsIHtyZWFkOiBFbGVtZW50UmVmfSkgc2V0IHZpZXdDaGlsZHJlbihjaGlsZHJlbikge1xuICAgIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzcGFucyA9IGNoaWxkcmVuLnRvQXJyYXkoKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3BhbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IHNwYW5zW2ldO1xuICAgICAgICBpZiAoc3Bhbi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgc3Bhbi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IChpICsgMSA8IDEwKSA/ICcwJyArIChpICsgMSkudG9TdHJpbmcoKSA6IChpICsgMSkudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVsYXRpb24odmFsdWU6IFJlbGF0aW9uQW55VHlwZSkge1xuICAgIGlmICh0aGlzLl9yZWxhdGlvbiAmJiB2YWx1ZSAmJiB0aGlzLl9yZWxhdGlvbi5yZWxhdGlvbklkICYmIHZhbHVlLnJlbGF0aW9uSWQgJiYgdGhpcy5fcmVsYXRpb24ucmVsYXRpb25JZCA9PT0gdmFsdWUucmVsYXRpb25JZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9yZWxhdGlvbiA9IHZhbHVlO1xuICAgIGlmICh0aGlzLl9yZWxhdGlvbikge1xuICAgICAgaWYgKHRoaXMuX3JlbGF0aW9uIGluc3RhbmNlb2YgU3VwcGxpZXJGdWxsT2JqZWN0KSB7XG4gICAgICAgIHRoaXMuX3JlbGF0aW9uLnR5cGUgPSBSZWxhdGlvbk5hbWVLaW5kLkNvbXBhbnk7XG4gICAgICAgIHRoaXMucmVsYXRpb25UeXBlID0gUmVsYXRpb25OYW1lS2luZC5Db21wYW55O1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX3JlbGF0aW9uIGluc3RhbmNlb2YgQ3VzdG9tZXJGdWxsT2JqZWN0KSB7XG4gICAgICAgIHRoaXMuY3VzdG9tZXJHcm91cCA9IHRoaXMuX3JlbGF0aW9uLmN1c3RvbWVyR3JvdXA7XG4gICAgICAgIHRoaXMuY3VzdG9tZXJMYW5ndWFnZSA9IHRoaXMuX3JlbGF0aW9uLmxhbmd1YWdlO1xuICAgICAgICB0aGlzLmN1c3RvbWVyVGl0bGUgPSB0aGlzLl9yZWxhdGlvbi50aXRsZUlkO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRyZXNzID0gdGhpcy5fZ2V0Rmlyc3RBY3RpdmVBZGRyZXNzT3JDcmVhdGVOZXcodGhpcy5fcmVsYXRpb24pO1xuICAgICAgaWYgKHRoaXMuYWRkcmVzcykge1xuICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID0gdGhpcy5hZGRyZXNzLm5hd05yO1xuICAgICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc0NoYW5nZS5lbWl0KHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIpO1xuICAgICAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSB0aGlzLmFkZHJlc3MubmF3TnI7XG4gICAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3NDaGFuZ2UuZW1pdCh0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVsYXRpb24oKTogUmVsYXRpb25BbnlUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fcmVsYXRpb247XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlbGF0aW9uS2luZCh2YWx1ZTogUmVsYXRpb25LaW5kKSB7XG4gICAgdGhpcy5fcmVsYXRpb25LaW5kID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX3JlbGF0aW9uS2luZCA9PT0gUmVsYXRpb25LaW5kLlN1cHBsaWVyKSB7XG4gICAgICB0aGlzLnJlbGF0aW9uVHlwZSA9IFJlbGF0aW9uTmFtZUtpbmQuQ29tcGFueTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlbGF0aW9uS2luZCgpOiBSZWxhdGlvbktpbmQge1xuICAgIHJldHVybiB0aGlzLl9yZWxhdGlvbktpbmQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGVsaXZlcnlBZGRyZXNzTmF3TnI6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaW52b2ljZUFkZHJlc3NOYXdOcjogbnVtYmVyO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgdmFsaWRTdWJtaXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGludmFsaWRTdWJtaXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGRlbGl2ZXJ5QWRkcmVzc0NoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGludm9pY2VBZGRyZXNzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVsYXRpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkFueVR5cGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWxhdGlvbkFueVR5cGU+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0JylcbiAgcHVibGljIHNob3dDbGFzcygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRyZXNzOiBBZGRyZXNzO1xuICBwdWJsaWMgY3VzdG9tZXJHcm91cDogc3RyaW5nO1xuICBwdWJsaWMgY3VzdG9tZXJMYW5ndWFnZTogc3RyaW5nO1xuICBwdWJsaWMgY3VzdG9tZXJUaXRsZTogbnVtYmVyO1xuICBwdWJsaWMgcmVsYXRpb25UeXBlOiBSZWxhdGlvbk5hbWVLaW5kID0gUmVsYXRpb25OYW1lS2luZC5Qcml2YXRlO1xuXG4gIHB1YmxpYyBjb250YWN0RGV0YWlsc0NvbmZpZ05hbWVzOiBSZWxhdGlvbkNvbnRhY3REZXRhaWxzQ2ZnTmFtZXMgPSB7XG4gICAgcmVsYXRpb25QaG9uZTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvblBob25lLFxuICAgIHJlbGF0aW9uRW1haWxBZGRyZXNzOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uRW1haWxBZGRyZXNzLFxuICAgIHJlbGF0aW9uSW52aXRlVG9BY2NvdW50OiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uSW52aXRlVG9BY2NvdW50XG4gIH07XG4gIHB1YmxpYyByZWxhdGlvbkdlbmVyYWxDb25maWdOYW1lczogUmVsYXRpb25HZW5lcmFsQ2ZnTmFtZXMgPSB7XG4gICAgcmVsYXRpb25Db21wYW55OiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uQ29tcGFueSxcbiAgICByZWxhdGlvbkZpcnN0TmFtZTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkZpcnN0TmFtZSxcbiAgICByZWxhdGlvblByZWZpeDogdGhpcy5jZmdOYW1lcy5SZWxhdGlvblByZWZpeCxcbiAgICByZWxhdGlvbkxhc3ROYW1lOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uTGFzdE5hbWUsXG4gICAgcmVsYXRpb25HZW5kZXI6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25HZW5kZXIsXG4gICAgY29udGFjdERldGFpbHM6IHRoaXMuY29udGFjdERldGFpbHNDb25maWdOYW1lc1xuICB9O1xuICBwdWJsaWMgcmVsYXRpb25BZGRyZXNzQ29uZmlnTmFtZXM6IFJlbGF0aW9uQWRkcmVzc0NmZ05hbWVzID0ge1xuICAgIHJlbGF0aW9uU3RyZWV0OiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uU3RyZWV0LFxuICAgIHJlbGF0aW9uSG91c2VOcjogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkhvdXNlTnIsXG4gICAgcmVsYXRpb25Ib3VzZU5yQWRkOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uSG91c2VOckFkZCxcbiAgICByZWxhdGlvbkNpdHk6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25DaXR5LFxuICAgIHJlbGF0aW9uQ291bnRyeTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkNvdW50cnksXG4gICAgcmVsYXRpb25Qb3N0YWxDb2RlOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uUG9zdGFsQ29kZVxuICB9O1xuICBwdWJsaWMgc2hvd0NvbnRhY3REZXRhaWxzOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93UHJlZmVyZW5jZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNob3dTdWdnZXN0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd0FkZHJlc3NlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX3JlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBuZXcgQ3VzdG9tZXJGdWxsT2JqZWN0KCk7XG4gIHByaXZhdGUgX3JlbGF0aW9uS2luZDogUmVsYXRpb25LaW5kID0gUmVsYXRpb25LaW5kLkN1c3RvbWVyO1xuICBwcml2YXRlIF9yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnM6IFJlbGF0aW9uU3VnZ2VzdGlvbnNSZXF1ZXN0ID0ge307XG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIF9mb3JtTWFzdGVyOiBGb3JtTWFzdGVyU2VydmljZSxcbiAgICBwcml2YXRlIF9yZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IFRyYW5zYWN0aW9uRGlhbG9nU2VydmljZSxcbiAgICBwcml2YXRlIF9zY3JlZW5Db25maWdTZXJ2aWNlOiBDaGVja291dFNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgX3N1Z2dlc3Rpb25zU2VydmljZTogUmVsYXRpb25TdWdnZXN0aW9uc1NlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2UuaW5pdCh0aGlzLl9yZWxhdGlvbktpbmQpO1xuICAgIHRoaXMuX3N1YnMucHVzaChcbiAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ1NlcnZpY2UuY29uZmlnU2V0LnN1YnNjcmliZSgoY29uZmlnT2JqZWN0czogT2JqZWN0Q29uZmlndXJhdGlvbltdKSA9PiB7XG4gICAgICAgIGlmIChjb25maWdPYmplY3RzICYmIGNvbmZpZ09iamVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuc2hvd1ByZWZlcmVuY2VzID0gdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25QcmVmZXJlbmNlc0hlYWRlcikuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XG4gICAgICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbnMgPSB0aGlzLl9zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5TdWdnZXN0aW9ucykuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XG4gICAgICAgICAgdGhpcy5zaG93QWRkcmVzc2VzID0gdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25BZGRyZXNzZXNIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpO1xuICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY29udGFjdERldGFpbHNDb25maWdOYW1lcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuY29udGFjdERldGFpbHNDb25maWdOYW1lcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLl9zY3JlZW5Db25maWdTZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3Ioa2V5KS5pbW1lZGlhdGVseVZpc2libGUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0NvbnRhY3REZXRhaWxzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgdGhpcy5fc3VnZ2VzdGlvbnNTZXJ2aWNlLnN1Z2dlc3RlZFJlbGF0aW9uQ2xpY2suc3Vic2NyaWJlKChyZWxhdGlvbjogUmVsYXRpb25MaXN0T2JqZWN0KSA9PiB0aGlzLm9uUmVsYXRpb25TdWdnZXN0aW9uQ2xpY2socmVsYXRpb24pKVxuICAgICk7XG4gICAgaWYgKHRoaXMuX3JlbGF0aW9uKSB7XG4gICAgICB0aGlzLmFkZHJlc3MgPSB0aGlzLl9yZWxhdGlvbi5nZXRGaXJzdEFkZHJlc3NPckNyZWF0ZU5ldygpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmaXJzdEFjdGl2ZUFkZHJlc3M6IEFkZHJlc3MgPSB0aGlzLl9yZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXMubGVuZ3RoID4gMCA/IHRoaXMuX3JlbGF0aW9uLmFjdGl2ZUFkZHJlc3Nlc1swXSA6IHVuZGVmaW5lZDtcbiAgICBpZiAoIXRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIpIHtcbiAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPSBmaXJzdEFjdGl2ZUFkZHJlc3MgPyBmaXJzdEFjdGl2ZUFkZHJlc3MubmF3TnIgOiAwO1xuICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NDaGFuZ2UuZW1pdCh0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIpIHtcbiAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA9IGZpcnN0QWN0aXZlQWRkcmVzcyA/IGZpcnN0QWN0aXZlQWRkcmVzcy5uYXdOciA6IDA7XG4gICAgICB0aGlzLmludm9pY2VBZGRyZXNzQ2hhbmdlLmVtaXQodGhpcy5pbnZvaWNlQWRkcmVzc05hd05yKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUlucHV0Q2hhbmdlKHJlcXVlc3Q6IFJlbGF0aW9uU3VnZ2VzdGlvbnNSZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy5fcmVxdWVzdEZvclN1Z2dlc3Rpb25zID0gT2JqZWN0LmFzc2lnbih0aGlzLl9yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnMsIHJlcXVlc3QpO1xuICAgIHRoaXMuX3N1Z2dlc3Rpb25zU2VydmljZS5yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnMgPSB0aGlzLl9yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgb25SZWxhdGlvblN1Z2dlc3Rpb25DbGljayhyZWxhdGlvblN1Z2dlc3RlZDogUmVsYXRpb25MaXN0T2JqZWN0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHJlbGF0aW9uU3VnZ2VzdGVkKSB7XG4gICAgICBjb25zdCBsb2NrUmVzdWx0OiBWYWxpZGF0aW9uUmVzdWx0ID0gYXdhaXQgdGhpcy5fcmVsYXRpb25TZXJ2aWNlLmxvY2tSZWxhdGlvbihyZWxhdGlvblN1Z2dlc3RlZC5yZWxhdGlvblR5cGUsIHBhcnNlSW50KHJlbGF0aW9uU3VnZ2VzdGVkLnJlbGF0aW9uTnIsIDApKTtcbiAgICAgIGlmICghbG9ja1Jlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0Vycm9yKCdSRUxBVElPTl9BTFJFQURZX0xPQ0tFRCcsIHRydWUsIGxvY2tSZXN1bHQubWVzc2FnZXNbMF0ubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2UuaGlkZVNpZGViYXIoKTtcbiAgICAgICAgY29uc3Qgc3VnZ2VzdGVkUmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSA9IGF3YWl0IHRoaXMuX3JlbGF0aW9uU2VydmljZS5nZXRSZWxhdGlvbihyZWxhdGlvblN1Z2dlc3RlZC5yZWxhdGlvblR5cGUsIHBhcnNlSW50KHJlbGF0aW9uU3VnZ2VzdGVkLnJlbGF0aW9uTnIpKTtcbiAgICAgICAgaWYgKHN1Z2dlc3RlZFJlbGF0aW9uICYmIHN1Z2dlc3RlZFJlbGF0aW9uLmFkZHJlc3NlcyAmJiBzdWdnZXN0ZWRSZWxhdGlvbi5hZGRyZXNzZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHN1Z2dlc3RlZFJlbGF0aW9uLmFkZHJlc3Nlcy5zb3J0KChhLCBiKSA9PiBhLnNlcXVlbmNlIDwgYi5zZXF1ZW5jZSA/IC0xIDogMSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWxhdGlvbiA9IHN1Z2dlc3RlZFJlbGF0aW9uO1xuICAgICAgICB0aGlzLnJlbGF0aW9uQ2hhbmdlLm5leHQodGhpcy5yZWxhdGlvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhbmRsZVJlbGF0aW9uVHlwZUNoYW5nZShyZWxhdGlvbjogUmVsYXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnJlbGF0aW9uVHlwZSA9IHJlbGF0aW9uLnR5cGU7XG4gIH1cblxuICBwdWJsaWMgZW1wdHlSZWxhdGlvbihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5jcmVhdGVOZXdSZWxhdGlvbigpO1xuICAgIHRoaXMuX3JlcXVlc3RGb3JTdWdnZXN0aW9ucyA9IHt9O1xuICAgIHRoaXMuX3JlbGF0aW9uU2VydmljZS5yZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdENsZWFyLm5leHQoKTtcbiAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2UuaGlkZVNpZGViYXIoKTtcbiAgICAvLyB0aGlzLmhpZGVTaWRlYmFyKCk7XG4gICAgdGhpcy51cGRhdGVSZWxhdGlvbih0aGlzLnNlcnZpY2UucmVsYXRpb24pO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUN1c3RvbWVyR3JvdXBDaGFuZ2UoZ3JvdXA6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tZXJHcm91cCA9IGdyb3VwO1xuICAgIGlmICh0aGlzLl9yZWxhdGlvbiBpbnN0YW5jZW9mIEN1c3RvbWVyRnVsbE9iamVjdCkge1xuICAgICAgdGhpcy5fcmVsYXRpb24uY3VzdG9tZXJHcm91cCA9IHRoaXMuY3VzdG9tZXJHcm91cDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlQ3VzdG9tZXJMYW5ndWFnZUNoYW5nZShsYW5ndWFnZUNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuY3VzdG9tZXJMYW5ndWFnZSA9IGxhbmd1YWdlQ29kZTtcbiAgICBpZiAodGhpcy5fcmVsYXRpb24gaW5zdGFuY2VvZiBDdXN0b21lckZ1bGxPYmplY3QpIHtcbiAgICAgIHRoaXMuX3JlbGF0aW9uLmxhbmd1YWdlID0gdGhpcy5jdXN0b21lckxhbmd1YWdlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDdXN0b21lclRpdGxlQ2hhbmdlKHRpdGxlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbWVyVGl0bGUgPSB0aXRsZTtcbiAgICBpZiAodGhpcy5fcmVsYXRpb24gaW5zdGFuY2VvZiBDdXN0b21lckZ1bGxPYmplY3QpIHtcbiAgICAgIHRoaXMuX3JlbGF0aW9uLnRpdGxlSWQgPSB0aGlzLmN1c3RvbWVyVGl0bGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZVJlbGF0aW9uKHJlbDogUmVsYXRpb25BbnlUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5yZWxhdGlvbiA9IHJlbDtcbiAgICBjb25zdCBmaXJzdEFjdGl2ZUFkZHJlc3M6IEFkZHJlc3MgPSB0aGlzLl9yZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXMubGVuZ3RoID4gMCA/IHRoaXMuX3JlbGF0aW9uLmFjdGl2ZUFkZHJlc3Nlc1swXSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLmFkZHJlc3MgPSBmaXJzdEFjdGl2ZUFkZHJlc3M7XG4gICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IGZpcnN0QWN0aXZlQWRkcmVzcyA/IGZpcnN0QWN0aXZlQWRkcmVzcy5uYXdOciA6IDA7XG4gICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NDaGFuZ2UuZW1pdCh0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yKTtcbiAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSBmaXJzdEFjdGl2ZUFkZHJlc3MgPyBmaXJzdEFjdGl2ZUFkZHJlc3MubmF3TnIgOiAwO1xuICAgIHRoaXMuaW52b2ljZUFkZHJlc3NDaGFuZ2UuZW1pdCh0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIpO1xuICAgIHRoaXMucmVsYXRpb25DaGFuZ2UuZW1pdCh0aGlzLnJlbGF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1NYXN0ZXIuc3VibWl0U2xhdmVzKCk7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRGVsaXZlcnlBZGRyZXNzQ2hhbmdlKG5hd05yOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc0NoYW5nZS5lbWl0KG5hd05yKTtcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmludm9pY2VBZGRyZXNzU2FtZUFzRGVsaXZlcnkpIHtcbiAgICAgIHRoaXMuaW52b2ljZUFkZHJlc3NDaGFuZ2UuZW1pdChuYXdOcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNoZWNrU2FtZUFkZHJlc3MoY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA9IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnI7XG4gICAgdGhpcy5pbnZvaWNlQWRkcmVzc0NoYW5nZS5uZXh0KHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOcik7XG4gIH1cblxuICBwcml2YXRlIF9nZXRGaXJzdEFjdGl2ZUFkZHJlc3NPckNyZWF0ZU5ldyhyZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlKTogQWRkcmVzcyB7XG4gICAgaWYgKCFyZWxhdGlvbi5hZGRyZXNzZXMgfHwgcmVsYXRpb24uYWRkcmVzc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZU5ld0FkZHJlc3MocmVsYXRpb24pO1xuICAgIH1cbiAgICBjb25zdCBmaXJzdEF2YWlsYWJsZUFkZHJlc3M6IEFkZHJlc3MgPSB0aGlzLl9nZXRGaXJzdEFkZHJlc3MocmVsYXRpb24sIFtcbiAgICAgIEFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzcyxcbiAgICAgIEFkZHJlc3NUeXBlLkJpbGxpbmdBZGRyZXNzLFxuICAgICAgQWRkcmVzc1R5cGUuVmlzaXRpbmdBZGRyZXNzLFxuICAgICAgQWRkcmVzc1R5cGUuTWFpbGluZ0FkZHJlc3MsXG4gICAgICBBZGRyZXNzVHlwZS5OdXJzaW5nQWRkcmVzc1xuICAgIF0pO1xuICAgIHJldHVybiBmaXJzdEF2YWlsYWJsZUFkZHJlc3MgPyBmaXJzdEF2YWlsYWJsZUFkZHJlc3MgOiB0aGlzLl9jcmVhdGVOZXdBZGRyZXNzKHJlbGF0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZpcnN0QWRkcmVzcyhyZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlLCBvcmRlcjogQWRkcmVzc1R5cGVbXSA9IFtdKTogQWRkcmVzcyB7XG4gICAgY29uc3QgYWN0aXZlQWRkcmVzc2VzOiBBZGRyZXNzW10gPSByZWxhdGlvbi5hZGRyZXNzZXMuZmlsdGVyKGEgPT4gYS5pc0FjdGl2ZSk7XG4gICAgY29uc3QgbGVuOiBudW1iZXIgPSBvcmRlci5sZW5ndGg7XG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gdGhpcy5fZ2V0Rmlyc3RBZGRyZXNzT2ZUeXBlKGFjdGl2ZUFkZHJlc3Nlcywgb3JkZXJbaV0pO1xuICAgICAgaWYgKGFkZHJlc3MpIHtcbiAgICAgICAgcmV0dXJuIGFkZHJlc3M7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Rmlyc3RBZGRyZXNzT2ZUeXBlKGFkZHJlc3NlczogQWRkcmVzc1tdLCB0eXBlOiBBZGRyZXNzVHlwZSk6IEFkZHJlc3Mge1xuICAgIGlmIChhZGRyZXNzZXMpIHtcbiAgICAgIGNvbnN0IGxlbjogbnVtYmVyID0gYWRkcmVzc2VzLmxlbmd0aDtcbiAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICBpZiAoYWRkcmVzc2VzW2ldLmFkZHJlc3NUeXBlID09PSB0eXBlKSB7XG4gICAgICAgICAgcmV0dXJuIGFkZHJlc3Nlc1tpXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU5ld0FkZHJlc3MocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSk6IEFkZHJlc3Mge1xuICAgIGNvbnN0IGFkZHJlc3M6IEFkZHJlc3MgPSBuZXcgQWRkcmVzcygpO1xuICAgIGFkZHJlc3MuYWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5EZWxpdmVyeUFkZHJlc3M7XG4gICAgYWRkcmVzcy5zdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIGFkZHJlc3Muc2VxdWVuY2UgPSByZWxhdGlvbi5nZXROZXh0QWRkcmVzc1NlcXVlbmNlKCk7XG4gICAgcmVsYXRpb24uYWRkcmVzc2VzLnB1c2goYWRkcmVzcyk7XG4gICAgcmV0dXJuIGFkZHJlc3M7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zZXRDb3VudHJ5TmFtZVRvQWRkcmVzcyhhZGRyZXNzOiBBZGRyZXNzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGFkZHJlc3MuY291bnRyeUlkICYmICFhZGRyZXNzLmNvdW50cnlOYW1lKSB7XG4gICAgICBjb25zdCBjb3VudHJ5OiBDb3VudHJ5ID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldENvdW50cnkoYWRkcmVzcy5jb3VudHJ5SWQpO1xuICAgICAgYWRkcmVzcy5jb3VudHJ5TmFtZSA9IGNvdW50cnkuZGVzY3JpcHRpb247XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
435
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakssT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUUvRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvREFBb0QsQ0FBQztBQUUvRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDckUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDMUYsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFJN0YsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sK0NBQStD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SztrQ0FHTCxLQUFLOzBCQUdMLE1BQU07NEJBR04sTUFBTTtvQ0FHTixNQUFNO21DQUdOLE1BQU07NkJBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsMENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGRyZW4sIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtTWFzdGVyU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XG5pbXBvcnQge2FuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlcn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge0NvdW50cnl9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jb3VudHJ5LmJvJztcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vLi4vZW51bS9pY29uLmVudW0nO1xuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ibyc7XG5pbXBvcnQge1JlbGF0aW9uS2luZH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vcmVsYXRpb24ta2luZC5lbnVtJztcbmltcG9ydCB7QWRkcmVzc1R5cGV9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL2FkZHJlc3MtdHlwZS5lbnVtJztcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZSc7XG5pbXBvcnQge0FkZHJlc3N9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9hZGRyZXNzLmJvJztcbmltcG9ydCB7UmVsYXRpb25OYW1lS2luZH0gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL2VudW0vcmVsYXRpb24tbmFtZS1raW5kLmVudW0nO1xuaW1wb3J0IHtTdXBwbGllckZ1bGxPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9zdXBwbGllci1mdWxsLW9iamVjdC5ibyc7XG5pbXBvcnQge1JlbGF0aW9ufSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24uYm8nO1xuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1saXN0LW9iamVjdC5ibyc7XG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL3ZhbGlkYXRpb24tcmVzdWx0JztcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcmVsYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1RyYW5zYWN0aW9uRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQge1JlbGF0aW9uU3VnZ2VzdGlvbnNSZXF1ZXN0fSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvcmVsYXRpb24tc3VnZ2VzdGlvbnMtcmVxdWVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtDaGVja291dENmZ05hbWV9IGZyb20gJy4uLy4uLy4uL2VudW0vY2hlY2tvdXQtY2ZnLW5hbWUuZW51bSc7XG5pbXBvcnQge1JlbGF0aW9uR2VuZXJhbENmZ05hbWVzfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2UvcmVsYXRpb24tZ2VuZXJhbC1jZmctbmFtZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7UmVsYXRpb25BZGRyZXNzQ2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9yZWxhdGlvbi1hZGRyZXNzLWNmZy1uYW1lcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtSZWxhdGlvbkNvbnRhY3REZXRhaWxzQ2ZnTmFtZXN9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZS9yZWxhdGlvbi1jb250YWN0LWRldGFpbHMtY2ZnLW5hbWVzLmludGVyZmFjZSc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1JlbGF0aW9uU3VnZ2VzdGlvbnNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3JlbGF0aW9uLXN1Z2dlc3Rpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XG5pbXBvcnQge1RyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2NyZWVuLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvLWNoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJyZWxhdGlvbi1lZGl0LWNvbnRlbnRcIj5cbiAgICAgIDxjby1mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZm9ybS13cmFwcGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWNvbHVtblwiPlxuICAgICAgICAgICAgPHNwYW4gI2luZGV4TGFiZWw+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInUEVSU09OQUxfREFUQScgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tdHlwZSAqbmdJZj1cInJlbGF0aW9uS2luZCA9PT0gcmVsS2luZC5DdXN0b21lclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbGF0aW9uVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWxhdGlvbkNoYW5nZSk9XCJoYW5kbGVSZWxhdGlvblR5cGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgID48L2NvLXJlbGF0aW9uLXR5cGU+XG4gICAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJlbXB0eS1yZWxhdGlvbi1idXR0b24gZGVmYXVsdC13aWR0aFwiIFtsYWJlbF09XCInRU1QVFknIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbXB0eVJlbGF0aW9uKCRldmVudClcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCIgKm5nSWY9XCJyZWxhdGlvbktpbmQgPT09IHJlbEtpbmQuQ3VzdG9tZXJcIj5cbiAgICAgICAgICAgICAgPHJlbGF0aW9uLWN1c3RvbWVyLWdyb3Vwc1xuICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbGF0aW9uQ3VzdG9tZXJHcm91cFwiXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cImN1c3RvbWVyR3JvdXBcIlxuICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJoYW5kbGVDdXN0b21lckdyb3VwQ2hhbmdlKCRldmVudClcIiByZXF1aXJlZD5cbiAgICAgICAgICAgICAgPC9yZWxhdGlvbi1jdXN0b21lci1ncm91cHM+XG4gICAgICAgICAgICAgIDxyZWxhdGlvbi1jdXN0b21lci1sYW5ndWFnZXNcbiAgICAgICAgICAgICAgICBbc2NyZWVuQ29uZmlndXJhdGlvbk9iamVjdF09XCJjZmdOYW1lcy5SZWxhdGlvbkxhbmd1YWdlXCJcbiAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY3VzdG9tZXJMYW5ndWFnZVwiXG4gICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImhhbmRsZUN1c3RvbWVyTGFuZ3VhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8L3JlbGF0aW9uLWN1c3RvbWVyLWxhbmd1YWdlcz5cbiAgICAgICAgICAgICAgPHJlbGF0aW9uLWN1c3RvbWVyLXRpdGxlc1xuICAgICAgICAgICAgICAgIFtzY3JlZW5Db25maWd1cmF0aW9uT2JqZWN0XT1cImNmZ05hbWVzLlJlbGF0aW9uVGl0bGVcIlxuICAgICAgICAgICAgICAgIFttb2RlbF09XCJjdXN0b21lclRpdGxlXCJcbiAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiaGFuZGxlQ3VzdG9tZXJUaXRsZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDwvcmVsYXRpb24tY3VzdG9tZXItdGl0bGVzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWdlbmVyYWxcbiAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwicmVsYXRpb25HZW5lcmFsQ29uZmlnTmFtZXNcIlxuICAgICAgICAgICAgICAgIFtyZWxhdGlvbl09XCJyZWxhdGlvblwiXG4gICAgICAgICAgICAgICAgW3JlbGF0aW9uVHlwZV09XCJyZWxhdGlvblR5cGVcIlxuICAgICAgICAgICAgICAgIChyZWxhdGlvbkNoYW5nZSk9XCJ1cGRhdGVSZWxhdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoaW5wdXRDaGFuZ2VGb3JTdWdnZXN0aW9ucyk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tZ2VuZXJhbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzXG4gICAgICAgICAgICAgICAgW2NvbmZpZ05hbWVzXT1cInJlbGF0aW9uQWRkcmVzc0NvbmZpZ05hbWVzXCJcbiAgICAgICAgICAgICAgICBbYWRkcmVzc109XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAoaW5wdXRDaGFuZ2VGb3JTdWdnZXN0aW9ucyk9XCJoYW5kbGVJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzcz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93QWRkcmVzc2VzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtcm93XCI+XG4gICAgICAgICAgICAgICAgPGNvLXJlbGF0aW9uLWFkZHJlc3Nlc1xuICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgIFthZGRyZXNzZXNdPVwicmVsYXRpb24uYWRkcmVzc2VzXCJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICBbc2VsZWN0ZWROYXdOcl09XCJkZWxpdmVyeUFkZHJlc3NOYXdOclwiXG4gICAgICAgICAgICAgICAgICAoc2VsZWN0ZWROYXdOckNoYW5nZSk9XCJoYW5kbGVEZWxpdmVyeUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzc2VzPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWNvbHVtblwiICpuZ0lmPVwicmVsYXRpb25LaW5kID09PSByZWxLaW5kLkN1c3RvbWVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuICNpbmRleExhYmVsPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInSU5WT0lDRV9BRERSRVNTJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1jb2x1bW5cIiAqbmdJZj1cInJlbGF0aW9uS2luZCA9PT0gcmVsS2luZC5DdXN0b21lclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggWyhtb2RlbCldPVwic2VydmljZS5pbnZvaWNlQWRkcmVzc1NhbWVBc0RlbGl2ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoZWNrU2FtZUFkZHJlc3MoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInU0FNRV9BU19ERUxJVkVSWScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcnZpZXctZGVsaXZlcnktaW52b2ljZS1hZGRyZXNzXCIgKm5nSWY9XCIhc2VydmljZS5pbnZvaWNlQWRkcmVzc1NhbWVBc0RlbGl2ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICBAc2hvd0hpZGVJbnZvaWNlQWRkcmVzcz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzZXNcbiAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXT1cInJlbGF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2FkZHJlc3Nlc109XCJyZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJhZGRyZXNzVHlwZS5CaWxsaW5nQWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZE5hd05yXT1cImludm9pY2VBZGRyZXNzTmF3TnJcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWROYXdOckNoYW5nZSk9XCJpbnZvaWNlQWRkcmVzc0NoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzc2VzPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93Q29udGFjdERldGFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1sYWJlbC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPHNwYW4gI2luZGV4TGFiZWw+PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidDT05UQUNUX0RFVEFJTFMnIHwgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLWNvbHVtblwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtZGF0YS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tY29udGFjdC1kZXRhaWxzXG4gICAgICAgICAgICAgICAgICBbY29uZmlnTmFtZXNdPVwiY29udGFjdERldGFpbHNDb25maWdOYW1lc1wiXG4gICAgICAgICAgICAgICAgICBbKHJlbGF0aW9uKV09XCJyZWxhdGlvblwiXG4gICAgICAgICAgICAgICAgICBbcmVsYXRpb25LaW5kXT1cInJlbGF0aW9uS2luZFwiPjwvY28tcmVsYXRpb24tY29udGFjdC1kZXRhaWxzPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZWxhdGlvbktpbmQgPT09IHJlbEtpbmQuQ3VzdG9tZXIgJiYgc2hvd1ByZWZlcmVuY2VzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxzcGFuICNpbmRleExhYmVsPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbC1kZXNjcmlwdGlvblwiIFt0ZXh0Q29udGVudF09XCInUFJJVkFDWV9QUkVGRVJFTkNFUycgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrb3V0LWRhdGEtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1kYXRhLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1wcmVmZXJlbmNlc1xuICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwicmVsYXRpb25cIj48L2NvLXJlbGF0aW9uLXByZWZlcmVuY2VzPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvY28tZm9ybT5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRm9ybU1hc3RlclNlcnZpY2UsXG4gICAgUmVsYXRpb25TdWdnZXN0aW9uc1NlcnZpY2VcbiAgXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3Nob3dIaWRlSW52b2ljZUFkZHJlc3MnLCBbXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHtoZWlnaHQ6IDAsIG9wYWNpdHk6IDB9KSksXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtoZWlnaHQ6ICcqJywgb3BhY2l0eTogMX0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4tb3V0JykpLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnKSlcbiAgICBdKVxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSBjZmdOYW1lczogdHlwZW9mIENoZWNrb3V0Q2ZnTmFtZSA9IENoZWNrb3V0Q2ZnTmFtZTtcbiAgcHVibGljIHJlYWRvbmx5IHJlbEtpbmQ6IHR5cGVvZiBSZWxhdGlvbktpbmQgPSBSZWxhdGlvbktpbmQ7XG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xuICBwdWJsaWMgcmVhZG9ubHkgYWRkcmVzc1R5cGU6IHR5cGVvZiBBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2luZGV4TGFiZWwnLCB7cmVhZDogRWxlbWVudFJlZn0pIHNldCB2aWV3Q2hpbGRyZW4oY2hpbGRyZW4pIHtcbiAgICBpZiAoY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc3BhbnMgPSBjaGlsZHJlbi50b0FycmF5KCk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwYW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IHNwYW4gPSBzcGFuc1tpXTtcbiAgICAgICAgaWYgKHNwYW4ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgIHNwYW4ubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSAoaSArIDEgPCAxMCkgPyAnMCcgKyAoaSArIDEpLnRvU3RyaW5nKCkgOiAoaSArIDEpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlbGF0aW9uKHZhbHVlOiBSZWxhdGlvbkFueVR5cGUpIHtcbiAgICBpZiAodGhpcy5fcmVsYXRpb24gJiYgdmFsdWUgJiYgdGhpcy5fcmVsYXRpb24ucmVsYXRpb25JZCAmJiB2YWx1ZS5yZWxhdGlvbklkICYmIHRoaXMuX3JlbGF0aW9uLnJlbGF0aW9uSWQgPT09IHZhbHVlLnJlbGF0aW9uSWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fcmVsYXRpb24gPSB2YWx1ZTtcbiAgICBpZiAodGhpcy5fcmVsYXRpb24pIHtcbiAgICAgIGlmICh0aGlzLl9yZWxhdGlvbiBpbnN0YW5jZW9mIFN1cHBsaWVyRnVsbE9iamVjdCkge1xuICAgICAgICB0aGlzLl9yZWxhdGlvbi50eXBlID0gUmVsYXRpb25OYW1lS2luZC5Db21wYW55O1xuICAgICAgICB0aGlzLnJlbGF0aW9uVHlwZSA9IFJlbGF0aW9uTmFtZUtpbmQuQ29tcGFueTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9yZWxhdGlvbiBpbnN0YW5jZW9mIEN1c3RvbWVyRnVsbE9iamVjdCkge1xuICAgICAgICB0aGlzLmN1c3RvbWVyR3JvdXAgPSB0aGlzLl9yZWxhdGlvbi5jdXN0b21lckdyb3VwO1xuICAgICAgICB0aGlzLmN1c3RvbWVyTGFuZ3VhZ2UgPSB0aGlzLl9yZWxhdGlvbi5sYW5ndWFnZTtcbiAgICAgICAgdGhpcy5jdXN0b21lclRpdGxlID0gdGhpcy5fcmVsYXRpb24udGl0bGVJZDtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWRkcmVzcyA9IHRoaXMuX2dldEZpcnN0QWN0aXZlQWRkcmVzc09yQ3JlYXRlTmV3KHRoaXMuX3JlbGF0aW9uKTtcbiAgICAgIGlmICh0aGlzLmFkZHJlc3MpIHtcbiAgICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IHRoaXMuYWRkcmVzcy5uYXdOcjtcbiAgICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NDaGFuZ2UuZW1pdCh0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yKTtcbiAgICAgICAgdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yID0gdGhpcy5hZGRyZXNzLm5hd05yO1xuICAgICAgICB0aGlzLmludm9pY2VBZGRyZXNzQ2hhbmdlLmVtaXQodGhpcy5pbnZvaWNlQWRkcmVzc05hd05yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlbGF0aW9uKCk6IFJlbGF0aW9uQW55VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbGF0aW9uO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZWxhdGlvbktpbmQodmFsdWU6IFJlbGF0aW9uS2luZCkge1xuICAgIHRoaXMuX3JlbGF0aW9uS2luZCA9IHZhbHVlO1xuICAgIGlmICh0aGlzLl9yZWxhdGlvbktpbmQgPT09IFJlbGF0aW9uS2luZC5TdXBwbGllcikge1xuICAgICAgdGhpcy5yZWxhdGlvblR5cGUgPSBSZWxhdGlvbk5hbWVLaW5kLkNvbXBhbnk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCByZWxhdGlvbktpbmQoKTogUmVsYXRpb25LaW5kIHtcbiAgICByZXR1cm4gdGhpcy5fcmVsYXRpb25LaW5kO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRlbGl2ZXJ5QWRkcmVzc05hd05yOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGludm9pY2VBZGRyZXNzTmF3TnI6IG51bWJlcjtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpbnZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBkZWxpdmVyeUFkZHJlc3NDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpbnZvaWNlQWRkcmVzc0NoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlbGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVsYXRpb25BbnlUeXBlPigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdCcpXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgYWRkcmVzczogQWRkcmVzcztcbiAgcHVibGljIGN1c3RvbWVyR3JvdXA6IHN0cmluZztcbiAgcHVibGljIGN1c3RvbWVyTGFuZ3VhZ2U6IHN0cmluZztcbiAgcHVibGljIGN1c3RvbWVyVGl0bGU6IG51bWJlcjtcbiAgcHVibGljIHJlbGF0aW9uVHlwZTogUmVsYXRpb25OYW1lS2luZCA9IFJlbGF0aW9uTmFtZUtpbmQuUHJpdmF0ZTtcblxuICBwdWJsaWMgY29udGFjdERldGFpbHNDb25maWdOYW1lczogUmVsYXRpb25Db250YWN0RGV0YWlsc0NmZ05hbWVzID0ge1xuICAgIHJlbGF0aW9uUGhvbmU6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25QaG9uZSxcbiAgICByZWxhdGlvbkVtYWlsQWRkcmVzczogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkVtYWlsQWRkcmVzcyxcbiAgICByZWxhdGlvbkludml0ZVRvQWNjb3VudDogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkludml0ZVRvQWNjb3VudFxuICB9O1xuICBwdWJsaWMgcmVsYXRpb25HZW5lcmFsQ29uZmlnTmFtZXM6IFJlbGF0aW9uR2VuZXJhbENmZ05hbWVzID0ge1xuICAgIHJlbGF0aW9uQ29tcGFueTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkNvbXBhbnksXG4gICAgcmVsYXRpb25GaXJzdE5hbWU6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25GaXJzdE5hbWUsXG4gICAgcmVsYXRpb25QcmVmaXg6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25QcmVmaXgsXG4gICAgcmVsYXRpb25MYXN0TmFtZTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkxhc3ROYW1lLFxuICAgIHJlbGF0aW9uR2VuZGVyOiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uR2VuZGVyLFxuICAgIGNvbnRhY3REZXRhaWxzOiB0aGlzLmNvbnRhY3REZXRhaWxzQ29uZmlnTmFtZXNcbiAgfTtcbiAgcHVibGljIHJlbGF0aW9uQWRkcmVzc0NvbmZpZ05hbWVzOiBSZWxhdGlvbkFkZHJlc3NDZmdOYW1lcyA9IHtcbiAgICByZWxhdGlvblN0cmVldDogdGhpcy5jZmdOYW1lcy5SZWxhdGlvblN0cmVldCxcbiAgICByZWxhdGlvbkhvdXNlTnI6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25Ib3VzZU5yLFxuICAgIHJlbGF0aW9uSG91c2VOckFkZDogdGhpcy5jZmdOYW1lcy5SZWxhdGlvbkhvdXNlTnJBZGQsXG4gICAgcmVsYXRpb25DaXR5OiB0aGlzLmNmZ05hbWVzLlJlbGF0aW9uQ2l0eSxcbiAgICByZWxhdGlvbkNvdW50cnk6IHRoaXMuY2ZnTmFtZXMuUmVsYXRpb25Db3VudHJ5LFxuICAgIHJlbGF0aW9uUG9zdGFsQ29kZTogdGhpcy5jZmdOYW1lcy5SZWxhdGlvblBvc3RhbENvZGVcbiAgfTtcbiAgcHVibGljIHNob3dDb250YWN0RGV0YWlsczogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd1ByZWZlcmVuY2VzOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93U3VnZ2VzdGlvbnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNob3dBZGRyZXNzZXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIF9yZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xuICBwcml2YXRlIF9yZWxhdGlvbktpbmQ6IFJlbGF0aW9uS2luZCA9IFJlbGF0aW9uS2luZC5DdXN0b21lcjtcbiAgcHJpdmF0ZSBfcmVxdWVzdEZvclN1Z2dlc3Rpb25zOiBSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdCA9IHt9O1xuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZm9ybU1hc3RlcjogRm9ybU1hc3RlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfcmVsYXRpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblJlbGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfc2NyZWVuQ29uZmlnU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIF9zdWdnZXN0aW9uc1NlcnZpY2U6IFJlbGF0aW9uU3VnZ2VzdGlvbnNTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5fc3VnZ2VzdGlvbnNTZXJ2aWNlLmluaXQodGhpcy5fcmVsYXRpb25LaW5kKTtcbiAgICB0aGlzLl9zdWJzLnB1c2goXG4gICAgICB0aGlzLl9zY3JlZW5Db25maWdTZXJ2aWNlLmNvbmZpZ1NldC5zdWJzY3JpYmUoKGNvbmZpZ09iamVjdHM6IE9iamVjdENvbmZpZ3VyYXRpb25bXSkgPT4ge1xuICAgICAgICBpZiAoY29uZmlnT2JqZWN0cyAmJiBjb25maWdPYmplY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLnNob3dQcmVmZXJlbmNlcyA9IHRoaXMuX3NjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uUHJlZmVyZW5jZXNIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpO1xuICAgICAgICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb25zID0gdGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuU3VnZ2VzdGlvbnMpLmltbWVkaWF0ZWx5VmlzaWJsZSgpO1xuICAgICAgICAgIHRoaXMuc2hvd0FkZHJlc3NlcyA9IHRoaXMuX3NjcmVlbkNvbmZpZ1NlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLlJlbGF0aW9uQWRkcmVzc2VzSGVhZGVyKS5pbW1lZGlhdGVseVZpc2libGUoKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmNvbnRhY3REZXRhaWxzQ29uZmlnTmFtZXMpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhY3REZXRhaWxzQ29uZmlnTmFtZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5fc2NyZWVuQ29uZmlnU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKGtleSkuaW1tZWRpYXRlbHlWaXNpYmxlKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dDb250YWN0RGV0YWlscyA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHRoaXMuX3N1Z2dlc3Rpb25zU2VydmljZS5zdWdnZXN0ZWRSZWxhdGlvbkNsaWNrLnN1YnNjcmliZSgocmVsYXRpb246IFJlbGF0aW9uTGlzdE9iamVjdCkgPT4gdGhpcy5vblJlbGF0aW9uU3VnZ2VzdGlvbkNsaWNrKHJlbGF0aW9uKSlcbiAgICApO1xuICAgIGlmICh0aGlzLl9yZWxhdGlvbikge1xuICAgICAgdGhpcy5hZGRyZXNzID0gdGhpcy5fcmVsYXRpb24uZ2V0Rmlyc3RBZGRyZXNzT3JDcmVhdGVOZXcoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZmlyc3RBY3RpdmVBZGRyZXNzOiBBZGRyZXNzID0gdGhpcy5fcmVsYXRpb24uYWN0aXZlQWRkcmVzc2VzLmxlbmd0aCA+IDAgPyB0aGlzLl9yZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXNbMF0gOiB1bmRlZmluZWQ7XG4gICAgaWYgKCF0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yKSB7XG4gICAgICB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID0gZmlyc3RBY3RpdmVBZGRyZXNzID8gZmlyc3RBY3RpdmVBZGRyZXNzLm5hd05yIDogMDtcbiAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzQ2hhbmdlLmVtaXQodGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOcik7XG4gICAgfVxuICAgIGlmICghdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yKSB7XG4gICAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSBmaXJzdEFjdGl2ZUFkZHJlc3MgPyBmaXJzdEFjdGl2ZUFkZHJlc3MubmF3TnIgOiAwO1xuICAgICAgdGhpcy5pbnZvaWNlQWRkcmVzc0NoYW5nZS5lbWl0KHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOcik7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVJbnB1dENoYW5nZShyZXF1ZXN0OiBSZWxhdGlvblN1Z2dlc3Rpb25zUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX3JlcXVlc3RGb3JTdWdnZXN0aW9ucyA9IE9iamVjdC5hc3NpZ24odGhpcy5fcmVxdWVzdEZvclN1Z2dlc3Rpb25zLCByZXF1ZXN0KTtcbiAgICB0aGlzLl9zdWdnZXN0aW9uc1NlcnZpY2UucmVxdWVzdEZvclN1Z2dlc3Rpb25zID0gdGhpcy5fcmVxdWVzdEZvclN1Z2dlc3Rpb25zO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG9uUmVsYXRpb25TdWdnZXN0aW9uQ2xpY2socmVsYXRpb25TdWdnZXN0ZWQ6IFJlbGF0aW9uTGlzdE9iamVjdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChyZWxhdGlvblN1Z2dlc3RlZCkge1xuICAgICAgY29uc3QgbG9ja1Jlc3VsdDogVmFsaWRhdGlvblJlc3VsdCA9IGF3YWl0IHRoaXMuX3JlbGF0aW9uU2VydmljZS5sb2NrUmVsYXRpb24ocmVsYXRpb25TdWdnZXN0ZWQucmVsYXRpb25UeXBlLCBwYXJzZUludChyZWxhdGlvblN1Z2dlc3RlZC5yZWxhdGlvbk5yLCAwKSk7XG4gICAgICBpZiAoIWxvY2tSZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dFcnJvcignUkVMQVRJT05fQUxSRUFEWV9MT0NLRUQnLCB0cnVlLCBsb2NrUmVzdWx0Lm1lc3NhZ2VzWzBdLm1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fc3VnZ2VzdGlvbnNTZXJ2aWNlLmhpZGVTaWRlYmFyKCk7XG4gICAgICAgIGNvbnN0IHN1Z2dlc3RlZFJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUgPSBhd2FpdCB0aGlzLl9yZWxhdGlvblNlcnZpY2UuZ2V0UmVsYXRpb24ocmVsYXRpb25TdWdnZXN0ZWQucmVsYXRpb25UeXBlLCBwYXJzZUludChyZWxhdGlvblN1Z2dlc3RlZC5yZWxhdGlvbk5yKSk7XG4gICAgICAgIGlmIChzdWdnZXN0ZWRSZWxhdGlvbiAmJiBzdWdnZXN0ZWRSZWxhdGlvbi5hZGRyZXNzZXMgJiYgc3VnZ2VzdGVkUmVsYXRpb24uYWRkcmVzc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBzdWdnZXN0ZWRSZWxhdGlvbi5hZGRyZXNzZXMuc29ydCgoYSwgYikgPT4gYS5zZXF1ZW5jZSA8IGIuc2VxdWVuY2UgPyAtMSA6IDEpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVsYXRpb24gPSBzdWdnZXN0ZWRSZWxhdGlvbjtcbiAgICAgICAgdGhpcy5yZWxhdGlvbkNoYW5nZS5uZXh0KHRoaXMucmVsYXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVSZWxhdGlvblR5cGVDaGFuZ2UocmVsYXRpb246IFJlbGF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5yZWxhdGlvblR5cGUgPSByZWxhdGlvbi50eXBlO1xuICB9XG5cbiAgcHVibGljIGVtcHR5UmVsYXRpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuY3JlYXRlTmV3UmVsYXRpb24oKTtcbiAgICB0aGlzLl9yZXF1ZXN0Rm9yU3VnZ2VzdGlvbnMgPSB7fTtcbiAgICB0aGlzLl9yZWxhdGlvblNlcnZpY2UucmVsYXRpb25TdWdnZXN0aW9uc1JlcXVlc3RDbGVhci5uZXh0KCk7XG4gICAgdGhpcy5fc3VnZ2VzdGlvbnNTZXJ2aWNlLmhpZGVTaWRlYmFyKCk7XG4gICAgLy8gdGhpcy5oaWRlU2lkZWJhcigpO1xuICAgIHRoaXMudXBkYXRlUmVsYXRpb24odGhpcy5zZXJ2aWNlLnJlbGF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDdXN0b21lckdyb3VwQ2hhbmdlKGdyb3VwOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbWVyR3JvdXAgPSBncm91cDtcbiAgICBpZiAodGhpcy5fcmVsYXRpb24gaW5zdGFuY2VvZiBDdXN0b21lckZ1bGxPYmplY3QpIHtcbiAgICAgIHRoaXMuX3JlbGF0aW9uLmN1c3RvbWVyR3JvdXAgPSB0aGlzLmN1c3RvbWVyR3JvdXA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhbmRsZUN1c3RvbWVyTGFuZ3VhZ2VDaGFuZ2UobGFuZ3VhZ2VDb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmN1c3RvbWVyTGFuZ3VhZ2UgPSBsYW5ndWFnZUNvZGU7XG4gICAgaWYgKHRoaXMuX3JlbGF0aW9uIGluc3RhbmNlb2YgQ3VzdG9tZXJGdWxsT2JqZWN0KSB7XG4gICAgICB0aGlzLl9yZWxhdGlvbi5sYW5ndWFnZSA9IHRoaXMuY3VzdG9tZXJMYW5ndWFnZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlQ3VzdG9tZXJUaXRsZUNoYW5nZSh0aXRsZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jdXN0b21lclRpdGxlID0gdGl0bGU7XG4gICAgaWYgKHRoaXMuX3JlbGF0aW9uIGluc3RhbmNlb2YgQ3VzdG9tZXJGdWxsT2JqZWN0KSB7XG4gICAgICB0aGlzLl9yZWxhdGlvbi50aXRsZUlkID0gdGhpcy5jdXN0b21lclRpdGxlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVSZWxhdGlvbihyZWw6IFJlbGF0aW9uQW55VHlwZSk6IHZvaWQge1xuICAgIHRoaXMucmVsYXRpb24gPSByZWw7XG4gICAgY29uc3QgZmlyc3RBY3RpdmVBZGRyZXNzOiBBZGRyZXNzID0gdGhpcy5fcmVsYXRpb24uYWN0aXZlQWRkcmVzc2VzLmxlbmd0aCA+IDAgPyB0aGlzLl9yZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXNbMF0gOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5hZGRyZXNzID0gZmlyc3RBY3RpdmVBZGRyZXNzO1xuICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPSBmaXJzdEFjdGl2ZUFkZHJlc3MgPyBmaXJzdEFjdGl2ZUFkZHJlc3MubmF3TnIgOiAwO1xuICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzQ2hhbmdlLmVtaXQodGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOcik7XG4gICAgdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yID0gZmlyc3RBY3RpdmVBZGRyZXNzID8gZmlyc3RBY3RpdmVBZGRyZXNzLm5hd05yIDogMDtcbiAgICB0aGlzLmludm9pY2VBZGRyZXNzQ2hhbmdlLmVtaXQodGhpcy5pbnZvaWNlQWRkcmVzc05hd05yKTtcbiAgICB0aGlzLnJlbGF0aW9uQ2hhbmdlLmVtaXQodGhpcy5yZWxhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9mb3JtTWFzdGVyLnN1Ym1pdFNsYXZlcygpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZURlbGl2ZXJ5QWRkcmVzc0NoYW5nZShuYXdOcjogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NDaGFuZ2UuZW1pdChuYXdOcik7XG4gICAgaWYgKHRoaXMuc2VydmljZS5pbnZvaWNlQWRkcmVzc1NhbWVBc0RlbGl2ZXJ5KSB7XG4gICAgICB0aGlzLmludm9pY2VBZGRyZXNzQ2hhbmdlLmVtaXQobmF3TnIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGVja1NhbWVBZGRyZXNzKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yO1xuICAgIHRoaXMuaW52b2ljZUFkZHJlc3NDaGFuZ2UubmV4dCh0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Rmlyc3RBY3RpdmVBZGRyZXNzT3JDcmVhdGVOZXcocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSk6IEFkZHJlc3Mge1xuICAgIGlmICghcmVsYXRpb24uYWRkcmVzc2VzIHx8IHJlbGF0aW9uLmFkZHJlc3Nlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVOZXdBZGRyZXNzKHJlbGF0aW9uKTtcbiAgICB9XG4gICAgY29uc3QgZmlyc3RBdmFpbGFibGVBZGRyZXNzOiBBZGRyZXNzID0gdGhpcy5fZ2V0Rmlyc3RBZGRyZXNzKHJlbGF0aW9uLCBbXG4gICAgICBBZGRyZXNzVHlwZS5EZWxpdmVyeUFkZHJlc3MsXG4gICAgICBBZGRyZXNzVHlwZS5CaWxsaW5nQWRkcmVzcyxcbiAgICAgIEFkZHJlc3NUeXBlLlZpc2l0aW5nQWRkcmVzcyxcbiAgICAgIEFkZHJlc3NUeXBlLk1haWxpbmdBZGRyZXNzLFxuICAgICAgQWRkcmVzc1R5cGUuTnVyc2luZ0FkZHJlc3NcbiAgICBdKTtcbiAgICByZXR1cm4gZmlyc3RBdmFpbGFibGVBZGRyZXNzID8gZmlyc3RBdmFpbGFibGVBZGRyZXNzIDogdGhpcy5fY3JlYXRlTmV3QWRkcmVzcyhyZWxhdGlvbik7XG4gIH1cblxuICBwcml2YXRlIF9nZXRGaXJzdEFkZHJlc3MocmVsYXRpb246IFJlbGF0aW9uQW55VHlwZSwgb3JkZXI6IEFkZHJlc3NUeXBlW10gPSBbXSk6IEFkZHJlc3Mge1xuICAgIGNvbnN0IGFjdGl2ZUFkZHJlc3NlczogQWRkcmVzc1tdID0gcmVsYXRpb24uYWRkcmVzc2VzLmZpbHRlcihhID0+IGEuaXNBY3RpdmUpO1xuICAgIGNvbnN0IGxlbjogbnVtYmVyID0gb3JkZXIubGVuZ3RoO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgY29uc3QgYWRkcmVzczogQWRkcmVzcyA9IHRoaXMuX2dldEZpcnN0QWRkcmVzc09mVHlwZShhY3RpdmVBZGRyZXNzZXMsIG9yZGVyW2ldKTtcbiAgICAgIGlmIChhZGRyZXNzKSB7XG4gICAgICAgIHJldHVybiBhZGRyZXNzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldEZpcnN0QWRkcmVzc09mVHlwZShhZGRyZXNzZXM6IEFkZHJlc3NbXSwgdHlwZTogQWRkcmVzc1R5cGUpOiBBZGRyZXNzIHtcbiAgICBpZiAoYWRkcmVzc2VzKSB7XG4gICAgICBjb25zdCBsZW46IG51bWJlciA9IGFkZHJlc3Nlcy5sZW5ndGg7XG4gICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgaWYgKGFkZHJlc3Nlc1tpXS5hZGRyZXNzVHlwZSA9PT0gdHlwZSkge1xuICAgICAgICAgIHJldHVybiBhZGRyZXNzZXNbaV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVOZXdBZGRyZXNzKHJlbGF0aW9uOiBSZWxhdGlvbkFueVR5cGUpOiBBZGRyZXNzIHtcbiAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gbmV3IEFkZHJlc3MoKTtcbiAgICBhZGRyZXNzLmFkZHJlc3NUeXBlID0gQWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzO1xuICAgIGFkZHJlc3Muc3RhcnREYXRlID0gbmV3IERhdGUoKTtcbiAgICBhZGRyZXNzLnNlcXVlbmNlID0gcmVsYXRpb24uZ2V0TmV4dEFkZHJlc3NTZXF1ZW5jZSgpO1xuICAgIHJlbGF0aW9uLmFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xuICAgIHJldHVybiBhZGRyZXNzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfc2V0Q291bnRyeU5hbWVUb0FkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChhZGRyZXNzLmNvdW50cnlJZCAmJiAhYWRkcmVzcy5jb3VudHJ5TmFtZSkge1xuICAgICAgY29uc3QgY291bnRyeTogQ291bnRyeSA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRDb3VudHJ5KGFkZHJlc3MuY291bnRyeUlkKTtcbiAgICAgIGFkZHJlc3MuY291bnRyeU5hbWUgPSBjb3VudHJ5LmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -5,11 +5,11 @@ import { DictionaryService } from '../../service/dictionary.service';
|
|
|
5
5
|
import { TransactionDialogService } from '../../service/transaction-dialog.service';
|
|
6
6
|
import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
|
|
7
7
|
import { TransactionRelationService } from '../../service/transaction-relation.service';
|
|
8
|
-
import { CheckoutScreenConfigurationService } from './service/checkout-screen-configuration.service';
|
|
9
8
|
import { BaseModuleScreenConfigService, BaseModuleService } from '@colijnit/corecomponents_v12';
|
|
10
9
|
import { CheckoutModuleService } from './service/checkout-module.service';
|
|
11
10
|
import { CheckoutCfgName } from '../../enum/checkout-cfg-name.enum';
|
|
12
11
|
import { TransactionHeaderService } from '../core/base/service/transaction-header.service';
|
|
12
|
+
import { TransactionScreenConfigurationService } from '../../service/transaction-screen-configuration.service';
|
|
13
13
|
export class CheckoutComponent {
|
|
14
14
|
constructor(service, _transactionHeaderService, _relationService, _dictionary, _dialogService, _screenConfigurationService) {
|
|
15
15
|
this.service = service;
|
|
@@ -250,7 +250,7 @@ CheckoutComponent.decorators = [
|
|
|
250
250
|
providers: [
|
|
251
251
|
TransactionHeaderService,
|
|
252
252
|
{ provide: BaseModuleService, useExisting: CheckoutModuleService },
|
|
253
|
-
{ provide: BaseModuleScreenConfigService, useExisting:
|
|
253
|
+
{ provide: BaseModuleScreenConfigService, useExisting: TransactionScreenConfigurationService },
|
|
254
254
|
],
|
|
255
255
|
encapsulation: ViewEncapsulation.None
|
|
256
256
|
},] }
|
|
@@ -261,7 +261,7 @@ CheckoutComponent.ctorParameters = () => [
|
|
|
261
261
|
{ type: TransactionRelationService },
|
|
262
262
|
{ type: DictionaryService },
|
|
263
263
|
{ type: TransactionDialogService },
|
|
264
|
-
{ type:
|
|
264
|
+
{ type: TransactionScreenConfigurationService }
|
|
265
265
|
];
|
|
266
266
|
CheckoutComponent.propDecorators = {
|
|
267
267
|
stepper: [{ type: ViewChild, args: ["stepper",] }],
|
|
@@ -283,4 +283,4 @@ CheckoutComponent.propDecorators = {
|
|
|
283
283
|
editCartClick: [{ type: Output }],
|
|
284
284
|
showClass: [{ type: HostBinding, args: ["class.co-checkout",] }]
|
|
285
285
|
};
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBS25FLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBR2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUUxRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUN0RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUVuRyxPQUFPLEVBQUMsNkJBQTZCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUE2RHpGLE1BQU0sT0FBTyxpQkFBaUI7SUEwRzVCLFlBQ1MsT0FBMkIsRUFDMUIseUJBQW1ELEVBQ25ELGdCQUE0QyxFQUM1QyxXQUE4QixFQUM5QixjQUF3QyxFQUN4QywyQkFBK0Q7UUFMaEUsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDMUIsOEJBQXlCLEdBQXpCLHlC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QkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUE3RU8sa0JBQWtCO1lBaUJsQix3QkFBd0I7WUFOeEIsMEJBQTBCO1lBVjFCLGlCQUFpQjtZQUtqQix3QkFBd0I7WUFNeEIsa0NBQWtDOzs7c0JBc0V2QyxTQUFTLFNBQUMsU0FBUzsyQkFHbkIsU0FBUyxTQUFDLGNBQWM7MkJBR3hCLFNBQVMsU0FBQyxjQUFjOzJCQUd4QixTQUFTLFNBQUMsY0FBYztzQkFHeEIsU0FBUyxTQUFDLFNBQVM7K0JBR25CLFNBQVMsU0FBQyxrQkFBa0I7K0JBRzVCLFNBQVMsU0FBQyxrQkFBa0I7OEJBRzVCLFNBQVMsU0FBQyxpQkFBaUI7NkJBRzNCLEtBQUs7eUJBTUwsS0FBSztzREFZTCxLQUFLO3VEQVlMLEtBQUs7dUJBU0wsS0FBSzs4QkFHTCxLQUFLOzBDQUdMLEtBQUs7a0NBR0wsTUFBTTs0QkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ibyc7XHJcbmltcG9ydCB7Q2hlY2tvdXRPdmVydmlld1JlbGF0aW9uRWRpdENvbXBvbmVudH0gZnJvbSAnLi9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtDaGVja291dE92ZXJ2aWV3RGVsaXZlcnlFZGl0Q29tcG9uZW50fSBmcm9tICcuL2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQvY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1N0ZXBwZXJTdGVwQ29tcG9uZW50fSBmcm9tICcuLi9zdGVwcGVyLXN0ZXAvc3RlcHBlci1zdGVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtQYXltZW50Q29tcG9uZW50fSBmcm9tICcuLi9wYXltZW50L3BheW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdGVwcGVyQ29tcG9uZW50fSBmcm9tICcuLi9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NoZWNrb3V0U2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9IGZyb20gJy4vc2VydmljZS9jaGVja291dC1zY3JlZW4tY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0Jhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCBCYXNlTW9kdWxlU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7Q2hlY2tvdXRNb2R1bGVTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2UvY2hlY2tvdXQtbW9kdWxlLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NoZWNrb3V0Q2ZnTmFtZX0gZnJvbSAnLi4vLi4vZW51bS9jaGVja291dC1jZmctbmFtZS5lbnVtJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2V9IGZyb20gJy4uL2NvcmUvYmFzZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLWhlYWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtPYmplY3RDb25maWd1cmF0aW9ufSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9vYmplY3QtY29uZmlndXJhdGlvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby1jaGVja291dFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnTG9hZGVkXCI+XHJcbiAgICAgIDxjby1zdGVwcGVyICNzdGVwcGVyXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJzZXJ2aWNlLnRpdGxlRm9yQ2hlY2tvdXRcIlxyXG4gICAgICAgICAgICAgICAgICBbc2hvd1N0ZXBwZXJdPVwidHJhbnNhY3Rpb25UeXBlICE9PSB0cmFuc0tpbmQuUHVyY2hhc2VPcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZUljb25dPVwic2VydmljZS5pY29uRm9yQ2hlY2tvdXRcIlxyXG4gICAgICAgICAgICAgICAgICBbZmluaXNoQnV0dG9uTGFiZWxdPVwiJ0NIRUNLT1VUX0ZJTklTSCcgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgIChjcmVhdGVDbGlja2VkKT1cImhhbmRsZUNyZWF0ZVRyYW5zYWN0aW9uKCRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGNvLXN0ZXBwZXItc3RlcCAjc3RlcFJlbGF0aW9uIFtpbmRleF09XCIxXCIgW2xhYmVsXT1cIidZT1VSX0RBVEEnIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZVJlbGF0aW9uVmFsaWRhdGlvbigpXCIgKm5nSWY9XCJzaG93WW91ckRhdGFcIj5cclxuICAgICAgICAgIDxjby1jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0ICNjaGVja291dFJlbGF0aW9uICpuZ0lmPVwic3RlcFJlbGF0aW9uLnNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWxhdGlvbildPVwic2VydmljZS5yZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25LaW5kXT1cInJlbGF0aW9uVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVsaXZlcnlBZGRyZXNzTmF3TnJdPVwiZGVsaXZlcnlBZGRyZXNzTmF3TnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ludm9pY2VBZGRyZXNzTmF3TnJdPVwiaW52b2ljZUFkZHJlc3NOYXdOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZGVsaXZlcnlBZGRyZXNzQ2hhbmdlKT1cImhhbmRsZURlbGl2ZXJ5QWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnZvaWNlQWRkcmVzc0NoYW5nZSk9XCJoYW5kbGVJbnZvaWNlQWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWxhdGlvbkNoYW5nZSk9XCJzZXJ2aWNlLnJlbGF0aW9uID0gJGV2ZW50XCJcclxuICAgICAgICAgID48L2NvLWNoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQ+XHJcbiAgICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgICAgPGNvLXN0ZXBwZXItc3RlcCAjc3RlcERlbGl2ZXJ5IFtpbmRleF09XCIyXCIgW2xhYmVsXT1cIidERUxJVkVSWScgfCBsb2NhbGl6ZVwiICh2YWxpZGF0ZVN0ZXApPVwiaGFuZGxlRGVsaXZlcnlWYWxpZGF0aW9uKClcIiAqbmdJZj1cInNob3dEZWxpdmVyeVwiPlxyXG4gICAgICAgICAgPGNvLWNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQgI2NoZWNrb3V0RGVsaXZlcnkgKm5nSWY9XCJzdGVwRGVsaXZlcnkuc2hvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwic2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgPjwvY28tY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdD5cclxuICAgICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgICA8Y28tc3RlcHBlci1zdGVwICNzdGVwT3ZlcnZpZXcgW2luZGV4XT1cIjNcIiBbbGFiZWxdPVwic2VydmljZS5wYXltZW50U3RlcFRpdGxlRm9yQ2hlY2tvdXQgfCBsb2NhbGl6ZVwiICpuZ0lmPVwic2hvd092ZXJ2aWV3XCI+XHJcbiAgICAgICAgICA8Y28tY2hlY2tvdXQtb3ZlcnZpZXctcGF5bWVudCAqbmdJZj1cInN0ZXBPdmVydmlldy5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbl09XCJzZXJ2aWNlLnJlbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbl09XCJzZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2hvd1BheW1lbnRdPVwidHJhbnNhY3Rpb25UeXBlID09PSB0cmFuc0tpbmQuU2FsZXNPcmRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlWW91ckRhdGFDbGljayk9XCJzdGVwcGVyLmdvdG8oMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZURlbGl2ZXJ5Q2xpY2spPVwic3RlcHBlci5nb3RvKDEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXllZCk9XCJoYW5kbGVUcmFuc2FjdGlvbkZpbmlzaGVkKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvY28tY2hlY2tvdXQtb3ZlcnZpZXctcGF5bWVudD5cclxuICAgICAgICA8L2NvLXN0ZXBwZXItc3RlcD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY28tY2hlY2tvdXQtcmlnaHQtcGFuZWxcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja291dC1sYWJlbC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgPCEtLWNvLWF2YXRhciBbcmVsYXRpb25JZF09XCJzZWxsZXJJZFwiPjwvY28tYXZhdGFyLS0+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtZGVzY3JpcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiJ0NBUlQnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1zaG9wcGluZy1jYXJ0LXByZXZpZXcgKm5nSWY9XCIhc2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dDaGVja291dEJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt3aXRob3V0Qm9yZGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWRpdENhcnRDbGljayk9XCJlZGl0Q2FydENsaWNrLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC9jby1zaG9wcGluZy1jYXJ0LXByZXZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvY28tc3RlcHBlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsXHJcbiAgICB7cHJvdmlkZTogQmFzZU1vZHVsZVNlcnZpY2UsIHVzZUV4aXN0aW5nOiBDaGVja291dE1vZHVsZVNlcnZpY2V9LFxyXG4gICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTY3JlZW5Db25maWdTZXJ2aWNlLCB1c2VFeGlzdGluZzogQ2hlY2tvdXRTY3JlZW5Db25maWd1cmF0aW9uU2VydmljZX0sXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNLaW5kOiB0eXBlb2YgVHJhbnNhY3Rpb25LaW5kID0gVHJhbnNhY3Rpb25LaW5kO1xyXG4gIHB1YmxpYyByZWFkb25seSBjZmdOYW1lczogdHlwZW9mIENoZWNrb3V0Q2ZnTmFtZSA9IENoZWNrb3V0Q2ZnTmFtZTtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBwZXJcIilcclxuICBwdWJsaWMgc3RlcHBlcjogU3RlcHBlckNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBSZWxhdGlvblwiKVxyXG4gIHB1YmxpYyBzdGVwUmVsYXRpb246IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcERlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIHN0ZXBEZWxpdmVyeTogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwT3ZlcnZpZXdcIilcclxuICBwdWJsaWMgc3RlcE92ZXJ2aWV3OiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBQYXlcIilcclxuICBwdWJsaWMgc3RlcFBheTogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dFJlbGF0aW9uXCIpXHJcbiAgcHVibGljIGNoZWNrb3V0UmVsYXRpb246IENoZWNrb3V0T3ZlcnZpZXdSZWxhdGlvbkVkaXRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dERlbGl2ZXJ5XCIpXHJcbiAgcHVibGljIGNoZWNrb3V0RGVsaXZlcnk6IENoZWNrb3V0T3ZlcnZpZXdEZWxpdmVyeUVkaXRDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjaGVja291dFBheW1lbnRcIilcclxuICBwdWJsaWMgY2hlY2tvdXRQYXltZW50OiBQYXltZW50Q29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBuZXdUcmFuc2FjdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHNldCwgdGhpcyBpcyB0aGUgcmVsYXRpb24gYmUgdXNlZCBmb3IgdGhlIGNoZWNrb3V0XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHJlbGF0aW9uTnIodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fcmVsYXRpb25OciA9IHZhbHVlO1xyXG4gICAgaWYodGhpcy5zZXJ2aWNlICYmIHRoaXMuX3JlbGF0aW9uTnIpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnNldFJlbGF0aW9uT25UcmFuc2FjdGlvbih0aGlzLl9yZWxhdGlvbk5yLCB0aGlzLnJlbGF0aW9uVHlwZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlbGF0aW9uTnIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVsYXRpb25OcjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB0cmFuc0ZvclNlcnZpY2VGcm9tU2FsZXNUcmFuc2FjdGlvbkxpbmUodmFsdWU6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UudHJhbnNGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lID0gdmFsdWU7XHJcbiAgICBpZih0aGlzLnNlcnZpY2UudHJhbnNGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lKSB7XHJcbiAgICAgIHRoaXMucmVsYXRpb25OciA9IHBhcnNlSW50KHRoaXMuc2VydmljZS50cmFuc0ZvclNlcnZpY2VGcm9tU2FsZXNUcmFuc2FjdGlvbkxpbmUudHJhbnNhY3Rpb25JbmZvLnJlbGF0aW9uLnJlbGF0aW9uTnIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0cmFuc0ZvclNlcnZpY2VGcm9tU2FsZXNUcmFuc2FjdGlvbkxpbmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLnRyYW5zRm9yU2VydmljZUZyb21TYWxlc1RyYW5zYWN0aW9uTGluZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBsaW5lTnJGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2VydmljZS5saW5lTnJGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxpbmVOckZvclNlcnZpY2VGcm9tU2FsZXNUcmFuc2FjdGlvbkxpbmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmxpbmVOckZvclNlcnZpY2VGcm9tU2FsZXNUcmFuc2FjdGlvbkxpbmU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxsZXJJZDogbnVtYmVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzaG93Q3JlYXRlVHJhbnNhY3Rpb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHRyYW5zYWN0aW9uRmluaXNoZWQ6IEV2ZW50RW1pdHRlcjx7aWQ6IG51bWJlciwgZnJvbUNoZWNrb3V0OiBib29sZWFufT4gPSBuZXcgRXZlbnRFbWl0dGVyPHtpZDogbnVtYmVyLCBmcm9tQ2hlY2tvdXQ6IGJvb2xlYW59PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZWRpdENhcnRDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1jaGVja291dFwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdXNlcklzQXBwbGljYXRpb25Vc2VyKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gVE9ETzogcmV0dXJuIHRoaXMudXNlclNlcnZpY2UuaXNBcHBsaWNhdGlvblVzZXI7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U7XHJcbiAgcHVibGljIGRlbGl2ZXJ5QWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBpbnZvaWNlQWRkcmVzc05hd05yOiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyByZWxhdGlvblR5cGU6IFJlbGF0aW9uS2luZDtcclxuICBwdWJsaWMgY29uZmlnTG9hZGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dZb3VyRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93RGVsaXZlcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd092ZXJ2aWV3OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX3JlbGF0aW9uTnI6IG51bWJlcjtcclxuICBwcml2YXRlIF90cmFuc05yRm9yU2VydmljZUZyb21TYWxlc1RyYW5zYWN0aW9uTGluZTogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2xpbmVOckZvclNlcnZpY2VGcm9tU2FsZXNUcmFuc2FjdGlvbkxpbmU6IG51bWJlcjtcclxuICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkhlYWRlclNlcnZpY2U6IFRyYW5zYWN0aW9uSGVhZGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JlbGF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25SZWxhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IFRyYW5zYWN0aW9uRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBDaGVja291dFNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmxvYWRDb25maWcoW3RoaXMudHJhbnNhY3Rpb25UeXBlXSk7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgICAgdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuY29uZmlnU2V0LnN1YnNjcmliZSgoY29uZmlnT2JqZWN0czogT2JqZWN0Q29uZmlndXJhdGlvbltdKSA9PiB7XHJcbiAgICAgICAgICBpZiAoY29uZmlnT2JqZWN0cyAmJiBjb25maWdPYmplY3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93WW91ckRhdGEgPSB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuWW91ckRhdGFIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dEZWxpdmVyeSA9IHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5EZWxpdmVyeUhlYWRlcikuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd092ZXJ2aWV3ID0gdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLk92ZXJ2aWV3QW5kUGF5bWVudEhlYWRlcikuaW1tZWRpYXRlbHlWaXNpYmxlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlnTG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmICh0cmFuc2FjdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLnRyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKVxyXG4gICAgaWYgKHRoaXMubmV3VHJhbnNhY3Rpb24pIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnJlc2V0Q3VycmVudFRyYW5zYWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UudHJhbnNhY3Rpb25LaW5kID0gdGhpcy50cmFuc2FjdGlvblR5cGU7XHJcbiAgICB0aGlzLnJlbGF0aW9uVHlwZSA9IHRoaXMuc2VydmljZS5nZXRSZWxhdGlvbktpbmRGcm9tVHJhbnNhY3Rpb25LaW5kKCk7XHJcbiAgICB0aGlzLnNlcnZpY2UuY3JlYXRlTmV3UmVsYXRpb24oKTtcclxuICAgIGlmICh0aGlzLnJlbGF0aW9uTnIpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnNldFJlbGF0aW9uT25UcmFuc2FjdGlvbih0aGlzLnJlbGF0aW9uTnIsIHRoaXMucmVsYXRpb25UeXBlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIGlmICh0aGlzLl9yZWxhdGlvblNlcnZpY2UucmVsYXRpb25Mb2NrZWQgfHwgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uTG9ja2VkKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5yZXNldExvY2tUcmFuc2FjdGlvbigpO1xyXG4gICAgICB0aGlzLnNlcnZpY2Uucm9sbGJhY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVDcmVhdGVUcmFuc2FjdGlvbihldmVudDogTW91c2VFdmVudCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuc3RlcHBlci5hY3RpdmVTdGVwID09PSAwKSB7XHJcbiAgICAgIGlmIChhd2FpdCB0aGlzLmhhbmRsZVJlbGF0aW9uVmFsaWRhdGlvbigpKSB7XHJcbiAgICAgICAgLy8gc3VjY2VzcyA9IGF3YWl0IHRoaXMuc2VydmljZS5zYXZlUmVsYXRpb24oKTtcclxuICAgICAgICBpZiAodGhpcy50cmFuc2FjdGlvblR5cGUgIT09IHRoaXMudHJhbnNLaW5kLlNhbGVzUXVvdGF0aW9uKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlSGVhZGVyVHJhbnNhY3Rpb25EZWZpbml0aXZlKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIHRydWUsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IHNhdmVTdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbkFuZENvbW1pdCgpO1xyXG4gICAgaWYgKHNhdmVTdWNjZXNzKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlVHJhbnNhY3Rpb25GaW5pc2hlZCh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby50cmFuc2FjdGlvbk5yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jaGVja291dFJlbGF0aW9uICYmIHRoaXMuc3RlcFJlbGF0aW9uKSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5jaGVja291dFJlbGF0aW9uLnN1Ym1pdCgpO1xyXG4gICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICB0aGlzLmNoZWNrRm9yQW5kU2V0U2VhcmNoQWRkcmVzcygpO1xyXG4gICAgICAgIHRoaXMuc3RlcFJlbGF0aW9uLmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuc2F2ZVJlbGF0aW9uKCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbGlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9JZiBhIHJlbGF0aW9uIGhhcyBubyBzZWFyY2ggYWRkcmVzcyBzZXQgdGhlIGZpcnN0IGFjdGl2ZSBhZGRyZXNzIHRvIGJlIHN1Y2guXHJcbiAgcHVibGljIGNoZWNrRm9yQW5kU2V0U2VhcmNoQWRkcmVzcygpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuc2VydmljZS5yZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgc2VhcmNoQWRkcmVzc0ZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VydmljZS5yZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXMuZm9yRWFjaChhZGRyZXNzID0+IHtcclxuICAgICAgICBpZiAoYWRkcmVzcy5zZWFyY2hBZGRyZXNzKSB7XHJcbiAgICAgICAgICBzZWFyY2hBZGRyZXNzRm91bmQgPSB0cnVlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGlmICghc2VhcmNoQWRkcmVzc0ZvdW5kKSB7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uLmFjdGl2ZUFkZHJlc3Nlc1swXS5zZWFyY2hBZGRyZXNzID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZURlbGl2ZXJ5VmFsaWRhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGlmICh0aGlzLmNoZWNrb3V0RGVsaXZlcnkgJiYgdGhpcy5zdGVwRGVsaXZlcnkpIHtcclxuICAgICAgY29uc3QgdmFsaWQgPSB0aGlzLmNoZWNrb3V0RGVsaXZlcnkuc3VibWl0KCk7XHJcbiAgICAgIGlmICh2YWxpZCkge1xyXG4gICAgICAgIGNvbnN0IHNhdmVTdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVUcmFuc2FjdGlvbkFuZENvbW1pdCgpO1xyXG4gICAgICAgIGlmIChzYXZlU3VjY2Vzcykge1xyXG4gICAgICAgICAgY29uc3QgbG9ja1N1Y2Nlc3M6IGJvb2xlYW4gPVxyXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS50cnlUb0xvY2tUcmFuc2FjdGlvbih0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5pZCwgdGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udmVyc2lvbik7XHJcbiAgICAgICAgICBpZiAobG9ja1N1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGVwRGVsaXZlcnkuY29tcGxldGVkID0gYXdhaXQgdGhpcy5oYW5kbGVTYXZlRGVsaXZlcnkoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbGlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHNhdmVSZWxhdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHN1Y2Nlc3M6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVJlbGF0aW9uKCk7XHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICBpZiAodGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gbnVsbCB8fCB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yID09PSB1bmRlZmluZWQgfHwgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gMCAmJiB0aGlzLnNlcnZpY2UucmVsYXRpb24uYWRkcmVzc2VzICYmIHRoaXMuc2VydmljZS5yZWxhdGlvbi5hZGRyZXNzZXMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IHRoaXMuc2VydmljZS5yZWxhdGlvbi5hZGRyZXNzZXNbMF0ubmF3TnI7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgJiYgdGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25BZGRyZXNzICE9PSB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZUhlYWRlckRlbGl2ZXJ5QWRkcmVzcyh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBpbnZvaWNlQWRkcmVzc05hd05yOiBudW1iZXIgPSB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPyB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgOiB0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yO1xyXG4gICAgICBpZiAodGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaW52b2ljZUFkZHJlc3MgIT09IGludm9pY2VBZGRyZXNzTmF3TnIpIHtcclxuICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudXBkYXRlSGVhZGVySW52b2ljZUFkZHJlc3ModGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCwgaW52b2ljZUFkZHJlc3NOYXdOcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBzdWNjZXNzO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVTYXZlRGVsaXZlcnkoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVEZWxpdmVyeUFkZHJlc3NDaGFuZ2UobmF3TnI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9IG5hd05yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUludm9pY2VBZGRyZXNzQ2hhbmdlKG5hd05yOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuaW52b2ljZUFkZHJlc3NOYXdOciA9IG5hd05yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRyYW5zYWN0aW9uRmluaXNoZWQoaWQ6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnJlc2V0Q3VycmVudFRyYW5zYWN0aW9uKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uRmluaXNoZWQuZW1pdCh7aWQ6IGlkLCBmcm9tQ2hlY2tvdXQ6IHRoaXMuc2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9ufSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jb21wb25lbnQvY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25JLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBS25FLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBR2xGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUUxRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUV0RixPQUFPLEVBQUMsNkJBQTZCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUM5RixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0saURBQWlELENBQUM7QUFFekYsT0FBTyxFQUFDLHFDQUFxQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUE0RDdHLE1BQU0sT0FBTyxpQkFBaUI7SUEwRzVCLFlBQ1MsT0FBMkIsRUFDMUIseUJBQW1ELEVBQ25ELGdCQUE0QyxFQUM1QyxXQUE4QixFQUM5QixjQUF3QyxFQUN4QywyQkFBa0U7UUFMbkUsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDMUIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUNuRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTRCO1FBQzVDLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBMEI7UUFDeEMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUF1QztRQS9HNUQsY0FBUyxHQUEyQixlQUFlLENBQUM7UUFDcEQsYUFBUSxHQUEyQixlQUFlLENBQUM7UUEyQjVELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBMENoQyxvQkFBZSxHQUFvQixlQUFlLENBQUMsVUFBVSxDQUFDO1FBRzlELGdDQUEyQixHQUFZLEtBQUssQ0FBQztRQUc3Qyx3QkFBbUIsR0FBc0QsSUFBSSxZQUFZLEVBQXVDLENBQUM7UUFHakksa0JBQWEsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQWE3RCx5QkFBb0IsR0FBVyxDQUFDLENBQUM7UUFDakMsd0JBQW1CLEdBQVcsQ0FBQyxDQUFDO1FBRWhDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBSzdCLFVBQUssR0FBbUIsRUFBRSxDQUFDO0lBVW5DLENBQUM7SUFuRkQ7O09BRUc7SUFDSCxJQUNXLFVBQVUsQ0FBQyxLQUFhO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDNUU7SUFDSCxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDVyx1Q0FBdUMsQ0FBQyxLQUE4QjtRQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLHVDQUF1QyxHQUFHLEtBQUssQ0FBQztRQUM3RCxJQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsdUNBQXVDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RIO0lBQ0gsQ0FBQztJQUVELElBQVcsdUNBQXVDO1FBQ2hELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFDVyx3Q0FBd0MsQ0FBQyxLQUFhO1FBQy9ELElBQUksQ0FBQyxPQUFPLENBQUMsd0NBQXdDLEdBQUcsS0FBSyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFXLHdDQUF3QztRQUNqRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsd0NBQXdDLENBQUM7SUFDL0QsQ0FBQztJQWtCTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxxQkFBcUI7UUFDOUIsbURBQW1EO1FBQ25ELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQTBCRCxRQUFRO1FBQ04sSUFBSSxDQUFDLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNYLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsYUFBb0MsRUFBRSxFQUFFO1lBQzVGLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2xJLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztnQkFDbEksSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzVJLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLEVBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxXQUFvQyxFQUFFLEVBQUU7WUFDakYsSUFBSSxXQUFXLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7YUFDMUQ7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUN4QztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtDQUFrQyxFQUFFLENBQUM7UUFDdEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzNFO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVZLHVCQUF1QixDQUFDLEtBQWlCOztZQUNwRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBRTtnQkFDakMsSUFBSSxNQUFNLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFO29CQUN6QywrQ0FBK0M7b0JBQy9DLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRTt3QkFDMUQsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7cUJBQ3hIO2lCQUNGO3FCQUFNO29CQUNMLE9BQU87aUJBQ1I7YUFDRjtZQUNELE1BQU0sV0FBVyxHQUFZLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQzNFLElBQUksV0FBVyxFQUFFO2dCQUNmLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUMvRjtRQUNILENBQUM7S0FBQTtJQUVZLHdCQUF3Qjs7WUFDbkMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDOUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM3QyxJQUFJLEtBQUssRUFBRTtvQkFDVCxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7aUJBQ3pEO2dCQUNELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7UUFDSCxDQUFDO0tBQUE7SUFFRCw4RUFBOEU7SUFDdkUsMkJBQTJCO1FBQ2hDLElBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbkQsSUFBSSxrQkFBa0IsR0FBWSxLQUFLLENBQUM7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDdEQsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUFFO29CQUN6QixrQkFBa0IsR0FBRyxJQUFJLENBQUM7b0JBQzFCLE9BQU87aUJBQ1I7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7YUFDL0Q7U0FDRjtJQUNILENBQUM7SUFFWSx3QkFBd0I7O1lBQ25DLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxLQUFLLEVBQUU7b0JBQ1QsTUFBTSxXQUFXLEdBQVksTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLENBQUM7b0JBQzNFLElBQUksV0FBVyxFQUFFO3dCQUNmLE1BQU0sV0FBVyxHQUNiLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBQ3pKLElBQUksV0FBVyxFQUFFOzRCQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7eUJBQy9EO3FCQUNGO2lCQUNGO2dCQUNELE9BQU8sS0FBSyxDQUFDO2FBQ2Q7UUFDSCxDQUFDO0tBQUE7SUFFWSxZQUFZOztZQUN2QixNQUFNLE9BQU8sR0FBWSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0QsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQ3ZNLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2lCQUN0RTtnQkFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7b0JBQ2pJLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7aUJBQ2pJO2dCQUNELE1BQU0sbUJBQW1CLEdBQVcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEgsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxjQUFjLEtBQUssbUJBQW1CLEVBQUU7b0JBQzFGLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztpQkFDMUg7YUFDRjtZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7S0FBQTtJQUdZLGtCQUFrQjs7WUFDN0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQUE7SUFFTSwyQkFBMkIsQ0FBQyxLQUFhO1FBQzlDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVNLDBCQUEwQixDQUFDLEtBQWE7UUFDN0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRU0seUJBQXlCLENBQUMsRUFBVTtRQUN6QyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQywyQkFBMkIsRUFBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQzs7O1lBaFRGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsYUFBYTtnQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnRFQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULHdCQUF3QjtvQkFDeEIsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFDO29CQUNoRSxFQUFDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxXQUFXLEVBQUUscUNBQXFDLEVBQUM7aUJBQzdGO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUE3RU8sa0JBQWtCO1lBZ0JsQix3QkFBd0I7WUFMeEIsMEJBQTBCO1lBVjFCLGlCQUFpQjtZQUtqQix3QkFBd0I7WUFZeEIscUNBQXFDOzs7c0JBZ0UxQyxTQUFTLFNBQUMsU0FBUzsyQkFHbkIsU0FBUyxTQUFDLGNBQWM7MkJBR3hCLFNBQVMsU0FBQyxjQUFjOzJCQUd4QixTQUFTLFNBQUMsY0FBYztzQkFHeEIsU0FBUyxTQUFDLFNBQVM7K0JBR25CLFNBQVMsU0FBQyxrQkFBa0I7K0JBRzVCLFNBQVMsU0FBQyxrQkFBa0I7OEJBRzVCLFNBQVMsU0FBQyxpQkFBaUI7NkJBRzNCLEtBQUs7eUJBTUwsS0FBSztzREFZTCxLQUFLO3VEQVlMLEtBQUs7dUJBU0wsS0FBSzs4QkFHTCxLQUFLOzBDQUdMLEtBQUs7a0NBR0wsTUFBTTs0QkFHTixNQUFNO3dCQUdOLFdBQVcsU0FBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ibyc7XHJcbmltcG9ydCB7Q2hlY2tvdXRPdmVydmlld1JlbGF0aW9uRWRpdENvbXBvbmVudH0gZnJvbSAnLi9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWVkaXQuY29tcG9uZW50JztcclxuaW1wb3J0IHtDaGVja291dE92ZXJ2aWV3RGVsaXZlcnlFZGl0Q29tcG9uZW50fSBmcm9tICcuL2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQvY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1N0ZXBwZXJTdGVwQ29tcG9uZW50fSBmcm9tICcuLi9zdGVwcGVyLXN0ZXAvc3RlcHBlci1zdGVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25EaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHtQYXltZW50Q29tcG9uZW50fSBmcm9tICcuLi9wYXltZW50L3BheW1lbnQuY29tcG9uZW50JztcclxuaW1wb3J0IHtTdGVwcGVyQ29tcG9uZW50fSBmcm9tICcuLi9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bSc7XHJcbmltcG9ydCB7UmVsYXRpb25LaW5kfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1raW5kLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXJlbGF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7QmFzZU1vZHVsZVNjcmVlbkNvbmZpZ1NlcnZpY2UsIEJhc2VNb2R1bGVTZXJ2aWNlfSBmcm9tICdAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyJztcclxuaW1wb3J0IHtDaGVja291dE1vZHVsZVNlcnZpY2V9IGZyb20gJy4vc2VydmljZS9jaGVja291dC1tb2R1bGUuc2VydmljZSc7XHJcbmltcG9ydCB7Q2hlY2tvdXRDZmdOYW1lfSBmcm9tICcuLi8uLi9lbnVtL2NoZWNrb3V0LWNmZy1uYW1lLmVudW0nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSGVhZGVyU2VydmljZX0gZnJvbSAnLi4vY29yZS9iYXNlL3NlcnZpY2UvdHJhbnNhY3Rpb24taGVhZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge09iamVjdENvbmZpZ3VyYXRpb259IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL21vZGVsL29iamVjdC1jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNjcmVlbi1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tY2hlY2tvdXRcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZ0xvYWRlZFwiPlxyXG4gICAgICA8Y28tc3RlcHBlciAjc3RlcHBlclxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVdPVwic2VydmljZS50aXRsZUZvckNoZWNrb3V0XCJcclxuICAgICAgICAgICAgICAgICAgW3Nob3dTdGVwcGVyXT1cInRyYW5zYWN0aW9uVHlwZSAhPT0gdHJhbnNLaW5kLlB1cmNoYXNlT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbdGl0bGVJY29uXT1cInNlcnZpY2UuaWNvbkZvckNoZWNrb3V0XCJcclxuICAgICAgICAgICAgICAgICAgW2ZpbmlzaEJ1dHRvbkxhYmVsXT1cIidDSEVDS09VVF9GSU5JU0gnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAoY3JlYXRlQ2xpY2tlZCk9XCJoYW5kbGVDcmVhdGVUcmFuc2FjdGlvbigkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxjby1zdGVwcGVyLXN0ZXAgI3N0ZXBSZWxhdGlvbiBbaW5kZXhdPVwiMVwiIFtsYWJlbF09XCInWU9VUl9EQVRBJyB8IGxvY2FsaXplXCIgKHZhbGlkYXRlU3RlcCk9XCJoYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKVwiICpuZ0lmPVwic2hvd1lvdXJEYXRhXCI+XHJcbiAgICAgICAgICA8Y28tY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tZWRpdCAjY2hlY2tvdXRSZWxhdGlvbiAqbmdJZj1cInN0ZXBSZWxhdGlvbi5zaG93XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVsYXRpb24pXT1cInNlcnZpY2UucmVsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uS2luZF09XCJyZWxhdGlvblR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlbGl2ZXJ5QWRkcmVzc05hd05yXT1cImRlbGl2ZXJ5QWRkcmVzc05hd05yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbnZvaWNlQWRkcmVzc05hd05yXT1cImludm9pY2VBZGRyZXNzTmF3TnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRlbGl2ZXJ5QWRkcmVzc0NoYW5nZSk9XCJoYW5kbGVEZWxpdmVyeUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW52b2ljZUFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlSW52b2ljZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVsYXRpb25DaGFuZ2UpPVwic2VydmljZS5yZWxhdGlvbiA9ICRldmVudFwiXHJcbiAgICAgICAgICA+PC9jby1jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1lZGl0PlxyXG4gICAgICAgIDwvY28tc3RlcHBlci1zdGVwPlxyXG4gICAgICAgIDxjby1zdGVwcGVyLXN0ZXAgI3N0ZXBEZWxpdmVyeSBbaW5kZXhdPVwiMlwiIFtsYWJlbF09XCInREVMSVZFUlknIHwgbG9jYWxpemVcIiAodmFsaWRhdGVTdGVwKT1cImhhbmRsZURlbGl2ZXJ5VmFsaWRhdGlvbigpXCIgKm5nSWY9XCJzaG93RGVsaXZlcnlcIj5cclxuICAgICAgICAgIDxjby1jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0ICNjaGVja291dERlbGl2ZXJ5ICpuZ0lmPVwic3RlcERlbGl2ZXJ5LnNob3dcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uXT1cInNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uXCJcclxuICAgICAgICAgID48L2NvLWNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQ+XHJcbiAgICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgICAgPGNvLXN0ZXBwZXItc3RlcCAjc3RlcE92ZXJ2aWV3IFtpbmRleF09XCIzXCIgW2xhYmVsXT1cInNlcnZpY2UucGF5bWVudFN0ZXBUaXRsZUZvckNoZWNrb3V0IHwgbG9jYWxpemVcIiAqbmdJZj1cInNob3dPdmVydmlld1wiPlxyXG4gICAgICAgICAgPGNvLWNoZWNrb3V0LW92ZXJ2aWV3LXBheW1lbnQgKm5nSWY9XCJzdGVwT3ZlcnZpZXcuc2hvd1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVsYXRpb25dPVwic2VydmljZS5yZWxhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25dPVwic2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Nob3dQYXltZW50XT1cInRyYW5zYWN0aW9uVHlwZSA9PT0gdHJhbnNLaW5kLlNhbGVzT3JkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZVlvdXJEYXRhQ2xpY2spPVwic3RlcHBlci5nb3RvKDApXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2VEZWxpdmVyeUNsaWNrKT1cInN0ZXBwZXIuZ290bygxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGF5ZWQpPVwiaGFuZGxlVHJhbnNhY3Rpb25GaW5pc2hlZCgkZXZlbnQpXCJcclxuICAgICAgICAgID48L2NvLWNoZWNrb3V0LW92ZXJ2aWV3LXBheW1lbnQ+XHJcbiAgICAgICAgPC9jby1zdGVwcGVyLXN0ZXA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvLWNoZWNrb3V0LXJpZ2h0LXBhbmVsXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDwhLS1jby1hdmF0YXIgW3JlbGF0aW9uSWRdPVwic2VsbGVySWRcIj48L2NvLWF2YXRhci0tPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWRlc2NyaXB0aW9uXCIgW3RleHRDb250ZW50XT1cIidDQVJUJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Y28tc2hvcHBpbmctY2FydC1wcmV2aWV3ICpuZ0lmPVwiIXNob3dDcmVhdGVUcmFuc2FjdGlvbkJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93Q2hlY2tvdXRCdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbd2l0aG91dEJvcmRlcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVkaXRDYXJ0Q2xpY2spPVwiZWRpdENhcnRDbGljay5lbWl0KCRldmVudClcIlxyXG4gICAgICAgICAgPjwvY28tc2hvcHBpbmctY2FydC1wcmV2aWV3PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2NvLXN0ZXBwZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgVHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlLFxyXG4gICAge3Byb3ZpZGU6IEJhc2VNb2R1bGVTZXJ2aWNlLCB1c2VFeGlzdGluZzogQ2hlY2tvdXRNb2R1bGVTZXJ2aWNlfSxcclxuICAgIHtwcm92aWRlOiBCYXNlTW9kdWxlU2NyZWVuQ29uZmlnU2VydmljZSwgdXNlRXhpc3Rpbmc6IFRyYW5zYWN0aW9uU2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2V9LFxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHRyYW5zS2luZDogdHlwZW9mIFRyYW5zYWN0aW9uS2luZCA9IFRyYW5zYWN0aW9uS2luZDtcclxuICBwdWJsaWMgcmVhZG9ubHkgY2ZnTmFtZXM6IHR5cGVvZiBDaGVja291dENmZ05hbWUgPSBDaGVja291dENmZ05hbWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwcGVyXCIpXHJcbiAgcHVibGljIHN0ZXBwZXI6IFN0ZXBwZXJDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwUmVsYXRpb25cIilcclxuICBwdWJsaWMgc3RlcFJlbGF0aW9uOiBTdGVwcGVyU3RlcENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZChcInN0ZXBEZWxpdmVyeVwiKVxyXG4gIHB1YmxpYyBzdGVwRGVsaXZlcnk6IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwic3RlcE92ZXJ2aWV3XCIpXHJcbiAgcHVibGljIHN0ZXBPdmVydmlldzogU3RlcHBlclN0ZXBDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJzdGVwUGF5XCIpXHJcbiAgcHVibGljIHN0ZXBQYXk6IFN0ZXBwZXJTdGVwQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwiY2hlY2tvdXRSZWxhdGlvblwiKVxyXG4gIHB1YmxpYyBjaGVja291dFJlbGF0aW9uOiBDaGVja291dE92ZXJ2aWV3UmVsYXRpb25FZGl0Q29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwiY2hlY2tvdXREZWxpdmVyeVwiKVxyXG4gIHB1YmxpYyBjaGVja291dERlbGl2ZXJ5OiBDaGVja291dE92ZXJ2aWV3RGVsaXZlcnlFZGl0Q29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFwiY2hlY2tvdXRQYXltZW50XCIpXHJcbiAgcHVibGljIGNoZWNrb3V0UGF5bWVudDogUGF5bWVudENvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbmV3VHJhbnNhY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBzZXQsIHRoaXMgaXMgdGhlIHJlbGF0aW9uIGJlIHVzZWQgZm9yIHRoZSBjaGVja291dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCByZWxhdGlvbk5yKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3JlbGF0aW9uTnIgPSB2YWx1ZTtcclxuICAgIGlmKHRoaXMuc2VydmljZSAmJiB0aGlzLl9yZWxhdGlvbk5yKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5zZXRSZWxhdGlvbk9uVHJhbnNhY3Rpb24odGhpcy5fcmVsYXRpb25OciwgdGhpcy5yZWxhdGlvblR5cGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByZWxhdGlvbk5yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlbGF0aW9uTnI7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdHJhbnNGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lKHZhbHVlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLnRyYW5zRm9yU2VydmljZUZyb21TYWxlc1RyYW5zYWN0aW9uTGluZSA9IHZhbHVlO1xyXG4gICAgaWYodGhpcy5zZXJ2aWNlLnRyYW5zRm9yU2VydmljZUZyb21TYWxlc1RyYW5zYWN0aW9uTGluZSkge1xyXG4gICAgICB0aGlzLnJlbGF0aW9uTnIgPSBwYXJzZUludCh0aGlzLnNlcnZpY2UudHJhbnNGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lLnRyYW5zYWN0aW9uSW5mby5yZWxhdGlvbi5yZWxhdGlvbk5yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS50cmFuc0ZvclNlcnZpY2VGcm9tU2FsZXNUcmFuc2FjdGlvbkxpbmU7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbGluZU5yRm9yU2VydmljZUZyb21TYWxlc1RyYW5zYWN0aW9uTGluZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UubGluZU5yRm9yU2VydmljZUZyb21TYWxlc1RyYW5zYWN0aW9uTGluZSA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBsaW5lTnJGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5saW5lTnJGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2VsbGVySWQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25UeXBlOiBUcmFuc2FjdGlvbktpbmQgPSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0NyZWF0ZVRyYW5zYWN0aW9uQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkZpbmlzaGVkOiBFdmVudEVtaXR0ZXI8e2lkOiBudW1iZXIsIGZyb21DaGVja291dDogYm9vbGVhbn0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7aWQ6IG51bWJlciwgZnJvbUNoZWNrb3V0OiBib29sZWFufT4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVkaXRDYXJ0Q2xpY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tY2hlY2tvdXRcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHVzZXJJc0FwcGxpY2F0aW9uVXNlcigpOiBib29sZWFuIHtcclxuICAgIC8vIFRPRE86IHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmlzQXBwbGljYXRpb25Vc2VyO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xyXG4gIHB1YmxpYyBkZWxpdmVyeUFkZHJlc3NOYXdOcjogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgaW52b2ljZUFkZHJlc3NOYXdOcjogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgcmVsYXRpb25UeXBlOiBSZWxhdGlvbktpbmQ7XHJcbiAgcHVibGljIGNvbmZpZ0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93WW91ckRhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0RlbGl2ZXJ5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNob3dPdmVydmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9yZWxhdGlvbk5yOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfdHJhbnNOckZvclNlcnZpY2VGcm9tU2FsZXNUcmFuc2FjdGlvbkxpbmU6IG51bWJlcjtcclxuICBwcml2YXRlIF9saW5lTnJGb3JTZXJ2aWNlRnJvbVNhbGVzVHJhbnNhY3Rpb25MaW5lOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25IZWFkZXJTZXJ2aWNlOiBUcmFuc2FjdGlvbkhlYWRlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yZWxhdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uUmVsYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBUcmFuc2FjdGlvbkRpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TY3JlZW5Db25maWd1cmF0aW9uU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5sb2FkQ29uZmlnKFt0aGlzLnRyYW5zYWN0aW9uVHlwZV0pO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICAgIHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmNvbmZpZ1NldC5zdWJzY3JpYmUoKGNvbmZpZ09iamVjdHM6IE9iamVjdENvbmZpZ3VyYXRpb25bXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNvbmZpZ09iamVjdHMgJiYgY29uZmlnT2JqZWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1lvdXJEYXRhID0gdGhpcy5fc2NyZWVuQ29uZmlndXJhdGlvblNlcnZpY2UuZ2V0T2JqZWN0Q29uZmlndXJhdGlvbkZvcih0aGlzLmNmZ05hbWVzLllvdXJEYXRhSGVhZGVyKS5pbW1lZGlhdGVseVZpc2libGUoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93RGVsaXZlcnkgPSB0aGlzLl9zY3JlZW5Db25maWd1cmF0aW9uU2VydmljZS5nZXRPYmplY3RDb25maWd1cmF0aW9uRm9yKHRoaXMuY2ZnTmFtZXMuRGVsaXZlcnlIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dPdmVydmlldyA9IHRoaXMuX3NjcmVlbkNvbmZpZ3VyYXRpb25TZXJ2aWNlLmdldE9iamVjdENvbmZpZ3VyYXRpb25Gb3IodGhpcy5jZmdOYW1lcy5PdmVydmlld0FuZFBheW1lbnRIZWFkZXIpLmltbWVkaWF0ZWx5VmlzaWJsZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ0xvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgIHRoaXMuc2VydmljZS50cmFuc2FjdGlvblVwZGF0ZWQuc3Vic2NyaWJlKCh0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAodHJhbnNhY3Rpb24pIHtcclxuICAgICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uSGVhZGVyU2VydmljZS50cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIClcclxuICAgIGlmICh0aGlzLm5ld1RyYW5zYWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5yZXNldEN1cnJlbnRUcmFuc2FjdGlvbigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uS2luZCA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xyXG4gICAgdGhpcy5yZWxhdGlvblR5cGUgPSB0aGlzLnNlcnZpY2UuZ2V0UmVsYXRpb25LaW5kRnJvbVRyYW5zYWN0aW9uS2luZCgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZU5ld1JlbGF0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5yZWxhdGlvbk5yKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5zZXRSZWxhdGlvbk9uVHJhbnNhY3Rpb24odGhpcy5yZWxhdGlvbk5yLCB0aGlzLnJlbGF0aW9uVHlwZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5fcmVsYXRpb25TZXJ2aWNlLnJlbGF0aW9uTG9ja2VkIHx8IHRoaXMuc2VydmljZS50cmFuc2FjdGlvbkxvY2tlZCkge1xyXG4gICAgICB0aGlzLnNlcnZpY2UucmVzZXRMb2NrVHJhbnNhY3Rpb24oKTtcclxuICAgICAgdGhpcy5zZXJ2aWNlLnJvbGxiYWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlQ3JlYXRlVHJhbnNhY3Rpb24oZXZlbnQ6IE1vdXNlRXZlbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLnN0ZXBwZXIuYWN0aXZlU3RlcCA9PT0gMCkge1xyXG4gICAgICBpZiAoYXdhaXQgdGhpcy5oYW5kbGVSZWxhdGlvblZhbGlkYXRpb24oKSkge1xyXG4gICAgICAgIC8vIHN1Y2Nlc3MgPSBhd2FpdCB0aGlzLnNlcnZpY2Uuc2F2ZVJlbGF0aW9uKCk7XHJcbiAgICAgICAgaWYgKHRoaXMudHJhbnNhY3Rpb25UeXBlICE9PSB0aGlzLnRyYW5zS2luZC5TYWxlc1F1b3RhdGlvbikge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZUhlYWRlclRyYW5zYWN0aW9uRGVmaW5pdGl2ZSh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCB0cnVlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBzYXZlU3VjY2VzczogYm9vbGVhbiA9IGF3YWl0IHRoaXMuc2VydmljZS5zYXZlVHJhbnNhY3Rpb25BbmRDb21taXQoKTtcclxuICAgIGlmIChzYXZlU3VjY2Vzcykge1xyXG4gICAgICB0aGlzLmhhbmRsZVRyYW5zYWN0aW9uRmluaXNoZWQodGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udHJhbnNhY3Rpb25Ocik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlUmVsYXRpb25WYWxpZGF0aW9uKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKHRoaXMuY2hlY2tvdXRSZWxhdGlvbiAmJiB0aGlzLnN0ZXBSZWxhdGlvbikge1xyXG4gICAgICBjb25zdCB2YWxpZCA9IHRoaXMuY2hlY2tvdXRSZWxhdGlvbi5zdWJtaXQoKTtcclxuICAgICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0ZvckFuZFNldFNlYXJjaEFkZHJlc3MoKTtcclxuICAgICAgICB0aGlzLnN0ZXBSZWxhdGlvbi5jb21wbGV0ZWQgPSBhd2FpdCB0aGlzLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWxpZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vSWYgYSByZWxhdGlvbiBoYXMgbm8gc2VhcmNoIGFkZHJlc3Mgc2V0IHRoZSBmaXJzdCBhY3RpdmUgYWRkcmVzcyB0byBiZSBzdWNoLlxyXG4gIHB1YmxpYyBjaGVja0ZvckFuZFNldFNlYXJjaEFkZHJlc3MoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLnNlcnZpY2UucmVsYXRpb24uYWN0aXZlQWRkcmVzc2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IHNlYXJjaEFkZHJlc3NGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNlcnZpY2UucmVsYXRpb24uYWN0aXZlQWRkcmVzc2VzLmZvckVhY2goYWRkcmVzcyA9PiB7XHJcbiAgICAgICAgaWYgKGFkZHJlc3Muc2VhcmNoQWRkcmVzcykge1xyXG4gICAgICAgICAgc2VhcmNoQWRkcmVzc0ZvdW5kID0gdHJ1ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoIXNlYXJjaEFkZHJlc3NGb3VuZCkge1xyXG4gICAgICAgIHRoaXMuc2VydmljZS5yZWxhdGlvbi5hY3RpdmVBZGRyZXNzZXNbMF0uc2VhcmNoQWRkcmVzcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVEZWxpdmVyeVZhbGlkYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jaGVja291dERlbGl2ZXJ5ICYmIHRoaXMuc3RlcERlbGl2ZXJ5KSB7XHJcbiAgICAgIGNvbnN0IHZhbGlkID0gdGhpcy5jaGVja291dERlbGl2ZXJ5LnN1Ym1pdCgpO1xyXG4gICAgICBpZiAodmFsaWQpIHtcclxuICAgICAgICBjb25zdCBzYXZlU3VjY2VzczogYm9vbGVhbiA9IGF3YWl0IHRoaXMuc2VydmljZS5zYXZlVHJhbnNhY3Rpb25BbmRDb21taXQoKTtcclxuICAgICAgICBpZiAoc2F2ZVN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGNvbnN0IGxvY2tTdWNjZXNzOiBib29sZWFuID1cclxuICAgICAgICAgICAgICBhd2FpdCB0aGlzLnNlcnZpY2UudHJ5VG9Mb2NrVHJhbnNhY3Rpb24odGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnZlcnNpb24pO1xyXG4gICAgICAgICAgaWYgKGxvY2tTdWNjZXNzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RlcERlbGl2ZXJ5LmNvbXBsZXRlZCA9IGF3YWl0IHRoaXMuaGFuZGxlU2F2ZURlbGl2ZXJ5KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB2YWxpZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlUmVsYXRpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBjb25zdCBzdWNjZXNzOiBib29sZWFuID0gYXdhaXQgdGhpcy5zZXJ2aWNlLnNhdmVSZWxhdGlvbigpO1xyXG4gICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgaWYgKHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPT09IG51bGwgfHwgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOciA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPT09IDAgJiYgdGhpcy5zZXJ2aWNlLnJlbGF0aW9uLmFkZHJlc3NlcyAmJiB0aGlzLnNlcnZpY2UucmVsYXRpb24uYWRkcmVzc2VzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPSB0aGlzLnNlcnZpY2UucmVsYXRpb24uYWRkcmVzc2VzWzBdLm5hd05yO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRlbGl2ZXJ5QWRkcmVzc05hd05yICYmIHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uQWRkcmVzcyAhPT0gdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOcikge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VydmljZS51cGRhdGVIZWFkZXJEZWxpdmVyeUFkZHJlc3ModGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCwgdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOcik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaW52b2ljZUFkZHJlc3NOYXdOcjogbnVtYmVyID0gdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yID8gdGhpcy5pbnZvaWNlQWRkcmVzc05hd05yIDogdGhpcy5kZWxpdmVyeUFkZHJlc3NOYXdOcjtcclxuICAgICAgaWYgKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmludm9pY2VBZGRyZXNzICE9PSBpbnZvaWNlQWRkcmVzc05hd05yKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZXJ2aWNlLnVwZGF0ZUhlYWRlckludm9pY2VBZGRyZXNzKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQsIGludm9pY2VBZGRyZXNzTmF3TnIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VzcztcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlU2F2ZURlbGl2ZXJ5KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGVsaXZlcnlBZGRyZXNzQ2hhbmdlKG5hd05yOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzTmF3TnIgPSBuYXdOcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVJbnZvaWNlQWRkcmVzc0NoYW5nZShuYXdOcjogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmludm9pY2VBZGRyZXNzTmF3TnIgPSBuYXdOcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUcmFuc2FjdGlvbkZpbmlzaGVkKGlkOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5yZXNldEN1cnJlbnRUcmFuc2FjdGlvbigpO1xyXG4gICAgdGhpcy50cmFuc2FjdGlvbkZpbmlzaGVkLmVtaXQoe2lkOiBpZCwgZnJvbUNoZWNrb3V0OiB0aGlzLnNob3dDcmVhdGVUcmFuc2FjdGlvbkJ1dHRvbn0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|