@po-ui/ng-templates 16.0.0-next.2 → 16.1.0
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/README.md +19 -19
- package/esm2022/lib/components/components.module.mjs +1 -1
- package/esm2022/lib/components/index.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-modal-content.enum.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-type.enum.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/index.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/interfaces/po-modal-password-recovery.interface.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/literals/i18n/po-modal-password-recovery-literals.mjs +5 -5
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.mjs +2 -2
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +2 -2
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.module.mjs +1 -1
- package/esm2022/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.mjs +1 -1
- package/esm2022/lib/components/po-page-background/index.mjs +1 -1
- package/esm2022/lib/components/po-page-background/po-page-background.component.mjs +2 -2
- package/esm2022/lib/components/po-page-background/po-page-background.module.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/enums/po-page-blocked-user-reason.enum.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/index.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/interfaces/po-page-blocked-user-reason-params.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/literals/i18n/po-page-blocked-user-literals.mjs +6 -6
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +2 -2
- package/esm2022/lib/components/po-page-blocked-user/po-page-blocked-user.module.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/index.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password-recovery.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password-requirement.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/interfaces/po-page-change-password.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/literals/i18n/po-page-change-password-literals.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/po-page-change-password-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.component.mjs +2 -2
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.module.mjs +1 -1
- package/esm2022/lib/components/po-page-change-password/po-page-change-password.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/index.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-actions.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-back.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-edit.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-remove.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-metadata.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-options.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/index.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-actions.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-cancel.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save-new.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-metadata.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-options.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/index.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.mjs +6 -9
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.mjs +8 -18
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-filters.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +2 -2
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-search/po-page-dynamic-search.module.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/index.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-actions.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-detail.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-duplicate.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-edit.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-new.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove-all.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-filters.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-metadata.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-options.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table-literals.mjs +1 -1
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.mjs +14 -29
- package/esm2022/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/index.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler-internal.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-internal.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-literals.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-lookup.service.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/index.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/index.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-job-scheduler-parameters-template/po-job-scheduler-parameters-template.directive.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +2 -2
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.mjs +1 -1
- package/esm2022/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.mjs +1 -1
- package/esm2022/lib/components/po-page-login/enums/po-page-login-authentication-type.enum.mjs +1 -1
- package/esm2022/lib/components/po-page-login/index.mjs +1 -1
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login-custom-field.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login-literals.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login-recovery.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-login/interfaces/po-page-login.interface.mjs +1 -1
- package/esm2022/lib/components/po-page-login/po-page-login-base.component.mjs +5 -5
- package/esm2022/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.mjs +2 -2
- package/esm2022/lib/components/po-page-login/po-page-login.component.mjs +2 -2
- package/esm2022/lib/components/po-page-login/po-page-login.module.mjs +1 -1
- package/esm2022/lib/components/po-page-login/po-page-login.service.mjs +1 -1
- package/esm2022/lib/index.mjs +1 -1
- package/esm2022/lib/po-templates.module.mjs +1 -1
- package/esm2022/lib/services/index.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/index.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/po-page-customization.module.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/po-page-customization.service.mjs +1 -1
- package/esm2022/lib/services/po-page-customization/po-page-dynamic-options.interface.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/index.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic-literals.interface.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.module.mjs +1 -1
- package/esm2022/lib/services/po-page-dynamic/po-page-dynamic.service.mjs +1 -1
- package/esm2022/lib/services/services.module.mjs +1 -1
- package/esm2022/lib/utils/util.mjs +1 -1
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/po-ui-ng-templates.mjs +107 -135
- package/fesm2022/po-ui-ng-templates.mjs.map +1 -1
- package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.d.ts +3 -2
- package/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.d.ts +6 -3
- package/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.d.ts +14 -9
- package/package.json +4 -4
- package/po-ui-ng-templates-16.1.0.tgz +0 -0
- package/schematics/README.md +14 -14
- package/schematics/collection.json +50 -50
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/schema.json +16 -16
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
- package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-blocked-user/schema.json +67 -67
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
- package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-change-password/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
- package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-detail/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
- package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-edit/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +28 -28
- package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-search/schema.json +67 -67
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +21 -21
- package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-dynamic-table/schema.json +67 -67
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +3 -3
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +17 -17
- package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-job-scheduler/schema.json +67 -67
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
- package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-login/schema.json +67 -67
- package/po-ui-ng-templates-16.0.0-next.2.tgz +0 -0
|
@@ -740,7 +740,7 @@ export class PoPageDynamicEditComponent {
|
|
|
740
740
|
}
|
|
741
741
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoPageDynamicEditComponent, [{
|
|
742
742
|
type: Component,
|
|
743
|
-
args: [{ selector: 'po-page-dynamic-edit', providers: [PoPageDynamicService], template: "<po-page-default [p-actions]=\"pageActions\" [p-breadcrumb]=\"breadcrumb\" [p-title]=\"title\">\
|
|
743
|
+
args: [{ selector: 'po-page-dynamic-edit', providers: [PoPageDynamicService], template: "<po-page-default [p-actions]=\"pageActions\" [p-breadcrumb]=\"breadcrumb\" [p-title]=\"title\">\n <ng-container *ngIf=\"model; then formFieldsTemplate; else registerNotFoundTemplate\"> </ng-container>\n</po-page-default>\n\n<ng-template #registerNotFoundTemplate>\n <po-widget>\n <span class=\"po-icon po-icon-info\"></span>\n <span class=\"po-font-text-large\">\n {{ literals.registerNotFound }}\n </span>\n </po-widget>\n</ng-template>\n\n<ng-template #formFieldsTemplate>\n <po-dynamic-form #dynamicForm [p-fields]=\"controlFields\" [p-value]=\"model\"> </po-dynamic-form>\n\n <div *ngIf=\"detailFields.length > 0\" class=\"po-sm-12\">\n <po-divider [p-label]=\"detailFields[0].divider\"></po-divider>\n\n <div class=\"po-row po-mb-2\">\n <po-button [p-label]=\"literals.detailActionNew\" (p-click)=\"detailActionNew()\"></po-button>\n </div>\n\n <po-grid\n #gridDetail\n [p-row-actions]=\"detailActions\"\n [p-columns]=\"detailFields[0].detail.columns\"\n [p-data]=\"model[detailFields[0].property]\"\n >\n </po-grid>\n </div>\n</ng-template>\n" }]
|
|
744
744
|
}], function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.PoNotificationService }, { type: i2.PoDialogService }, { type: i3.PoPageDynamicService }, { type: i4.PoPageCustomizationService }, { type: i5.PoPageDynamicEditActionsService }, { type: i2.PoLanguageService }]; }, { dynamicForm: [{
|
|
745
745
|
type: ViewChild,
|
|
746
746
|
args: ['dynamicForm']
|
|
@@ -775,4 +775,4 @@ export class PoPageDynamicEditComponent {
|
|
|
775
775
|
type: Input,
|
|
776
776
|
args: ['p-fields']
|
|
777
777
|
}] }); })();
|
|
778
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1keW5hbWljLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlLWR5bmFtaWMtZWRpdC9wby1wYWdlLWR5bmFtaWMtZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtZHluYW1pYy1lZGl0L3BvLXBhZ2UtZHluYW1pYy1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQWdCLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpFLE9BQU8sRUFTTCxlQUFlLEVBQ2hCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJckgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7Ozs7O0lDckI1Rix3QkFBb0c7OztJQUlwRyxpQ0FBVztJQUNULDBCQUEwQztJQUMxQywrQkFBaUM7SUFDL0IsWUFDRjtJQUFBLGlCQUFPLEVBQUE7OztJQURMLGVBQ0Y7SUFERSxpRUFDRjs7OztJQU9GLDhCQUFzRDtJQUNwRCxpQ0FBNkQ7SUFFN0QsK0JBQTRCLG9CQUFBO0lBQ3NCLDZMQUFXLGVBQUEsd0JB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SUFFTyxRQUFRLENBQUMsS0FBVTtRQUN6QixPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO29GQWhvQlUsMEJBQTBCOzZEQUExQiwwQkFBMEI7Ozs7Ozs7K1lBRjFCLENBQUMsb0JBQW9CLENBQUM7WUN4S25DLDBDQUF5RjtZQUN2Riw2RkFBb0c7WUFDdEcsaUJBQWtCO1lBRWxCLDRIQU9jO1lBRWQsNEhBa0JjOzs7O1lBL0JHLDJDQUF5QixnQ0FBQSxzQkFBQTtZQUN6QixlQUFhO1lBQWIsZ0NBQWEsaUJBQUEsaUJBQUE7Ozt1RkR5S2pCLDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHNCQUFzQixhQUVyQixDQUFDLG9CQUFvQixDQUFDO2tUQUdQLFdBQVc7a0JBQXBDLFNBQVM7bUJBQUMsYUFBYTtZQUNDLFVBQVU7a0JBQWxDLFNBQVM7bUJBQUMsWUFBWTtZQUdBLFVBQVU7a0JBQWhDLEtBQUs7bUJBQUMsY0FBYztZQXVFRyxVQUFVO2tCQUFqQyxLQUFLO21CQUFDLGVBQWU7WUFHSixLQUFLO2tCQUF0QixLQUFLO21CQUFDLFNBQVM7WUErQkMsTUFBTTtrQkFBdEIsS0FBSzttQkFBQyxRQUFRO1lBNEJPLFVBQVU7a0JBQS9CLEtBQUs7bUJBQUMsYUFBYTtZQThCSSxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUEyQ08sUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBZ0NTLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQVNDLE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb25jYXQsIG9mLCBTdWJzY3JpcHRpb24sIEVNUFRZLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRhcCwgY2F0Y2hFcnJvciwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIFBvQnJlYWRjcnVtYixcclxuICBQb0RpYWxvZ1NlcnZpY2UsXHJcbiAgUG9EeW5hbWljRm9ybUNvbXBvbmVudCxcclxuICBQb0dyaWRDb21wb25lbnQsXHJcbiAgUG9HcmlkUm93QWN0aW9ucyxcclxuICBQb0xhbmd1YWdlU2VydmljZSxcclxuICBQb05vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgUG9QYWdlQWN0aW9uLFxyXG4gIHBvTG9jYWxlRGVmYXVsdFxyXG59IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuXHJcbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xlYW4sIG1hcE9iamVjdEJ5UHJvcGVydGllcywgdmFsdWVzRnJvbU9iamVjdCwgcmVtb3ZlS2V5c1Byb3BlcnRpZXMgfSBmcm9tICcuLy4uLy4uL3V0aWxzL3V0aWwnO1xyXG5cclxuaW1wb3J0IHsgUG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXBhZ2UtZHluYW1pYy1lZGl0LWFjdGlvbnMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9QYWdlRHluYW1pY0VkaXRGaWVsZCB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWR5bmFtaWMtZWRpdC1maWVsZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLXBhZ2UtZHluYW1pYy9wby1wYWdlLWR5bmFtaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNFZGl0T3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWR5bmFtaWMtZWRpdC1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvUGFnZUN1c3RvbWl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tcGFnZS1jdXN0b21pemF0aW9uL3BvLXBhZ2UtY3VzdG9taXphdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUG9QYWdlRHluYW1pY0VkaXRNZXRhZGF0YSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWR5bmFtaWMtZWRpdC1tZXRhZGF0YS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljT3B0aW9uc1NjaGVtYSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLXBhZ2UtY3VzdG9taXphdGlvbi9wby1wYWdlLWR5bmFtaWMtb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wby1wYWdlLWR5bmFtaWMtZWRpdC1hY3Rpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljRWRpdEJlZm9yZUNhbmNlbCB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWR5bmFtaWMtZWRpdC1iZWZvcmUtY2FuY2VsLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNFZGl0TGl0ZXJhbHMgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1keW5hbWljLWVkaXQtbGl0ZXJhbHMuaW50ZXJmYWNlJztcclxuXHJcbnR5cGUgVXJsT3JQb0N1c3RvbWl6YXRpb25GdW5jdGlvbiA9IHN0cmluZyB8ICgoKSA9PiBQb1BhZ2VEeW5hbWljRWRpdE9wdGlvbnMpO1xyXG50eXBlIFNhdmVBY3Rpb24gPSBQb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnNbJ3NhdmUnXSB8IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9uc1snc2F2ZU5ldyddO1xyXG5cclxuZXhwb3J0IGNvbnN0IHBvUGFnZUR5bmFtaWNFZGl0TGl0ZXJhbHNEZWZhdWx0ID0ge1xyXG4gIGVuOiA8UG9QYWdlRHluYW1pY0VkaXRMaXRlcmFscz57XHJcbiAgICBjYW5jZWxDb25maXJtTWVzc2FnZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjYW5jZWwgdGhpcyBvcGVyYXRpb24/JyxcclxuICAgIGRldGFpbEFjdGlvbk5ldzogJ05ldycsXHJcbiAgICBwYWdlQWN0aW9uQ2FuY2VsOiAnQ2FuY2VsJyxcclxuICAgIHBhZ2VBY3Rpb25TYXZlOiAnU2F2ZScsXHJcbiAgICBwYWdlQWN0aW9uU2F2ZU5ldzogJ1NhdmUgYW5kIG5ldycsXHJcbiAgICByZWdpc3Rlck5vdEZvdW5kOiAnUmVnaXN0ZXIgbm90IGZvdW5kLicsXHJcbiAgICBzYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1NhdmU6ICdSZXNvdXJjZSBzdWNjZXNzZnVsbHkgc2F2ZWQuJyxcclxuICAgIHNhdmVOb3RpZmljYXRpb25TdWNjZXNzVXBkYXRlOiAnUmVzb3VyY2Ugc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQuJyxcclxuICAgIHNhdmVOb3RpZmljYXRpb25XYXJuaW5nOiAnRm9ybSBtdXN0IGJlIGZpbGxlZCBvdXQgY29ycmVjdGx5LidcclxuICB9LFxyXG4gIGVzOiA8UG9QYWdlRHluYW1pY0VkaXRMaXRlcmFscz57XHJcbiAgICBjYW5jZWxDb25maXJtTWVzc2FnZTogJ0VzdMOhIHNlZ3VybyBkZSBxdWUgZGVzZWEgY2FuY2VsYXIgZXN0YSBvcGVyYWNpw7NuPycsXHJcbiAgICBkZXRhaWxBY3Rpb25OZXc6ICdOdWV2bycsXHJcbiAgICBwYWdlQWN0aW9uQ2FuY2VsOiAnQ2FuY2VsYXInLFxyXG4gICAgcGFnZUFjdGlvblNhdmU6ICdHdWFyZGFyJyxcclxuICAgIHBhZ2VBY3Rpb25TYXZlTmV3OiAnR3VhcmRhciB5IG51ZXZvJyxcclxuICAgIHJlZ2lzdGVyTm90Rm91bmQ6ICdSZWdpc3RybyBubyBlbmNvbnRyYWRvLicsXHJcbiAgICBzYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1NhdmU6ICdSZWN1cnNvIHNhbHZvIGNvbiDDqXhpdG8uJyxcclxuICAgIHNhdmVOb3RpZmljYXRpb25TdWNjZXNzVXBkYXRlOiAnUmVjdXJzbyBhY3R1YWxpemFkbyBjb24gw6l4aXRvLicsXHJcbiAgICBzYXZlTm90aWZpY2F0aW9uV2FybmluZzogJ0VsIGZvcm11bGFyaW8gZGViZSBsbGVuYXJzZSBjb3JyZWN0YW1lbnRlLidcclxuICB9LFxyXG4gIHB0OiA8UG9QYWdlRHluYW1pY0VkaXRMaXRlcmFscz57XHJcbiAgICBjYW5jZWxDb25maXJtTWVzc2FnZTogJ1RlbSBjZXJ0ZXphIHF1ZSBkZXNlamEgY2FuY2VsYXIgZXN0YSBvcGVyYcOnw6NvPycsXHJcbiAgICBkZXRhaWxBY3Rpb25OZXc6ICdOb3ZvJyxcclxuICAgIHBhZ2VBY3Rpb25DYW5jZWw6ICdDYW5jZWxhcicsXHJcbiAgICBwYWdlQWN0aW9uU2F2ZTogJ1NhbHZhcicsXHJcbiAgICBwYWdlQWN0aW9uU2F2ZU5ldzogJ1NhbHZhciBlIG5vdm8nLFxyXG4gICAgcmVnaXN0ZXJOb3RGb3VuZDogJ1JlZ2lzdHJvIG7Do28gZW5jb250cmFkby4nLFxyXG4gICAgc2F2ZU5vdGlmaWNhdGlvblN1Y2Nlc3NTYXZlOiAnUmVjdXJzbyBzYWx2byBjb20gc3VjZXNzby4nLFxyXG4gICAgc2F2ZU5vdGlmaWNhdGlvblN1Y2Nlc3NVcGRhdGU6ICdSZWN1cnNvIGF0dWFsaXphZG8gY29tIHN1Y2Vzc28uJyxcclxuICAgIHNhdmVOb3RpZmljYXRpb25XYXJuaW5nOiAnRm9ybXVsw6FyaW8gcHJlY2lzYSBzZXIgcHJlZW5jaGlkbyBjb3JyZXRhbWVudGUuJ1xyXG4gIH0sXHJcbiAgcnU6IDxQb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzPntcclxuICAgIGNhbmNlbENvbmZpcm1NZXNzYWdlOiAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDQvtGC0LzQtdC90LjRgtGMINGN0YLRgyDQvtC/0LXRgNCw0YbQuNGOPycsXHJcbiAgICBkZXRhaWxBY3Rpb25OZXc6ICfQndC+0LLRi9C5JyxcclxuICAgIHBhZ2VBY3Rpb25DYW5jZWw6ICfQntGC0LzQtdC90LjRgtGMJyxcclxuICAgIHBhZ2VBY3Rpb25TYXZlOiAn0KHQvtGF0YDQsNC90LjRgtGMJyxcclxuICAgIHBhZ2VBY3Rpb25TYXZlTmV3OiAn0KHQvtGF0YDQsNC90LjRgtGMINC4INGB0L7Qt9C00LDRgtGMJyxcclxuICAgIHJlZ2lzdGVyTm90Rm91bmQ6ICfQl9Cw0L/QuNGB0Ywg0L3QtSDQvdCw0LnQtNC10L3QsC4nLFxyXG4gICAgc2F2ZU5vdGlmaWNhdGlvblN1Y2Nlc3NTYXZlOiAn0KDQtdGB0YPRgNGBINGD0YHQv9C10YjQvdC+INGB0L7RhdGA0LDQvdC10L0uJyxcclxuICAgIHNhdmVOb3RpZmljYXRpb25TdWNjZXNzVXBkYXRlOiAn0KDQtdGB0YPRgNGBINGD0YHQv9C10YjQvdC+INC+0LHQvdC+0LLQu9C10L0uJyxcclxuICAgIHNhdmVOb3RpZmljYXRpb25XYXJuaW5nOiAn0KTQvtGA0LzQsCDQtNC+0LvQttC90LAg0LHRi9GC0Ywg0LfQsNC/0L7Qu9C90LXQvdCwINC/0YDQsNCy0LjQu9GM0L3Qvi4nXHJcbiAgfVxyXG59O1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBPIGBwby1wYWdlLWR5bmFtaWMtZWRpdGAgw6kgdW1hIHDDoWdpbmEgcXVlIHBvZGUgc2VydmlyIHBhcmEgZWRpdGFyIG91IGNyaWFyIG5vdm9zIHJlZ2lzdHJvcyxcclxuICogbyBtZXNtbyB0YW1iw6ltIHN1cG9ydGEgbWV0YWRhZG9zIGNvbmZvcm1lIGVzcGVjaWZpY2FkbyBuYSBkb2N1bWVudGHDp8Ojby5cclxuICpcclxuICogIyMjIFV0aWxpemHDp8OjbyB2aWEgcm90YVxyXG4gKlxyXG4gKiBBbyB1dGlsaXphciBhcyByb3RhcyBwYXJhIGNhcnJlZ2FyIG8gdGVtcGxhdGUsIG8gYHBhZ2UtZHluYW1pYy1lZGl0YCBkaXNwb25pYmlsaXphIHByb3ByaWVkYWRlcyBwYXJhXHJcbiAqIHBvZGVyIGVzcGVjaWZpY2FyIG8gZW5kcG9pbnQgZG9zIGRhZG9zIGUgZG9zIG1ldGFkYWRvcy4gRXhlbXBsbyBkZSB1dGlsaXphw6fDo286XHJcbiAqXHJcbiAqIE8gY29tcG9uZW50ZSBwcmltZWlybyBpcsOhIGNhcnJlZ2FyIG8gbWV0YWRhZG8gZGEgcm90YSBkZWZpbmlkYSBuYSBwcm9wcmllZGFkZSBzZXJ2aWNlTWV0YWRhdGFBcGlcclxuICogZSBkZXBvaXMgaXLDoSBidXNjYXIgZGEgcm90YSBkZWZpbmlkYSBuYSBwcm9wcmllZGFkZSBzZXJ2aWNlTG9hZEFwaVxyXG4gKlxyXG4gKiA+IENhc28gbyBzZXJ2aWRvciByZXRvcm5hciB1bSBlcnJvIGFvIHJlY3VwZXJhciBvIG1ldGFkYWRvcywgc2Vyw6EgcmVwYXNzYWRvIG8gbWV0YWRhZG9zIHNhbHZvIGVtIGNhY2hlLFxyXG4gKiBzZSBvIGNhY2hlIG7Do28gZXhpc3RlIHNlcsOhIGRpc3BhcmFkbyB1bWEgbm90aWZpY2HDp8Ojby5cclxuICpcclxuICogYGBgXHJcbiAqIHtcclxuICogICBwYXRoOiAncGVvcGxlJyxcclxuICogICBjb21wb25lbnQ6IFBvUGFnZUR5bmFtaWNFZGl0Q29tcG9uZW50LFxyXG4gKiAgIGRhdGE6IHtcclxuICogICAgIHNlcnZpY2VBcGk6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAvdjEvcGVvcGxlJywgLy8gZW5kcG9pbnQgZG9zIGRhZG9zXHJcbiAqICAgICBzZXJ2aWNlTWV0YWRhdGFBcGk6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAvdjEvbWV0YWRhdGEnLCAvLyBlbmRwb2ludCBkb3MgbWV0YWRhZG9zIHV0aWxpemFuZG8gbyBtw6l0b2RvIEhUVFAgR2V0XHJcbiAqICAgICBzZXJ2aWNlTG9hZEFwaTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9sb2FkLW1ldGFkYXRhJyAvLyBlbmRwb2ludCBkZSBjdXN0b21pemHDp8O1ZXMgZG9zIG1ldGFkYWRvcyB1dGlsaXphbmRvIG8gbcOpdG9kbyBIVFRQIFBvc3RcclxuICogICB9XHJcbiAqIH1cclxuICpcclxuICogYGBgXHJcbiAqXHJcbiAqIFBhcmEgY2FycmVnYXIgY29tIHVtIHJlY3Vyc28gasOhIGV4aXN0ZW50ZSwgZGV2ZS1zZSBzZXIgaW5jbHXDrWRvIHVtIHBhcsOibWV0cm8gbmEgcm90YSBjaGFtYWRvIGBpZGA6XHJcbiAqXHJcbiAqIGBgYFxyXG4gKiB7XHJcbiAqICAgcGF0aDogJ3Blb3BsZS86aWQnLFxyXG4gKiAgIGNvbXBvbmVudDogUG9QYWdlRHluYW1pY0VkaXRDb21wb25lbnQsXHJcbiAqICAgZGF0YToge1xyXG4gKiAgICAgc2VydmljZUFwaTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC92MS9wZW9wbGUnLCAvLyBlbmRwb2ludCBkb3MgZGFkb3NcclxuICogICAgIHNlcnZpY2VNZXRhZGF0YUFwaTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC92MS9tZXRhZGF0YScsIC8vIGVuZHBvaW50IGRvcyBtZXRhZGFkb3NcclxuICogICAgIHNlcnZpY2VMb2FkQXBpOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL2xvYWQtbWV0YWRhdGEnIC8vIGVuZHBvaW50IGRlIGN1c3RvbWl6YcOnw7VlcyBkb3MgbWV0YWRhZG9zXHJcbiAqICAgfVxyXG4gKiB9XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBBIHJlcXVpc2nDp8OjbyBkb3MgbWV0YWRhZG9zIMOpIGZlaXRhIG5hIGluaWNpYWxpemHDp8OjbyBkbyB0ZW1wbGF0ZSBwYXJhIGJ1c2NhciBvcyBtZXRhZGFkb3MgZGEgcMOhZ2luYSBwYXNzYW5kbyBvXHJcbiAqIHRpcG8gZG8gbWV0YWRhZG8gZXNwZXJhZG8gZSBhIHZlcnPDo28gY2FjaGVhZGEgcGVsbyBicm93c2VyLlxyXG4gKlxyXG4gKiBPIGZvcm1hdG8gZXNwZXJhZG8gbmEgcmVzcG9zdGEgZGEgcmVxdWlzacOnw6NvIGVzdMOhIGVzcGVjaWZpY2FkbyBuYSBpbnRlcmZhY2VcclxuICogW1BvUGFnZUR5bmFtaWNFZGl0TWV0YWRhdGFdKC9kb2N1bWVudGF0aW9uL3BvLXBhZ2UtZHluYW1pYy1lZGl0I3BvLXBhZ2UtZHluYW1pYy1lZGl0LW1ldGFkYXRhKS4gUG9yIGV4ZW1wbG86XHJcbiAqXHJcbiAqIGBgYFxyXG4gKiAge1xyXG4gKiAgIHZlcnNpb246IDEsXHJcbiAqICAgdGl0bGU6ICdQZXJzb24gZWRpdCcsXHJcbiAqICAgZmllbGRzOiBbXHJcbiAqICAgICB7IHByb3BlcnR5OiAnaWQnLCBrZXk6IHRydWUsIGRpc2FibGVkOiB0cnVlIH0sXHJcbiAqICAgICB7IHByb3BlcnR5OiAnc3RhdHVzJyB9LFxyXG4gKiAgICAgeyBwcm9wZXJ0eTogJ25hbWUnIH0sXHJcbiAqICAgICB7IHByb3BlcnR5OiAnbmlja25hbWUnIH0sXHJcbiAqICAgICB7IHByb3BlcnR5OiAnYmlydGhkYXRlJywgbGFiZWw6ICdCaXJ0aCBkYXRlJyB9LFxyXG4gKiAgICAgeyBwcm9wZXJ0eTogJ2dlbnJlJyB9LFxyXG4gKiAgICAgeyBwcm9wZXJ0eTogJ2NpdHknIH0sXHJcbiAqICAgICB7IHByb3BlcnR5OiAnY291bnRyeScgfVxyXG4gKiAgIF1cclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogPiBDYXNvIG8gZW5kcG9pbnQgZG9zIG1ldGFkYWRvcyBuw6NvIHNlamEgZXNwZWNpZmljYWRvLCBzZXLDoSBmZWl0byB1bWEgcmVxdWlzacOnw6NvIHV0aWxpemFuZG8gbyBgc2VydmljZUFwaWAgZGEgc2VndWludGUgZm9ybWE6XHJcbiAqIGBgYFxyXG4gKiBHRVQge2VuZC1wb2ludH0vbWV0YWRhdGE/dHlwZT1lZGl0JnZlcnNpb249e3ZlcnNpb259XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1keW5hbWljLWVkaXQtYmFzaWNcIiB0aXRsZT1cIlBPIFBhZ2UgRHluYW1pYyBFZGl0IEJhc2ljXCI+XHJcbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1lZGl0LWJhc2ljL3NhbXBsZS1wby1wYWdlLWR5bmFtaWMtZWRpdC1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XHJcbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1lZGl0LWJhc2ljL3NhbXBsZS1wby1wYWdlLWR5bmFtaWMtZWRpdC1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxyXG4gKiA8L2V4YW1wbGU+XHJcbiAqXHJcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWR5bmFtaWMtZWRpdC11c2VyXCIgdGl0bGU9XCJQTyBQYWdlIER5bmFtaWMgRWRpdCAtIFVzZXJcIj5cclxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tcGFnZS1keW5hbWljLWVkaXQtdXNlci9zYW1wbGUtcG8tcGFnZS1keW5hbWljLWVkaXQtdXNlci5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XHJcbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1lZGl0LXVzZXIvc2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1lZGl0LXVzZXIuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cclxuICogPC9leGFtcGxlPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwby1wYWdlLWR5bmFtaWMtZWRpdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXBhZ2UtZHluYW1pYy1lZGl0LmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtQb1BhZ2VEeW5hbWljU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBvUGFnZUR5bmFtaWNFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ2R5bmFtaWNGb3JtJykgZHluYW1pY0Zvcm06IFBvRHluYW1pY0Zvcm1Db21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JpZERldGFpbCcpIGdyaWREZXRhaWw6IFBvR3JpZENvbXBvbmVudDtcclxuXHJcbiAgLyoqIE9iamV0byBjb20gcHJvcHJpZWRhZGVzIGRvIGJyZWFkY3J1bWIuICovXHJcbiAgQElucHV0KCdwLWJyZWFkY3J1bWInKSBicmVhZGNydW1iPzogUG9CcmVhZGNydW1iID0geyBpdGVtczogW10gfTtcclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBFbmRwb2ludCB1c2FkbyBwZWxvIHRlbXBsYXRlIHBhcmEgcmVxdWlzacOnw6NvIGRvIHJlY3Vyc28gcXVlIHNlcsOhIGV4aWJpZG8gcGFyYSBlZGnDp8Ojby5cclxuICAgKlxyXG4gICAqIFBhcmEgYXMgYcOnw7VlcyBkZSBgc2F2ZWAgZSBgc2F2ZU5ld2AsIHNlcsOhIGZlaXRvIHVtYSByZXF1aXNpw6fDo28gZGUgY3JpYcOnw6NvIG5lc3NlIG1lc21vIGVuZHBvaW50IHBhc3NhbmRvIG9zIHZhbG9yZXNcclxuICAgKiBwcmVlbmNoaWRvcyBwZWxvIHVzdcOhcmlvIHZpYSBwYXlsb2FkLlxyXG4gICAqXHJcbiAgICogPiBgUE9TVCB7ZW5kLXBvaW50fWBcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqICA8cG8tcGFnZS1keW5hbWljLWVkaXRcclxuICAgKiAgICBbcC1hY3Rpb25zXT1cInsgc2F2ZTogJy8nLCBzYXZlTmV3OiAnbmV3JyB9XCJcclxuICAgKiAgICBbcC1maWVsZHNdPVwiWyB7IHByb3BlcnR5OiAnbmFtZScgfSwgeyBwcm9wZXJ0eTogJ2NpdHknIH0gXVwiXHJcbiAgICogICAgcC1zZXJ2aWNlPVwiL2FwaS9wby1zYW1wbGVzL3YxL3Blb3BsZVwiXHJcbiAgICogICAgLi4uPlxyXG4gICAqICA8L3BvLXBhZ2UtZHluYW1pYy1lZGl0PlxyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogUmVzcXVpc2nDp8OjbyBkaXNwYXJhZGEsIG9uZGUgYSBwcm9wcmllZGFkZSBgbmFtZWAgZSBgY2l0eWAgZm9yYW0gcHJlZW5jaGlkYXM6XHJcbiAgICpcclxuICAgKiBgYGBcclxuICAgKiAgUE9TVCAvYXBpL3BvLXNhbXBsZXMvdjEvcGVvcGxlIEhUVFAvMS4xXHJcbiAgICogIEhvc3Q6IGxvY2FsaG9zdDo0MDAwXHJcbiAgICogIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcclxuICAgKiAgQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluXHJcbiAgICogIC4uLlxyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogUmVxdWVzdCBwYXlsb2FkOlxyXG4gICAqXHJcbiAgICogYGBgXHJcbiAgICogeyBcIm5hbWVcIjogXCJGdWxhbm9cIiwgXCJjaXR5XCI6IFwiU21hbGx2aWxsZVwiIH1cclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIENhc28gcXVlaXJhIHF1ZSBvIHRlbXBsYXRlIGNhcnJlZ3VlIHVtIHJlY3Vyc28gasOhIGV4aXN0ZW50ZSwgZGV2ZS1zZSBzZXIgaW5jbHXDrWRvIHVtIHBhcmFtZXRybyBuYSByb3RhIGNoYW1hZG8gYGlkYC5cclxuICAgKlxyXG4gICAqIEV4ZW1wbG8gZGUgY29uZmlndXJhw6fDo28gZGUgcm90YTpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqICBSb3V0ZXJNb2R1bGUuZm9yUm9vdChbXHJcbiAgICogICAgLi4uXHJcbiAgICogICAgeyBwYXRoOiAnZWRpdC86aWQnLCBjb21wb25lbnQ6IFBlcnNvbkVkaXRDb21wb25lbnQgfSxcclxuICAgKiAgICAuLi5cclxuICAgKiAgXSxcclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEJhc2VhZG8gbmlzc28sIG5hIGluaWNpYWxpemHDp8OjbyBkbyB0ZW1wbGF0ZSwgc2Vyw6EgZGlzcGFyYWRvIHVtYSByZXF1aXNpw6fDo28gcGFyYSBidXNjYXIgbyByZWN1cnNvIHF1ZSBzZXLDoSBlZGl0YWRvLlxyXG4gICAqXHJcbiAgICogPiBgR0VUIHtlbmQtcG9pbnR9L3tpZH1gXHJcbiAgICpcclxuICAgKiBOb3MgbcOpdG9kb3MgZGUgYHNhdmVgIGUgYHNhdmVOZXdgLCBhbyBpbnbDqXMgZGUgdW0gYFBPU1RgLCBzZXLDoSBkaXNwYXJhZG8gdW0gYFBVVGAuXHJcbiAgICpcclxuICAgKiBSZXNxdWlzacOnw6NvIGRpc3BhcmFkYSwgb25kZSBhIHByb3ByaWVkYWRlIGBuYW1lYCBlIGBjaXR5YCBmb3JhbSBwcmVlbmNoaWRhcyAvIGF0dWFsaXphZGFzLCBlIG8gYGlkYCBkYSB1cmwgw6kgMjpcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqICBQVVQgL2FwaS9wby1zYW1wbGVzL3YxL3Blb3BsZS8yIEhUVFAvMS4xXHJcbiAgICogIEhvc3Q6IGxvY2FsaG9zdDo0MDAwXHJcbiAgICogIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcclxuICAgKiAgQWNjZXB0OiBhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluXHJcbiAgICogIC4uLlxyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogUmVxdWVzdCBwYXlsb2FkOlxyXG4gICAqXHJcbiAgICogYGBgXHJcbiAgICogeyBcIm5hbWVcIjogXCJGdWxhbm9cIiwgXCJjaXR5XCI6IFwiTWV0cm9wb2xpc1wiIH1cclxuICAgKiBgYGBcclxuICAgKi9cclxuICBASW5wdXQoJ3Atc2VydmljZS1hcGknKSBzZXJ2aWNlQXBpOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBUw610dWxvIGRhIHDDoWdpbmEuICovXHJcbiAgQElucHV0KCdwLXRpdGxlJykgdGl0bGU6IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogRnVuw6fDo28gb3Ugc2VydmnDp28gcXVlIHNlcsOhIGV4ZWN1dGFkbyBuYSBpbmljaWFsaXphw6fDo28gZG8gY29tcG9uZW50ZS5cclxuICAgKlxyXG4gICAqIEEgcHJvcHJpZWRhZGUgYWNlaXRhIG9zIHNlZ3VpbnRlcyB0aXBvczpcclxuICAgKiAtIGBzdHJpbmdgOiAqRW5kcG9pbnQqIHVzYWRvIHBlbG8gY29tcG9uZW50ZSBwYXJhIHJlcXVpc2nDp8OjbyB2aWEgYFBPU1RgLlxyXG4gICAqIC0gYGZ1bmN0aW9uYDogTcOpdG9kbyBxdWUgc2Vyw6EgZXhlY3V0YWRvLlxyXG4gICAqXHJcbiAgICogTyByZXRvcm5vIGRlc3RhIGZ1bsOnw6NvIGRldmUgc2VyIGRvIHRpcG8gYFBvUGFnZUR5bmFtaWNFZGl0T3B0aW9uc2AsXHJcbiAgICogb25kZSBvIHVzdcOhcmlvIHBvZGVyw6EgY3VzdG9taXphciBub3ZvcyBjYW1wb3MsIGJyZWFkY3J1bWIsIHRpdGxlIGUgYWN0aW9uc1xyXG4gICAqXHJcbiAgICogUG9yIGV4ZW1wbG86XHJcbiAgICpcclxuICAgKiBgYGBcclxuICAgKiBnZXRQYWdlT3B0aW9ucygpOiBQb1BhZ2VEeW5hbWljRWRpdE9wdGlvbnMge1xyXG4gICAqIHJldHVybiB7XHJcbiAgICogICBhY3Rpb25zOlxyXG4gICAqICAgICB7IGNhbmNlbDogZmFsc2UsIHNhdmU6ICdzYXZlLzppZCcsIHNhdmVOZXc6ICdzYXZlTmV3JyB9LFxyXG4gICAqICAgZmllbGRzOiBbXHJcbiAgICogICAgIHsgcHJvcGVydHk6ICdpZENhcmQnLCBncmlkQ29sdW1uczogNiB9XHJcbiAgICogICBdXHJcbiAgICogfTtcclxuICAgKiB9XHJcbiAgICpcclxuICAgKiBgYGBcclxuICAgKiBQYXJhIHJlZmVyZW5jaWFyIGEgc3VhIGZ1bsOnw6NvIHV0aWxpemUgYSBwcm9wcmllZGFkZSBgYmluZGAsIHBvciBleGVtcGxvOlxyXG4gICAqIGBgYFxyXG4gICAqICBbcC1sb2FkXT1cIm9uTG9hZE9wdGlvbnMuYmluZCh0aGlzKVwiXHJcbiAgICogYGBgXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWxvYWQnKSBvbkxvYWQ6IHN0cmluZyB8ICgoKSA9PiBQb1BhZ2VEeW5hbWljRWRpdE9wdGlvbnMpO1xyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogRnVuw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBhcMOzcyBzZXIgcmVhbGl6YWRhIGEgYnVzY2EgZG9zIGRhZG9zLlxyXG4gICAqXHJcbiAgICogQSBwcm9wcmllZGFkZSBhY2VpdGEgb3Mgc2VndWludGVzIHRpcG9zOlxyXG4gICAqIC0gYGZ1bmN0aW9uYDogTcOpdG9kbyBxdWUgc2Vyw6EgZXhlY3V0YWRvLlxyXG4gICAqXHJcbiAgICogRXN0YSBmdW7Dp8OjbyBwYXNzYSBwb3IgcGFyw6JtZXRybyBvIG1vZGVsIGUgZGV2ZSByZWNlYsOqLWxvIGRlIHZvbHRhIGNvbSBhcyBhbHRlcmHDp8O1ZXMuXHJcbiAgICogVGFtYsOpbSBhY2VpdGEgbyByZXRvcm5vIGRlIHVtIE9ic2VydmFibGUgY29tIG8gbm92byBtb2RlbC5cclxuICAgKlxyXG4gICAqIFBvciBleGVtcGxvOlxyXG4gICAqXHJcbiAgICogYGBgXHJcbiAgICogb25Mb2FkQ3VzdG9tKG1vZGVsKSB7XHJcbiAgICogIHJldHVybiB7IC4uLm1vZGVsLCBjdXN0b21GaWVsZDogJ25ld1ZhbHVlJyB9O1xyXG4gICAqIH1cclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqIFBhcmEgcmVmZXJlbmNpYXIgYSBzdWEgZnVuw6fDo28gdXRpbGl6ZSBhIHByb3ByaWVkYWRlIGBiaW5kYCwgcG9yIGV4ZW1wbG86XHJcbiAgICogYGBgXHJcbiAgICogIFtwLWxvYWQtZGF0YV09XCJvbkxvYWRDdXN0b20uYmluZCh0aGlzKVwiXHJcbiAgICogYGBgXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWxvYWQtZGF0YScpIG9uTG9hZERhdGE6ICgobW9kZWw6IGFueSkgPT4gYW55KSB8ICgobW9kZWw6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+KTtcclxuXHJcbiAgbW9kZWw6IGFueSA9IHt9O1xyXG5cclxuICAvLyBiZWZvcmVTYXZlOiByZXR1cm4gYm9vbGVhblxyXG4gIC8vIGFmdGVyU2F2ZVxyXG4gIC8vIGJlZm9yZVJlbW92ZTogcmV0dXJuIGJvb2xlYW5cclxuICAvLyBhZnRlclJlbW92ZVxyXG4gIC8vIGJlZm9yZUluc2VydDogOiByZXR1cm4gYm9vbGVhblxyXG4gIHJlYWRvbmx5IGRldGFpbEFjdGlvbnM6IFBvR3JpZFJvd0FjdGlvbnMgPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSBsYW5ndWFnZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xyXG4gIHByaXZhdGUgX2FjdGlvbnM6IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9ucyA9IHt9O1xyXG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzO1xyXG4gIHByaXZhdGUgX2F1dG9Sb3V0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF9jb250cm9sRmllbGRzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgcHJpdmF0ZSBfZGV0YWlsRmllbGRzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgcHJpdmF0ZSBfZHVwbGljYXRlczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHByaXZhdGUgX2ZpZWxkczogQXJyYXk8YW55PiA9IFtdO1xyXG4gIHByaXZhdGUgX2tleXM6IEFycmF5PGFueT4gPSBbXTtcclxuICBwcml2YXRlIF9wYWdlQWN0aW9uczogQXJyYXk8UG9QYWdlQWN0aW9uPiA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogQcOnw7VlcyBkYSBww6FnaW5hLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1hY3Rpb25zJykgc2V0IGFjdGlvbnModmFsdWU6IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9ucykge1xyXG4gICAgdGhpcy5fYWN0aW9ucyA9IHRoaXMuaXNPYmplY3QodmFsdWUpID8gdmFsdWUgOiB7fTtcclxuXHJcbiAgICB0aGlzLl9wYWdlQWN0aW9ucyA9IHRoaXMuZ2V0UGFnZUFjdGlvbnModGhpcy5fYWN0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXQgYWN0aW9ucygpIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuX2FjdGlvbnMgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tcGFnZS1keW5hbWljLWVkaXRgLlxyXG4gICAqXHJcbiAgICogw4kgcG9zc2l2ZWwgY3VzdG9taXphciBwYXNzYW5kbyB1bSBvYmpldG8gY29tIHRvZGFzIGFzIGxpdGVyYWlzIGRpc3BvbsOtdmVpc1xyXG4gICAqIG91IHBhc3NhbmRvIGFwZW5hcyBhcyBsaXRlcmFpcyBxdWUgZGVzZWphIGN1c3RvbWl6YXJcclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqICBjb25zdCBjdXN0b21MaXRlcmFsczogUG9QYWdlRHluYW1pY0VkaXRMaXRlcmFscyA9IHtcclxuICAgKiAgICBkZXRhaWxBY3Rpb25OZXc6ICdJbmNsdWlyJyxcclxuICAgKiAgICBwYWdlQWN0aW9uQ2FuY2VsOiAnRGVzY2FydGFyJyxcclxuICAgKiAgICBwYWdlQWN0aW9uU2F2ZTogJ0dyYXZhcicsXHJcbiAgICogICAgcGFnZUFjdGlvblNhdmVOZXc6ICdHcmF2YXIgZSBpbmNsdWlyJyxcclxuICAgKiAgICByZWdpc3Rlck5vdEZvdW5kOiAnTmVuaHVtIHJlZ2lzdHJvIGVuY29udHJhZG8uJyxcclxuICAgKiAgICBzYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1NhdmU6ICdJdGVtIHNhbHZvIGNvbSBzdWNlc3NvLicsXHJcbiAgICogICAgc2F2ZU5vdGlmaWNhdGlvblN1Y2Nlc3NVcGRhdGU6ICdJdGVtIGF0dWFsaXphZG8gY29tIHN1Y2Vzc28uJyxcclxuICAgKiAgICBzYXZlTm90aWZpY2F0aW9uV2FybmluZzogJ05lY2Vzc8OhcmlvIHByZWVuY2hlciBvIGZvcm11bMOhcmlvIGNvcnJldGFtZW50ZS4nXHJcbiAgICogIH07XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBFIHBhcmEgY2FycmVnYXIgYXMgbGl0ZXJhaXMgY3VzdG9taXphZGFzLCBiYXN0YSBhcGVuYXMgcGFzc2FyIG8gb2JqZXRvIHBhcmEgbyBjb21wb25lbnRlLlxyXG4gICAqXHJcbiAgICogYGBgXHJcbiAgICogPHBvLXBhZ2UtZHluYW1pYy1lZGl0XHJcbiAgICogICBbcC1saXRlcmFsc109XCJjdXN0b21MaXRlcmFsc1wiPlxyXG4gICAqIDwvcG8tcGFnZS1keW5hbWljLWVkaXQ+XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiA+IE8gdmFsb3IgcGFkcsOjbyBzZXLDoSB0cmFkdXppZG8gZGUgYWNvcmRvIGNvbSBvIGlkaW9tYSBjb25maWd1cmFkbyBubyBbYFBvSTE4blNlcnZpY2VgXSgvZG9jdW1lbnRhdGlvbi9wby1pMThuKSBvdSAqYnJvd3NlciouXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWxpdGVyYWxzJykgc2V0IGxpdGVyYWxzKHZhbHVlOiBQb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzKSB7XHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xyXG4gICAgICB0aGlzLl9saXRlcmFscyA9IHtcclxuICAgICAgICAuLi5wb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzRGVmYXVsdFtwb0xvY2FsZURlZmF1bHRdLFxyXG4gICAgICAgIC4uLnBvUGFnZUR5bmFtaWNFZGl0TGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxyXG4gICAgICAgIC4uLnZhbHVlXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvUGFnZUR5bmFtaWNFZGl0TGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX3BhZ2VBY3Rpb25zID0gdGhpcy5nZXRQYWdlQWN0aW9ucyh0aGlzLl9hY3Rpb25zKTtcclxuICB9XHJcblxyXG4gIGdldCBsaXRlcmFscygpIHtcclxuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEB0b2RvIFZhbGlkYXIgcm90YXMgbmEgbcOjbyBwb2lzIHNlIGV4aXN0aXIgdW1hIHJvdGEgJyoqJyBvIGNhdGNoIGRvIG5hdmlnYXRpb24gbsOjbyBmdW5jaW9uYS5cclxuICAgKlxyXG4gICAqIEBvcHRpb25hbFxyXG4gICAqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiBDcmlhIGF1dG9tYXRpY2FtZW50ZSBhcyByb3RhcyBkZSBlZGnDp8OjbyAobm92by9kdXBsaWNhdGUpIGUgZGV0YWxoZXMgY2FzbyBhcyBhw6fDtWVzXHJcbiAgICogZXN0ZWphbSBkZWZpbmlkYXMgbmFzIGHDp8O1ZXMuXHJcbiAgICpcclxuICAgKiA+IFBhcmEgbyBjb3JyZXRvIGZ1bmNpb25hbWVudG8gbsOjbyBwb2RlIGhhdmVyIG5lbmh1bSByb3RhIGNvcmluZ2EgKGAqKmApIGVzcGVjaWZpY2FkYS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWF1dG8tcm91dGVyJykgc2V0IGF1dG9Sb3V0ZXIodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2F1dG9Sb3V0ZXIgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIGdldCBhdXRvUm91dGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2F1dG9Sb3V0ZXI7XHJcbiAgfVxyXG5cclxuICAvKiogTGlzdGEgZG9zIGNhbXBvcyB1c2Fkb3MgbmEgdGFiZWxhIGUgYnVzY2EgYXZhbsOnYWRhLiAqL1xyXG4gIEBJbnB1dCgncC1maWVsZHMnKSBzZXQgZmllbGRzKHZhbHVlOiBBcnJheTxQb1BhZ2VEeW5hbWljRWRpdEZpZWxkPikge1xyXG4gICAgdGhpcy5fZmllbGRzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbLi4udmFsdWVdIDogW107XHJcblxyXG4gICAgdGhpcy5fa2V5cyA9IHRoaXMuZ2V0S2V5c0J5RmllbGRzKHRoaXMuX2ZpZWxkcyk7XHJcbiAgICB0aGlzLl9kdXBsaWNhdGVzID0gdGhpcy5nZXREdXBsaWNhdGVzQnlGaWVsZHModGhpcy5fZmllbGRzKTtcclxuXHJcbiAgICB0aGlzLl9jb250cm9sRmllbGRzID0gdGhpcy5nZXRDb250cm9sRmllbGRzKHRoaXMuX2ZpZWxkcyk7XHJcbiAgICB0aGlzLl9kZXRhaWxGaWVsZHMgPSB0aGlzLmdldERldGFpbEZpZWxkcyh0aGlzLl9maWVsZHMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpZWxkcygpOiBBcnJheTxQb1BhZ2VEeW5hbWljRWRpdEZpZWxkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZmllbGRzO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHBvTm90aWZpY2F0aW9uOiBQb05vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBvRGlhbG9nU2VydmljZTogUG9EaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwb1BhZ2VEeW5hbWljU2VydmljZTogUG9QYWdlRHluYW1pY1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBvUGFnZUN1c3RvbWl6YXRpb25TZXJ2aWNlOiBQb1BhZ2VDdXN0b21pemF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zU2VydmljZTogUG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zU2VydmljZSxcclxuICAgIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWREYXRhRnJvbUFQSSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiB7XHJcbiAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGV0YWlsQWN0aW9uTmV3KCkge1xyXG4gICAgdGhpcy5ncmlkRGV0YWlsLmluc2VydFJvdygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGR1cGxpY2F0ZXMoKSB7XHJcbiAgICByZXR1cm4gWy4uLnRoaXMuX2R1cGxpY2F0ZXNdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGtleXMoKSB7XHJcbiAgICByZXR1cm4gWy4uLnRoaXMuX2tleXNdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhZ2VBY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIFsuLi50aGlzLl9wYWdlQWN0aW9uc107XHJcbiAgfVxyXG5cclxuICBnZXQgY29udHJvbEZpZWxkcygpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250cm9sRmllbGRzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRldGFpbEZpZWxkcygpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZXRhaWxGaWVsZHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWREYXRhRnJvbUFQSSgpIHtcclxuICAgIGNvbnN0IHsgc2VydmljZUFwaTogc2VydmljZUFwaUZyb21Sb3V0ZSwgc2VydmljZU1ldGFkYXRhQXBpLCBzZXJ2aWNlTG9hZEFwaSB9ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhO1xyXG4gICAgY29uc3QgeyBpZCB9ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXM7XHJcbiAgICBjb25zdCB7IGR1cGxpY2F0ZSB9ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcclxuXHJcbiAgICBjb25zdCBvbkxvYWQgPSBzZXJ2aWNlTG9hZEFwaSB8fCB0aGlzLm9uTG9hZDtcclxuICAgIHRoaXMuc2VydmljZUFwaSA9IHNlcnZpY2VBcGlGcm9tUm91dGUgfHwgdGhpcy5zZXJ2aWNlQXBpO1xyXG5cclxuICAgIHRoaXMucG9QYWdlRHluYW1pY1NlcnZpY2UuY29uZmlnU2VydmljZUFwaSh7IGVuZHBvaW50OiB0aGlzLnNlcnZpY2VBcGksIG1ldGFkYXRhOiBzZXJ2aWNlTWV0YWRhdGFBcGkgfSk7XHJcblxyXG4gICAgY29uc3QgbWV0YWRhdGEkID0gdGhpcy5nZXRNZXRhZGF0YShzZXJ2aWNlQXBpRnJvbVJvdXRlLCBpZCwgb25Mb2FkKTtcclxuICAgIGNvbnN0IGRhdGEkID0gdGhpcy5sb2FkRGF0YShpZCwgZHVwbGljYXRlKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChjb25jYXQobWV0YWRhdGEkLCBkYXRhJCkuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYW5jZWwoXHJcbiAgICBhY3Rpb25DYW5jZWw6IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9uc1snY2FuY2VsJ10sXHJcbiAgICBhY3Rpb25CZWZvcmVDYW5jZWw6IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9uc1snYmVmb3JlQ2FuY2VsJ11cclxuICApIHtcclxuICAgIGlmICh0aGlzLmR5bmFtaWNGb3JtICYmIHRoaXMuZHluYW1pY0Zvcm0uZm9ybS5kaXJ0eSkge1xyXG4gICAgICB0aGlzLnBvRGlhbG9nU2VydmljZS5jb25maXJtKHtcclxuICAgICAgICBtZXNzYWdlOiB0aGlzLmxpdGVyYWxzLmNhbmNlbENvbmZpcm1NZXNzYWdlLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLmxpdGVyYWxzLnBhZ2VBY3Rpb25DYW5jZWwsXHJcbiAgICAgICAgY29uZmlybTogdGhpcy5nb0JhY2suYmluZCh0aGlzLCBhY3Rpb25DYW5jZWwsIGFjdGlvbkJlZm9yZUNhbmNlbClcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdvQmFjayhhY3Rpb25DYW5jZWwsIGFjdGlvbkJlZm9yZUNhbmNlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdFVuaXF1ZUtleShpdGVtKSB7XHJcbiAgICBjb25zdCBrZXlzID0gbWFwT2JqZWN0QnlQcm9wZXJ0aWVzKGl0ZW0sIHRoaXMua2V5cyk7XHJcblxyXG4gICAgcmV0dXJuIHZhbHVlc0Zyb21PYmplY3Qoa2V5cykuam9pbignfCcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnb0JhY2soXHJcbiAgICBhY3Rpb25DYW5jZWw6IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9uc1snY2FuY2VsJ10sXHJcbiAgICBhY3Rpb25CZWZvcmVDYW5jZWw6IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9uc1snYmVmb3JlQ2FuY2VsJ11cclxuICApIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLnBvUGFnZUR5bmFtaWNFZGl0QWN0aW9uc1NlcnZpY2VcclxuICAgICAgICAuYmVmb3JlQ2FuY2VsKGFjdGlvbkJlZm9yZUNhbmNlbClcclxuICAgICAgICAuc3Vic2NyaWJlKChiZWZvcmVDYW5jZWxSZXN1bHQ6IFBvUGFnZUR5bmFtaWNFZGl0QmVmb3JlQ2FuY2VsKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmV4ZWN1dGVCYWNrQWN0aW9uKGFjdGlvbkNhbmNlbCwgYmVmb3JlQ2FuY2VsUmVzdWx0Py5hbGxvd0FjdGlvbiwgYmVmb3JlQ2FuY2VsUmVzdWx0Py5uZXdVcmwpO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleGVjdXRlQmFja0FjdGlvbihcclxuICAgIGFjdGlvbkNhbmNlbDogUG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zWydjYW5jZWwnXSxcclxuICAgIGFsbG93QWN0aW9uPzogUG9QYWdlRHluYW1pY0VkaXRCZWZvcmVDYW5jZWxbJ2FsbG93QWN0aW9uJ10sXHJcbiAgICBuZXdVcmw/OiBQb1BhZ2VEeW5hbWljRWRpdEJlZm9yZUNhbmNlbFsnbmV3VXJsJ11cclxuICApIHtcclxuICAgIGNvbnN0IGlzQWxsb3dlZEFjdGlvbiA9IHR5cGVvZiBhbGxvd0FjdGlvbiA9PT0gJ2Jvb2xlYW4nID8gYWxsb3dBY3Rpb24gOiB0cnVlO1xyXG5cclxuICAgIGlmIChpc0FsbG93ZWRBY3Rpb24pIHtcclxuICAgICAgaWYgKGFjdGlvbkNhbmNlbCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBhY3Rpb25DYW5jZWwgPT09ICdib29sZWFuJykge1xyXG4gICAgICAgIHJldHVybiB3aW5kb3cuaGlzdG9yeS5iYWNrKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0eXBlb2YgYWN0aW9uQ2FuY2VsID09PSAnc3RyaW5nJyB8fCBuZXdVcmwpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW25ld1VybCB8fCBhY3Rpb25DYW5jZWxdKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGFjdGlvbkNhbmNlbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBsb2FkRGF0YShpZCwgZHVwbGljYXRlPykge1xyXG4gICAgaWYgKCFpZCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMubW9kZWwgPSBkdXBsaWNhdGUgPyBKU09OLnBhcnNlKGR1cGxpY2F0ZSkgOiB7fTtcclxuICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHt9O1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucG9QYWdlRHluYW1pY1NlcnZpY2UuZ2V0UmVzb3VyY2UoaWQpLnBpcGUoXHJcbiAgICAgIHRhcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5iZWZvcmVTZXRNb2RlbChyZXNwb25zZSk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLm1vZGVsID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9wYWdlQWN0aW9ucyA9IFtdO1xyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJlZm9yZVNldE1vZGVsKHJlc3BvbnNlOiBhbnkpIHtcclxuICAgIGlmICghdGhpcy5vbkxvYWREYXRhKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSByZXNwb25zZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9uTG9hZERhdGFFeGVjdXRpb24gPSB0aGlzLm9uTG9hZERhdGEocmVzcG9uc2UpO1xyXG4gICAgY29uc3Qgb25Mb2FkRGF0YSQgPSBvbkxvYWREYXRhRXhlY3V0aW9uIGluc3RhbmNlb2YgT2JzZXJ2YWJsZSA/IG9uTG9hZERhdGFFeGVjdXRpb24gOiBvZihvbkxvYWREYXRhRXhlY3V0aW9uKTtcclxuXHJcbiAgICBvbkxvYWREYXRhJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiBjdXN0b21Nb2RlbCA9PiB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IGN1c3RvbU1vZGVsO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubW9kZWwgPSByZXNwb25zZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRPcHRpb25zT25Jbml0aWFsaXplKG9uTG9hZDogVXJsT3JQb0N1c3RvbWl6YXRpb25GdW5jdGlvbikge1xyXG4gICAgaWYgKG9uTG9hZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRQb0R5bmFtaWNQYWdlT3B0aW9ucyhvbkxvYWQpLnBpcGUoXHJcbiAgICAgICAgdGFwKHJlc3BvbnNlUG9PcHRpb24gPT5cclxuICAgICAgICAgIHRoaXMucG9QYWdlQ3VzdG9taXphdGlvblNlcnZpY2UuY2hhbmdlT3JpZ2luYWxPcHRpb25zVG9OZXdPcHRpb25zKHRoaXMsIHJlc3BvbnNlUG9PcHRpb24pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBFTVBUWTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UG9EeW5hbWljUGFnZU9wdGlvbnMob25Mb2FkOiBVcmxPclBvQ3VzdG9taXphdGlvbkZ1bmN0aW9uKTogT2JzZXJ2YWJsZTxQb1BhZ2VEeW5hbWljRWRpdE9wdGlvbnM+IHtcclxuICAgIGNvbnN0IG9yaWdpbmFsT3B0aW9uOiBQb1BhZ2VEeW5hbWljRWRpdE9wdGlvbnMgPSB7XHJcbiAgICAgIGZpZWxkczogdGhpcy5maWVsZHMsXHJcbiAgICAgIGFjdGlvbnM6IHRoaXMuYWN0aW9ucyxcclxuICAgICAgYnJlYWRjcnVtYjogdGhpcy5icmVhZGNydW1iLFxyXG4gICAgICB0aXRsZTogdGhpcy50aXRsZVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBwYWdlT3B0aW9uU2NoZW1hOiBQb1BhZ2VEeW5hbWljT3B0aW9uc1NjaGVtYTxQb1BhZ2VEeW5hbWljRWRpdE9wdGlvbnM+ID0ge1xyXG4gICAgICBzY2hlbWE6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lUHJvcDogJ2ZpZWxkcycsXHJcbiAgICAgICAgICBtZXJnZTogdHJ1ZSxcclxuICAgICAgICAgIGtleUZvck1lcmdlOiAncHJvcGVydHknXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBuYW1lUHJvcDogJ2FjdGlvbnMnLFxyXG4gICAgICAgICAgbWVyZ2U6IHRydWVcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWVQcm9wOiAnYnJlYWRjcnVtYidcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIG5hbWVQcm9wOiAndGl0bGUnXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLnBvUGFnZUN1c3RvbWl6YXRpb25TZXJ2aWNlLmdldEN1c3RvbU9wdGlvbnMob25Mb2FkLCBvcmlnaW5hbE9wdGlvbiwgcGFnZU9wdGlvblNjaGVtYSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1ldGFkYXRhKHNlcnZpY2VBcGlGcm9tUm91dGU6IHN0cmluZywgcGFyYW1JZDogc3RyaW5nIHwgbnVtYmVyLCBvbkxvYWQ6IFVybE9yUG9DdXN0b21pemF0aW9uRnVuY3Rpb24pIHtcclxuICAgIGNvbnN0IHR5cGVNZXRhZGF0YSA9IHBhcmFtSWQgPyAnZWRpdCcgOiAnY3JlYXRlJztcclxuXHJcbiAgICBpZiAoc2VydmljZUFwaUZyb21Sb3V0ZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5wb1BhZ2VEeW5hbWljU2VydmljZS5nZXRNZXRhZGF0YTxQb1BhZ2VEeW5hbWljRWRpdE1ldGFkYXRhPih0eXBlTWV0YWRhdGEpLnBpcGUoXHJcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHRoaXMuYXV0b1JvdXRlciA9IHJlc3BvbnNlLmF1dG9Sb3V0ZXIgfHwgdGhpcy5hdXRvUm91dGVyO1xyXG4gICAgICAgICAgdGhpcy5hY3Rpb25zID0gcmVzcG9uc2UuYWN0aW9ucyB8fCB0aGlzLmFjdGlvbnM7XHJcbiAgICAgICAgICB0aGlzLmJyZWFkY3J1bWIgPSByZXNwb25zZS5icmVhZGNydW1iIHx8IHRoaXMuYnJlYWRjcnVtYjtcclxuICAgICAgICAgIHRoaXMuZmllbGRzID0gcmVzcG9uc2UuZmllbGRzIHx8IHRoaXMuZmllbGRzO1xyXG4gICAgICAgICAgdGhpcy50aXRsZSA9IHJlc3BvbnNlLnRpdGxlIHx8IHRoaXMudGl0bGU7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZE9wdGlvbnNPbkluaXRpYWxpemUob25Mb2FkKSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5sb2FkT3B0aW9uc09uSW5pdGlhbGl6ZShvbkxvYWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvKHBhdGg6IHN0cmluZykge1xyXG4gICAgaWYgKHBhdGgpIHtcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5yZXNvbHZlVXJsKHRoaXMubW9kZWwsIHBhdGgpO1xyXG5cclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2luZG93Lmhpc3RvcnkuYmFjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNvbHZlVW5pcXVlS2V5KGl0ZW06IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zWydpZCddID8gdGhpcy5mb3JtYXRVbmlxdWVLZXkoaXRlbSkgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc29sdmVVcmwoaXRlbTogYW55LCBwYXRoOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVuaXF1ZUtleSA9IHRoaXMuZm9ybWF0VW5pcXVlS2V5KGl0ZW0pO1xyXG5cclxuICAgIHJldHVybiBwYXRoLnJlcGxhY2UoLzppZC9nLCB1bmlxdWVLZXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleGVjdXRlU2F2ZShzYXZlUmVkaXJlY3RQYXRoOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHNhdmVPcGVyYXRpb24kID0gdGhpcy5zYXZlT3BlcmF0aW9uKCk7XHJcblxyXG4gICAgcmV0dXJuIHNhdmVPcGVyYXRpb24kLnBpcGUoXHJcbiAgICAgIHRhcChtZXNzYWdlID0+IHtcclxuICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLnN1Y2Nlc3MobWVzc2FnZSk7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvKHNhdmVSZWRpcmVjdFBhdGgpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlTW9kZWwobmV3UmVzb3VyY2U6IGFueSA9IHt9KSB7XHJcbiAgICBjb25zdCBkeW5hbWljTmdGb3JtID0gdGhpcy5keW5hbWljRm9ybS5mb3JtO1xyXG5cclxuICAgIHJlbW92ZUtleXNQcm9wZXJ0aWVzKHRoaXMua2V5cywgbmV3UmVzb3VyY2UpO1xyXG5cclxuICAgIHRoaXMubW9kZWwgPSB7IC4uLnRoaXMubW9kZWwsIC4uLm5ld1Jlc291cmNlIH07XHJcblxyXG4gICAgZHluYW1pY05nRm9ybS5mb3JtLnBhdGNoVmFsdWUodGhpcy5tb2RlbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNhdmVPcGVyYXRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5keW5hbWljRm9ybS5mb3JtLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi53YXJuaW5nKHRoaXMubGl0ZXJhbHMuc2F2ZU5vdGlmaWNhdGlvbldhcm5pbmcpO1xyXG4gICAgICByZXR1cm4gRU1QVFk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcGFyYW1JZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xyXG4gICAgY29uc3Qgc3VjY2Vzc01zZyA9IHBhcmFtSWRcclxuICAgICAgPyB0aGlzLmxpdGVyYWxzLnNhdmVOb3RpZmljYXRpb25TdWNjZXNzVXBkYXRlXHJcbiAgICAgIDogdGhpcy5saXRlcmFscy5zYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1NhdmU7XHJcblxyXG4gICAgY29uc3Qgc2F2ZU9wZXJhdGlvbiQgPSBwYXJhbUlkXHJcbiAgICAgID8gdGhpcy5wb1BhZ2VEeW5hbWljU2VydmljZS51cGRhdGVSZXNvdXJjZShwYXJhbUlkLCB0aGlzLm1vZGVsKVxyXG4gICAgICA6IHRoaXMucG9QYWdlRHluYW1pY1NlcnZpY2UuY3JlYXRlUmVzb3VyY2UodGhpcy5tb2RlbCk7XHJcblxyXG4gICAgcmV0dXJuIHNhdmVPcGVyYXRpb24kLnBpcGUobWFwKCgpID0+IHN1Y2Nlc3NNc2cpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2F2ZShhY3Rpb246IFNhdmVBY3Rpb24sIGJlZm9yZTogJ2JlZm9yZVNhdmUnIHwgJ2JlZm9yZVNhdmVOZXcnID0gJ2JlZm9yZVNhdmUnKSB7XHJcbiAgICBjb25zdCBleGVjdXRlT3BlcmF0aW9uID0ge1xyXG4gICAgICBiZWZvcmVTYXZlOiB0aGlzLmV4ZWN1dGVTYXZlLmJpbmQodGhpcyksXHJcbiAgICAgIGJlZm9yZVNhdmVOZXc6IHRoaXMuZXhlY3V0ZVNhdmVOZXcuYmluZCh0aGlzKVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCB1bmlxdWVLZXkgPSB0aGlzLnJlc29sdmVVbmlxdWVLZXkodGhpcy5tb2RlbCk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMucG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zU2VydmljZVtiZWZvcmVdKHRoaXMuYWN0aW9uc1tiZWZvcmVdLCB1bmlxdWVLZXksIHsgLi4udGhpcy5tb2RlbCB9KVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgc3dpdGNoTWFwKHJldHVybkJlZm9yZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld0FjdGlvbiA9IHJldHVybkJlZm9yZT8ubmV3VXJsID8/IGFjdGlvbjtcclxuICAgICAgICAgICAgY29uc3QgYWxsb3dBY3Rpb24gPSByZXR1cm5CZWZvcmU/LmFsbG93QWN0aW9uID8/IHRydWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKHJldHVybkJlZm9yZT8ucmVzb3VyY2UpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFhbGxvd0FjdGlvbikge1xyXG4gICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbmV3QWN0aW9uID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgIHJldHVybiBleGVjdXRlT3BlcmF0aW9uW2JlZm9yZV0obmV3QWN0aW9uKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBuZXdBY3Rpb24oeyAuLi50aGlzLm1vZGVsIH0sIHVuaXF1ZUtleSk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4ZWN1dGVTYXZlTmV3KHBhdGg6IHN0cmluZykge1xyXG4gICAgY29uc3QgcGFyYW1JZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xyXG4gICAgY29uc3Qgc2F2ZU9wZXJhdGlvbiQgPSB0aGlzLnNhdmVPcGVyYXRpb24oKTtcclxuXHJcbiAgICByZXR1cm4gc2F2ZU9wZXJhdGlvbiQucGlwZShcclxuICAgICAgdGFwKG1lc3NhZ2UgPT4ge1xyXG4gICAgICAgIGlmIChwYXJhbUlkKSB7XHJcbiAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLnN1Y2Nlc3MobWVzc2FnZSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvKHBhdGgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLnN1Y2Nlc3MobWVzc2FnZSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5tb2RlbCA9IHt9O1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljRm9ybS5mb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0S2V5c0J5RmllbGRzKGZpZWxkczogQXJyYXk8YW55PiA9IFtdKSB7XHJcbiAgICByZXR1cm4gZmllbGRzLmZpbHRlcihmaWVsZCA9PiBmaWVsZC5rZXkgPT09IHRydWUpLm1hcChmaWVsZCA9PiBmaWVsZC5wcm9wZXJ0eSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbnRyb2xGaWVsZHMoZmllbGRzOiBBcnJheTxhbnk+ID0gW10pIHtcclxuICAgIHJldHVybiBmaWVsZHMuZmlsdGVyKGZpZWxkID0+IGZpZWxkLnR5cGUgIT09ICdkZXRhaWwnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RGV0YWlsRmllbGRzKGZpZWxkczogQXJyYXk8YW55PiA9IFtdKSB7XHJcbiAgICByZXR1cm4gZmllbGRzLmZpbHRlcihmaWVsZCA9PiBmaWVsZC50eXBlID09PSAnZGV0YWlsJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldER1cGxpY2F0ZXNCeUZpZWxkcyhmaWVsZHM6IEFycmF5PGFueT4gPSBbXSkge1xyXG4gICAgcmV0dXJuIGZpZWxkcy5maWx0ZXIoZmllbGQgPT4gZmllbGQuZHVwbGljYXRlID09PSB0cnVlKS5tYXAoZmllbGQgPT4gZmllbGQucHJvcGVydHkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQYWdlQWN0aW9ucyhhY3Rpb25zOiBQb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnMgPSB7fSk6IEFycmF5PFBvUGFnZUFjdGlvbj4ge1xyXG4gICAgY29uc3QgcGFnZUFjdGlvbnMgPSBbeyBsYWJlbDogdGhpcy5saXRlcmFscy5wYWdlQWN0aW9uU2F2ZSwgYWN0aW9uOiB0aGlzLnNhdmUuYmluZCh0aGlzLCBhY3Rpb25zLnNhdmUpIH1dO1xyXG5cclxuICAgIGlmIChhY3Rpb25zLnNhdmVOZXcpIHtcclxuICAgICAgcGFnZUFjdGlvbnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IHRoaXMubGl0ZXJhbHMucGFnZUFjdGlvblNhdmVOZXcsXHJcbiAgICAgICAgYWN0aW9uOiB0aGlzLnNhdmUuYmluZCh0aGlzLCBhY3Rpb25zLnNhdmVOZXcsICdiZWZvcmVTYXZlTmV3JylcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFjdGlvbnMuY2FuY2VsID09PSB1bmRlZmluZWQgfHwgYWN0aW9ucy5jYW5jZWwpIHtcclxuICAgICAgcGFnZUFjdGlvbnMucHVzaCh7XHJcbiAgICAgICAgbGFiZWw6IHRoaXMubGl0ZXJhbHMucGFnZUFjdGlvbkNhbmNlbCxcclxuICAgICAgICBhY3Rpb246IHRoaXMuY2FuY2VsLmJpbmQodGhpcywgYWN0aW9ucy5jYW5jZWwsIHRoaXMuYWN0aW9ucy5iZWZvcmVDYW5jZWwpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwYWdlQWN0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNPYmplY3QodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxwby1wYWdlLWRlZmF1bHQgW3AtYWN0aW9uc109XCJwYWdlQWN0aW9uc1wiIFtwLWJyZWFkY3J1bWJdPVwiYnJlYWRjcnVtYlwiIFtwLXRpdGxlXT1cInRpdGxlXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsOyB0aGVuIGZvcm1GaWVsZHNUZW1wbGF0ZTsgZWxzZSByZWdpc3Rlck5vdEZvdW5kVGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XHJcbjwvcG8tcGFnZS1kZWZhdWx0PlxyXG5cclxuPG5nLXRlbXBsYXRlICNyZWdpc3Rlck5vdEZvdW5kVGVtcGxhdGU+XHJcbiAgPHBvLXdpZGdldD5cclxuICAgIDxzcGFuIGNsYXNzPVwicG8taWNvbiBwby1pY29uLWluZm9cIj48L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cInBvLWZvbnQtdGV4dC1sYXJnZVwiPlxyXG4gICAgICB7eyBsaXRlcmFscy5yZWdpc3Rlck5vdEZvdW5kIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9wby13aWRnZXQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2Zvcm1GaWVsZHNUZW1wbGF0ZT5cclxuICA8cG8tZHluYW1pYy1mb3JtICNkeW5hbWljRm9ybSBbcC1maWVsZHNdPVwiY29udHJvbEZpZWxkc1wiIFtwLXZhbHVlXT1cIm1vZGVsXCI+IDwvcG8tZHluYW1pYy1mb3JtPlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiZGV0YWlsRmllbGRzLmxlbmd0aCA+IDBcIiBjbGFzcz1cInBvLXNtLTEyXCI+XHJcbiAgICA8cG8tZGl2aWRlciBbcC1sYWJlbF09XCJkZXRhaWxGaWVsZHNbMF0uZGl2aWRlclwiPjwvcG8tZGl2aWRlcj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLW1iLTJcIj5cclxuICAgICAgPHBvLWJ1dHRvbiBbcC1sYWJlbF09XCJsaXRlcmFscy5kZXRhaWxBY3Rpb25OZXdcIiAocC1jbGljayk9XCJkZXRhaWxBY3Rpb25OZXcoKVwiPjwvcG8tYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHBvLWdyaWRcclxuICAgICAgI2dyaWREZXRhaWxcclxuICAgICAgW3Atcm93LWFjdGlvbnNdPVwiZGV0YWlsQWN0aW9uc1wiXHJcbiAgICAgIFtwLWNvbHVtbnNdPVwiZGV0YWlsRmllbGRzWzBdLmRldGFpbC5jb2x1bW5zXCJcclxuICAgICAgW3AtZGF0YV09XCJtb2RlbFtkZXRhaWxGaWVsZHNbMF0ucHJvcGVydHldXCJcclxuICAgID5cclxuICAgIDwvcG8tZ3JpZD5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
|
778
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1keW5hbWljLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlLWR5bmFtaWMtZWRpdC9wby1wYWdlLWR5bmFtaWMtZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtZHluYW1pYy1lZGl0L3BvLXBhZ2UtZHluYW1pYy1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQWdCLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpFLE9BQU8sRUFTTCxlQUFlLEVBQ2hCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJckgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7Ozs7Ozs7O0lDckI1Rix3QkFBb0c7OztJQUlwRyxpQ0FBVztJQUNULDBCQUEwQztJQUMxQywrQkFBaUM7SUFDL0IsWUFDRjtJQUFBLGlCQUFPLEVBQUE7OztJQURMLGVBQ0Y7SUFERSxpRUFDRjs7OztJQU9GLDhCQUFzRDtJQUNwRCxpQ0FBNkQ7SUFFN0QsK0JBQTRCLG9CQUFBO0lBQ3NCLDZMQUFXLGVBQUEsd0JB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SUFFTyxRQUFRLENBQUMsS0FBVTtRQUN6QixPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RSxDQUFDO29GQWhvQlUsMEJBQTBCOzZEQUExQiwwQkFBMEI7Ozs7Ozs7K1lBRjFCLENBQUMsb0JBQW9CLENBQUM7WUN4S25DLDBDQUF5RjtZQUN2Riw2RkFBb0c7WUFDdEcsaUJBQWtCO1lBRWxCLDRIQU9jO1lBRWQsNEhBa0JjOzs7O1lBL0JHLDJDQUF5QixnQ0FBQSxzQkFBQTtZQUN6QixlQUFhO1lBQWIsZ0NBQWEsaUJBQUEsaUJBQUE7Ozt1RkR5S2pCLDBCQUEwQjtjQUx0QyxTQUFTOzJCQUNFLHNCQUFzQixhQUVyQixDQUFDLG9CQUFvQixDQUFDO2tUQUdQLFdBQVc7a0JBQXBDLFNBQVM7bUJBQUMsYUFBYTtZQUNDLFVBQVU7a0JBQWxDLFNBQVM7bUJBQUMsWUFBWTtZQUdBLFVBQVU7a0JBQWhDLEtBQUs7bUJBQUMsY0FBYztZQXVFRyxVQUFVO2tCQUFqQyxLQUFLO21CQUFDLGVBQWU7WUFHSixLQUFLO2tCQUF0QixLQUFLO21CQUFDLFNBQVM7WUErQkMsTUFBTTtrQkFBdEIsS0FBSzttQkFBQyxRQUFRO1lBNEJPLFVBQVU7a0JBQS9CLEtBQUs7bUJBQUMsYUFBYTtZQThCSSxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUEyQ08sUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBZ0NTLFVBQVU7a0JBQXJDLEtBQUs7bUJBQUMsZUFBZTtZQVNDLE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb25jYXQsIG9mLCBTdWJzY3JpcHRpb24sIEVNUFRZLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAsIGNhdGNoRXJyb3IsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBQb0JyZWFkY3J1bWIsXG4gIFBvRGlhbG9nU2VydmljZSxcbiAgUG9EeW5hbWljRm9ybUNvbXBvbmVudCxcbiAgUG9HcmlkQ29tcG9uZW50LFxuICBQb0dyaWRSb3dBY3Rpb25zLFxuICBQb0xhbmd1YWdlU2VydmljZSxcbiAgUG9Ob3RpZmljYXRpb25TZXJ2aWNlLFxuICBQb1BhZ2VBY3Rpb24sXG4gIHBvTG9jYWxlRGVmYXVsdFxufSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xlYW4sIG1hcE9iamVjdEJ5UHJvcGVydGllcywgdmFsdWVzRnJvbU9iamVjdCwgcmVtb3ZlS2V5c1Byb3BlcnRpZXMgfSBmcm9tICcuLy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnMgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1keW5hbWljLWVkaXQtYWN0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlRHluYW1pY0VkaXRGaWVsZCB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWR5bmFtaWMtZWRpdC1maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlRHluYW1pY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1wYWdlLWR5bmFtaWMvcG8tcGFnZS1keW5hbWljLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9QYWdlRHluYW1pY0VkaXRPcHRpb25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXBhZ2UtZHluYW1pYy1lZGl0LW9wdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUN1c3RvbWl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tcGFnZS1jdXN0b21pemF0aW9uL3BvLXBhZ2UtY3VzdG9taXphdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNFZGl0TWV0YWRhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1keW5hbWljLWVkaXQtbWV0YWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNPcHRpb25zU2NoZW1hIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcG8tcGFnZS1jdXN0b21pemF0aW9uL3BvLXBhZ2UtZHluYW1pYy1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9wby1wYWdlLWR5bmFtaWMtZWRpdC1hY3Rpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9QYWdlRHluYW1pY0VkaXRCZWZvcmVDYW5jZWwgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tcGFnZS1keW5hbWljLWVkaXQtYmVmb3JlLWNhbmNlbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9QYWdlRHluYW1pY0VkaXRMaXRlcmFscyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1wYWdlLWR5bmFtaWMtZWRpdC1saXRlcmFscy5pbnRlcmZhY2UnO1xuXG50eXBlIFVybE9yUG9DdXN0b21pemF0aW9uRnVuY3Rpb24gPSBzdHJpbmcgfCAoKCkgPT4gUG9QYWdlRHluYW1pY0VkaXRPcHRpb25zKTtcbnR5cGUgU2F2ZUFjdGlvbiA9IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9uc1snc2F2ZSddIHwgUG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zWydzYXZlTmV3J107XG5cbmV4cG9ydCBjb25zdCBwb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzRGVmYXVsdCA9IHtcbiAgZW46IDxQb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzPntcbiAgICBjYW5jZWxDb25maXJtTWVzc2FnZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjYW5jZWwgdGhpcyBvcGVyYXRpb24/JyxcbiAgICBkZXRhaWxBY3Rpb25OZXc6ICdOZXcnLFxuICAgIHBhZ2VBY3Rpb25DYW5jZWw6ICdDYW5jZWwnLFxuICAgIHBhZ2VBY3Rpb25TYXZlOiAnU2F2ZScsXG4gICAgcGFnZUFjdGlvblNhdmVOZXc6ICdTYXZlIGFuZCBuZXcnLFxuICAgIHJlZ2lzdGVyTm90Rm91bmQ6ICdSZWdpc3RlciBub3QgZm91bmQuJyxcbiAgICBzYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1NhdmU6ICdSZXNvdXJjZSBzdWNjZXNzZnVsbHkgc2F2ZWQuJyxcbiAgICBzYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1VwZGF0ZTogJ1Jlc291cmNlIHN1Y2Nlc3NmdWxseSB1cGRhdGVkLicsXG4gICAgc2F2ZU5vdGlmaWNhdGlvbldhcm5pbmc6ICdGb3JtIG11c3QgYmUgZmlsbGVkIG91dCBjb3JyZWN0bHkuJ1xuICB9LFxuICBlczogPFBvUGFnZUR5bmFtaWNFZGl0TGl0ZXJhbHM+e1xuICAgIGNhbmNlbENvbmZpcm1NZXNzYWdlOiAnRXN0w6Egc2VndXJvIGRlIHF1ZSBkZXNlYSBjYW5jZWxhciBlc3RhIG9wZXJhY2nDs24/JyxcbiAgICBkZXRhaWxBY3Rpb25OZXc6ICdOdWV2bycsXG4gICAgcGFnZUFjdGlvbkNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICBwYWdlQWN0aW9uU2F2ZTogJ0d1YXJkYXInLFxuICAgIHBhZ2VBY3Rpb25TYXZlTmV3OiAnR3VhcmRhciB5IG51ZXZvJyxcbiAgICByZWdpc3Rlck5vdEZvdW5kOiAnUmVnaXN0cm8gbm8gZW5jb250cmFkby4nLFxuICAgIHNhdmVOb3RpZmljYXRpb25TdWNjZXNzU2F2ZTogJ1JlY3Vyc28gc2Fsdm8gY29uIMOpeGl0by4nLFxuICAgIHNhdmVOb3RpZmljYXRpb25TdWNjZXNzVXBkYXRlOiAnUmVjdXJzbyBhY3R1YWxpemFkbyBjb24gw6l4aXRvLicsXG4gICAgc2F2ZU5vdGlmaWNhdGlvbldhcm5pbmc6ICdFbCBmb3JtdWxhcmlvIGRlYmUgbGxlbmFyc2UgY29ycmVjdGFtZW50ZS4nXG4gIH0sXG4gIHB0OiA8UG9QYWdlRHluYW1pY0VkaXRMaXRlcmFscz57XG4gICAgY2FuY2VsQ29uZmlybU1lc3NhZ2U6ICdUZW0gY2VydGV6YSBxdWUgZGVzZWphIGNhbmNlbGFyIGVzdGEgb3BlcmHDp8Ojbz8nLFxuICAgIGRldGFpbEFjdGlvbk5ldzogJ05vdm8nLFxuICAgIHBhZ2VBY3Rpb25DYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgcGFnZUFjdGlvblNhdmU6ICdTYWx2YXInLFxuICAgIHBhZ2VBY3Rpb25TYXZlTmV3OiAnU2FsdmFyIGUgbm92bycsXG4gICAgcmVnaXN0ZXJOb3RGb3VuZDogJ1JlZ2lzdHJvIG7Do28gZW5jb250cmFkby4nLFxuICAgIHNhdmVOb3RpZmljYXRpb25TdWNjZXNzU2F2ZTogJ1JlY3Vyc28gc2Fsdm8gY29tIHN1Y2Vzc28uJyxcbiAgICBzYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1VwZGF0ZTogJ1JlY3Vyc28gYXR1YWxpemFkbyBjb20gc3VjZXNzby4nLFxuICAgIHNhdmVOb3RpZmljYXRpb25XYXJuaW5nOiAnRm9ybXVsw6FyaW8gcHJlY2lzYSBzZXIgcHJlZW5jaGlkbyBjb3JyZXRhbWVudGUuJ1xuICB9LFxuICBydTogPFBvUGFnZUR5bmFtaWNFZGl0TGl0ZXJhbHM+e1xuICAgIGNhbmNlbENvbmZpcm1NZXNzYWdlOiAn0JLRiyDRg9Cy0LXRgNC10L3Riywg0YfRgtC+INGF0L7RgtC40YLQtSDQvtGC0LzQtdC90LjRgtGMINGN0YLRgyDQvtC/0LXRgNCw0YbQuNGOPycsXG4gICAgZGV0YWlsQWN0aW9uTmV3OiAn0J3QvtCy0YvQuScsXG4gICAgcGFnZUFjdGlvbkNhbmNlbDogJ9Ce0YLQvNC10L3QuNGC0YwnLFxuICAgIHBhZ2VBY3Rpb25TYXZlOiAn0KHQvtGF0YDQsNC90LjRgtGMJyxcbiAgICBwYWdlQWN0aW9uU2F2ZU5ldzogJ9Ch0L7RhdGA0LDQvdC40YLRjCDQuCDRgdC+0LfQtNCw0YLRjCcsXG4gICAgcmVnaXN0ZXJOb3RGb3VuZDogJ9CX0LDQv9C40YHRjCDQvdC1INC90LDQudC00LXQvdCwLicsXG4gICAgc2F2ZU5vdGlmaWNhdGlvblN1Y2Nlc3NTYXZlOiAn0KDQtdGB0YPRgNGBINGD0YHQv9C10YjQvdC+INGB0L7RhdGA0LDQvdC10L0uJyxcbiAgICBzYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1VwZGF0ZTogJ9Cg0LXRgdGD0YDRgSDRg9GB0L/QtdGI0L3QviDQvtCx0L3QvtCy0LvQtdC9LicsXG4gICAgc2F2ZU5vdGlmaWNhdGlvbldhcm5pbmc6ICfQpNC+0YDQvNCwINC00L7Qu9C20L3QsCDQsdGL0YLRjCDQt9Cw0L/QvtC70L3QtdC90LAg0L/RgNCw0LLQuNC70YzQvdC+LidcbiAgfVxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGBwby1wYWdlLWR5bmFtaWMtZWRpdGAgw6kgdW1hIHDDoWdpbmEgcXVlIHBvZGUgc2VydmlyIHBhcmEgZWRpdGFyIG91IGNyaWFyIG5vdm9zIHJlZ2lzdHJvcyxcbiAqIG8gbWVzbW8gdGFtYsOpbSBzdXBvcnRhIG1ldGFkYWRvcyBjb25mb3JtZSBlc3BlY2lmaWNhZG8gbmEgZG9jdW1lbnRhw6fDo28uXG4gKlxuICogIyMjIFV0aWxpemHDp8OjbyB2aWEgcm90YVxuICpcbiAqIEFvIHV0aWxpemFyIGFzIHJvdGFzIHBhcmEgY2FycmVnYXIgbyB0ZW1wbGF0ZSwgbyBgcGFnZS1keW5hbWljLWVkaXRgIGRpc3BvbmliaWxpemEgcHJvcHJpZWRhZGVzIHBhcmFcbiAqIHBvZGVyIGVzcGVjaWZpY2FyIG8gZW5kcG9pbnQgZG9zIGRhZG9zIGUgZG9zIG1ldGFkYWRvcy4gRXhlbXBsbyBkZSB1dGlsaXphw6fDo286XG4gKlxuICogTyBjb21wb25lbnRlIHByaW1laXJvIGlyw6EgY2FycmVnYXIgbyBtZXRhZGFkbyBkYSByb3RhIGRlZmluaWRhIG5hIHByb3ByaWVkYWRlIHNlcnZpY2VNZXRhZGF0YUFwaVxuICogZSBkZXBvaXMgaXLDoSBidXNjYXIgZGEgcm90YSBkZWZpbmlkYSBuYSBwcm9wcmllZGFkZSBzZXJ2aWNlTG9hZEFwaVxuICpcbiAqID4gQ2FzbyBvIHNlcnZpZG9yIHJldG9ybmFyIHVtIGVycm8gYW8gcmVjdXBlcmFyIG8gbWV0YWRhZG9zLCBzZXLDoSByZXBhc3NhZG8gbyBtZXRhZGFkb3Mgc2Fsdm8gZW0gY2FjaGUsXG4gKiBzZSBvIGNhY2hlIG7Do28gZXhpc3RlIHNlcsOhIGRpc3BhcmFkbyB1bWEgbm90aWZpY2HDp8Ojby5cbiAqXG4gKiBgYGBcbiAqIHtcbiAqICAgcGF0aDogJ3Blb3BsZScsXG4gKiAgIGNvbXBvbmVudDogUG9QYWdlRHluYW1pY0VkaXRDb21wb25lbnQsXG4gKiAgIGRhdGE6IHtcbiAqICAgICBzZXJ2aWNlQXBpOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL3YxL3Blb3BsZScsIC8vIGVuZHBvaW50IGRvcyBkYWRvc1xuICogICAgIHNlcnZpY2VNZXRhZGF0YUFwaTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC92MS9tZXRhZGF0YScsIC8vIGVuZHBvaW50IGRvcyBtZXRhZGFkb3MgdXRpbGl6YW5kbyBvIG3DqXRvZG8gSFRUUCBHZXRcbiAqICAgICBzZXJ2aWNlTG9hZEFwaTogJ2h0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9sb2FkLW1ldGFkYXRhJyAvLyBlbmRwb2ludCBkZSBjdXN0b21pemHDp8O1ZXMgZG9zIG1ldGFkYWRvcyB1dGlsaXphbmRvIG8gbcOpdG9kbyBIVFRQIFBvc3RcbiAqICAgfVxuICogfVxuICpcbiAqIGBgYFxuICpcbiAqIFBhcmEgY2FycmVnYXIgY29tIHVtIHJlY3Vyc28gasOhIGV4aXN0ZW50ZSwgZGV2ZS1zZSBzZXIgaW5jbHXDrWRvIHVtIHBhcsOibWV0cm8gbmEgcm90YSBjaGFtYWRvIGBpZGA6XG4gKlxuICogYGBgXG4gKiB7XG4gKiAgIHBhdGg6ICdwZW9wbGUvOmlkJyxcbiAqICAgY29tcG9uZW50OiBQb1BhZ2VEeW5hbWljRWRpdENvbXBvbmVudCxcbiAqICAgZGF0YToge1xuICogICAgIHNlcnZpY2VBcGk6ICdodHRwOi8vbG9jYWxob3N0OjMwMDAvdjEvcGVvcGxlJywgLy8gZW5kcG9pbnQgZG9zIGRhZG9zXG4gKiAgICAgc2VydmljZU1ldGFkYXRhQXBpOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL3YxL21ldGFkYXRhJywgLy8gZW5kcG9pbnQgZG9zIG1ldGFkYWRvc1xuICogICAgIHNlcnZpY2VMb2FkQXBpOiAnaHR0cDovL2xvY2FsaG9zdDozMDAwL2xvYWQtbWV0YWRhdGEnIC8vIGVuZHBvaW50IGRlIGN1c3RvbWl6YcOnw7VlcyBkb3MgbWV0YWRhZG9zXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqIEEgcmVxdWlzacOnw6NvIGRvcyBtZXRhZGFkb3Mgw6kgZmVpdGEgbmEgaW5pY2lhbGl6YcOnw6NvIGRvIHRlbXBsYXRlIHBhcmEgYnVzY2FyIG9zIG1ldGFkYWRvcyBkYSBww6FnaW5hIHBhc3NhbmRvIG9cbiAqIHRpcG8gZG8gbWV0YWRhZG8gZXNwZXJhZG8gZSBhIHZlcnPDo28gY2FjaGVhZGEgcGVsbyBicm93c2VyLlxuICpcbiAqIE8gZm9ybWF0byBlc3BlcmFkbyBuYSByZXNwb3N0YSBkYSByZXF1aXNpw6fDo28gZXN0w6EgZXNwZWNpZmljYWRvIG5hIGludGVyZmFjZVxuICogW1BvUGFnZUR5bmFtaWNFZGl0TWV0YWRhdGFdKC9kb2N1bWVudGF0aW9uL3BvLXBhZ2UtZHluYW1pYy1lZGl0I3BvLXBhZ2UtZHluYW1pYy1lZGl0LW1ldGFkYXRhKS4gUG9yIGV4ZW1wbG86XG4gKlxuICogYGBgXG4gKiAge1xuICogICB2ZXJzaW9uOiAxLFxuICogICB0aXRsZTogJ1BlcnNvbiBlZGl0JyxcbiAqICAgZmllbGRzOiBbXG4gKiAgICAgeyBwcm9wZXJ0eTogJ2lkJywga2V5OiB0cnVlLCBkaXNhYmxlZDogdHJ1ZSB9LFxuICogICAgIHsgcHJvcGVydHk6ICdzdGF0dXMnIH0sXG4gKiAgICAgeyBwcm9wZXJ0eTogJ25hbWUnIH0sXG4gKiAgICAgeyBwcm9wZXJ0eTogJ25pY2tuYW1lJyB9LFxuICogICAgIHsgcHJvcGVydHk6ICdiaXJ0aGRhdGUnLCBsYWJlbDogJ0JpcnRoIGRhdGUnIH0sXG4gKiAgICAgeyBwcm9wZXJ0eTogJ2dlbnJlJyB9LFxuICogICAgIHsgcHJvcGVydHk6ICdjaXR5JyB9LFxuICogICAgIHsgcHJvcGVydHk6ICdjb3VudHJ5JyB9XG4gKiAgIF1cbiAqIH1cbiAqIGBgYFxuICpcbiAqID4gQ2FzbyBvIGVuZHBvaW50IGRvcyBtZXRhZGFkb3MgbsOjbyBzZWphIGVzcGVjaWZpY2Fkbywgc2Vyw6EgZmVpdG8gdW1hIHJlcXVpc2nDp8OjbyB1dGlsaXphbmRvIG8gYHNlcnZpY2VBcGlgIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICogYGBgXG4gKiBHRVQge2VuZC1wb2ludH0vbWV0YWRhdGE/dHlwZT1lZGl0JnZlcnNpb249e3ZlcnNpb259XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1wYWdlLWR5bmFtaWMtZWRpdC1iYXNpY1wiIHRpdGxlPVwiUE8gUGFnZSBEeW5hbWljIEVkaXQgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1lZGl0LWJhc2ljL3NhbXBsZS1wby1wYWdlLWR5bmFtaWMtZWRpdC1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWR5bmFtaWMtZWRpdC1iYXNpYy9zYW1wbGUtcG8tcGFnZS1keW5hbWljLWVkaXQtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tcGFnZS1keW5hbWljLWVkaXQtdXNlclwiIHRpdGxlPVwiUE8gUGFnZSBEeW5hbWljIEVkaXQgLSBVc2VyXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1wYWdlLWR5bmFtaWMtZWRpdC11c2VyL3NhbXBsZS1wby1wYWdlLWR5bmFtaWMtZWRpdC11c2VyLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1lZGl0LXVzZXIvc2FtcGxlLXBvLXBhZ2UtZHluYW1pYy1lZGl0LXVzZXIuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tcGFnZS1keW5hbWljLWVkaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tcGFnZS1keW5hbWljLWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtQb1BhZ2VEeW5hbWljU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgUG9QYWdlRHluYW1pY0VkaXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2R5bmFtaWNGb3JtJykgZHluYW1pY0Zvcm06IFBvRHluYW1pY0Zvcm1Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2dyaWREZXRhaWwnKSBncmlkRGV0YWlsOiBQb0dyaWRDb21wb25lbnQ7XG5cbiAgLyoqIE9iamV0byBjb20gcHJvcHJpZWRhZGVzIGRvIGJyZWFkY3J1bWIuICovXG4gIEBJbnB1dCgncC1icmVhZGNydW1iJykgYnJlYWRjcnVtYj86IFBvQnJlYWRjcnVtYiA9IHsgaXRlbXM6IFtdIH07XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFbmRwb2ludCB1c2FkbyBwZWxvIHRlbXBsYXRlIHBhcmEgcmVxdWlzacOnw6NvIGRvIHJlY3Vyc28gcXVlIHNlcsOhIGV4aWJpZG8gcGFyYSBlZGnDp8Ojby5cbiAgICpcbiAgICogUGFyYSBhcyBhw6fDtWVzIGRlIGBzYXZlYCBlIGBzYXZlTmV3YCwgc2Vyw6EgZmVpdG8gdW1hIHJlcXVpc2nDp8OjbyBkZSBjcmlhw6fDo28gbmVzc2UgbWVzbW8gZW5kcG9pbnQgcGFzc2FuZG8gb3MgdmFsb3Jlc1xuICAgKiBwcmVlbmNoaWRvcyBwZWxvIHVzdcOhcmlvIHZpYSBwYXlsb2FkLlxuICAgKlxuICAgKiA+IGBQT1NUIHtlbmQtcG9pbnR9YFxuICAgKlxuICAgKiBgYGBcbiAgICogIDxwby1wYWdlLWR5bmFtaWMtZWRpdFxuICAgKiAgICBbcC1hY3Rpb25zXT1cInsgc2F2ZTogJy8nLCBzYXZlTmV3OiAnbmV3JyB9XCJcbiAgICogICAgW3AtZmllbGRzXT1cIlsgeyBwcm9wZXJ0eTogJ25hbWUnIH0sIHsgcHJvcGVydHk6ICdjaXR5JyB9IF1cIlxuICAgKiAgICBwLXNlcnZpY2U9XCIvYXBpL3BvLXNhbXBsZXMvdjEvcGVvcGxlXCJcbiAgICogICAgLi4uPlxuICAgKiAgPC9wby1wYWdlLWR5bmFtaWMtZWRpdD5cbiAgICogYGBgXG4gICAqXG4gICAqIFJlc3F1aXNpw6fDo28gZGlzcGFyYWRhLCBvbmRlIGEgcHJvcHJpZWRhZGUgYG5hbWVgIGUgYGNpdHlgIGZvcmFtIHByZWVuY2hpZGFzOlxuICAgKlxuICAgKiBgYGBcbiAgICogIFBPU1QgL2FwaS9wby1zYW1wbGVzL3YxL3Blb3BsZSBIVFRQLzEuMVxuICAgKiAgSG9zdDogbG9jYWxob3N0OjQwMDBcbiAgICogIENvbm5lY3Rpb246IGtlZXAtYWxpdmVcbiAgICogIEFjY2VwdDogYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpblxuICAgKiAgLi4uXG4gICAqIGBgYFxuICAgKlxuICAgKiBSZXF1ZXN0IHBheWxvYWQ6XG4gICAqXG4gICAqIGBgYFxuICAgKiB7IFwibmFtZVwiOiBcIkZ1bGFub1wiLCBcImNpdHlcIjogXCJTbWFsbHZpbGxlXCIgfVxuICAgKiBgYGBcbiAgICpcbiAgICogQ2FzbyBxdWVpcmEgcXVlIG8gdGVtcGxhdGUgY2FycmVndWUgdW0gcmVjdXJzbyBqw6EgZXhpc3RlbnRlLCBkZXZlLXNlIHNlciBpbmNsdcOtZG8gdW0gcGFyYW1ldHJvIG5hIHJvdGEgY2hhbWFkbyBgaWRgLlxuICAgKlxuICAgKiBFeGVtcGxvIGRlIGNvbmZpZ3VyYcOnw6NvIGRlIHJvdGE6XG4gICAqXG4gICAqIGBgYFxuICAgKiAgUm91dGVyTW9kdWxlLmZvclJvb3QoW1xuICAgKiAgICAuLi5cbiAgICogICAgeyBwYXRoOiAnZWRpdC86aWQnLCBjb21wb25lbnQ6IFBlcnNvbkVkaXRDb21wb25lbnQgfSxcbiAgICogICAgLi4uXG4gICAqICBdLFxuICAgKiBgYGBcbiAgICpcbiAgICogQmFzZWFkbyBuaXNzbywgbmEgaW5pY2lhbGl6YcOnw6NvIGRvIHRlbXBsYXRlLCBzZXLDoSBkaXNwYXJhZG8gdW1hIHJlcXVpc2nDp8OjbyBwYXJhIGJ1c2NhciBvIHJlY3Vyc28gcXVlIHNlcsOhIGVkaXRhZG8uXG4gICAqXG4gICAqID4gYEdFVCB7ZW5kLXBvaW50fS97aWR9YFxuICAgKlxuICAgKiBOb3MgbcOpdG9kb3MgZGUgYHNhdmVgIGUgYHNhdmVOZXdgLCBhbyBpbnbDqXMgZGUgdW0gYFBPU1RgLCBzZXLDoSBkaXNwYXJhZG8gdW0gYFBVVGAuXG4gICAqXG4gICAqIFJlc3F1aXNpw6fDo28gZGlzcGFyYWRhLCBvbmRlIGEgcHJvcHJpZWRhZGUgYG5hbWVgIGUgYGNpdHlgIGZvcmFtIHByZWVuY2hpZGFzIC8gYXR1YWxpemFkYXMsIGUgbyBgaWRgIGRhIHVybCDDqSAyOlxuICAgKlxuICAgKiBgYGBcbiAgICogIFBVVCAvYXBpL3BvLXNhbXBsZXMvdjEvcGVvcGxlLzIgSFRUUC8xLjFcbiAgICogIEhvc3Q6IGxvY2FsaG9zdDo0MDAwXG4gICAqICBDb25uZWN0aW9uOiBrZWVwLWFsaXZlXG4gICAqICBBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW5cbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogUmVxdWVzdCBwYXlsb2FkOlxuICAgKlxuICAgKiBgYGBcbiAgICogeyBcIm5hbWVcIjogXCJGdWxhbm9cIiwgXCJjaXR5XCI6IFwiTWV0cm9wb2xpc1wiIH1cbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoJ3Atc2VydmljZS1hcGknKSBzZXJ2aWNlQXBpOiBzdHJpbmc7XG5cbiAgLyoqIFTDrXR1bG8gZGEgcMOhZ2luYS4gKi9cbiAgQElucHV0KCdwLXRpdGxlJykgdGl0bGU6IHN0cmluZztcblxuICAvKipcbiAgICogRnVuw6fDo28gb3Ugc2VydmnDp28gcXVlIHNlcsOhIGV4ZWN1dGFkbyBuYSBpbmljaWFsaXphw6fDo28gZG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogQSBwcm9wcmllZGFkZSBhY2VpdGEgb3Mgc2VndWludGVzIHRpcG9zOlxuICAgKiAtIGBzdHJpbmdgOiAqRW5kcG9pbnQqIHVzYWRvIHBlbG8gY29tcG9uZW50ZSBwYXJhIHJlcXVpc2nDp8OjbyB2aWEgYFBPU1RgLlxuICAgKiAtIGBmdW5jdGlvbmA6IE3DqXRvZG8gcXVlIHNlcsOhIGV4ZWN1dGFkby5cbiAgICpcbiAgICogTyByZXRvcm5vIGRlc3RhIGZ1bsOnw6NvIGRldmUgc2VyIGRvIHRpcG8gYFBvUGFnZUR5bmFtaWNFZGl0T3B0aW9uc2AsXG4gICAqIG9uZGUgbyB1c3XDoXJpbyBwb2RlcsOhIGN1c3RvbWl6YXIgbm92b3MgY2FtcG9zLCBicmVhZGNydW1iLCB0aXRsZSBlIGFjdGlvbnNcbiAgICpcbiAgICogUG9yIGV4ZW1wbG86XG4gICAqXG4gICAqIGBgYFxuICAgKiBnZXRQYWdlT3B0aW9ucygpOiBQb1BhZ2VEeW5hbWljRWRpdE9wdGlvbnMge1xuICAgKiByZXR1cm4ge1xuICAgKiAgIGFjdGlvbnM6XG4gICAqICAgICB7IGNhbmNlbDogZmFsc2UsIHNhdmU6ICdzYXZlLzppZCcsIHNhdmVOZXc6ICdzYXZlTmV3JyB9LFxuICAgKiAgIGZpZWxkczogW1xuICAgKiAgICAgeyBwcm9wZXJ0eTogJ2lkQ2FyZCcsIGdyaWRDb2x1bW5zOiA2IH1cbiAgICogICBdXG4gICAqIH07XG4gICAqIH1cbiAgICpcbiAgICogYGBgXG4gICAqIFBhcmEgcmVmZXJlbmNpYXIgYSBzdWEgZnVuw6fDo28gdXRpbGl6ZSBhIHByb3ByaWVkYWRlIGBiaW5kYCwgcG9yIGV4ZW1wbG86XG4gICAqIGBgYFxuICAgKiAgW3AtbG9hZF09XCJvbkxvYWRPcHRpb25zLmJpbmQodGhpcylcIlxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgncC1sb2FkJykgb25Mb2FkOiBzdHJpbmcgfCAoKCkgPT4gUG9QYWdlRHluYW1pY0VkaXRPcHRpb25zKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBGdW7Dp8OjbyBxdWUgc2Vyw6EgZXhlY3V0YWRhIGFww7NzIHNlciByZWFsaXphZGEgYSBidXNjYSBkb3MgZGFkb3MuXG4gICAqXG4gICAqIEEgcHJvcHJpZWRhZGUgYWNlaXRhIG9zIHNlZ3VpbnRlcyB0aXBvczpcbiAgICogLSBgZnVuY3Rpb25gOiBNw6l0b2RvIHF1ZSBzZXLDoSBleGVjdXRhZG8uXG4gICAqXG4gICAqIEVzdGEgZnVuw6fDo28gcGFzc2EgcG9yIHBhcsOibWV0cm8gbyBtb2RlbCBlIGRldmUgcmVjZWLDqi1sbyBkZSB2b2x0YSBjb20gYXMgYWx0ZXJhw6fDtWVzLlxuICAgKiBUYW1iw6ltIGFjZWl0YSBvIHJldG9ybm8gZGUgdW0gT2JzZXJ2YWJsZSBjb20gbyBub3ZvIG1vZGVsLlxuICAgKlxuICAgKiBQb3IgZXhlbXBsbzpcbiAgICpcbiAgICogYGBgXG4gICAqIG9uTG9hZEN1c3RvbShtb2RlbCkge1xuICAgKiAgcmV0dXJuIHsgLi4ubW9kZWwsIGN1c3RvbUZpZWxkOiAnbmV3VmFsdWUnIH07XG4gICAqIH1cbiAgICpcbiAgICogYGBgXG4gICAqIFBhcmEgcmVmZXJlbmNpYXIgYSBzdWEgZnVuw6fDo28gdXRpbGl6ZSBhIHByb3ByaWVkYWRlIGBiaW5kYCwgcG9yIGV4ZW1wbG86XG4gICAqIGBgYFxuICAgKiAgW3AtbG9hZC1kYXRhXT1cIm9uTG9hZEN1c3RvbS5iaW5kKHRoaXMpXCJcbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoJ3AtbG9hZC1kYXRhJykgb25Mb2FkRGF0YTogKChtb2RlbDogYW55KSA9PiBhbnkpIHwgKChtb2RlbDogYW55KSA9PiBPYnNlcnZhYmxlPGFueT4pO1xuXG4gIG1vZGVsOiBhbnkgPSB7fTtcblxuICAvLyBiZWZvcmVTYXZlOiByZXR1cm4gYm9vbGVhblxuICAvLyBhZnRlclNhdmVcbiAgLy8gYmVmb3JlUmVtb3ZlOiByZXR1cm4gYm9vbGVhblxuICAvLyBhZnRlclJlbW92ZVxuICAvLyBiZWZvcmVJbnNlcnQ6IDogcmV0dXJuIGJvb2xlYW5cbiAgcmVhZG9ubHkgZGV0YWlsQWN0aW9uczogUG9HcmlkUm93QWN0aW9ucyA9IHt9O1xuXG4gIHByaXZhdGUgbGFuZ3VhZ2U6IHN0cmluZztcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG4gIHByaXZhdGUgX2FjdGlvbnM6IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9ucyA9IHt9O1xuICBwcml2YXRlIF9saXRlcmFsczogUG9QYWdlRHluYW1pY0VkaXRMaXRlcmFscztcbiAgcHJpdmF0ZSBfYXV0b1JvdXRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9jb250cm9sRmllbGRzOiBBcnJheTxhbnk+ID0gW107XG4gIHByaXZhdGUgX2RldGFpbEZpZWxkczogQXJyYXk8YW55PiA9IFtdO1xuICBwcml2YXRlIF9kdXBsaWNhdGVzOiBBcnJheTxhbnk+ID0gW107XG4gIHByaXZhdGUgX2ZpZWxkczogQXJyYXk8YW55PiA9IFtdO1xuICBwcml2YXRlIF9rZXlzOiBBcnJheTxhbnk+ID0gW107XG4gIHByaXZhdGUgX3BhZ2VBY3Rpb25zOiBBcnJheTxQb1BhZ2VBY3Rpb24+ID0gW107XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQcOnw7VlcyBkYSBww6FnaW5hLlxuICAgKi9cbiAgQElucHV0KCdwLWFjdGlvbnMnKSBzZXQgYWN0aW9ucyh2YWx1ZTogUG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zKSB7XG4gICAgdGhpcy5fYWN0aW9ucyA9IHRoaXMuaXNPYmplY3QodmFsdWUpID8gdmFsdWUgOiB7fTtcblxuICAgIHRoaXMuX3BhZ2VBY3Rpb25zID0gdGhpcy5nZXRQYWdlQWN0aW9ucyh0aGlzLl9hY3Rpb25zKTtcbiAgfVxuXG4gIGdldCBhY3Rpb25zKCkge1xuICAgIHJldHVybiB7IC4uLnRoaXMuX2FjdGlvbnMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE9iamV0byBjb20gYXMgbGl0ZXJhaXMgdXNhZGFzIG5vIGBwby1wYWdlLWR5bmFtaWMtZWRpdGAuXG4gICAqXG4gICAqIMOJIHBvc3NpdmVsIGN1c3RvbWl6YXIgcGFzc2FuZG8gdW0gb2JqZXRvIGNvbSB0b2RhcyBhcyBsaXRlcmFpcyBkaXNwb27DrXZlaXNcbiAgICogb3UgcGFzc2FuZG8gYXBlbmFzIGFzIGxpdGVyYWlzIHF1ZSBkZXNlamEgY3VzdG9taXphclxuICAgKlxuICAgKiBgYGBcbiAgICogIGNvbnN0IGN1c3RvbUxpdGVyYWxzOiBQb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzID0ge1xuICAgKiAgICBkZXRhaWxBY3Rpb25OZXc6ICdJbmNsdWlyJyxcbiAgICogICAgcGFnZUFjdGlvbkNhbmNlbDogJ0Rlc2NhcnRhcicsXG4gICAqICAgIHBhZ2VBY3Rpb25TYXZlOiAnR3JhdmFyJyxcbiAgICogICAgcGFnZUFjdGlvblNhdmVOZXc6ICdHcmF2YXIgZSBpbmNsdWlyJyxcbiAgICogICAgcmVnaXN0ZXJOb3RGb3VuZDogJ05lbmh1bSByZWdpc3RybyBlbmNvbnRyYWRvLicsXG4gICAqICAgIHNhdmVOb3RpZmljYXRpb25TdWNjZXNzU2F2ZTogJ0l0ZW0gc2Fsdm8gY29tIHN1Y2Vzc28uJyxcbiAgICogICAgc2F2ZU5vdGlmaWNhdGlvblN1Y2Nlc3NVcGRhdGU6ICdJdGVtIGF0dWFsaXphZG8gY29tIHN1Y2Vzc28uJyxcbiAgICogICAgc2F2ZU5vdGlmaWNhdGlvbldhcm5pbmc6ICdOZWNlc3PDoXJpbyBwcmVlbmNoZXIgbyBmb3JtdWzDoXJpbyBjb3JyZXRhbWVudGUuJ1xuICAgKiAgfTtcbiAgICogYGBgXG4gICAqXG4gICAqIEUgcGFyYSBjYXJyZWdhciBhcyBsaXRlcmFpcyBjdXN0b21pemFkYXMsIGJhc3RhIGFwZW5hcyBwYXNzYXIgbyBvYmpldG8gcGFyYSBvIGNvbXBvbmVudGUuXG4gICAqXG4gICAqIGBgYFxuICAgKiA8cG8tcGFnZS1keW5hbWljLWVkaXRcbiAgICogICBbcC1saXRlcmFsc109XCJjdXN0b21MaXRlcmFsc1wiPlxuICAgKiA8L3BvLXBhZ2UtZHluYW1pYy1lZGl0PlxuICAgKiBgYGBcbiAgICpcbiAgICogPiBPIHZhbG9yIHBhZHLDo28gc2Vyw6EgdHJhZHV6aWRvIGRlIGFjb3JkbyBjb20gbyBpZGlvbWEgY29uZmlndXJhZG8gbm8gW2BQb0kxOG5TZXJ2aWNlYF0oL2RvY3VtZW50YXRpb24vcG8taTE4bikgb3UgKmJyb3dzZXIqLlxuICAgKi9cbiAgQElucHV0KCdwLWxpdGVyYWxzJykgc2V0IGxpdGVyYWxzKHZhbHVlOiBQb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzKSB7XG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmICEodmFsdWUgaW5zdGFuY2VvZiBBcnJheSkpIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0ge1xuICAgICAgICAuLi5wb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzRGVmYXVsdFtwb0xvY2FsZURlZmF1bHRdLFxuICAgICAgICAuLi5wb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXSxcbiAgICAgICAgLi4udmFsdWVcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xpdGVyYWxzID0gcG9QYWdlRHluYW1pY0VkaXRMaXRlcmFsc0RlZmF1bHRbdGhpcy5sYW5ndWFnZV07XG4gICAgfVxuXG4gICAgdGhpcy5fcGFnZUFjdGlvbnMgPSB0aGlzLmdldFBhZ2VBY3Rpb25zKHRoaXMuX2FjdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGxpdGVyYWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXRlcmFscyB8fCBwb1BhZ2VEeW5hbWljRWRpdExpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAdG9kbyBWYWxpZGFyIHJvdGFzIG5hIG3Do28gcG9pcyBzZSBleGlzdGlyIHVtYSByb3RhICcqKicgbyBjYXRjaCBkbyBuYXZpZ2F0aW9uIG7Do28gZnVuY2lvbmEuXG4gICAqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ3JpYSBhdXRvbWF0aWNhbWVudGUgYXMgcm90YXMgZGUgZWRpw6fDo28gKG5vdm8vZHVwbGljYXRlKSBlIGRldGFsaGVzIGNhc28gYXMgYcOnw7Vlc1xuICAgKiBlc3RlamFtIGRlZmluaWRhcyBuYXMgYcOnw7Vlcy5cbiAgICpcbiAgICogPiBQYXJhIG8gY29ycmV0byBmdW5jaW9uYW1lbnRvIG7Do28gcG9kZSBoYXZlciBuZW5odW0gcm90YSBjb3JpbmdhIChgKipgKSBlc3BlY2lmaWNhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoJ3AtYXV0by1yb3V0ZXInKSBzZXQgYXV0b1JvdXRlcih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2F1dG9Sb3V0ZXIgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBhdXRvUm91dGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hdXRvUm91dGVyO1xuICB9XG5cbiAgLyoqIExpc3RhIGRvcyBjYW1wb3MgdXNhZG9zIG5hIHRhYmVsYSBlIGJ1c2NhIGF2YW7Dp2FkYS4gKi9cbiAgQElucHV0KCdwLWZpZWxkcycpIHNldCBmaWVsZHModmFsdWU6IEFycmF5PFBvUGFnZUR5bmFtaWNFZGl0RmllbGQ+KSB7XG4gICAgdGhpcy5fZmllbGRzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBbLi4udmFsdWVdIDogW107XG5cbiAgICB0aGlzLl9rZXlzID0gdGhpcy5nZXRLZXlzQnlGaWVsZHModGhpcy5fZmllbGRzKTtcbiAgICB0aGlzLl9kdXBsaWNhdGVzID0gdGhpcy5nZXREdXBsaWNhdGVzQnlGaWVsZHModGhpcy5fZmllbGRzKTtcblxuICAgIHRoaXMuX2NvbnRyb2xGaWVsZHMgPSB0aGlzLmdldENvbnRyb2xGaWVsZHModGhpcy5fZmllbGRzKTtcbiAgICB0aGlzLl9kZXRhaWxGaWVsZHMgPSB0aGlzLmdldERldGFpbEZpZWxkcyh0aGlzLl9maWVsZHMpO1xuICB9XG5cbiAgZ2V0IGZpZWxkcygpOiBBcnJheTxQb1BhZ2VEeW5hbWljRWRpdEZpZWxkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkcztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcG9EaWFsb2dTZXJ2aWNlOiBQb0RpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb1BhZ2VEeW5hbWljU2VydmljZTogUG9QYWdlRHluYW1pY1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb1BhZ2VDdXN0b21pemF0aW9uU2VydmljZTogUG9QYWdlQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnNTZXJ2aWNlOiBQb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnNTZXJ2aWNlLFxuICAgIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWREYXRhRnJvbUFQSSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHtcbiAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkZXRhaWxBY3Rpb25OZXcoKSB7XG4gICAgdGhpcy5ncmlkRGV0YWlsLmluc2VydFJvdygpO1xuICB9XG5cbiAgZ2V0IGR1cGxpY2F0ZXMoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9kdXBsaWNhdGVzXTtcbiAgfVxuXG4gIGdldCBrZXlzKCkge1xuICAgIHJldHVybiBbLi4udGhpcy5fa2V5c107XG4gIH1cblxuICBnZXQgcGFnZUFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9wYWdlQWN0aW9uc107XG4gIH1cblxuICBnZXQgY29udHJvbEZpZWxkcygpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udHJvbEZpZWxkcztcbiAgfVxuXG4gIGdldCBkZXRhaWxGaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RldGFpbEZpZWxkcztcbiAgfVxuXG4gIHByaXZhdGUgbG9hZERhdGFGcm9tQVBJKCkge1xuICAgIGNvbnN0IHsgc2VydmljZUFwaTogc2VydmljZUFwaUZyb21Sb3V0ZSwgc2VydmljZU1ldGFkYXRhQXBpLCBzZXJ2aWNlTG9hZEFwaSB9ID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhO1xuICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zO1xuICAgIGNvbnN0IHsgZHVwbGljYXRlIH0gPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zO1xuXG4gICAgY29uc3Qgb25Mb2FkID0gc2VydmljZUxvYWRBcGkgfHwgdGhpcy5vbkxvYWQ7XG4gICAgdGhpcy5zZXJ2aWNlQXBpID0gc2VydmljZUFwaUZyb21Sb3V0ZSB8fCB0aGlzLnNlcnZpY2VBcGk7XG5cbiAgICB0aGlzLnBvUGFnZUR5bmFtaWNTZXJ2aWNlLmNvbmZpZ1NlcnZpY2VBcGkoeyBlbmRwb2ludDogdGhpcy5zZXJ2aWNlQXBpLCBtZXRhZGF0YTogc2VydmljZU1ldGFkYXRhQXBpIH0pO1xuXG4gICAgY29uc3QgbWV0YWRhdGEkID0gdGhpcy5nZXRNZXRhZGF0YShzZXJ2aWNlQXBpRnJvbVJvdXRlLCBpZCwgb25Mb2FkKTtcbiAgICBjb25zdCBkYXRhJCA9IHRoaXMubG9hZERhdGEoaWQsIGR1cGxpY2F0ZSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChjb25jYXQobWV0YWRhdGEkLCBkYXRhJCkuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYW5jZWwoXG4gICAgYWN0aW9uQ2FuY2VsOiBQb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnNbJ2NhbmNlbCddLFxuICAgIGFjdGlvbkJlZm9yZUNhbmNlbDogUG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zWydiZWZvcmVDYW5jZWwnXVxuICApIHtcbiAgICBpZiAodGhpcy5keW5hbWljRm9ybSAmJiB0aGlzLmR5bmFtaWNGb3JtLmZvcm0uZGlydHkpIHtcbiAgICAgIHRoaXMucG9EaWFsb2dTZXJ2aWNlLmNvbmZpcm0oe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLmxpdGVyYWxzLmNhbmNlbENvbmZpcm1NZXNzYWdlLFxuICAgICAgICB0aXRsZTogdGhpcy5saXRlcmFscy5wYWdlQWN0aW9uQ2FuY2VsLFxuICAgICAgICBjb25maXJtOiB0aGlzLmdvQmFjay5iaW5kKHRoaXMsIGFjdGlvbkNhbmNlbCwgYWN0aW9uQmVmb3JlQ2FuY2VsKVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ29CYWNrKGFjdGlvbkNhbmNlbCwgYWN0aW9uQmVmb3JlQ2FuY2VsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFVuaXF1ZUtleShpdGVtKSB7XG4gICAgY29uc3Qga2V5cyA9IG1hcE9iamVjdEJ5UHJvcGVydGllcyhpdGVtLCB0aGlzLmtleXMpO1xuXG4gICAgcmV0dXJuIHZhbHVlc0Zyb21PYmplY3Qoa2V5cykuam9pbignfCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnb0JhY2soXG4gICAgYWN0aW9uQ2FuY2VsOiBQb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnNbJ2NhbmNlbCddLFxuICAgIGFjdGlvbkJlZm9yZUNhbmNlbDogUG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zWydiZWZvcmVDYW5jZWwnXVxuICApIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMucG9QYWdlRHluYW1pY0VkaXRBY3Rpb25zU2VydmljZVxuICAgICAgICAuYmVmb3JlQ2FuY2VsKGFjdGlvbkJlZm9yZUNhbmNlbClcbiAgICAgICAgLnN1YnNjcmliZSgoYmVmb3JlQ2FuY2VsUmVzdWx0OiBQb1BhZ2VEeW5hbWljRWRpdEJlZm9yZUNhbmNlbCkgPT4ge1xuICAgICAgICAgIHRoaXMuZXhlY3V0ZUJhY2tBY3Rpb24oYWN0aW9uQ2FuY2VsLCBiZWZvcmVDYW5jZWxSZXN1bHQ/LmFsbG93QWN0aW9uLCBiZWZvcmVDYW5jZWxSZXN1bHQ/Lm5ld1VybCk7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZUJhY2tBY3Rpb24oXG4gICAgYWN0aW9uQ2FuY2VsOiBQb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnNbJ2NhbmNlbCddLFxuICAgIGFsbG93QWN0aW9uPzogUG9QYWdlRHluYW1pY0VkaXRCZWZvcmVDYW5jZWxbJ2FsbG93QWN0aW9uJ10sXG4gICAgbmV3VXJsPzogUG9QYWdlRHluYW1pY0VkaXRCZWZvcmVDYW5jZWxbJ25ld1VybCddXG4gICkge1xuICAgIGNvbnN0IGlzQWxsb3dlZEFjdGlvbiA9IHR5cGVvZiBhbGxvd0FjdGlvbiA9PT0gJ2Jvb2xlYW4nID8gYWxsb3dBY3Rpb24gOiB0cnVlO1xuXG4gICAgaWYgKGlzQWxsb3dlZEFjdGlvbikge1xuICAgICAgaWYgKGFjdGlvbkNhbmNlbCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBhY3Rpb25DYW5jZWwgPT09ICdib29sZWFuJykge1xuICAgICAgICByZXR1cm4gd2luZG93Lmhpc3RvcnkuYmFjaygpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGFjdGlvbkNhbmNlbCA9PT0gJ3N0cmluZycgfHwgbmV3VXJsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbmV3VXJsIHx8IGFjdGlvbkNhbmNlbF0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYWN0aW9uQ2FuY2VsKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRGF0YShpZCwgZHVwbGljYXRlPykge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMubW9kZWwgPSBkdXBsaWNhdGUgPyBKU09OLnBhcnNlKGR1cGxpY2F0ZSkgOiB7fTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0aGlzLm1vZGVsID0ge307XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5wb1BhZ2VEeW5hbWljU2VydmljZS5nZXRSZXNvdXJjZShpZCkucGlwZShcbiAgICAgIHRhcChyZXNwb25zZSA9PiB7XG4gICAgICAgIHRoaXMuYmVmb3JlU2V0TW9kZWwocmVzcG9uc2UpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbCA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5hY3Rpb25zID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9wYWdlQWN0aW9ucyA9IFtdO1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJlZm9yZVNldE1vZGVsKHJlc3BvbnNlOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMub25Mb2FkRGF0YSkge1xuICAgICAgdGhpcy5tb2RlbCA9IHJlc3BvbnNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9uTG9hZERhdGFFeGVjdXRpb24gPSB0aGlzLm9uTG9hZERhdGEocmVzcG9uc2UpO1xuICAgIGNvbnN0IG9uTG9hZERhdGEkID0gb25Mb2FkRGF0YUV4ZWN1dGlvbiBpbnN0YW5jZW9mIE9ic2VydmFibGUgPyBvbkxvYWREYXRhRXhlY3V0aW9uIDogb2Yob25Mb2FkRGF0YUV4ZWN1dGlvbik7XG5cbiAgICBvbkxvYWREYXRhJC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogY3VzdG9tTW9kZWwgPT4ge1xuICAgICAgICB0aGlzLm1vZGVsID0gY3VzdG9tTW9kZWw7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbCA9IHJlc3BvbnNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkT3B0aW9uc09uSW5pdGlhbGl6ZShvbkxvYWQ6IFVybE9yUG9DdXN0b21pemF0aW9uRnVuY3Rpb24pIHtcbiAgICBpZiAob25Mb2FkKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRQb0R5bmFtaWNQYWdlT3B0aW9ucyhvbkxvYWQpLnBpcGUoXG4gICAgICAgIHRhcChyZXNwb25zZVBvT3B0aW9uID0+XG4gICAgICAgICAgdGhpcy5wb1BhZ2VDdXN0b21pemF0aW9uU2VydmljZS5jaGFuZ2VPcmlnaW5hbE9wdGlvbnNUb05ld09wdGlvbnModGhpcywgcmVzcG9uc2VQb09wdGlvbilcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gRU1QVFk7XG4gIH1cblxuICBwcml2YXRlIGdldFBvRHluYW1pY1BhZ2VPcHRpb25zKG9uTG9hZDogVXJsT3JQb0N1c3RvbWl6YXRpb25GdW5jdGlvbik6IE9ic2VydmFibGU8UG9QYWdlRHluYW1pY0VkaXRPcHRpb25zPiB7XG4gICAgY29uc3Qgb3JpZ2luYWxPcHRpb246IFBvUGFnZUR5bmFtaWNFZGl0T3B0aW9ucyA9IHtcbiAgICAgIGZpZWxkczogdGhpcy5maWVsZHMsXG4gICAgICBhY3Rpb25zOiB0aGlzLmFjdGlvbnMsXG4gICAgICBicmVhZGNydW1iOiB0aGlzLmJyZWFkY3J1bWIsXG4gICAgICB0aXRsZTogdGhpcy50aXRsZVxuICAgIH07XG5cbiAgICBjb25zdCBwYWdlT3B0aW9uU2NoZW1hOiBQb1BhZ2VEeW5hbWljT3B0aW9uc1NjaGVtYTxQb1BhZ2VEeW5hbWljRWRpdE9wdGlvbnM+ID0ge1xuICAgICAgc2NoZW1hOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lUHJvcDogJ2ZpZWxkcycsXG4gICAgICAgICAgbWVyZ2U6IHRydWUsXG4gICAgICAgICAga2V5Rm9yTWVyZ2U6ICdwcm9wZXJ0eSdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWVQcm9wOiAnYWN0aW9ucycsXG4gICAgICAgICAgbWVyZ2U6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWVQcm9wOiAnYnJlYWRjcnVtYidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWVQcm9wOiAndGl0bGUnXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMucG9QYWdlQ3VzdG9taXphdGlvblNlcnZpY2UuZ2V0Q3VzdG9tT3B0aW9ucyhvbkxvYWQsIG9yaWdpbmFsT3B0aW9uLCBwYWdlT3B0aW9uU2NoZW1hKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TWV0YWRhdGEoc2VydmljZUFwaUZyb21Sb3V0ZTogc3RyaW5nLCBwYXJhbUlkOiBzdHJpbmcgfCBudW1iZXIsIG9uTG9hZDogVXJsT3JQb0N1c3RvbWl6YXRpb25GdW5jdGlvbikge1xuICAgIGNvbnN0IHR5cGVNZXRhZGF0YSA9IHBhcmFtSWQgPyAnZWRpdCcgOiAnY3JlYXRlJztcblxuICAgIGlmIChzZXJ2aWNlQXBpRnJvbVJvdXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5wb1BhZ2VEeW5hbWljU2VydmljZS5nZXRNZXRhZGF0YTxQb1BhZ2VEeW5hbWljRWRpdE1ldGFkYXRhPih0eXBlTWV0YWRhdGEpLnBpcGUoXG4gICAgICAgIHRhcChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgdGhpcy5hdXRvUm91dGVyID0gcmVzcG9uc2UuYXV0b1JvdXRlciB8fCB0aGlzLmF1dG9Sb3V0ZXI7XG4gICAgICAgICAgdGhpcy5hY3Rpb25zID0gcmVzcG9uc2UuYWN0aW9ucyB8fCB0aGlzLmFjdGlvbnM7XG4gICAgICAgICAgdGhpcy5icmVhZGNydW1iID0gcmVzcG9uc2UuYnJlYWRjcnVtYiB8fCB0aGlzLmJyZWFkY3J1bWI7XG4gICAgICAgICAgdGhpcy5maWVsZHMgPSByZXNwb25zZS5maWVsZHMgfHwgdGhpcy5maWVsZHM7XG4gICAgICAgICAgdGhpcy50aXRsZSA9IHJlc3BvbnNlLnRpdGxlIHx8IHRoaXMudGl0bGU7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5sb2FkT3B0aW9uc09uSW5pdGlhbGl6ZShvbkxvYWQpKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sb2FkT3B0aW9uc09uSW5pdGlhbGl6ZShvbkxvYWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBuYXZpZ2F0ZVRvKHBhdGg6IHN0cmluZykge1xuICAgIGlmIChwYXRoKSB7XG4gICAgICBjb25zdCB1cmwgPSB0aGlzLnJlc29sdmVVcmwodGhpcy5tb2RlbCwgcGF0aCk7XG5cbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93Lmhpc3RvcnkuYmFjaygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVVuaXF1ZUtleShpdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ10gPyB0aGlzLmZvcm1hdFVuaXF1ZUtleShpdGVtKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVVybChpdGVtOiBhbnksIHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHVuaXF1ZUtleSA9IHRoaXMuZm9ybWF0VW5pcXVlS2V5KGl0ZW0pO1xuXG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvOmlkL2csIHVuaXF1ZUtleSk7XG4gIH1cblxuICBwcml2YXRlIGV4ZWN1dGVTYXZlKHNhdmVSZWRpcmVjdFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHNhdmVPcGVyYXRpb24kID0gdGhpcy5zYXZlT3BlcmF0aW9uKCk7XG5cbiAgICByZXR1cm4gc2F2ZU9wZXJhdGlvbiQucGlwZShcbiAgICAgIHRhcChtZXNzYWdlID0+IHtcbiAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5zdWNjZXNzKG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLm5hdmlnYXRlVG8oc2F2ZVJlZGlyZWN0UGF0aCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1vZGVsKG5ld1Jlc291cmNlOiBhbnkgPSB7fSkge1xuICAgIGNvbnN0IGR5bmFtaWNOZ0Zvcm0gPSB0aGlzLmR5bmFtaWNGb3JtLmZvcm07XG5cbiAgICByZW1vdmVLZXlzUHJvcGVydGllcyh0aGlzLmtleXMsIG5ld1Jlc291cmNlKTtcblxuICAgIHRoaXMubW9kZWwgPSB7IC4uLnRoaXMubW9kZWwsIC4uLm5ld1Jlc291cmNlIH07XG5cbiAgICBkeW5hbWljTmdGb3JtLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLm1vZGVsKTtcbiAgfVxuXG4gIHByaXZhdGUgc2F2ZU9wZXJhdGlvbigpIHtcbiAgICBpZiAodGhpcy5keW5hbWljRm9ybS5mb3JtLmludmFsaWQpIHtcbiAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24ud2FybmluZyh0aGlzLmxpdGVyYWxzLnNhdmVOb3RpZmljYXRpb25XYXJuaW5nKTtcbiAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbUlkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ107XG4gICAgY29uc3Qgc3VjY2Vzc01zZyA9IHBhcmFtSWRcbiAgICAgID8gdGhpcy5saXRlcmFscy5zYXZlTm90aWZpY2F0aW9uU3VjY2Vzc1VwZGF0ZVxuICAgICAgOiB0aGlzLmxpdGVyYWxzLnNhdmVOb3RpZmljYXRpb25TdWNjZXNzU2F2ZTtcblxuICAgIGNvbnN0IHNhdmVPcGVyYXRpb24kID0gcGFyYW1JZFxuICAgICAgPyB0aGlzLnBvUGFnZUR5bmFtaWNTZXJ2aWNlLnVwZGF0ZVJlc291cmNlKHBhcmFtSWQsIHRoaXMubW9kZWwpXG4gICAgICA6IHRoaXMucG9QYWdlRHluYW1pY1NlcnZpY2UuY3JlYXRlUmVzb3VyY2UodGhpcy5tb2RlbCk7XG5cbiAgICByZXR1cm4gc2F2ZU9wZXJhdGlvbiQucGlwZShtYXAoKCkgPT4gc3VjY2Vzc01zZykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZlKGFjdGlvbjogU2F2ZUFjdGlvbiwgYmVmb3JlOiAnYmVmb3JlU2F2ZScgfCAnYmVmb3JlU2F2ZU5ldycgPSAnYmVmb3JlU2F2ZScpIHtcbiAgICBjb25zdCBleGVjdXRlT3BlcmF0aW9uID0ge1xuICAgICAgYmVmb3JlU2F2ZTogdGhpcy5leGVjdXRlU2F2ZS5iaW5kKHRoaXMpLFxuICAgICAgYmVmb3JlU2F2ZU5ldzogdGhpcy5leGVjdXRlU2F2ZU5ldy5iaW5kKHRoaXMpXG4gICAgfTtcblxuICAgIGNvbnN0IHVuaXF1ZUtleSA9IHRoaXMucmVzb2x2ZVVuaXF1ZUtleSh0aGlzLm1vZGVsKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5wb1BhZ2VEeW5hbWljRWRpdEFjdGlvbnNTZXJ2aWNlW2JlZm9yZV0odGhpcy5hY3Rpb25zW2JlZm9yZV0sIHVuaXF1ZUtleSwgeyAuLi50aGlzLm1vZGVsIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIHN3aXRjaE1hcChyZXR1cm5CZWZvcmUgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3QWN0aW9uID0gcmV0dXJuQmVmb3JlPy5uZXdVcmwgPz8gYWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgYWxsb3dBY3Rpb24gPSByZXR1cm5CZWZvcmU/LmFsbG93QWN0aW9uID8/IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwocmV0dXJuQmVmb3JlPy5yZXNvdXJjZSk7XG5cbiAgICAgICAgICAgIGlmICghYWxsb3dBY3Rpb24pIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHR5cGVvZiBuZXdBY3Rpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIHJldHVybiBleGVjdXRlT3BlcmF0aW9uW2JlZm9yZV0obmV3QWN0aW9uKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG5ld0FjdGlvbih7IC4uLnRoaXMubW9kZWwgfSwgdW5pcXVlS2V5KTtcbiAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZVNhdmVOZXcocGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgcGFyYW1JZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xuICAgIGNvbnN0IHNhdmVPcGVyYXRpb24kID0gdGhpcy5zYXZlT3BlcmF0aW9uKCk7XG5cbiAgICByZXR1cm4gc2F2ZU9wZXJhdGlvbiQucGlwZShcbiAgICAgIHRhcChtZXNzYWdlID0+IHtcbiAgICAgICAgaWYgKHBhcmFtSWQpIHtcbiAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLnN1Y2Nlc3MobWVzc2FnZSk7XG5cbiAgICAgICAgICB0aGlzLm5hdmlnYXRlVG8ocGF0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5zdWNjZXNzKG1lc3NhZ2UpO1xuXG4gICAgICAgICAgdGhpcy5tb2RlbCA9IHt9O1xuICAgICAgICAgIHRoaXMuZHluYW1pY0Zvcm0uZm9ybS5yZXNldCgpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldEtleXNCeUZpZWxkcyhmaWVsZHM6IEFycmF5PGFueT4gPSBbXSkge1xuICAgIHJldHVybiBmaWVsZHMuZmlsdGVyKGZpZWxkID0+IGZpZWxkLmtleSA9PT0gdHJ1ZSkubWFwKGZpZWxkID0+IGZpZWxkLnByb3BlcnR5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udHJvbEZpZWxkcyhmaWVsZHM6IEFycmF5PGFueT4gPSBbXSkge1xuICAgIHJldHVybiBmaWVsZHMuZmlsdGVyKGZpZWxkID0+IGZpZWxkLnR5cGUgIT09ICdkZXRhaWwnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGV0YWlsRmllbGRzKGZpZWxkczogQXJyYXk8YW55PiA9IFtdKSB7XG4gICAgcmV0dXJuIGZpZWxkcy5maWx0ZXIoZmllbGQgPT4gZmllbGQudHlwZSA9PT0gJ2RldGFpbCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREdXBsaWNhdGVzQnlGaWVsZHMoZmllbGRzOiBBcnJheTxhbnk+ID0gW10pIHtcbiAgICByZXR1cm4gZmllbGRzLmZpbHRlcihmaWVsZCA9PiBmaWVsZC5kdXBsaWNhdGUgPT09IHRydWUpLm1hcChmaWVsZCA9PiBmaWVsZC5wcm9wZXJ0eSk7XG4gIH1cblxuICBwcml2YXRlIGdldFBhZ2VBY3Rpb25zKGFjdGlvbnM6IFBvUGFnZUR5bmFtaWNFZGl0QWN0aW9ucyA9IHt9KTogQXJyYXk8UG9QYWdlQWN0aW9uPiB7XG4gICAgY29uc3QgcGFnZUFjdGlvbnMgPSBbeyBsYWJlbDogdGhpcy5saXRlcmFscy5wYWdlQWN0aW9uU2F2ZSwgYWN0aW9uOiB0aGlzLnNhdmUuYmluZCh0aGlzLCBhY3Rpb25zLnNhdmUpIH1dO1xuXG4gICAgaWYgKGFjdGlvbnMuc2F2ZU5ldykge1xuICAgICAgcGFnZUFjdGlvbnMucHVzaCh7XG4gICAgICAgIGxhYmVsOiB0aGlzLmxpdGVyYWxzLnBhZ2VBY3Rpb25TYXZlTmV3LFxuICAgICAgICBhY3Rpb246IHRoaXMuc2F2ZS5iaW5kKHRoaXMsIGFjdGlvbnMuc2F2ZU5ldywgJ2JlZm9yZVNhdmVOZXcnKVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGFjdGlvbnMuY2FuY2VsID09PSB1bmRlZmluZWQgfHwgYWN0aW9ucy5jYW5jZWwpIHtcbiAgICAgIHBhZ2VBY3Rpb25zLnB1c2goe1xuICAgICAgICBsYWJlbDogdGhpcy5saXRlcmFscy5wYWdlQWN0aW9uQ2FuY2VsLFxuICAgICAgICBhY3Rpb246IHRoaXMuY2FuY2VsLmJpbmQodGhpcywgYWN0aW9ucy5jYW5jZWwsIHRoaXMuYWN0aW9ucy5iZWZvcmVDYW5jZWwpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFnZUFjdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTtcbiAgfVxufVxuIiwiPHBvLXBhZ2UtZGVmYXVsdCBbcC1hY3Rpb25zXT1cInBhZ2VBY3Rpb25zXCIgW3AtYnJlYWRjcnVtYl09XCJicmVhZGNydW1iXCIgW3AtdGl0bGVdPVwidGl0bGVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsOyB0aGVuIGZvcm1GaWVsZHNUZW1wbGF0ZTsgZWxzZSByZWdpc3Rlck5vdEZvdW5kVGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG48L3BvLXBhZ2UtZGVmYXVsdD5cblxuPG5nLXRlbXBsYXRlICNyZWdpc3Rlck5vdEZvdW5kVGVtcGxhdGU+XG4gIDxwby13aWRnZXQ+XG4gICAgPHNwYW4gY2xhc3M9XCJwby1pY29uIHBvLWljb24taW5mb1wiPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInBvLWZvbnQtdGV4dC1sYXJnZVwiPlxuICAgICAge3sgbGl0ZXJhbHMucmVnaXN0ZXJOb3RGb3VuZCB9fVxuICAgIDwvc3Bhbj5cbiAgPC9wby13aWRnZXQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvcm1GaWVsZHNUZW1wbGF0ZT5cbiAgPHBvLWR5bmFtaWMtZm9ybSAjZHluYW1pY0Zvcm0gW3AtZmllbGRzXT1cImNvbnRyb2xGaWVsZHNcIiBbcC12YWx1ZV09XCJtb2RlbFwiPiA8L3BvLWR5bmFtaWMtZm9ybT5cblxuICA8ZGl2ICpuZ0lmPVwiZGV0YWlsRmllbGRzLmxlbmd0aCA+IDBcIiBjbGFzcz1cInBvLXNtLTEyXCI+XG4gICAgPHBvLWRpdmlkZXIgW3AtbGFiZWxdPVwiZGV0YWlsRmllbGRzWzBdLmRpdmlkZXJcIj48L3BvLWRpdmlkZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLW1iLTJcIj5cbiAgICAgIDxwby1idXR0b24gW3AtbGFiZWxdPVwibGl0ZXJhbHMuZGV0YWlsQWN0aW9uTmV3XCIgKHAtY2xpY2spPVwiZGV0YWlsQWN0aW9uTmV3KClcIj48L3BvLWJ1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDxwby1ncmlkXG4gICAgICAjZ3JpZERldGFpbFxuICAgICAgW3Atcm93LWFjdGlvbnNdPVwiZGV0YWlsQWN0aW9uc1wiXG4gICAgICBbcC1jb2x1bW5zXT1cImRldGFpbEZpZWxkc1swXS5kZXRhaWwuY29sdW1uc1wiXG4gICAgICBbcC1kYXRhXT1cIm1vZGVsW2RldGFpbEZpZWxkc1swXS5wcm9wZXJ0eV1cIlxuICAgID5cbiAgICA8L3BvLWdyaWQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -54,4 +54,4 @@ export class PoPageDynamicEditModule {
|
|
|
54
54
|
PoPageModule,
|
|
55
55
|
PoWidgetModule,
|
|
56
56
|
PoPageDynamicModule], exports: [PoPageDynamicEditComponent] }); })();
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tcGFnZS1keW5hbWljLWVkaXQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlLWR5bmFtaWMtZWRpdC9wby1wYWdlLWR5bmFtaWMtZWRpdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGVBQWUsRUFDZixlQUFlLEVBQ2YsWUFBWSxFQUNaLFlBQVksRUFDWixjQUFjLEVBQ2YsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFFNUY7Ozs7R0FJRztBQWtCSCxNQUFNLE9BQU8sdUJBQXVCO2lGQUF2Qix1QkFBdUI7NERBQXZCLHVCQUF1QjtnRUFmaEMsWUFBWTtZQUNaLFdBQVc7WUFDWCxZQUFZO1lBRVosY0FBYztZQUNkLGVBQWU7WUFDZixlQUFlO1lBQ2YsWUFBWTtZQUNaLFlBQVk7WUFDWixjQUFjO1lBQ2QsbUJBQW1COzt1RkFLVix1QkFBdUI7Y0FqQm5DLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixXQUFXO29CQUNYLFlBQVk7b0JBRVosY0FBYztvQkFDZCxlQUFlO29CQUNmLGVBQWU7b0JBQ2YsWUFBWTtvQkFDWixZQUFZO29CQUNaLGNBQWM7b0JBQ2QsbUJBQW1CO2lCQUNwQjtnQkFDRCxZQUFZLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztnQkFDMUMsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7YUFDdEM7O3dGQUNZLHVCQUF1QixtQkFIbkIsMEJBQTBCLGFBWnZDLFlBQVk7UUFDWixXQUFXO1FBQ1gsWUFBWTtRQUVaLGNBQWM7UUFDZCxlQUFlO1FBQ2YsZUFBZTtRQUNmLFlBQVk7UUFDWixZQUFZO1FBQ1osY0FBYztRQUNkLG1CQUFtQixhQUdYLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICBQb0J1dHRvbk1vZHVsZSxcbiAgUG9EaXZpZGVyTW9kdWxlLFxuICBQb0R5bmFtaWNNb2R1bGUsXG4gIFBvR3JpZE1vZHVsZSxcbiAgUG9QYWdlTW9kdWxlLFxuICBQb1dpZGdldE1vZHVsZVxufSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IFBvUGFnZUR5bmFtaWNFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9wby1wYWdlLWR5bmFtaWMtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9QYWdlRHluYW1pY01vZHVsZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLXBhZ2UtZHluYW1pYy9wby1wYWdlLWR5bmFtaWMubW9kdWxlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBNw7NkdWxvIGRvIHRlbXBsYXRlIGRvIHBvLXBhZ2UtZHluYW1pYy1kZXRhaWwuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuXG4gICAgUG9CdXR0b25Nb2R1bGUsXG4gICAgUG9EaXZpZGVyTW9kdWxlLFxuICAgIFBvRHluYW1pY01vZHVsZSxcbiAgICBQb0dyaWRNb2R1bGUsXG4gICAgUG9QYWdlTW9kdWxlLFxuICAgIFBvV2lkZ2V0TW9kdWxlLFxuICAgIFBvUGFnZUR5bmFtaWNNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbUG9QYWdlRHluYW1pY0VkaXRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbUG9QYWdlRHluYW1pY0VkaXRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBvUGFnZUR5bmFtaWNFZGl0TW9kdWxlIHt9XG4iXX0=
|
|
@@ -4,4 +4,4 @@ export * from './po-page-dynamic-search-literals.interface';
|
|
|
4
4
|
export * from './po-page-dynamic-search-options.interface';
|
|
5
5
|
export * from './po-page-dynamic-search-filters.interface';
|
|
6
6
|
export * from './po-page-dynamic-search.module';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vcG8tcGFnZS1keW5hbWljLXNlYXJjaC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWxpdGVyYWxzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2gtb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWZpbHRlcnMuaW50ZXJmYWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9wby1wYWdlLWR5bmFtaWMtc2VhcmNoLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { Directive, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { PoModalComponent, poLocaleDefault } from '@po-ui/ng-components';
|
|
3
|
+
import { convertToBoolean } from '../../../utils/util';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@po-ui/ng-components";
|
|
6
6
|
export const poAdvancedFiltersLiteralsDefault = {
|
|
@@ -110,11 +110,8 @@ export class PoAdvancedFilterBaseComponent {
|
|
|
110
110
|
} if (rf & 2) {
|
|
111
111
|
let _t;
|
|
112
112
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.poModal = _t.first);
|
|
113
|
-
} }, inputs: { keepFilters: ["p-keep-filters", "keepFilters"], filters: ["p-filters", "filters"], literals: ["p-literals", "literals"] }, outputs: { searchEvent: "p-search-event" } });
|
|
113
|
+
} }, inputs: { keepFilters: ["p-keep-filters", "keepFilters", convertToBoolean], filters: ["p-filters", "filters"], literals: ["p-literals", "literals"] }, outputs: { searchEvent: "p-search-event" }, features: [i0.ɵɵInputTransformsFeature] });
|
|
114
114
|
}
|
|
115
|
-
__decorate([
|
|
116
|
-
InputBoolean()
|
|
117
|
-
], PoAdvancedFilterBaseComponent.prototype, "keepFilters", void 0);
|
|
118
115
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoAdvancedFilterBaseComponent, [{
|
|
119
116
|
type: Directive
|
|
120
117
|
}], function () { return [{ type: i1.PoLanguageService }]; }, { poModal: [{
|
|
@@ -122,7 +119,7 @@ __decorate([
|
|
|
122
119
|
args: [PoModalComponent, { static: true }]
|
|
123
120
|
}], keepFilters: [{
|
|
124
121
|
type: Input,
|
|
125
|
-
args: ['p-keep-filters']
|
|
122
|
+
args: [{ alias: 'p-keep-filters', transform: convertToBoolean }]
|
|
126
123
|
}], searchEvent: [{
|
|
127
124
|
type: Output,
|
|
128
125
|
args: ['p-search-event']
|
|
@@ -133,4 +130,4 @@ __decorate([
|
|
|
133
130
|
type: Input,
|
|
134
131
|
args: ['p-literals']
|
|
135
132
|
}] }); })();
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tYWR2YW5jZWQtZmlsdGVyLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlLWR5bmFtaWMtc2VhcmNoL3BvLWFkdmFuY2VkLWZpbHRlci9wby1hZHZhbmNlZC1maWx0ZXItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFDTCxZQUFZLEVBSVosZ0JBQWdCLEVBQ2hCLGVBQWUsRUFFaEIsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBSzlCLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzlDLEVBQUUsRUFBNEI7UUFDNUIsS0FBSyxFQUFFLGlCQUFpQjtRQUN4QixXQUFXLEVBQUUsUUFBUTtRQUNyQixZQUFZLEVBQUUsZUFBZTtLQUM5QjtJQUNELEVBQUUsRUFBNEI7UUFDNUIsS0FBSyxFQUFFLG1CQUFtQjtRQUMxQixXQUFXLEVBQUUsVUFBVTtRQUN2QixZQUFZLEVBQUUsaUJBQWlCO0tBQ2hDO0lBQ0QsRUFBRSxFQUE0QjtRQUM1QixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFlBQVksRUFBRSxpQkFBaUI7S0FDaEM7SUFDRCxFQUFFLEVBQTRCO1FBQzVCLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsV0FBVyxFQUFFLFVBQVU7UUFDdkIsWUFBWSxFQUFFLG1CQUFtQjtLQUNsQztDQUNGLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLDZCQUE2QjtJQUNPLE9BQU8sQ0FBbUI7SUFFekU7O09BRUc7SUFHSCxXQUFXLEdBQVksS0FBSyxDQUFDO0lBRTdCLG9HQUFv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QixFQUFFLEVBQUUsQ0FDM0YsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FDdEQsQ0FBQztTQUNIO1FBRUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7dUZBM0ZVLDZCQUE2Qjs2REFBN0IsNkJBQTZCOzJCQUM3QixnQkFBZ0I7Ozs7OztBQU8zQjtJQUZDLFlBQVksRUFBRTtrRUFFYzt1RkFSbEIsNkJBQTZCO2NBRHpDLFNBQVM7b0VBRXVDLE9BQU87a0JBQXJELFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBTzdDLFdBQVc7a0JBRFYsS0FBSzttQkFBQyxnQkFBZ0I7WUFJRyxXQUFXO2tCQUFwQyxNQUFNO21CQUFDLGdCQUFnQjtZQStCQSxPQUFPO2tCQUE5QixLQUFLO21CQUFDLFdBQVc7WUFTTyxRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIElucHV0Qm9vbGVhbixcclxuICBQb0R5bmFtaWNGb3JtRmllbGQsXHJcbiAgUG9MYW5ndWFnZVNlcnZpY2UsXHJcbiAgUG9Nb2RhbEFjdGlvbixcclxuICBQb01vZGFsQ29tcG9uZW50LFxyXG4gIHBvTG9jYWxlRGVmYXVsdCxcclxuICBQb0NvbWJvT3B0aW9uXHJcbn0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xyXG5cclxuaW1wb3J0IHsgUG9BZHZhbmNlZEZpbHRlckxpdGVyYWxzIH0gZnJvbSAnLi9wby1hZHZhbmNlZC1maWx0ZXItbGl0ZXJhbHMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9QYWdlRHluYW1pY1NlYXJjaEZpbHRlcnMgfSBmcm9tICcuLi9wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWZpbHRlcnMuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBwb0FkdmFuY2VkRmlsdGVyc0xpdGVyYWxzRGVmYXVsdCA9IHtcclxuICBlbjogPFBvQWR2YW5jZWRGaWx0ZXJMaXRlcmFscz57XHJcbiAgICB0aXRsZTogJ0FkdmFuY2VkIHNlYXJjaCcsXHJcbiAgICBjYW5jZWxMYWJlbDogJ0NhbmNlbCcsXHJcbiAgICBjb25maXJtTGFiZWw6ICdBcHBseSBmaWx0ZXJzJ1xyXG4gIH0sXHJcbiAgZXM6IDxQb0FkdmFuY2VkRmlsdGVyTGl0ZXJhbHM+e1xyXG4gICAgdGl0bGU6ICdCw7pzcXVlZGEgYXZhbnphZGEnLFxyXG4gICAgY2FuY2VsTGFiZWw6ICdDYW5jZWxhcicsXHJcbiAgICBjb25maXJtTGFiZWw6ICdBcGxpY2FyIGZpbHRyb3MnXHJcbiAgfSxcclxuICBwdDogPFBvQWR2YW5jZWRGaWx0ZXJMaXRlcmFscz57XHJcbiAgICB0aXRsZTogJ0J1c2NhIGF2YW7Dp2FkYScsXHJcbiAgICBjYW5jZWxMYWJlbDogJ0NhbmNlbGFyJyxcclxuICAgIGNvbmZpcm1MYWJlbDogJ0FwbGljYXIgZmlsdHJvcydcclxuICB9LFxyXG4gIHJ1OiA8UG9BZHZhbmNlZEZpbHRlckxpdGVyYWxzPntcclxuICAgIHRpdGxlOiAn0KDQsNGB0YjQuNGA0LXQvdC90YvQuSDQv9C+0LjRgdC6JyxcclxuICAgIGNhbmNlbExhYmVsOiAn0L7RgtC80LXQvdC40YLRjCcsXHJcbiAgICBjb25maXJtTGFiZWw6ICfQn9GA0LjQvNC10L3QuNGC0Ywg0YTQuNC70YzRgtGA0YsnXHJcbiAgfVxyXG59O1xyXG5cclxuLyoqXHJcbiAqIEBkb2NzUHJpdmF0ZVxyXG4gKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICpcclxuICogRmlsdHJvIGRlIGJ1c2NhIGF2YW7Dp2FkYSBjcmlhZG8gYSBwYXJ0aXIgZGUgdW0gZm9ybXVsw6FyaW8gZGluw6JtaWNvLlxyXG4gKiBDb21wb25lbnRlIGRlIHVzbyBpbnRlcm5vLlxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBQb0FkdmFuY2VkRmlsdGVyQmFzZUNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZChQb01vZGFsQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBwb01vZGFsOiBQb01vZGFsQ29tcG9uZW50O1xyXG5cclxuICAvKipcclxuICAgKiBNYW50w6ltIG5hIG1vZGFsIGRlIGJ1c2NhIGF2YW7Dp2FkYSBvcyB2YWxvcmVzIHByZWVuY2hpZG9zIGRvIMO6bHRpbW8gZmlsdHJvIHJlYWxpemFkbyBwZWxvIHVzdcOhcmlvLlxyXG4gICAqL1xyXG4gIEBJbnB1dEJvb2xlYW4oKVxyXG4gIEBJbnB1dCgncC1rZWVwLWZpbHRlcnMnKVxyXG4gIGtlZXBGaWx0ZXJzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBGdW7Dp8OjbyBxdWUgc2Vyw6EgZGlzcGFyYWRhIGUgcmVjZWJlcsOhIG9zIHZhbG9yZXMgZG8gZm9ybXVsw6FyaW8gYW8gc2VyIGNsaWNhZG8gbm8gYm90w6NvIGJ1c2Nhci4gKi9cclxuICBAT3V0cHV0KCdwLXNlYXJjaC1ldmVudCcpIHNlYXJjaEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGZpbHRlciA9IHt9O1xyXG4gIGxhbmd1YWdlOiBzdHJpbmcgPSBwb0xvY2FsZURlZmF1bHQ7XHJcblxyXG4gIHByaW1hcnlBY3Rpb246IFBvTW9kYWxBY3Rpb24gPSB7XHJcbiAgICBhY3Rpb246ICgpID0+IHtcclxuICAgICAgY29uc3QgbW9kZWxzID0gdGhpcy5nZXRWYWx1ZXNGcm9tRm9ybSgpO1xyXG5cclxuICAgICAgdGhpcy5zZWFyY2hFdmVudC5lbWl0KG1vZGVscyk7XHJcbiAgICAgIHRoaXMucG9Nb2RhbC5jbG9zZSgpO1xyXG4gICAgfSxcclxuICAgIGxhYmVsOiB0aGlzLmxpdGVyYWxzLmNvbmZpcm1MYWJlbFxyXG4gIH07XHJcblxyXG4gIHNlY29uZGFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHtcclxuICAgIGFjdGlvbjogKCkgPT4ge1xyXG4gICAgICB0aGlzLnBvTW9kYWwuY2xvc2UoKTtcclxuICAgIH0sXHJcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5jYW5jZWxMYWJlbFxyXG4gIH07XHJcblxyXG4gIHByb3RlY3RlZCBvcHRpb25zU2VydmljZUNob3Nlbk9wdGlvbnM6IEFycmF5PFBvQ29tYm9PcHRpb24+ID0gW107XHJcblxyXG4gIHByaXZhdGUgX2ZpbHRlcnM6IEFycmF5PFBvRHluYW1pY0Zvcm1GaWVsZD4gPSBbXTtcclxuICBwcml2YXRlIF9saXRlcmFsczogUG9BZHZhbmNlZEZpbHRlckxpdGVyYWxzO1xyXG5cclxuICAvKipcclxuICAgKiBDb2xlw6fDo28gZGUgb2JqZXRvcyBxdWUgaW1wbGVtZW50YW0gYSBpbnRlcmZhY2UgUG9QYWdlRHluYW1pY1NlYXJjaEZpbHRlcnMsIHBhcmEgZGVmaW5pw6fDo28gZG9zIGNhbXBvcyBxdWUgc2Vyw6NvIGNyaWFkb3NcclxuICAgKiBkaW5hbWljYW1lbnRlLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1maWx0ZXJzJykgc2V0IGZpbHRlcnMoZmlsdGVyczogQXJyYXk8UG9QYWdlRHluYW1pY1NlYXJjaEZpbHRlcnM+KSB7XHJcbiAgICB0aGlzLl9maWx0ZXJzID0gQXJyYXkuaXNBcnJheShmaWx0ZXJzKSA/IFsuLi5maWx0ZXJzXSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbHRlcnMoKTogQXJyYXk8UG9QYWdlRHluYW1pY1NlYXJjaEZpbHRlcnM+IHtcclxuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzO1xyXG4gIH1cclxuXHJcbiAgLyoqIE9iamV0byBjb20gYXMgbGl0ZXJhaXMgdXNhZGFzIG5vIGBwby1hZHZhbmNlZC1maWx0ZXJgLiAqL1xyXG4gIEBJbnB1dCgncC1saXRlcmFscycpIHNldCBsaXRlcmFscyh2YWx1ZTogUG9BZHZhbmNlZEZpbHRlckxpdGVyYWxzKSB7XHJcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xyXG4gICAgICB0aGlzLl9saXRlcmFscyA9IHtcclxuICAgICAgICAuLi5wb0FkdmFuY2VkRmlsdGVyc0xpdGVyYWxzRGVmYXVsdFtwb0xvY2FsZURlZmF1bHRdLFxyXG4gICAgICAgIC4uLnBvQWR2YW5jZWRGaWx0ZXJzTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxyXG4gICAgICAgIC4uLnZhbHVlXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9saXRlcmFscyA9IHBvQWR2YW5jZWRGaWx0ZXJzTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucHJpbWFyeUFjdGlvbi5sYWJlbCA9IHRoaXMubGl0ZXJhbHMuY29uZmlybUxhYmVsO1xyXG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24ubGFiZWwgPSB0aGlzLmxpdGVyYWxzLmNhbmNlbExhYmVsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpdGVyYWxzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpdGVyYWxzIHx8IHBvQWR2YW5jZWRGaWx0ZXJzTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IobGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xyXG4gICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlU2VydmljZS5nZXRTaG9ydExhbmd1YWdlKCk7XHJcbiAgfVxyXG5cclxuICAvLyBSZXRvcm5hIG9zIG1vZGVscyBkb3MgY2FtcG9zIHByZWVuY2hpZG9zXHJcbiAgcHJpdmF0ZSBnZXRWYWx1ZXNGcm9tRm9ybSgpIHtcclxuICAgIGxldCBvcHRpb25TZXJ2aWNlT3B0aW9uczogQXJyYXk8UG9Db21ib09wdGlvbj47XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5maWx0ZXIpLmZvckVhY2gocHJvcGVydHkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5maWx0ZXJbcHJvcGVydHldID09PSB1bmRlZmluZWQgfHwgdGhpcy5maWx0ZXJbcHJvcGVydHldID09PSAnJykge1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLmZpbHRlcltwcm9wZXJ0eV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnNTZXJ2aWNlQ2hvc2VuT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgb3B0aW9uU2VydmljZU9wdGlvbnMgPSB0aGlzLm9wdGlvbnNTZXJ2aWNlQ2hvc2VuT3B0aW9ucy5maWx0ZXIoKG9wdGlvbkl0ZW06IFBvQ29tYm9PcHRpb24pID0+XHJcbiAgICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLmZpbHRlcikuaW5jbHVkZXMob3B0aW9uSXRlbS52YWx1ZSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4geyBmaWx0ZXI6IHRoaXMuZmlsdGVyLCBvcHRpb25zU2VydmljZTogb3B0aW9uU2VydmljZU9wdGlvbnMgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tYWR2YW5jZWQtZmlsdGVyLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1wYWdlLWR5bmFtaWMtc2VhcmNoL3BvLWFkdmFuY2VkLWZpbHRlci9wby1hZHZhbmNlZC1maWx0ZXItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUtMLGdCQUFnQixFQUNoQixlQUFlLEVBQ2hCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUl2RCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRztJQUM5QyxFQUFFLEVBQTRCO1FBQzVCLEtBQUssRUFBRSxpQkFBaUI7UUFDeEIsV0FBVyxFQUFFLFFBQVE7UUFDckIsWUFBWSxFQUFFLGVBQWU7S0FDOUI7SUFDRCxFQUFFLEVBQTRCO1FBQzVCLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsV0FBVyxFQUFFLFVBQVU7UUFDdkIsWUFBWSxFQUFFLGlCQUFpQjtLQUNoQztJQUNELEVBQUUsRUFBNEI7UUFDNUIsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixXQUFXLEVBQUUsVUFBVTtRQUN2QixZQUFZLEVBQUUsaUJBQWlCO0tBQ2hDO0lBQ0QsRUFBRSxFQUE0QjtRQUM1QixLQUFLLEVBQUUsbUJBQW1CO1FBQzFCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFlBQVksRUFBRSxtQkFBbUI7S0FDbEM7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7R0FPRztBQUVILE1BQU0sT0FBTyw2QkFBNkI7SUFDTyxPQUFPLENBQW1CO0lBRXpFOztPQUVHO0lB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QUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQXlCLEVBQUUsRUFBRSxDQUMzRixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUN0RCxDQUFDO1NBQ0g7UUFFRCxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLENBQUM7SUFDdkUsQ0FBQzt1RkF6RlUsNkJBQTZCOzZEQUE3Qiw2QkFBNkI7MkJBQzdCLGdCQUFnQjs7OztzRUFLa0IsZ0JBQWdCOzt1RkFObEQsNkJBQTZCO2NBRHpDLFNBQVM7b0VBRXVDLE9BQU87a0JBQXJELFNBQVM7bUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBS29CLFdBQVc7a0JBQTNFLEtBQUs7bUJBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO1lBR3JDLFdBQVc7a0JBQXBDLE1BQU07bUJBQUMsZ0JBQWdCO1lBK0JBLE9BQU87a0JBQTlCLEtBQUs7bUJBQUMsV0FBVztZQVNPLFFBQVE7a0JBQWhDLEtBQUs7bUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgUG9Db21ib09wdGlvbixcbiAgUG9EeW5hbWljRm9ybUZpZWxkLFxuICBQb0xhbmd1YWdlU2VydmljZSxcbiAgUG9Nb2RhbEFjdGlvbixcbiAgUG9Nb2RhbENvbXBvbmVudCxcbiAgcG9Mb2NhbGVEZWZhdWx0XG59IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgUG9QYWdlRHluYW1pY1NlYXJjaEZpbHRlcnMgfSBmcm9tICcuLi9wby1wYWdlLWR5bmFtaWMtc2VhcmNoLWZpbHRlcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvQWR2YW5jZWRGaWx0ZXJMaXRlcmFscyB9IGZyb20gJy4vcG8tYWR2YW5jZWQtZmlsdGVyLWxpdGVyYWxzLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjb25zdCBwb0FkdmFuY2VkRmlsdGVyc0xpdGVyYWxzRGVmYXVsdCA9IHtcbiAgZW46IDxQb0FkdmFuY2VkRmlsdGVyTGl0ZXJhbHM+e1xuICAgIHRpdGxlOiAnQWR2YW5jZWQgc2VhcmNoJyxcbiAgICBjYW5jZWxMYWJlbDogJ0NhbmNlbCcsXG4gICAgY29uZmlybUxhYmVsOiAnQXBwbHkgZmlsdGVycydcbiAgfSxcbiAgZXM6IDxQb0FkdmFuY2VkRmlsdGVyTGl0ZXJhbHM+e1xuICAgIHRpdGxlOiAnQsO6c3F1ZWRhIGF2YW56YWRhJyxcbiAgICBjYW5jZWxMYWJlbDogJ0NhbmNlbGFyJyxcbiAgICBjb25maXJtTGFiZWw6ICdBcGxpY2FyIGZpbHRyb3MnXG4gIH0sXG4gIHB0OiA8UG9BZHZhbmNlZEZpbHRlckxpdGVyYWxzPntcbiAgICB0aXRsZTogJ0J1c2NhIGF2YW7Dp2FkYScsXG4gICAgY2FuY2VsTGFiZWw6ICdDYW5jZWxhcicsXG4gICAgY29uZmlybUxhYmVsOiAnQXBsaWNhciBmaWx0cm9zJ1xuICB9LFxuICBydTogPFBvQWR2YW5jZWRGaWx0ZXJMaXRlcmFscz57XG4gICAgdGl0bGU6ICfQoNCw0YHRiNC40YDQtdC90L3Ri9C5INC/0L7QuNGB0LonLFxuICAgIGNhbmNlbExhYmVsOiAn0L7RgtC80LXQvdC40YLRjCcsXG4gICAgY29uZmlybUxhYmVsOiAn0J/RgNC40LzQtdC90LjRgtGMINGE0LjQu9GM0YLRgNGLJ1xuICB9XG59O1xuXG4vKipcbiAqIEBkb2NzUHJpdmF0ZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEZpbHRybyBkZSBidXNjYSBhdmFuw6dhZGEgY3JpYWRvIGEgcGFydGlyIGRlIHVtIGZvcm11bMOhcmlvIGRpbsOibWljby5cbiAqIENvbXBvbmVudGUgZGUgdXNvIGludGVybm8uXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFBvQWR2YW5jZWRGaWx0ZXJCYXNlQ29tcG9uZW50IHtcbiAgQFZpZXdDaGlsZChQb01vZGFsQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBwb01vZGFsOiBQb01vZGFsQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBNYW50w6ltIG5hIG1vZGFsIGRlIGJ1c2NhIGF2YW7Dp2FkYSBvcyB2YWxvcmVzIHByZWVuY2hpZG9zIGRvIMO6bHRpbW8gZmlsdHJvIHJlYWxpemFkbyBwZWxvIHVzdcOhcmlvLlxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLWtlZXAtZmlsdGVycycsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBrZWVwRmlsdGVyczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBGdW7Dp8OjbyBxdWUgc2Vyw6EgZGlzcGFyYWRhIGUgcmVjZWJlcsOhIG9zIHZhbG9yZXMgZG8gZm9ybXVsw6FyaW8gYW8gc2VyIGNsaWNhZG8gbm8gYm90w6NvIGJ1c2Nhci4gKi9cbiAgQE91dHB1dCgncC1zZWFyY2gtZXZlbnQnKSBzZWFyY2hFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIGZpbHRlciA9IHt9O1xuICBsYW5ndWFnZTogc3RyaW5nID0gcG9Mb2NhbGVEZWZhdWx0O1xuXG4gIHByaW1hcnlBY3Rpb246IFBvTW9kYWxBY3Rpb24gPSB7XG4gICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbHMgPSB0aGlzLmdldFZhbHVlc0Zyb21Gb3JtKCk7XG5cbiAgICAgIHRoaXMuc2VhcmNoRXZlbnQuZW1pdChtb2RlbHMpO1xuICAgICAgdGhpcy5wb01vZGFsLmNsb3NlKCk7XG4gICAgfSxcbiAgICBsYWJlbDogdGhpcy5saXRlcmFscy5jb25maXJtTGFiZWxcbiAgfTtcblxuICBzZWNvbmRhcnlBY3Rpb246IFBvTW9kYWxBY3Rpb24gPSB7XG4gICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICB0aGlzLnBvTW9kYWwuY2xvc2UoKTtcbiAgICB9LFxuICAgIGxhYmVsOiB0aGlzLmxpdGVyYWxzLmNhbmNlbExhYmVsXG4gIH07XG5cbiAgcHJvdGVjdGVkIG9wdGlvbnNTZXJ2aWNlQ2hvc2VuT3B0aW9uczogQXJyYXk8UG9Db21ib09wdGlvbj4gPSBbXTtcblxuICBwcml2YXRlIF9maWx0ZXJzOiBBcnJheTxQb0R5bmFtaWNGb3JtRmllbGQ+ID0gW107XG4gIHByaXZhdGUgX2xpdGVyYWxzOiBQb0FkdmFuY2VkRmlsdGVyTGl0ZXJhbHM7XG5cbiAgLyoqXG4gICAqIENvbGXDp8OjbyBkZSBvYmpldG9zIHF1ZSBpbXBsZW1lbnRhbSBhIGludGVyZmFjZSBQb1BhZ2VEeW5hbWljU2VhcmNoRmlsdGVycywgcGFyYSBkZWZpbmnDp8OjbyBkb3MgY2FtcG9zIHF1ZSBzZXLDo28gY3JpYWRvc1xuICAgKiBkaW5hbWljYW1lbnRlLlxuICAgKi9cbiAgQElucHV0KCdwLWZpbHRlcnMnKSBzZXQgZmlsdGVycyhmaWx0ZXJzOiBBcnJheTxQb1BhZ2VEeW5hbWljU2VhcmNoRmlsdGVycz4pIHtcbiAgICB0aGlzLl9maWx0ZXJzID0gQXJyYXkuaXNBcnJheShmaWx0ZXJzKSA/IFsuLi5maWx0ZXJzXSA6IFtdO1xuICB9XG5cbiAgZ2V0IGZpbHRlcnMoKTogQXJyYXk8UG9QYWdlRHluYW1pY1NlYXJjaEZpbHRlcnM+IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVycztcbiAgfVxuXG4gIC8qKiBPYmpldG8gY29tIGFzIGxpdGVyYWlzIHVzYWRhcyBubyBgcG8tYWR2YW5jZWQtZmlsdGVyYC4gKi9cbiAgQElucHV0KCdwLWxpdGVyYWxzJykgc2V0IGxpdGVyYWxzKHZhbHVlOiBQb0FkdmFuY2VkRmlsdGVyTGl0ZXJhbHMpIHtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSkge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSB7XG4gICAgICAgIC4uLnBvQWR2YW5jZWRGaWx0ZXJzTGl0ZXJhbHNEZWZhdWx0W3BvTG9jYWxlRGVmYXVsdF0sXG4gICAgICAgIC4uLnBvQWR2YW5jZWRGaWx0ZXJzTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdLFxuICAgICAgICAuLi52YWx1ZVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbGl0ZXJhbHMgPSBwb0FkdmFuY2VkRmlsdGVyc0xpdGVyYWxzRGVmYXVsdFt0aGlzLmxhbmd1YWdlXTtcbiAgICB9XG5cbiAgICB0aGlzLnByaW1hcnlBY3Rpb24ubGFiZWwgPSB0aGlzLmxpdGVyYWxzLmNvbmZpcm1MYWJlbDtcbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbi5sYWJlbCA9IHRoaXMubGl0ZXJhbHMuY2FuY2VsTGFiZWw7XG4gIH1cblxuICBnZXQgbGl0ZXJhbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xpdGVyYWxzIHx8IHBvQWR2YW5jZWRGaWx0ZXJzTGl0ZXJhbHNEZWZhdWx0W3RoaXMubGFuZ3VhZ2VdO1xuICB9XG5cbiAgY29uc3RydWN0b3IobGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZSkge1xuICAgIHRoaXMubGFuZ3VhZ2UgPSBsYW5ndWFnZVNlcnZpY2UuZ2V0U2hvcnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgLy8gUmV0b3JuYSBvcyBtb2RlbHMgZG9zIGNhbXBvcyBwcmVlbmNoaWRvc1xuICBwcml2YXRlIGdldFZhbHVlc0Zyb21Gb3JtKCkge1xuICAgIGxldCBvcHRpb25TZXJ2aWNlT3B0aW9uczogQXJyYXk8UG9Db21ib09wdGlvbj47XG5cbiAgICBPYmplY3Qua2V5cyh0aGlzLmZpbHRlcikuZm9yRWFjaChwcm9wZXJ0eSA9PiB7XG4gICAgICBpZiAodGhpcy5maWx0ZXJbcHJvcGVydHldID09PSB1bmRlZmluZWQgfHwgdGhpcy5maWx0ZXJbcHJvcGVydHldID09PSAnJykge1xuICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJbcHJvcGVydHldO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMub3B0aW9uc1NlcnZpY2VDaG9zZW5PcHRpb25zLmxlbmd0aCkge1xuICAgICAgb3B0aW9uU2VydmljZU9wdGlvbnMgPSB0aGlzLm9wdGlvbnNTZXJ2aWNlQ2hvc2VuT3B0aW9ucy5maWx0ZXIoKG9wdGlvbkl0ZW06IFBvQ29tYm9PcHRpb24pID0+XG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5maWx0ZXIpLmluY2x1ZGVzKG9wdGlvbkl0ZW0udmFsdWUpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7IGZpbHRlcjogdGhpcy5maWx0ZXIsIG9wdGlvbnNTZXJ2aWNlOiBvcHRpb25TZXJ2aWNlT3B0aW9ucyB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tYWR2YW5jZWQtZmlsdGVyLWxpdGVyYWxzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1keW5hbWljLXNlYXJjaC9wby1hZHZhbmNlZC1maWx0ZXIvcG8tYWR2YW5jZWQtZmlsdGVyLWxpdGVyYWxzLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBJbnRlcmZhY2UgcGFyYSBkZWZpbmnDp8OjbyBkYXMgbGl0ZXJhaXMgdXNhZGFzIG5vIGBwby1hZHZhbmNlZC1maWx0ZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvQWR2YW5jZWRGaWx0ZXJMaXRlcmFscyB7XG4gIC8qKiBUw610dWxvIGRvIGZpbHRybyBhdmFuw6dhZG8uICovXG4gIHRpdGxlPzogc3RyaW5nO1xuXG4gIC8qKiBUZXh0byBleGliaWRvIG5vIGJvdMOjbyBkZSBjYW5jZWxhbWVudG8gZG8gZmlsdHJvIGF2YcOnYW5kby4gKi9cbiAgY2FuY2VsTGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqIFRleHRvIGV4aWJpZG8gbm8gYm90w6NvIGRlIGNvbmZpcm1hw6fDo28gZG8gZmlsdHJvIGF2YcOnYW5kby4gKi9cbiAgY29uZmlybUxhYmVsPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -67,9 +67,9 @@ export class PoAdvancedFilterComponent extends PoAdvancedFilterBaseComponent {
|
|
|
67
67
|
}
|
|
68
68
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoAdvancedFilterComponent, [{
|
|
69
69
|
type: Component,
|
|
70
|
-
args: [{ selector: 'po-advanced-filter', template: "<po-modal\
|
|
70
|
+
args: [{ selector: 'po-advanced-filter', template: "<po-modal\n p-hide-close\n [p-primary-action]=\"primaryAction\"\n [p-secondary-action]=\"secondaryAction\"\n [p-title]=\"literals.title\"\n>\n <po-dynamic-form [p-fields]=\"filters\" [p-value]=\"filter\"> </po-dynamic-form>\n</po-modal>\n" }]
|
|
71
71
|
}], function () { return [{ type: i1.PoLanguageService }]; }, { poDynamicForm: [{
|
|
72
72
|
type: ViewChild,
|
|
73
73
|
args: [PoDynamicFormComponent, { static: true }]
|
|
74
74
|
}] }); })();
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tYWR2YW5jZWQtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1keW5hbWljLXNlYXJjaC9wby1hZHZhbmNlZC1maWx0ZXIvcG8tYWR2YW5jZWQtZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RlbXBsYXRlcy9zcmMvbGliL2NvbXBvbmVudHMvcG8tcGFnZS1keW5hbWljLXNlYXJjaC9wby1hZHZhbmNlZC1maWx0ZXIvcG8tYWR2YW5jZWQtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE9BQU8sRUFBaUIsc0JBQXNCLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFFaEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0scUNBQXFDLENBQUM7OztBQUdwRjs7Ozs7Ozs7Ozs7R0FXRztBQUtILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSw2QkFBNkI7SUFDckIsYUFBYSxDQUF5QjtJQUVuRixZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUxQyxZQUFZLGVBQWtDO1FBQzVDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXBGLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLG1CQUFrQztRQUM5RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuSCxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsMkJBQTJCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1NBQy9GO0lBQ0gsQ0FBQztJQUVPLDBCQUEwQixDQUFDLE9BQTBDO1FBQzNFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVELHNFQUFzRTtJQUM5RCx1QkFBdUI7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDbEUsSUFBSSxtQkFBbUIsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDLENBQUM7YUFDakQ7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzttRkE1Q1UseUJBQXlCOzZEQUF6Qix5QkFBeUI7MkJBQ3pCLHNCQUFzQjs7Ozs7WUN6Qm5DLG1DQUtDO1lBQ0MscUNBQTRFO1lBQzlFLGlCQUFXOztZQUxULG9EQUFrQywyQ0FBQSwrQkFBQTtZQUlqQixlQUFvQjtZQUFwQixzQ0FBb0IsdUJBQUE7Ozt1RkRrQjFCLHlCQUF5QjtjQUpyQyxTQUFTOzJCQUNFLG9CQUFvQjtvRUFJdUIsYUFBYTtrQkFBakUsU0FBUzttQkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQb0NvbWJvT3B0aW9uLCBQb0R5bmFtaWNGb3JtQ29tcG9uZW50LCBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcblxuaW1wb3J0IHsgUG9BZHZhbmNlZEZpbHRlckJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLWFkdmFuY2VkLWZpbHRlci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb1BhZ2VEeW5hbWljU2VhcmNoRmlsdGVycyB9IGZyb20gJy4uL3BvLXBhZ2UtZHluYW1pYy1zZWFyY2gtZmlsdGVycy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBkb2NzUHJpdmF0ZVxuICpcbiAqIEBkb2NzRXh0ZW5kcyBQb0FkdmFuY2VkRmlsdGVyQmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlUHJpdmF0ZVxuICpcbiAqIDxleGFtcGxlLXByaXZhdGUgbmFtZT1cInBvLWFkdmFuY2VkLWZpbHRlclwiIHRpdGxlPVwiUE8gQnVzY2EgQXZhbsOnYWRhXCI+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tYWR2YW5jZWQtZmlsdGVyLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1hZHZhbmNlZC1maWx0ZXIuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZS1wcml2YXRlPlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1hZHZhbmNlZC1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tYWR2YW5jZWQtZmlsdGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQb0FkdmFuY2VkRmlsdGVyQ29tcG9uZW50IGV4dGVuZHMgUG9BZHZhbmNlZEZpbHRlckJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoUG9EeW5hbWljRm9ybUNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgcG9EeW5hbWljRm9ybTogUG9EeW5hbWljRm9ybUNvbXBvbmVudDtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihsYW5ndWFnZVNlcnZpY2U6IFBvTGFuZ3VhZ2VTZXJ2aWNlKSB7XG4gICAgc3VwZXIobGFuZ3VhZ2VTZXJ2aWNlKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3B0aW9uc1NlcnZpY2VTdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuZmlsdGVyID0gdGhpcy5rZWVwRmlsdGVycyA/IHRoaXMuZ2V0SW5pdGlhbFZhbHVlc0Zyb21GaWx0ZXIodGhpcy5maWx0ZXJzKSA6IHt9O1xuXG4gICAgdGhpcy5wb01vZGFsLm9wZW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0T3B0aW9uc1NlcnZpY2VJdGVtKG9wdGlvblNlcnZpY2VPYmplY3Q6IFBvQ29tYm9PcHRpb24pIHtcbiAgICBjb25zdCBvYmplY3RJdGVtID0gdGhpcy5vcHRpb25zU2VydmljZUNob3Nlbk9wdGlvbnMubWFwKG9wdGlvbiA9PiBvcHRpb24udmFsdWUpLmluZGV4T2Yob3B0aW9uU2VydmljZU9iamVjdC52YWx1ZSk7XG5cbiAgICBpZiAob2JqZWN0SXRlbSA9PT0gLTEpIHtcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2VDaG9zZW5PcHRpb25zID0gWy4uLnRoaXMub3B0aW9uc1NlcnZpY2VDaG9zZW5PcHRpb25zLCBvcHRpb25TZXJ2aWNlT2JqZWN0XTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEluaXRpYWxWYWx1ZXNGcm9tRmlsdGVyKGZpbHRlcnM6IEFycmF5PFBvUGFnZUR5bmFtaWNTZWFyY2hGaWx0ZXJzPikge1xuICAgIHJldHVybiBmaWx0ZXJzLnJlZHVjZSgocmVzdWx0LCBpdGVtKSA9PiBPYmplY3QuYXNzaWduKHJlc3VsdCwgeyBbaXRlbS5wcm9wZXJ0eV06IGl0ZW0uaW5pdFZhbHVlIH0pLCB7fSk7XG4gIH1cblxuICAvLyBTZSBpbnNjcmV2ZSBwYXJhIHJlY2ViZXIgdmFsb3JlcyByZWZlcmVudGVzIGEgY2FtcG9zIGRvIHRpcG8gY29tYm8uXG4gIHByaXZhdGUgb3B0aW9uc1NlcnZpY2VTdWJzY3JpYmUoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5wb0R5bmFtaWNGb3JtLmdldE9iamVjdFZhbHVlKCkuc3Vic2NyaWJlKG9wdGlvblNlcnZpY2VPYmplY3QgPT4ge1xuICAgICAgICBpZiAob3B0aW9uU2VydmljZU9iamVjdCkge1xuICAgICAgICAgIHRoaXMuZ2V0T3B0aW9uc1NlcnZpY2VJdGVtKG9wdGlvblNlcnZpY2VPYmplY3QpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiIsIjxwby1tb2RhbFxuICBwLWhpZGUtY2xvc2VcbiAgW3AtcHJpbWFyeS1hY3Rpb25dPVwicHJpbWFyeUFjdGlvblwiXG4gIFtwLXNlY29uZGFyeS1hY3Rpb25dPVwic2Vjb25kYXJ5QWN0aW9uXCJcbiAgW3AtdGl0bGVdPVwibGl0ZXJhbHMudGl0bGVcIlxuPlxuICA8cG8tZHluYW1pYy1mb3JtIFtwLWZpZWxkc109XCJmaWx0ZXJzXCIgW3AtdmFsdWVdPVwiZmlsdGVyXCI+IDwvcG8tZHluYW1pYy1mb3JtPlxuPC9wby1tb2RhbD5cbiJdfQ==
|