@messaia/cdk 17.1.5 → 18.0.0-rc02
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/esm2022/lib/base/base.module.mjs +8 -8
- package/esm2022/lib/base/components/base.component.mjs +4 -4
- package/esm2022/lib/base/components/dynamic-table-config-dialog.comnponent.mjs +3 -3
- package/esm2022/lib/base/components/generic-form-base.component.mjs +4 -4
- package/esm2022/lib/base/components/generic-form.component.mjs +3 -3
- package/esm2022/lib/base/components/generic-list.component.mjs +4 -4
- package/esm2022/lib/base/components/generic-reactive-form.component.mjs +4 -4
- package/esm2022/lib/base/constants/common.mjs +2 -2
- package/esm2022/lib/base/helpers/auth-helper.mjs +1 -1
- package/esm2022/lib/base/interceptors/base.interceptor.mjs +4 -4
- package/esm2022/lib/base/interceptors/caching-interceptor.mjs +4 -4
- package/esm2022/lib/base/interceptors/loading.interceptor.mjs +4 -4
- package/esm2022/lib/base/services/file.service.mjs +3 -3
- package/esm2022/lib/base/services/loading-screen.service.mjs +3 -3
- package/esm2022/lib/base/services/print.service.mjs +3 -3
- package/esm2022/lib/chips/chips.module.mjs +4 -4
- package/esm2022/lib/chips/components/chips.component.mjs +4 -4
- package/esm2022/lib/chips/directives/autocomplete-option.directive.mjs +3 -3
- package/esm2022/lib/chips/directives/chip.directive.mjs +3 -3
- package/esm2022/lib/common/behaviors/control-value-accesor.mixin.mjs +1 -1
- package/esm2022/lib/common/behaviors/disabled.mixin.mjs +1 -1
- package/esm2022/lib/common/common.module.mjs +4 -4
- package/esm2022/lib/common/directives/delayed-hover.directive.mjs +4 -4
- package/esm2022/lib/common/directives/disable-control.directive.mjs +4 -4
- package/esm2022/lib/common/functions/utils.mjs +4 -4
- package/esm2022/lib/common/helpers/app-storage.mjs +4 -4
- package/esm2022/lib/common/helpers/dynamic-builder.mjs +4 -4
- package/esm2022/lib/common/helpers/dynamic-component-compiler.mjs +3 -3
- package/esm2022/lib/common/models/app-setting.mjs +3 -3
- package/esm2022/lib/common/pipes/data-source.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/enum.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/file-size.pipe.mjs +4 -4
- package/esm2022/lib/common/pipes/filter.pipe.mjs +4 -4
- package/esm2022/lib/common/pipes/first-letter.mjs +3 -3
- package/esm2022/lib/common/pipes/form-array.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/form-control.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/form-group.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/func.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/join.pipe.mjs +4 -4
- package/esm2022/lib/common/pipes/keys.mjs +4 -4
- package/esm2022/lib/common/pipes/month-name.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/nested-property.mjs +3 -3
- package/esm2022/lib/common/pipes/only-number.mjs +4 -4
- package/esm2022/lib/common/pipes/order.pipe.mjs +4 -4
- package/esm2022/lib/common/pipes/placeholder.pipe.mjs +4 -4
- package/esm2022/lib/common/pipes/property-join.pipe.mjs +4 -4
- package/esm2022/lib/common/pipes/safe-html.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/split.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/time.pipe.mjs +4 -4
- package/esm2022/lib/common/pipes/titlecase.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/truncate.pipe.mjs +3 -3
- package/esm2022/lib/common/pipes/values.mjs +3 -3
- package/esm2022/lib/common/services/base.service.mjs +3 -3
- package/esm2022/lib/common/services/enum.service.mjs +4 -4
- package/esm2022/lib/common/services/event-queue.service.mjs +3 -3
- package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +3 -3
- package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +3 -3
- package/esm2022/lib/dialogs/dialog.component.mjs +13 -13
- package/esm2022/lib/dialogs/dialogs.module.mjs +4 -4
- package/esm2022/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +3 -3
- package/esm2022/lib/dialogs/services/dialog.service.mjs +4 -4
- package/esm2022/lib/file/file-input.component.mjs +4 -4
- package/esm2022/lib/file/file.module.mjs +4 -4
- package/esm2022/lib/form-validators/algorithm/luhn-algorithm.mjs +1 -1
- package/esm2022/lib/form-validators/core/default-container.mjs +10 -10
- package/esm2022/lib/form-validators/directives/base-directive.mjs +4 -4
- package/esm2022/lib/form-validators/directives/control-host.directive.mjs +4 -4
- package/esm2022/lib/form-validators/directives/html-control-template.directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/rx-form.directive.mjs +4 -4
- package/esm2022/lib/form-validators/directives/template-validations/async-validation.directive.mjs +3 -3
- package/esm2022/lib/form-validators/directives/template-validations/base-validator.directive.mjs +4 -4
- package/esm2022/lib/form-validators/directives/template-validations/control-expression-process.mjs +4 -4
- package/esm2022/lib/form-validators/directives/template-validations/file-control.directive.mjs +4 -4
- package/esm2022/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +4 -4
- package/esm2022/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +4 -4
- package/esm2022/lib/form-validators/domain/disable-provider.mjs +1 -1
- package/esm2022/lib/form-validators/domain/element-processor/decimal.provider.mjs +4 -4
- package/esm2022/lib/form-validators/domain/element-processor/mask.provider.mjs +1 -1
- package/esm2022/lib/form-validators/domain/form-data.mjs +1 -1
- package/esm2022/lib/form-validators/models/form-builder-configuration.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/allOf.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/and.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/async/base.async.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/choice.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/compare.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/compose.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/contains.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/cusip.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/custom.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/different.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/even.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/extension.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/factor.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/file.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/grid.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/iban.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/image.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/ip.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/json.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/latLong.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/mask.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/minLength.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/not.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/numeric.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/odd.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/or.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/password.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/pattern.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/port.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/range.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/required.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/rule.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/time.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/unique.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +1 -1
- package/esm2022/lib/form-validators/reactive-form-validators/url.validator.mjs +1 -1
- package/esm2022/lib/form-validators/services/base-form-builder.mjs +1 -1
- package/esm2022/lib/form-validators/services/entity.service.mjs +1 -1
- package/esm2022/lib/form-validators/services/form-control.mjs +1 -1
- package/esm2022/lib/form-validators/services/reactive-form.module.mjs +8 -8
- package/esm2022/lib/form-validators/services/rx-form-array.mjs +1 -1
- package/esm2022/lib/form-validators/services/rx-form-builder.mjs +4 -4
- package/esm2022/lib/form-validators/services/rx-form-group.mjs +1 -1
- package/esm2022/lib/form-validators/services/typed-form-builder.mjs +3 -3
- package/esm2022/lib/form-validators/util/app-util.mjs +1 -1
- package/esm2022/lib/form-validators/util/check-length.mjs +1 -1
- package/esm2022/lib/form-validators/util/config-provider.mjs +1 -1
- package/esm2022/lib/form-validators/util/date-checker.function.mjs +1 -1
- package/esm2022/lib/form-validators/util/date-provider.mjs +1 -1
- package/esm2022/lib/form-validators/util/form-provider.mjs +1 -1
- package/esm2022/lib/form-validators/util/instance-provider.function.mjs +1 -1
- package/esm2022/lib/form-validators/util/ip-checker.mjs +1 -1
- package/esm2022/lib/form-validators/util/linq.mjs +1 -1
- package/esm2022/lib/form-validators/util/object-maker.mjs +1 -1
- package/esm2022/lib/form-validators/util/reactive-form-config.mjs +1 -1
- package/esm2022/lib/form-validators/util/regex-validator.mjs +1 -1
- package/esm2022/lib/form-validators/util/relational-checker.function.mjs +1 -1
- package/esm2022/lib/form-validators/util/reset-form.mjs +1 -1
- package/esm2022/lib/form-validators/util/sanitizers.mjs +1 -1
- package/esm2022/lib/form-validators/util/time-checker.function.mjs +1 -1
- package/esm2022/lib/form-validators/util/validator-value-checker.mjs +1 -1
- package/esm2022/lib/form-validators/validators-extension/base-validator.function.mjs +1 -1
- package/esm2022/lib/form-validators/validators-function/alpha-validation.function.mjs +1 -1
- package/esm2022/lib/form-validators/validators-function/regex-validation.function.mjs +1 -1
- package/esm2022/lib/forms/components/datepicker/datepicker-header.component.mjs +3 -3
- package/esm2022/lib/forms/components/generic-form/generic-form.component.mjs +16 -16
- package/esm2022/lib/forms/directives/mat-form-field-editor.directive.mjs +4 -4
- package/esm2022/lib/forms/directives/mat-form-field-readonly.directive.mjs +4 -4
- package/esm2022/lib/forms/directives/nested-property-ng-model.directive.mjs +4 -4
- package/esm2022/lib/forms/directives/vd-generic-form-custom-field.directive.mjs +3 -3
- package/esm2022/lib/forms/forms.module.mjs +4 -4
- package/esm2022/lib/forms/functions/decorators.mjs +1 -1
- package/esm2022/lib/forms/functions/functions.mjs +1 -1
- package/esm2022/lib/forms/helpers/abstract-mat-form-field.mjs +4 -4
- package/esm2022/lib/forms/helpers/abstract-select-form-field.component.mjs +4 -4
- package/esm2022/lib/forms/helpers/value-accessor-base.mjs +3 -3
- package/esm2022/lib/forms/pipes/group-filter.pipe.mjs +4 -4
- package/esm2022/lib/forms/validators/empty-string-reset.directive.mjs +4 -4
- package/esm2022/lib/forms/validators/equal-validator.directive.mjs +4 -4
- package/esm2022/lib/forms/validators/native-element-injector.directive.mjs +4 -4
- package/esm2022/lib/forms/validators/unique-validator-directive.mjs +4 -4
- package/esm2022/lib/http/http.module.mjs +7 -11
- package/esm2022/lib/http/services/generic.service.mjs +1 -1
- package/esm2022/lib/layout/dynamic-menu/dynamic-menu.component.mjs +3 -3
- package/esm2022/lib/layout/layout-card-over/layout-card-over.component.mjs +3 -3
- package/esm2022/lib/layout/layout-compact/layout-compact.component.mjs +4 -4
- package/esm2022/lib/layout/layout-footer/layout-footer.component.mjs +4 -4
- package/esm2022/lib/layout/layout-manage-list/layout-manage-list.component.mjs +4 -4
- package/esm2022/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +9 -9
- package/esm2022/lib/layout/layout-nav/layout-nav.component.mjs +5 -5
- package/esm2022/lib/layout/layout-nav-list/layout-nav-list.component.mjs +4 -4
- package/esm2022/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +9 -9
- package/esm2022/lib/layout/layout-toggle.class.mjs +4 -4
- package/esm2022/lib/layout/layout.component.mjs +4 -4
- package/esm2022/lib/layout/layout.directives.mjs +9 -9
- package/esm2022/lib/layout/layout.module.mjs +4 -4
- package/esm2022/lib/layout/list-toolbar/list-toolbar.component.mjs +3 -3
- package/esm2022/lib/layout/navigation-drawer/navigation-drawer.component.mjs +10 -10
- package/esm2022/lib/list/components/list.component.mjs +3 -3
- package/esm2022/lib/list/directives/vd-list-option.directive.mjs +3 -3
- package/esm2022/lib/list/list.module.mjs +4 -4
- package/esm2022/lib/media/directives/media-toggle.directive.mjs +4 -4
- package/esm2022/lib/media/media.module.mjs +4 -4
- package/esm2022/lib/media/services/media.service.mjs +4 -4
- package/esm2022/lib/menu/components/menu.component.mjs +4 -4
- package/esm2022/lib/menu/menu.module.mjs +4 -4
- package/esm2022/lib/menu/resolvers/menu-form-includes.resolve.mjs +4 -4
- package/esm2022/lib/menu/resolvers/menu-item-form-includes.resolve.mjs +4 -4
- package/esm2022/lib/menu/resolvers/menu-list-projection.resolve.mjs +4 -4
- package/esm2022/lib/menu/resolvers/menu-settings.resolve.mjs +3 -3
- package/esm2022/lib/menu/services/menu-items.service.mjs +3 -3
- package/esm2022/lib/menu/services/menu.resolve.mjs +7 -7
- package/esm2022/lib/menu/services/menu.service.mjs +3 -3
- package/esm2022/lib/search/search.module.mjs +4 -4
- package/esm2022/lib/select/components/select.component.mjs +4 -4
- package/esm2022/lib/select/directives/vd-select-option.directive.mjs +3 -3
- package/esm2022/lib/select/directives/vd-select-trigger.directive.mjs +3 -3
- package/esm2022/lib/select/select.module.mjs +4 -4
- package/esm2022/lib/table/components/dynamic-table/dynamic-table.component.mjs +4 -4
- package/esm2022/lib/table/components/filter-clear.component.mjs +4 -4
- package/esm2022/lib/table/components/filter-date.component.mjs +4 -4
- package/esm2022/lib/table/components/filter-input.component.mjs +4 -4
- package/esm2022/lib/table/components/filter-select.component.mjs +7 -7
- package/esm2022/lib/table/directives/data-source-filter.directive.mjs +4 -4
- package/esm2022/lib/table/directives/vd-table-field.directive.mjs +3 -3
- package/esm2022/lib/table/functions/decorators.mjs +1 -1
- package/esm2022/lib/table/functions/functions.mjs +1 -1
- package/esm2022/lib/table/paginator-intl.mjs +4 -4
- package/esm2022/lib/table/table.data-source.mjs +1 -1
- package/esm2022/lib/table/table.module.mjs +4 -4
- package/esm2022/lib/table/table.static-data-source.mjs +1 -1
- package/fesm2022/messaia-cdk.mjs +486 -490
- package/fesm2022/messaia-cdk.mjs.map +1 -1
- package/lib/common/styles/_theme-functions.scss +0 -23
- package/lib/common/styles/colors/_colors-dark.scss +1350 -345
- package/lib/common/styles/colors/_colors-light.scss +3157 -829
- package/lib/common/styles/core/_button.scss +35 -29
- package/lib/common/styles/{_common-theme.scss → m2/_common-theme.scss} +6 -6
- package/lib/common/styles/m2/_theme-functions.scss +21 -0
- package/lib/common/styles/m3/_common-theme.scss +47 -0
- package/lib/common/styles/m3/_theme-functions.scss +21 -0
- package/lib/common/styles/platform.scss +1 -1
- package/lib/common/theming/_all-theme.scss +1 -1
- package/lib/common/theming/_m2-all-theme.scss +27 -0
- package/lib/http/http.module.d.ts +1 -2
- package/lib/layout/{_layout-theme.scss → _m2-layout-theme.scss} +11 -10
- package/package.json +3 -3
|
@@ -195,4 +195,4 @@ export class DisableProvider {
|
|
|
195
195
|
return childColumns;
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZGlzYWJsZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQU9KO0lBQStCO0lBTG5EOzs7O09BSUc7SUFDSCxZQUFvQixhQUFxQixFQUFVLFlBQW9DO1FBQW5FLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXdCO0lBQUksQ0FBQztJQUU1Rjs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsZ0JBQTJCO1FBQy9DLDJDQUEyQztRQUMzQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsZ0RBQWdEO1FBQ2hELElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFO1lBQ3pCLDREQUE0RDtZQUM1RCxLQUFLLElBQUksV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUNuRSxzRUFBc0U7Z0JBQ3RFLElBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFFBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksZ0JBQWdCLEVBQUU7b0JBQzVFLHdFQUF3RTtvQkFDeEUsT0FBTyxHQUFHLFdBQVcs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WSxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE1PREVMX0lOU1RBTkNFLCBSWENPREUgfSBmcm9tIFwiLi4vY29uc3QvYXBwLmNvbnN0XCI7XHJcbmltcG9ydCB7IE9CSkVDVF9QUk9QRVJUWSB9IGZyb20gXCIuLi9jb25zdC92YWxpZGF0b3IuY29uc3RcIjtcclxuaW1wb3J0IHsgZGVmYXVsdENvbnRhaW5lciB9IGZyb20gXCIuLi9jb3JlL2RlZmF1bHQtY29udGFpbmVyXCI7XHJcbmltcG9ydCB7IEluc3RhbmNlQ29udGFpbmVyIH0gZnJvbSBcIi4uL21vZGVscy9pbnN0YW5jZS1jb250YWluZXJcIjtcclxuaW1wb3J0IHsgQXBwbGljYXRpb25VdGlsIH0gZnJvbSBcIi4uL3V0aWwvYXBwLXV0aWxcIjtcclxuaW1wb3J0IHsgaW5zdGFuY2VQcm92aWRlciB9IGZyb20gXCIuLi91dGlsL2luc3RhbmNlLXByb3ZpZGVyLmZ1bmN0aW9uXCI7XHJcblxyXG4vKipcclxuICogUHJvdmlkZXMgZnVuY3Rpb25hbGl0eSBmb3IgZGlzYWJsaW5nIGZvcm0gY29udHJvbHMgYmFzZWQgb24gZGVjb3JhdG9yIGNvbmZpZ3VyYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRGlzYWJsZVByb3ZpZGVyIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBEaXNhYmxlUHJvdmlkZXIgY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gZGVjb3JhdG9yVHlwZSBUaGUgdHlwZSBvZiBkZWNvcmF0b3IuXHJcbiAgICAgKiBAcGFyYW0gZW50aXR5T2JqZWN0IFRoZSBlbnRpdHkgb2JqZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVjb3JhdG9yLlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRlY29yYXRvclR5cGU6IHN0cmluZywgcHJpdmF0ZSBlbnRpdHlPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0pIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgbmFtZSBvZiB0aGUgZm9ybSBncm91cCBhc3NvY2lhdGVkIHdpdGggdGhlIHByb3ZpZGVkIGZvcm0gY29udHJvbC5cclxuICAgICAqIEBwYXJhbSBjdXJyZW50Rm9ybUdyb3VwIFRoZSBjdXJyZW50IGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgbmFtZSBvZiB0aGUgZm9ybSBncm91cC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEZvcm1Hcm91cE5hbWUoY3VycmVudEZvcm1Hcm91cDogRm9ybUdyb3VwKTogc3RyaW5nIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGtleU5hbWUgYXMgYW4gZW1wdHkgc3RyaW5nICovXHJcbiAgICAgICAgbGV0IGtleU5hbWUgPSAnJztcclxuXHJcbiAgICAgICAgLyogQ2hlY2sgaWYgdGhlIGN1cnJlbnRGb3JtR3JvdXAgaGFzIGEgcGFyZW50ICovXHJcbiAgICAgICAgaWYgKGN1cnJlbnRGb3JtR3JvdXAucGFyZW50KSB7XHJcbiAgICAgICAgICAgIC8qIEl0ZXJhdGUgb3ZlciB0aGUgY29udHJvbCBuYW1lcyBvZiB0aGUgcGFyZW50IEZvcm1Hcm91cCAqL1xyXG4gICAgICAgICAgICBmb3IgKHZhciBjb250cm9sTmFtZSBvZiBPYmplY3Qua2V5cyhjdXJyZW50Rm9ybUdyb3VwLnBhcmVudC5jb250cm9scykpIHtcclxuICAgICAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjdXJyZW50IGNvbnRyb2wgaXMgdGhlIHNhbWUgYXMgdGhlIGN1cnJlbnRGb3JtR3JvdXAgKi9cclxuICAgICAgICAgICAgICAgIGlmICgoY3VycmVudEZvcm1Hcm91cC5wYXJlbnQuY29udHJvbHMgYXMgYW55KVtjb250cm9sTmFtZV0gPT0gY3VycmVudEZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIElmIGl0IG1hdGNoZXMsIGFzc2lnbiB0aGUgY29udHJvbE5hbWUgdG8ga2V5TmFtZSBhbmQgZXhpdCB0aGUgbG9vcCAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGtleU5hbWUgPSBjb250cm9sTmFtZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmV0dXJuIHRoZSBrZXlOYW1lICovXHJcbiAgICAgICAgcmV0dXJuIGtleU5hbWU7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIGRpc2FibGluZyBiYXNlZCBvbiB6ZXJvIGFyZ3VtZW50cy5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIFRoZSBmb3JtIGNvbnRyb2wuXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uTmFtZSBUaGUgbmFtZSBvZiB0aGUgY29sdW1uLlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGlzYWJsZWQgY29sdW1ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHplcm9Bcmd1bWVudFByb2Nlc3MoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBjb2x1bW5OYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGRpc2FibGVkQ29sdW1ucyBhcnJheSAqL1xyXG4gICAgICAgIGxldCBkaXNhYmxlZENvbHVtbnM6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIC8qIEFkZCBkaXNhYmxlZCBjb2x1bW5zIGZyb20gdGhlIHBhcmVudCBGb3JtR3JvdXAgKi9cclxuICAgICAgICB0aGlzLmdldERpc2FibGVkQ29sdW1ucyg8Rm9ybUdyb3VwPmNvbnRyb2wucGFyZW50LCBgJHtjb2x1bW5OYW1lfSR7UlhDT0RFfTBgLCBmYWxzZSkuZm9yRWFjaCh0ID0+IGRpc2FibGVkQ29sdW1ucy5wdXNoKHQpKTtcclxuXHJcbiAgICAgICAgLyogR2V0IHRoZSB0b3AgY29udHJvbCBwYXRoICovXHJcbiAgICAgICAgbGV0IHBhdGggPSB0aGlzLnRvcENvbnRyb2xQYXRoKGNvbnRyb2wsIGNvbHVtbk5hbWUpO1xyXG5cclxuICAgICAgICAvKiBTcGxpdCB0aGUgcGF0aCBpbnRvIHNlZ21lbnRzICovXHJcbiAgICAgICAgbGV0IHNwbGl0UGF0aCA9IHBhdGguc3BsaXQoXCIuXCIpO1xyXG5cclxuICAgICAgICAvKiBDaGVjayBpZiB0aGUgcGF0aCBoYXMgbXVsdGlwbGUgc2VnbWVudHMgKi9cclxuICAgICAgICBpZiAoc3BsaXRQYXRoLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgLyogR2V0IHRoZSByb290IGZvcm0gZ3JvdXAgKi9cclxuICAgICAgICAgICAgbGV0IHJvb3RGb3JtR3JvdXAgPSBBcHBsaWNhdGlvblV0aWwuZ2V0Um9vdEZvcm1Hcm91cChjb250cm9sKTtcclxuXHJcbiAgICAgICAgICAgIC8qIEFkZCBkaXNhYmxlZCBjb2x1bW5zIGZyb20gdGhlIHJvb3QgZm9ybSBncm91cCAqL1xyXG4gICAgICAgICAgICB0aGlzLmdldERpc2FibGVkQ29sdW1ucyhyb290Rm9ybUdyb3VwLCBgJHtwYXRofSR7UlhDT0RFfTBgLCB0cnVlKS5mb3JFYWNoKHQgPT4gZGlzYWJsZWRDb2x1bW5zLnB1c2godCkpO1xyXG5cclxuICAgICAgICAgICAgLyogSW5pdGlhbGl6ZSBjb250cm9sUGF0aCAqL1xyXG4gICAgICAgICAgICBsZXQgY29udHJvbFBhdGg6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgICAgICAgICAgLyogSXRlcmF0ZSB0aHJvdWdoIHRoZSBzZWdtZW50cyBvZiB0aGUgcGF0aCAqL1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNwbGl0UGF0aC5sZW5ndGggLSAyOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxldCBjb250cm9sTmFtZSA9IHNwbGl0UGF0aFtpXTtcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBVcGRhdGUgY29udHJvbFBhdGggKi9cclxuICAgICAgICAgICAgICAgIGNvbnRyb2xQYXRoID0gYCR7cGF0aC5yZXBsYWNlKGAke2NvbnRyb2xOYW1lfS5gLCAnJyl9JHtSWENPREV9LTBgO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjb250cm9sIGV4aXN0cyBpbiB0aGUgcm9vdCBmb3JtIGdyb3VwICovXHJcbiAgICAgICAgICAgICAgICBpZiAocm9vdEZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAvKiBBZGQgZGlzYWJsZWQgY29sdW1ucyBmcm9tIHRoZSBjb250cm9sICovXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXREaXNhYmxlZENvbHVtbnMoPEZvcm1Hcm91cD5yb290Rm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXSwgY29udHJvbFBhdGgsIHRydWUsIGNvbnRyb2xOYW1lKS5mb3JFYWNoKHQgPT4gZGlzYWJsZWRDb2x1bW5zLnB1c2godCkpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAvKiBVcGRhdGUgcm9vdEZvcm1Hcm91cCAqL1xyXG4gICAgICAgICAgICAgICAgICAgIHJvb3RGb3JtR3JvdXAgPSA8Rm9ybUdyb3VwPnJvb3RGb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBSZXR1cm4gdGhlIGRpc2FibGVkQ29sdW1ucyBhcnJheSAqL1xyXG4gICAgICAgIHJldHVybiBkaXNhYmxlZENvbHVtbnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBkaXNhYmxlZCBjb2x1bW5zIGZvciB0aGUgcHJvdmlkZWQgZm9ybSBncm91cC5cclxuICAgICAqIEBwYXJhbSBmb3JtR3JvdXAgVGhlIGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uTmFtZSBUaGUgbmFtZSBvZiB0aGUgY29sdW1uLlxyXG4gICAgICogQHBhcmFtIGlzUm9vdCBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZm9ybSBncm91cCBpcyB0aGUgcm9vdCBmb3JtIGdyb3VwLlxyXG4gICAgICogQHBhcmFtIHBhdGhOYW1lIFRoZSBwYXRoIG5hbWUuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkaXNhYmxlZCBjb2x1bW5zLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldERpc2FibGVkQ29sdW1ucyhmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29sdW1uTmFtZTogc3RyaW5nLCBpc1Jvb3Q6IEJvb2xlYW4sIHBhdGhOYW1lOiBzdHJpbmcgPSBcIlwiKSB7XHJcbiAgICAgICAgLyogQ2hlY2sgaWYgdGhlIGZvcm1Hcm91cCBoYXMgYSBNT0RFTF9JTlNUQU5DRSAqL1xyXG4gICAgICAgIGlmICgoZm9ybUdyb3VwIGFzIGFueSlbTU9ERUxfSU5TVEFOQ0VdKSB7XHJcbiAgICAgICAgICAgIC8qIEdldCB0aGUgaW5zdGFuY2UgY29udGFpbmVyIHVzaW5nIGluc3RhbmNlUHJvdmlkZXIgKi9cclxuICAgICAgICAgICAgbGV0IGluc3RhbmNlQ29udGFpbmVyID0gaW5zdGFuY2VQcm92aWRlcigoZm9ybUdyb3VwIGFzIGFueSlbTU9ERUxfSU5TVEFOQ0VdLmNvbnN0cnVjdG9yLCB0aGlzLmVudGl0eU9iamVjdCk7XHJcblxyXG4gICAgICAgICAgICAvKiBSZXR1cm4gdGhlIHJlc3VsdCBvZiBnZXRDaGFuZ2VEZXRlY3Rpb25Db2x1bW5zICovXHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENoYW5nZURldGVjdGlvbkNvbHVtbnMoaW5zdGFuY2VDb250YWluZXIsIGNvbHVtbk5hbWUsIGlzUm9vdCwgcGF0aE5hbWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogSWYgbm8gTU9ERUxfSU5TVEFOQ0UsIHJldHVybiBhbiBlbXB0eSBhcnJheSAqL1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGNoYW5nZSBkZXRlY3Rpb24gY29sdW1ucyBmb3IgdGhlIHByb3ZpZGVkIGluc3RhbmNlIGNvbnRhaW5lci5cclxuICAgICAqIEBwYXJhbSBpbnN0YW5jZUNvbnRhaW5lciBUaGUgaW5zdGFuY2UgY29udGFpbmVyLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cclxuICAgICAqIEBwYXJhbSBpc1Jvb3QgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZvcm0gZ3JvdXAgaXMgdGhlIHJvb3QgZm9ybSBncm91cC5cclxuICAgICAqIEBwYXJhbSBwYXRoTmFtZSBUaGUgcGF0aCBuYW1lLlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgY2hhbmdlIGRldGVjdGlvbiBjb2x1bW5zLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldENoYW5nZURldGVjdGlvbkNvbHVtbnMoaW5zdGFuY2VDb250YWluZXI6IEluc3RhbmNlQ29udGFpbmVyLCBjb2x1bW5OYW1lOiBzdHJpbmcsIGlzUm9vdDogQm9vbGVhbiwgcGF0aE5hbWU6IHN0cmluZyA9IFwiXCIpIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGFuIGFycmF5IHRvIHN0b3JlIGNvbmRpdGlvbmFsIGRpc2FibGUgY29udHJvbHMgKi9cclxuICAgICAgICBsZXQgY29uZGl0aW9uYWxEaXNhYmxlQ29udHJvbHM6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIC8qIFJldHJpZXZlIGNvbHVtbnMgZnJvbSBpbnN0YW5jZUNvbnRhaW5lciBiYXNlZCBvbiBkZWNvcmF0b3JUeXBlIGFuZCBjb2x1bW5OYW1lICovXHJcbiAgICAgICAgbGV0IGNvbHVtbnMgPSAoaW5zdGFuY2VDb250YWluZXIubm9uVmFsaWRhdGlvbkRlY29yYXRvcnMgYXMgYW55KVt0aGlzLmRlY29yYXRvclR5cGVdLmNoYW5nZURldGVjdGlvbltjb2x1bW5OYW1lXTtcclxuXHJcbiAgICAgICAgLyogQ2hlY2sgaWYgY29sdW1ucyBleGlzdCAqL1xyXG4gICAgICAgIGlmIChjb2x1bW5zKSB7XHJcbiAgICAgICAgICAgIC8qIEl0ZXJhdGUgdGhyb3VnaCBjb2x1bW5zICovXHJcbiAgICAgICAgICAgIGNvbHVtbnMuZm9yRWFjaCgodDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvKiBQdXNoIGNvbnRyb2wgcGF0aCwgY29uZGl0aW9uYWwgZXhwcmVzc2lvbiwgYW5kIGlzUm9vdCBzdGF0dXMgdG8gY29uZGl0aW9uYWxEaXNhYmxlQ29udHJvbHMgKi9cclxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsRGlzYWJsZUNvbnRyb2xzLnB1c2goeyBjb250cm9sUGF0aDogcGF0aE5hbWUgPyBgJHtwYXRoTmFtZX0uJHt0fWAgOiB0LCBjb25kaXRpb25hbEV4cHJlc3Npb246IChpbnN0YW5jZUNvbnRhaW5lci5ub25WYWxpZGF0aW9uRGVjb3JhdG9ycyBhcyBhbnkpW3RoaXMuZGVjb3JhdG9yVHlwZV0uY29uZGl0aW9uYWxFeHByZXNzaW9uc1t0XSwgaXNSb290OiBpc1Jvb3QgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmV0dXJuIHRoZSBhcnJheSBvZiBjb25kaXRpb25hbCBkaXNhYmxlIGNvbnRyb2xzICovXHJcbiAgICAgICAgcmV0dXJuIGNvbmRpdGlvbmFsRGlzYWJsZUNvbnRyb2xzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdG9wIGNvbnRyb2wgcGF0aCBiYXNlZCBvbiB0aGUgZm9ybSBjb250cm9sIGFuZCBjb2x1bW4gbmFtZS5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIFRoZSBmb3JtIGNvbnRyb2wuXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uTmFtZSBUaGUgbmFtZSBvZiB0aGUgY29sdW1uLlxyXG4gICAgICogQHJldHVybnMgVGhlIHRvcCBjb250cm9sIHBhdGguXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdG9wQ29udHJvbFBhdGgoY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgRm9ybUdyb3VwLCBjb2x1bW5OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIC8qIENoZWNrIGlmIHRoZSBjb250cm9sIGhhcyBhIHBhcmVudCAqL1xyXG4gICAgICAgIGlmIChjb250cm9sLnBhcmVudCkge1xyXG4gICAgICAgICAgICAvKiBSZXRyaWV2ZSB0aGUgbmFtZSBvZiB0aGUgcGFyZW50IGZvcm0gZ3JvdXAgKi9cclxuICAgICAgICAgICAgbGV0IG5hbWUgPSB0aGlzLmdldEZvcm1Hcm91cE5hbWUoKDxGb3JtR3JvdXA+Y29udHJvbC5wYXJlbnQpKVxyXG4gICAgICAgICAgICBpZiAobmFtZSkge1xyXG4gICAgICAgICAgICAgICAgLyogQXBwZW5kIHRoZSBjb2x1bW4gbmFtZSB0byB0aGUgcGFyZW50IGZvcm0gZ3JvdXAgbmFtZSAqL1xyXG4gICAgICAgICAgICAgICAgY29sdW1uTmFtZSA9IGAke25hbWV9LiR7Y29sdW1uTmFtZX1gO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIFJlY3Vyc2l2ZWx5IGNhbGwgdGhlIHRvcENvbnRyb2xQYXRoIGZ1bmN0aW9uIHdpdGggdGhlIHBhcmVudCBjb250cm9sIGFuZCB0aGUgdXBkYXRlZCBjb2x1bW4gbmFtZSAqL1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMudG9wQ29udHJvbFBhdGgoY29udHJvbC5wYXJlbnQsIGNvbHVtbk5hbWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gY29sdW1uTmFtZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHJpZXZlcyB0aGUgZGlzYWJsZWQgZXhwcmVzc2lvbnMgZm9yIGNoaWxkIGNvbnRyb2xzIHdpdGhpbiB0aGUgcHJvdmlkZWQgZm9ybSBncm91cC5cclxuICAgICAqIEBwYXJhbSBmb3JtR3JvdXAgVGhlIGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uTmFtZSBUaGUgbmFtZSBvZiB0aGUgY29sdW1uLlxyXG4gICAgICogQHBhcmFtIHBhdGggVGhlIHBhdGggZm9yIHRoZSBjb250cm9scy5cclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGRpc2FibGVkIGV4cHJlc3Npb25zIGZvciBjaGlsZCBjb250cm9scy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoaWxkQ29udHJvbERpc2FibGVkRXhwcmVzc2lvbihmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY29sdW1uTmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcgPSBcIlwiKTogYW55W10ge1xyXG4gICAgICAgIC8qIEluaXRpYWxpemUgYW4gYXJyYXkgdG8gc3RvcmUgZGlzYWJsZWQgY29sdW1ucyAqL1xyXG4gICAgICAgIGxldCBkaXNhYmxlZENvbHVtbnM6IGFueVtdID0gW107XHJcblxyXG4gICAgICAgIC8qIENoZWNrIGlmIHRoZSBmb3JtIGdyb3VwIGhhcyBhIG1vZGVsIGluc3RhbmNlICovXHJcbiAgICAgICAgaWYgKChmb3JtR3JvdXAgYXMgYW55KVtNT0RFTF9JTlNUQU5DRV0pIHtcclxuICAgICAgICAgICAgLyogR2V0IHRoZSBpbnN0YW5jZSBjb250YWluZXIgZm9yIHRoZSBtb2RlbCAqL1xyXG4gICAgICAgICAgICBsZXQgaW5zdGFuY2VDb250YWluZXIgPSBkZWZhdWx0Q29udGFpbmVyLmdldCgoZm9ybUdyb3VwIGFzIGFueSlbTU9ERUxfSU5TVEFOQ0VdLmNvbnN0cnVjdG9yKTtcclxuICAgICAgICAgICAgaWYgKGluc3RhbmNlQ29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBJdGVyYXRlIHRocm91Z2ggdGhlIGNoYW5nZSBkZXRlY3Rpb24gY29sdW1ucyBhbmQgcHVzaCB0aGVtIHRvIHRoZSBkaXNhYmxlZENvbHVtbnMgYXJyYXkgKi9cclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2hhbmdlRGV0ZWN0aW9uQ29sdW1ucyhpbnN0YW5jZUNvbnRhaW5lciwgY29sdW1uTmFtZSwgdHJ1ZSwgcGF0aCkuZm9yRWFjaCh0ID0+IGRpc2FibGVkQ29sdW1ucy5wdXNoKHQpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBGaWx0ZXIgcHJvcGVydGllcyBvZiB0eXBlIE9CSkVDVF9QUk9QRVJUWSAqL1xyXG4gICAgICAgICAgICAgICAgdmFyIHByb3BzID0gaW5zdGFuY2VDb250YWluZXIucHJvcGVydGllcz8uZmlsdGVyKHQgPT4gdC5wcm9wZXJ0eVR5cGUgPT0gT0JKRUNUX1BST1BFUlRZKTtcclxuICAgICAgICAgICAgICAgIHByb3BzPy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBmb3JtIGdyb3VwIGhhcyBjb250cm9scyBmb3IgdGhlIHByb3BlcnR5ICovXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1Hcm91cC5jb250cm9sc1t0Lm5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIEdldCB0aGUgZGlzYWJsZWQgY29sdW1ucyBmb3IgdGhlIG5lc3RlZCBmb3JtIGdyb3VwICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2x1bW5zID0gdGhpcy5nZXREaXNhYmxlZENvbHVtbnMoPEZvcm1Hcm91cD5mb3JtR3JvdXAuY29udHJvbHNbdC5uYW1lXSwgY29sdW1uTmFtZSwgdHJ1ZSwgcGF0aCA/IGAke3BhdGh9LiR7dC5uYW1lfWAgOiBgJHt0Lm5hbWV9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMuZm9yRWFjaCh4ID0+IGRpc2FibGVkQ29sdW1ucy5wdXNoKHgpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIFJlY3Vyc2l2ZWx5IGNhbGwgY2hpbGRDb250cm9sRGlzYWJsZWRFeHByZXNzaW9uIGZvciBuZXN0ZWQgZm9ybSBncm91cHMgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGlsZENvbnRyb2xEaXNhYmxlZEV4cHJlc3Npb24oKDxGb3JtR3JvdXA+Zm9ybUdyb3VwLmNvbnRyb2xzW3QubmFtZV0pLCBjb2x1bW5OYW1lLCBwYXRoID8gYCR7cGF0aH0uJHt0Lm5hbWV9YCA6IGAke3QubmFtZX1gKS5mb3JFYWNoKHkgPT4gZGlzYWJsZWRDb2x1bW5zLnB1c2goeSkpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFJldHVybiB0aGUgYXJyYXkgb2YgZGlzYWJsZWQgY29sdW1ucyAqL1xyXG4gICAgICAgIHJldHVybiBkaXNhYmxlZENvbHVtbnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgZGlzYWJsaW5nIGJhc2VkIG9uIG9uZSBhcmd1bWVudC5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIFRoZSBmb3JtIGNvbnRyb2wgb3IgZm9ybSBncm91cC5cclxuICAgICAqIEBwYXJhbSBjb2x1bW5OYW1lIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4uXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkaXNhYmxlZCBjb2x1bW5zLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25lQXJndW1lbnRQcm9jZXNzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IEZvcm1Hcm91cCwgY29sdW1uTmFtZTogc3RyaW5nKTogYW55W10ge1xyXG4gICAgICAgIC8qIEdldCB0aGUgdG9wIGNvbnRyb2wgcGF0aCAqL1xyXG4gICAgICAgIGxldCBwYXRoID0gdGhpcy50b3BDb250cm9sUGF0aChjb250cm9sLCBjb2x1bW5OYW1lKTtcclxuXHJcbiAgICAgICAgLyogR2V0IHRoZSByb290IGZvcm0gZ3JvdXAgKi9cclxuICAgICAgICBsZXQgcm9vdEZvcm1Hcm91cCA9IEFwcGxpY2F0aW9uVXRpbC5nZXRSb290Rm9ybUdyb3VwKGNvbnRyb2wpO1xyXG5cclxuICAgICAgICAvKiBHZXQgdGhlIGNoaWxkIGNvbHVtbnMgKi9cclxuICAgICAgICBsZXQgY2hpbGRDb2x1bW5zID0gdGhpcy5jaGlsZENvbnRyb2xEaXNhYmxlZEV4cHJlc3Npb24ocm9vdEZvcm1Hcm91cCwgcGF0aCk7XHJcblxyXG4gICAgICAgIC8qIFJldHVybiB0aGUgY2hpbGQgY29sdW1ucyAqL1xyXG4gICAgICAgIHJldHVybiBjaGlsZENvbHVtbnM7XHJcbiAgICB9XHJcbn0iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZS1wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZGlzYWJsZS1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQU9KO0lBQStCO0lBTG5EOzs7O09BSUc7SUFDSCxZQUFvQixhQUFxQixFQUFVLFlBQW9DO1FBQW5FLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXdCO0lBQUksQ0FBQztJQUU1Rjs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsZ0JBQTJCO1FBQy9DLDJDQUEyQztRQUMzQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsZ0RBQWdEO1FBQ2hELElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsNERBQTREO1lBQzVELEtBQUssSUFBSSxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDcEUsc0VBQXNFO2dCQUN0RSxJQUFLLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLGdCQUFnQixFQUFFLENBQUM7b0JBQzdFLHdFQUF3RTtvQkFDeEUs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QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlELDJCQUEyQjtRQUMzQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTVFLDhCQUE4QjtRQUM5QixPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNT0RFTF9JTlNUQU5DRSwgUlhDT0RFIH0gZnJvbSBcIi4uL2NvbnN0L2FwcC5jb25zdFwiO1xyXG5pbXBvcnQgeyBPQkpFQ1RfUFJPUEVSVFkgfSBmcm9tIFwiLi4vY29uc3QvdmFsaWRhdG9yLmNvbnN0XCI7XHJcbmltcG9ydCB7IGRlZmF1bHRDb250YWluZXIgfSBmcm9tIFwiLi4vY29yZS9kZWZhdWx0LWNvbnRhaW5lclwiO1xyXG5pbXBvcnQgeyBJbnN0YW5jZUNvbnRhaW5lciB9IGZyb20gXCIuLi9tb2RlbHMvaW5zdGFuY2UtY29udGFpbmVyXCI7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uVXRpbCB9IGZyb20gXCIuLi91dGlsL2FwcC11dGlsXCI7XHJcbmltcG9ydCB7IGluc3RhbmNlUHJvdmlkZXIgfSBmcm9tIFwiLi4vdXRpbC9pbnN0YW5jZS1wcm92aWRlci5mdW5jdGlvblwiO1xyXG5cclxuLyoqXHJcbiAqIFByb3ZpZGVzIGZ1bmN0aW9uYWxpdHkgZm9yIGRpc2FibGluZyBmb3JtIGNvbnRyb2xzIGJhc2VkIG9uIGRlY29yYXRvciBjb25maWd1cmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIERpc2FibGVQcm92aWRlciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgRGlzYWJsZVByb3ZpZGVyIGNsYXNzLlxyXG4gICAgICogQHBhcmFtIGRlY29yYXRvclR5cGUgVGhlIHR5cGUgb2YgZGVjb3JhdG9yLlxyXG4gICAgICogQHBhcmFtIGVudGl0eU9iamVjdCBUaGUgZW50aXR5IG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGRlY29yYXRvci5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNvcmF0b3JUeXBlOiBzdHJpbmcsIHByaXZhdGUgZW50aXR5T2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIG5hbWUgb2YgdGhlIGZvcm0gZ3JvdXAgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm92aWRlZCBmb3JtIGNvbnRyb2wuXHJcbiAgICAgKiBAcGFyYW0gY3VycmVudEZvcm1Hcm91cCBUaGUgY3VycmVudCBmb3JtIGdyb3VwLlxyXG4gICAgICogQHJldHVybnMgVGhlIG5hbWUgb2YgdGhlIGZvcm0gZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGb3JtR3JvdXBOYW1lKGN1cnJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cCk6IHN0cmluZyB7XHJcbiAgICAgICAgLyogSW5pdGlhbGl6ZSBrZXlOYW1lIGFzIGFuIGVtcHR5IHN0cmluZyAqL1xyXG4gICAgICAgIGxldCBrZXlOYW1lID0gJyc7XHJcblxyXG4gICAgICAgIC8qIENoZWNrIGlmIHRoZSBjdXJyZW50Rm9ybUdyb3VwIGhhcyBhIHBhcmVudCAqL1xyXG4gICAgICAgIGlmIChjdXJyZW50Rm9ybUdyb3VwLnBhcmVudCkge1xyXG4gICAgICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIGNvbnRyb2wgbmFtZXMgb2YgdGhlIHBhcmVudCBGb3JtR3JvdXAgKi9cclxuICAgICAgICAgICAgZm9yICh2YXIgY29udHJvbE5hbWUgb2YgT2JqZWN0LmtleXMoY3VycmVudEZvcm1Hcm91cC5wYXJlbnQuY29udHJvbHMpKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY3VycmVudCBjb250cm9sIGlzIHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50Rm9ybUdyb3VwICovXHJcbiAgICAgICAgICAgICAgICBpZiAoKGN1cnJlbnRGb3JtR3JvdXAucGFyZW50LmNvbnRyb2xzIGFzIGFueSlbY29udHJvbE5hbWVdID09IGN1cnJlbnRGb3JtR3JvdXApIHtcclxuICAgICAgICAgICAgICAgICAgICAvKiBJZiBpdCBtYXRjaGVzLCBhc3NpZ24gdGhlIGNvbnRyb2xOYW1lIHRvIGtleU5hbWUgYW5kIGV4aXQgdGhlIGxvb3AgKi9cclxuICAgICAgICAgICAgICAgICAgICBrZXlOYW1lID0gY29udHJvbE5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFJldHVybiB0aGUga2V5TmFtZSAqL1xyXG4gICAgICAgIHJldHVybiBrZXlOYW1lO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyBkaXNhYmxpbmcgYmFzZWQgb24gemVybyBhcmd1bWVudHMuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBUaGUgZm9ybSBjb250cm9sLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGRpc2FibGVkIGNvbHVtbnMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB6ZXJvQXJndW1lbnRQcm9jZXNzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgY29sdW1uTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogSW5pdGlhbGl6ZSBkaXNhYmxlZENvbHVtbnMgYXJyYXkgKi9cclxuICAgICAgICBsZXQgZGlzYWJsZWRDb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICAvKiBBZGQgZGlzYWJsZWQgY29sdW1ucyBmcm9tIHRoZSBwYXJlbnQgRm9ybUdyb3VwICovXHJcbiAgICAgICAgdGhpcy5nZXREaXNhYmxlZENvbHVtbnMoPEZvcm1Hcm91cD5jb250cm9sLnBhcmVudCwgYCR7Y29sdW1uTmFtZX0ke1JYQ09ERX0wYCwgZmFsc2UpLmZvckVhY2godCA9PiBkaXNhYmxlZENvbHVtbnMucHVzaCh0KSk7XHJcblxyXG4gICAgICAgIC8qIEdldCB0aGUgdG9wIGNvbnRyb2wgcGF0aCAqL1xyXG4gICAgICAgIGxldCBwYXRoID0gdGhpcy50b3BDb250cm9sUGF0aChjb250cm9sLCBjb2x1bW5OYW1lKTtcclxuXHJcbiAgICAgICAgLyogU3BsaXQgdGhlIHBhdGggaW50byBzZWdtZW50cyAqL1xyXG4gICAgICAgIGxldCBzcGxpdFBhdGggPSBwYXRoLnNwbGl0KFwiLlwiKTtcclxuXHJcbiAgICAgICAgLyogQ2hlY2sgaWYgdGhlIHBhdGggaGFzIG11bHRpcGxlIHNlZ21lbnRzICovXHJcbiAgICAgICAgaWYgKHNwbGl0UGF0aC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgIC8qIEdldCB0aGUgcm9vdCBmb3JtIGdyb3VwICovXHJcbiAgICAgICAgICAgIGxldCByb290Rm9ybUdyb3VwID0gQXBwbGljYXRpb25VdGlsLmdldFJvb3RGb3JtR3JvdXAoY29udHJvbCk7XHJcblxyXG4gICAgICAgICAgICAvKiBBZGQgZGlzYWJsZWQgY29sdW1ucyBmcm9tIHRoZSByb290IGZvcm0gZ3JvdXAgKi9cclxuICAgICAgICAgICAgdGhpcy5nZXREaXNhYmxlZENvbHVtbnMocm9vdEZvcm1Hcm91cCwgYCR7cGF0aH0ke1JYQ09ERX0wYCwgdHJ1ZSkuZm9yRWFjaCh0ID0+IGRpc2FibGVkQ29sdW1ucy5wdXNoKHQpKTtcclxuXHJcbiAgICAgICAgICAgIC8qIEluaXRpYWxpemUgY29udHJvbFBhdGggKi9cclxuICAgICAgICAgICAgbGV0IGNvbnRyb2xQYXRoOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAgICAgICAgIC8qIEl0ZXJhdGUgdGhyb3VnaCB0aGUgc2VnbWVudHMgb2YgdGhlIHBhdGggKi9cclxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzcGxpdFBhdGgubGVuZ3RoIC0gMjsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgY29udHJvbE5hbWUgPSBzcGxpdFBhdGhbaV07XHJcblxyXG4gICAgICAgICAgICAgICAgLyogVXBkYXRlIGNvbnRyb2xQYXRoICovXHJcbiAgICAgICAgICAgICAgICBjb250cm9sUGF0aCA9IGAke3BhdGgucmVwbGFjZShgJHtjb250cm9sTmFtZX0uYCwgJycpfSR7UlhDT0RFfS0wYDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY29udHJvbCBleGlzdHMgaW4gdGhlIHJvb3QgZm9ybSBncm91cCAqL1xyXG4gICAgICAgICAgICAgICAgaWYgKHJvb3RGb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLyogQWRkIGRpc2FibGVkIGNvbHVtbnMgZnJvbSB0aGUgY29udHJvbCAqL1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RGlzYWJsZWRDb2x1bW5zKDxGb3JtR3JvdXA+cm9vdEZvcm1Hcm91cC5jb250cm9sc1tjb250cm9sTmFtZV0sIGNvbnRyb2xQYXRoLCB0cnVlLCBjb250cm9sTmFtZSkuZm9yRWFjaCh0ID0+IGRpc2FibGVkQ29sdW1ucy5wdXNoKHQpKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLyogVXBkYXRlIHJvb3RGb3JtR3JvdXAgKi9cclxuICAgICAgICAgICAgICAgICAgICByb290Rm9ybUdyb3VwID0gPEZvcm1Hcm91cD5yb290Rm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmV0dXJuIHRoZSBkaXNhYmxlZENvbHVtbnMgYXJyYXkgKi9cclxuICAgICAgICByZXR1cm4gZGlzYWJsZWRDb2x1bW5zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgZGlzYWJsZWQgY29sdW1ucyBmb3IgdGhlIHByb3ZpZGVkIGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gZm9ybUdyb3VwIFRoZSBmb3JtIGdyb3VwLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cclxuICAgICAqIEBwYXJhbSBpc1Jvb3QgSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZvcm0gZ3JvdXAgaXMgdGhlIHJvb3QgZm9ybSBncm91cC5cclxuICAgICAqIEBwYXJhbSBwYXRoTmFtZSBUaGUgcGF0aCBuYW1lLlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGlzYWJsZWQgY29sdW1ucy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXREaXNhYmxlZENvbHVtbnMoZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbHVtbk5hbWU6IHN0cmluZywgaXNSb290OiBCb29sZWFuLCBwYXRoTmFtZTogc3RyaW5nID0gXCJcIikge1xyXG4gICAgICAgIC8qIENoZWNrIGlmIHRoZSBmb3JtR3JvdXAgaGFzIGEgTU9ERUxfSU5TVEFOQ0UgKi9cclxuICAgICAgICBpZiAoKGZvcm1Hcm91cCBhcyBhbnkpW01PREVMX0lOU1RBTkNFXSkge1xyXG4gICAgICAgICAgICAvKiBHZXQgdGhlIGluc3RhbmNlIGNvbnRhaW5lciB1c2luZyBpbnN0YW5jZVByb3ZpZGVyICovXHJcbiAgICAgICAgICAgIGxldCBpbnN0YW5jZUNvbnRhaW5lciA9IGluc3RhbmNlUHJvdmlkZXIoKGZvcm1Hcm91cCBhcyBhbnkpW01PREVMX0lOU1RBTkNFXS5jb25zdHJ1Y3RvciwgdGhpcy5lbnRpdHlPYmplY3QpO1xyXG5cclxuICAgICAgICAgICAgLyogUmV0dXJuIHRoZSByZXN1bHQgb2YgZ2V0Q2hhbmdlRGV0ZWN0aW9uQ29sdW1ucyAqL1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDaGFuZ2VEZXRlY3Rpb25Db2x1bW5zKGluc3RhbmNlQ29udGFpbmVyLCBjb2x1bW5OYW1lLCBpc1Jvb3QsIHBhdGhOYW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIElmIG5vIE1PREVMX0lOU1RBTkNFLCByZXR1cm4gYW4gZW1wdHkgYXJyYXkgKi9cclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIGNvbHVtbnMgZm9yIHRoZSBwcm92aWRlZCBpbnN0YW5jZSBjb250YWluZXIuXHJcbiAgICAgKiBAcGFyYW0gaW5zdGFuY2VDb250YWluZXIgVGhlIGluc3RhbmNlIGNvbnRhaW5lci5cclxuICAgICAqIEBwYXJhbSBjb2x1bW5OYW1lIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4uXHJcbiAgICAgKiBAcGFyYW0gaXNSb290IEluZGljYXRlcyB3aGV0aGVyIHRoZSBmb3JtIGdyb3VwIGlzIHRoZSByb290IGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gcGF0aE5hbWUgVGhlIHBhdGggbmFtZS5cclxuICAgICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGNoYW5nZSBkZXRlY3Rpb24gY29sdW1ucy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRDaGFuZ2VEZXRlY3Rpb25Db2x1bW5zKGluc3RhbmNlQ29udGFpbmVyOiBJbnN0YW5jZUNvbnRhaW5lciwgY29sdW1uTmFtZTogc3RyaW5nLCBpc1Jvb3Q6IEJvb2xlYW4sIHBhdGhOYW1lOiBzdHJpbmcgPSBcIlwiKSB7XHJcbiAgICAgICAgLyogSW5pdGlhbGl6ZSBhbiBhcnJheSB0byBzdG9yZSBjb25kaXRpb25hbCBkaXNhYmxlIGNvbnRyb2xzICovXHJcbiAgICAgICAgbGV0IGNvbmRpdGlvbmFsRGlzYWJsZUNvbnRyb2xzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICAvKiBSZXRyaWV2ZSBjb2x1bW5zIGZyb20gaW5zdGFuY2VDb250YWluZXIgYmFzZWQgb24gZGVjb3JhdG9yVHlwZSBhbmQgY29sdW1uTmFtZSAqL1xyXG4gICAgICAgIGxldCBjb2x1bW5zID0gKGluc3RhbmNlQ29udGFpbmVyLm5vblZhbGlkYXRpb25EZWNvcmF0b3JzIGFzIGFueSlbdGhpcy5kZWNvcmF0b3JUeXBlXS5jaGFuZ2VEZXRlY3Rpb25bY29sdW1uTmFtZV07XHJcblxyXG4gICAgICAgIC8qIENoZWNrIGlmIGNvbHVtbnMgZXhpc3QgKi9cclxuICAgICAgICBpZiAoY29sdW1ucykge1xyXG4gICAgICAgICAgICAvKiBJdGVyYXRlIHRocm91Z2ggY29sdW1ucyAqL1xyXG4gICAgICAgICAgICBjb2x1bW5zLmZvckVhY2goKHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLyogUHVzaCBjb250cm9sIHBhdGgsIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24sIGFuZCBpc1Jvb3Qgc3RhdHVzIHRvIGNvbmRpdGlvbmFsRGlzYWJsZUNvbnRyb2xzICovXHJcbiAgICAgICAgICAgICAgICBjb25kaXRpb25hbERpc2FibGVDb250cm9scy5wdXNoKHsgY29udHJvbFBhdGg6IHBhdGhOYW1lID8gYCR7cGF0aE5hbWV9LiR7dH1gIDogdCwgY29uZGl0aW9uYWxFeHByZXNzaW9uOiAoaW5zdGFuY2VDb250YWluZXIubm9uVmFsaWRhdGlvbkRlY29yYXRvcnMgYXMgYW55KVt0aGlzLmRlY29yYXRvclR5cGVdLmNvbmRpdGlvbmFsRXhwcmVzc2lvbnNbdF0sIGlzUm9vdDogaXNSb290IH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFJldHVybiB0aGUgYXJyYXkgb2YgY29uZGl0aW9uYWwgZGlzYWJsZSBjb250cm9scyAqL1xyXG4gICAgICAgIHJldHVybiBjb25kaXRpb25hbERpc2FibGVDb250cm9scztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHRvcCBjb250cm9sIHBhdGggYmFzZWQgb24gdGhlIGZvcm0gY29udHJvbCBhbmQgY29sdW1uIG5hbWUuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBUaGUgZm9ybSBjb250cm9sLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cclxuICAgICAqIEByZXR1cm5zIFRoZSB0b3AgY29udHJvbCBwYXRoLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHRvcENvbnRyb2xQYXRoKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IEZvcm1Hcm91cCwgY29sdW1uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICAvKiBDaGVjayBpZiB0aGUgY29udHJvbCBoYXMgYSBwYXJlbnQgKi9cclxuICAgICAgICBpZiAoY29udHJvbC5wYXJlbnQpIHtcclxuICAgICAgICAgICAgLyogUmV0cmlldmUgdGhlIG5hbWUgb2YgdGhlIHBhcmVudCBmb3JtIGdyb3VwICovXHJcbiAgICAgICAgICAgIGxldCBuYW1lID0gdGhpcy5nZXRGb3JtR3JvdXBOYW1lKCg8Rm9ybUdyb3VwPmNvbnRyb2wucGFyZW50KSlcclxuICAgICAgICAgICAgaWYgKG5hbWUpIHtcclxuICAgICAgICAgICAgICAgIC8qIEFwcGVuZCB0aGUgY29sdW1uIG5hbWUgdG8gdGhlIHBhcmVudCBmb3JtIGdyb3VwIG5hbWUgKi9cclxuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWUgPSBgJHtuYW1lfS4ke2NvbHVtbk5hbWV9YDtcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBSZWN1cnNpdmVseSBjYWxsIHRoZSB0b3BDb250cm9sUGF0aCBmdW5jdGlvbiB3aXRoIHRoZSBwYXJlbnQgY29udHJvbCBhbmQgdGhlIHVwZGF0ZWQgY29sdW1uIG5hbWUgKi9cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvcENvbnRyb2xQYXRoKGNvbnRyb2wucGFyZW50LCBjb2x1bW5OYW1lKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGNvbHVtbk5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXRyaWV2ZXMgdGhlIGRpc2FibGVkIGV4cHJlc3Npb25zIGZvciBjaGlsZCBjb250cm9scyB3aXRoaW4gdGhlIHByb3ZpZGVkIGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gZm9ybUdyb3VwIFRoZSBmb3JtIGdyb3VwLlxyXG4gICAgICogQHBhcmFtIGNvbHVtbk5hbWUgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbi5cclxuICAgICAqIEBwYXJhbSBwYXRoIFRoZSBwYXRoIGZvciB0aGUgY29udHJvbHMuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBhcnJheSBvZiBkaXNhYmxlZCBleHByZXNzaW9ucyBmb3IgY2hpbGQgY29udHJvbHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjaGlsZENvbnRyb2xEaXNhYmxlZEV4cHJlc3Npb24oZm9ybUdyb3VwOiBGb3JtR3JvdXAsIGNvbHVtbk5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nID0gXCJcIik6IGFueVtdIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGFuIGFycmF5IHRvIHN0b3JlIGRpc2FibGVkIGNvbHVtbnMgKi9cclxuICAgICAgICBsZXQgZGlzYWJsZWRDb2x1bW5zOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgICAgICAvKiBDaGVjayBpZiB0aGUgZm9ybSBncm91cCBoYXMgYSBtb2RlbCBpbnN0YW5jZSAqL1xyXG4gICAgICAgIGlmICgoZm9ybUdyb3VwIGFzIGFueSlbTU9ERUxfSU5TVEFOQ0VdKSB7XHJcbiAgICAgICAgICAgIC8qIEdldCB0aGUgaW5zdGFuY2UgY29udGFpbmVyIGZvciB0aGUgbW9kZWwgKi9cclxuICAgICAgICAgICAgbGV0IGluc3RhbmNlQ29udGFpbmVyID0gZGVmYXVsdENvbnRhaW5lci5nZXQoKGZvcm1Hcm91cCBhcyBhbnkpW01PREVMX0lOU1RBTkNFXS5jb25zdHJ1Y3Rvcik7XHJcbiAgICAgICAgICAgIGlmIChpbnN0YW5jZUNvbnRhaW5lcikge1xyXG4gICAgICAgICAgICAgICAgLyogSXRlcmF0ZSB0aHJvdWdoIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIGNvbHVtbnMgYW5kIHB1c2ggdGhlbSB0byB0aGUgZGlzYWJsZWRDb2x1bW5zIGFycmF5ICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENoYW5nZURldGVjdGlvbkNvbHVtbnMoaW5zdGFuY2VDb250YWluZXIsIGNvbHVtbk5hbWUsIHRydWUsIHBhdGgpLmZvckVhY2godCA9PiBkaXNhYmxlZENvbHVtbnMucHVzaCh0KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogRmlsdGVyIHByb3BlcnRpZXMgb2YgdHlwZSBPQkpFQ1RfUFJPUEVSVFkgKi9cclxuICAgICAgICAgICAgICAgIHZhciBwcm9wcyA9IGluc3RhbmNlQ29udGFpbmVyLnByb3BlcnRpZXM/LmZpbHRlcih0ID0+IHQucHJvcGVydHlUeXBlID09IE9CSkVDVF9QUk9QRVJUWSk7XHJcbiAgICAgICAgICAgICAgICBwcm9wcz8uZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgZm9ybSBncm91cCBoYXMgY29udHJvbHMgZm9yIHRoZSBwcm9wZXJ0eSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChmb3JtR3JvdXAuY29udHJvbHNbdC5uYW1lXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBHZXQgdGhlIGRpc2FibGVkIGNvbHVtbnMgZm9yIHRoZSBuZXN0ZWQgZm9ybSBncm91cCAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1ucyA9IHRoaXMuZ2V0RGlzYWJsZWRDb2x1bW5zKDxGb3JtR3JvdXA+Zm9ybUdyb3VwLmNvbnRyb2xzW3QubmFtZV0sIGNvbHVtbk5hbWUsIHRydWUsIHBhdGggPyBgJHtwYXRofS4ke3QubmFtZX1gIDogYCR7dC5uYW1lfWApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zLmZvckVhY2goeCA9PiBkaXNhYmxlZENvbHVtbnMucHVzaCh4KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBSZWN1cnNpdmVseSBjYWxsIGNoaWxkQ29udHJvbERpc2FibGVkRXhwcmVzc2lvbiBmb3IgbmVzdGVkIGZvcm0gZ3JvdXBzICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hpbGRDb250cm9sRGlzYWJsZWRFeHByZXNzaW9uKCg8Rm9ybUdyb3VwPmZvcm1Hcm91cC5jb250cm9sc1t0Lm5hbWVdKSwgY29sdW1uTmFtZSwgcGF0aCA/IGAke3BhdGh9LiR7dC5uYW1lfWAgOiBgJHt0Lm5hbWV9YCkuZm9yRWFjaCh5ID0+IGRpc2FibGVkQ29sdW1ucy5wdXNoKHkpKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBSZXR1cm4gdGhlIGFycmF5IG9mIGRpc2FibGVkIGNvbHVtbnMgKi9cclxuICAgICAgICByZXR1cm4gZGlzYWJsZWRDb2x1bW5zO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIGRpc2FibGluZyBiYXNlZCBvbiBvbmUgYXJndW1lbnQuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBUaGUgZm9ybSBjb250cm9sIG9yIGZvcm0gZ3JvdXAuXHJcbiAgICAgKiBAcGFyYW0gY29sdW1uTmFtZSBUaGUgbmFtZSBvZiB0aGUgY29sdW1uLlxyXG4gICAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGlzYWJsZWQgY29sdW1ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uZUFyZ3VtZW50UHJvY2Vzcyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBGb3JtR3JvdXAsIGNvbHVtbk5hbWU6IHN0cmluZyk6IGFueVtdIHtcclxuICAgICAgICAvKiBHZXQgdGhlIHRvcCBjb250cm9sIHBhdGggKi9cclxuICAgICAgICBsZXQgcGF0aCA9IHRoaXMudG9wQ29udHJvbFBhdGgoY29udHJvbCwgY29sdW1uTmFtZSk7XHJcblxyXG4gICAgICAgIC8qIEdldCB0aGUgcm9vdCBmb3JtIGdyb3VwICovXHJcbiAgICAgICAgbGV0IHJvb3RGb3JtR3JvdXAgPSBBcHBsaWNhdGlvblV0aWwuZ2V0Um9vdEZvcm1Hcm91cChjb250cm9sKTtcclxuXHJcbiAgICAgICAgLyogR2V0IHRoZSBjaGlsZCBjb2x1bW5zICovXHJcbiAgICAgICAgbGV0IGNoaWxkQ29sdW1ucyA9IHRoaXMuY2hpbGRDb250cm9sRGlzYWJsZWRFeHByZXNzaW9uKHJvb3RGb3JtR3JvdXAsIHBhdGgpO1xyXG5cclxuICAgICAgICAvKiBSZXR1cm4gdGhlIGNoaWxkIGNvbHVtbnMgKi9cclxuICAgICAgICByZXR1cm4gY2hpbGRDb2x1bW5zO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -122,13 +122,13 @@ export class DecimalProvider {
|
|
|
122
122
|
/* Set isSetConfig to true after configuring */
|
|
123
123
|
this.isSetConfig = true;
|
|
124
124
|
}
|
|
125
|
-
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
126
|
-
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
125
|
+
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DecimalProvider, deps: [{ token: i1.DecimalPipe }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
126
|
+
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DecimalProvider });
|
|
127
127
|
}
|
|
128
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
128
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DecimalProvider, decorators: [{
|
|
129
129
|
type: Injectable
|
|
130
130
|
}], ctorParameters: () => [{ type: i1.DecimalPipe }, { type: undefined, decorators: [{
|
|
131
131
|
type: Inject,
|
|
132
132
|
args: [LOCALE_ID]
|
|
133
133
|
}] }] });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvZGVjaW1hbC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRzVELE1BQU0sT0FBTyxlQUFlO0lBMEJKO0lBQXFEO0lBekJ6RTs7T0FFRztJQUNLLGdCQUFnQixHQUFXLEdBQUcsQ0FBQztJQUV2Qzs7T0FFRztJQUNLLGNBQWMsR0FBVyxHQUFHLENBQUM7SUFFckM7O09BRUc7SUFDSyxrQkFBa0IsQ0FBVTtJQUVwQzs7T0FFRztJQUNLLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFckM7Ozs7T0FJRztJQUNILFlBQW9CLFdBQXdCLEVBQTZCLFFBQWdCO1FBQXJFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQTZCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDckYsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRSx1Q0FBdUM7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QztnQkFFaEQsb0RBQW9EO2dCQUNwRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUMzQixnQkFBZ0IsSUFBSSxHQUFHLENBQUM7aUJBQzNCO2FBQ0o7U0FDSjtRQUVELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssaUJBQWlCO1FBQ3JCLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMzRyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVO1FBQ2IsNkNBQTZDO1FBQzdDLElBQUksa0JBQWtCLENBQUMsSUFBSSxFQUFFO1lBQ3pCLDZEQUE2RDtZQUM3RCxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2xDLHNEQUFzRDtnQkFDdEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3BEO1lBRUQsdUVBQXVFO1lBQ3ZFLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUM1QyxnRUFBZ0U7Z0JBQ2hFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7YUFDeEU7U0FDSjtRQUVELCtDQUErQztRQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDOzBIQXhJUSxlQUFlLDZDQTBCOEIsU0FBUzs4SEExQnRELGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQTJCd0MsTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjaW1hbFBpcGUsIE51bWJlclN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIExPQ0FMRV9JRCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJMQU5LIH0gZnJvbSBcIi4uLy4uL2NvbnN0XCI7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi91dGlsL3JlYWN0aXZlLWZvcm0tY29uZmlnXCI7XHJcbmltcG9ydCB7IFJlZ2V4VmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdXRpbC9yZWdleC12YWxpZGF0b3InO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGVjaW1hbFByb3ZpZGVyIHtcclxuICAgIC8qKlxyXG4gICAgICogRGVjaW1hbCBzZXBhcmF0b3JcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBkZWNpbWFsU2VwZXJhdG9yOiBzdHJpbmcgPSBcIi5cIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdyb3VwIHNlcGFyYXRvclxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdyb3VwU2VwZXJhdG9yOiBzdHJpbmcgPSBcIixcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbmFsIHZhcmlhYmxlIGZvciBjdXN0b20gZGVjaW1hbCBzeW1ib2xcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhbGxvd0RlY2ltYWxTeW1ib2w/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBjb25maWd1cmF0aW9uIGlzIHNldFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGlzU2V0Q29uZmlnOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmb3IgRGVjaW1hbFByb3ZpZGVyXHJcbiAgICAgKiBAcGFyYW0gZGVjaW1hbFBpcGUgRGVjaW1hbFBpcGVcclxuICAgICAqIEBwYXJhbSBsb2NhbGVJZCBMT0NBTEVfSURcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGRlY2ltYWwgYW5kIGdyb3VwIHNlcGFyYXRvcnMgYmFzZWQgb24gbG9jYWxlICovXHJcbiAgICAgICAgdGhpcy5kZWNpbWFsU2VwZXJhdG9yID0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZUlkLCBOdW1iZXJTeW1ib2wuRGVjaW1hbCk7XHJcbiAgICAgICAgdGhpcy5ncm91cFNlcGVyYXRvciA9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGVJZCwgTnVtYmVyU3ltYm9sLkdyb3VwKTtcclxuXHJcbiAgICAgICAgLyogU2V0IHN5bWJvbHMgaW4gUmVhY3RpdmVGb3JtQ29uZmlnICovXHJcbiAgICAgICAgdGhpcy5zZXRTeW1ib2xJbkNvbmZpZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVwbGFjZXMgdGhlIGRlY2ltYWwgYW5kIGdyb3VwIHNlcGFyYXRvcnMgaW4gdGhlIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byByZXBsYWNlIHNlcGFyYXRvcnMgaW4uXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgd2l0aCByZXBsYWNlZCBzZXBhcmF0b3JzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVwbGFjZXIodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xyXG5cclxuICAgICAgICAvKiBCaW5kIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgaWYgbm90IGFscmVhZHkgc2V0ICovXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzU2V0Q29uZmlnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmluZENvbmZpZygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmVtb3ZlIGdyb3VwIHNlcGFyYXRvcnMgKi9cclxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KHRoaXMuZ3JvdXBTZXBlcmF0b3IpLmpvaW4oQkxBTkspO1xyXG5cclxuICAgICAgICAvKiBSZXBsYWNlIGRlY2ltYWwgc2VwYXJhdG9yIGlmIGFsbG93ZWQgKi9cclxuICAgICAgICBpZiAodGhpcy5hbGxvd0RlY2ltYWxTeW1ib2wpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHRoaXMuZGVjaW1hbFNlcGVyYXRvciwgdGhpcy5hbGxvd0RlY2ltYWxTeW1ib2wpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogQ2hlY2sgZm9yIHplcm8gYWZ0ZXIgZGVjaW1hbCBwb2ludCBhbmQgcmVtb3ZlIGlmIHByZXNlbnQgKi9cclxuICAgICAgICB2YXIgc3BsaXRWYWx1ZSA9IHZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGVyYXRvcik7XHJcbiAgICAgICAgdmFsdWUgPSAoc3BsaXRWYWx1ZS5sZW5ndGggPiAxICYmIHNwbGl0VmFsdWVbMV0gJiYgUmVnZXhWYWxpZGF0b3IuaXNaZXJvKHNwbGl0VmFsdWVbMV0pKSA/IHNwbGl0VmFsdWVbMF0gOiB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhbnNmb3JtcyBhIHZhbHVlIGludG8gYSBmb3JtYXR0ZWQgZGVjaW1hbCBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cclxuICAgICAqIEBwYXJhbSBkaWdpdHNJbmZvIFRoZSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LlxyXG4gICAgICogQHBhcmFtIHBlcnNpc3RaZXJvIFdoZXRoZXIgdG8gcGVyc2lzdCB6ZXJvIGFmdGVyIGRlY2ltYWwgZGlnaXRzLlxyXG4gICAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBkZWNpbWFsIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHRyYW5zRm9ybURlY2ltYWwodmFsdWU6IGFueSwgZGlnaXRzSW5mbzogc3RyaW5nLCBwZXJzaXN0WmVybzogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIC8qIENvbnZlcnQgdmFsdWUgdG8gc3RyaW5nICovXHJcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xyXG5cclxuICAgICAgICAvKiBJZiB2YWx1ZSBpcyBmYWxzeSwgcmV0dXJuIGl0ICovXHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUcmFuc2Zvcm0gdGhlIHZhbHVlIHVzaW5nIERlY2ltYWxQaXBlICovXHJcbiAgICAgICAgbGV0IHRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZS5yZXBsYWNlKFJlYWN0aXZlRm9ybUNvbmZpZy5udW1iZXIuZ3JvdXBTeW1ib2wsIFwiXCIpLnJlcGxhY2UodGhpcy5kZWNpbWFsU2VwZXJhdG9yLCBcIi5cIiksIGRpZ2l0c0luZm8sIHRoaXMubG9jYWxlSWQpO1xyXG5cclxuICAgICAgICAvKiBBZGQgdHJhaWxpbmcgemVyb3MgaWYgcGVyc2lzdFplcm8gaXMgdHJ1ZSAqL1xyXG4gICAgICAgIGlmIChwZXJzaXN0WmVybyAmJiB2YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGVyYXRvcikpIHtcclxuICAgICAgICAgICAgLyogU3BsaXQgdGhlIHRyYW5zZm9ybWVkIHZhbHVlIGJ5IGRlY2ltYWwgcG9pbnQgKi9cclxuICAgICAgICAgICAgbGV0IHNwbGl0VHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1lZFZhbHVlPy5zcGxpdChcIi5cIik7XHJcblxyXG4gICAgICAgICAgICAvKiBTcGxpdCB0aGUgZGlnaXRzSW5mbyBieSBoeXBoZW4gb3IgdXNlIGFuIGVtcHR5IGFycmF5IGlmIGRpZ2l0c0luZm8gaXMgZmFsc3kgKi9cclxuICAgICAgICAgICAgbGV0IHNwbGl0RGlnaXRzSW5mbyA9IGRpZ2l0c0luZm8gPyBkaWdpdHNJbmZvLnNwbGl0KFwiLVwiKSA6IFtdO1xyXG5cclxuICAgICAgICAgICAgLyogRXh0cmFjdCB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBmcm9tIHRoZSBzcGxpdERpZ2l0c0luZm8gKi9cclxuICAgICAgICAgICAgbGV0IGRpZ2l0cyA9IHNwbGl0RGlnaXRzSW5mby5sZW5ndGggPiAxID8gcGFyc2VJbnQoc3BsaXREaWdpdHNJbmZvW3NwbGl0RGlnaXRzSW5mby5sZW5ndGggLSAxXSkgOiAwO1xyXG5cclxuICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlcmUgYXJlIHR3byBwYXJ0cyBhZnRlciBzcGxpdHRpbmcgdGhlIHRyYW5zZm9ybWVkIHZhbHVlLCBkaWdpdHNJbmZvIGlzIG5vdCBlbXB0eSwgZGlnaXRzIGlzIG5vdCAwLCBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0IGlzIG5vdCBlcXVhbCB0byBkaWdpdHMgKi9cclxuICAgICAgICAgICAgaWYgKChzcGxpdFRyYW5zZm9ybWVkPy5sZW5ndGggPz8gMCkgPiAxICYmIHNwbGl0RGlnaXRzSW5mby5sZW5ndGggPiAwICYmIGRpZ2l0cyAhPT0gMCAmJiBzcGxpdFRyYW5zZm9ybWVkIVsxXS5sZW5ndGggIT09IGRpZ2l0cykge1xyXG4gICAgICAgICAgICAgICAgLyogQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGluIGxlbmd0aCAqL1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpZmYgPSBkaWdpdHMgLSBzcGxpdFRyYW5zZm9ybWVkIVsxXS5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogQXBwZW5kIHRyYWlsaW5nIHplcm9zIHRvIHRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSAqL1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWZmOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZFZhbHVlICs9IFwiMFwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGRlY2ltYWwgYW5kIGdyb3VwIHN5bWJvbHMgaW4gdGhlIFJlYWN0aXZlRm9ybUNvbmZpZy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRTeW1ib2xJbkNvbmZpZygpIHtcclxuICAgICAgICBSZWFjdGl2ZUZvcm1Db25maWcubnVtYmVyID0geyBkZWNpbWFsU3ltYm9sOiB0aGlzLmRlY2ltYWxTZXBlcmF0b3IsIGdyb3VwU3ltYm9sOiB0aGlzLmdyb3VwU2VwZXJhdG9yIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCaW5kcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZyb20gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBiaW5kQ29uZmlnKCkge1xyXG4gICAgICAgIC8qIENoZWNrIGlmIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uIGV4aXN0cyAqL1xyXG4gICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbikge1xyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiBsb2NhbGVJZCBpcyBkZWZpbmVkIGluIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICovXHJcbiAgICAgICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5sb2NhbGVJZCkge1xyXG4gICAgICAgICAgICAgICAgLyogQXNzaWduIHRoZSBsb2NhbGVJZCBmcm9tIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZUlkID0gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24ubG9jYWxlSWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIGFsbG93RGVjaW1hbFN5bWJvbCBpcyBkZWZpbmVkIGluIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICovXHJcbiAgICAgICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5hbGxvd0RlY2ltYWxTeW1ib2wpIHtcclxuICAgICAgICAgICAgICAgIC8qIEFzc2lnbiB0aGUgYWxsb3dEZWNpbWFsU3ltYm9sIGZyb20gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24gKi9cclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dEZWNpbWFsU3ltYm9sID0gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24uYWxsb3dEZWNpbWFsU3ltYm9sO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBTZXQgaXNTZXRDb25maWcgdG8gdHJ1ZSBhZnRlciBjb25maWd1cmluZyAqL1xyXG4gICAgICAgIHRoaXMuaXNTZXRDb25maWcgPSB0cnVlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvZGVjaW1hbC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBRzVELE1BQU0sT0FBTyxlQUFlO0lBMEJKO0lBQXFEO0lBekJ6RTs7T0FFRztJQUNLLGdCQUFnQixHQUFXLEdBQUcsQ0FBQztJQUV2Qzs7T0FFRztJQUNLLGNBQWMsR0FBVyxHQUFHLENBQUM7SUFFckM7O09BRUc7SUFDSyxrQkFBa0IsQ0FBVTtJQUVwQzs7T0FFRztJQUNLLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFFckM7Ozs7T0FJRztJQUNILFlBQW9CLFdBQXdCLEVBQTZCLFFBQWdCO1FBQXJFLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQTZCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDckYsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQyxjQUFjLEdBQUcscUJBQXFCLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxRSx1Q0FBdUM7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OlsiaW1wb3J0IHsgRGVjaW1hbFBpcGUsIE51bWJlclN5bWJvbCwgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIExPQ0FMRV9JRCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEJMQU5LIH0gZnJvbSBcIi4uLy4uL2NvbnN0XCI7XHJcbmltcG9ydCB7IFJlYWN0aXZlRm9ybUNvbmZpZyB9IGZyb20gXCIuLi8uLi91dGlsL3JlYWN0aXZlLWZvcm0tY29uZmlnXCI7XHJcbmltcG9ydCB7IFJlZ2V4VmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdXRpbC9yZWdleC12YWxpZGF0b3InO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRGVjaW1hbFByb3ZpZGVyIHtcclxuICAgIC8qKlxyXG4gICAgICogRGVjaW1hbCBzZXBhcmF0b3JcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBkZWNpbWFsU2VwZXJhdG9yOiBzdHJpbmcgPSBcIi5cIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdyb3VwIHNlcGFyYXRvclxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdyb3VwU2VwZXJhdG9yOiBzdHJpbmcgPSBcIixcIjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbmFsIHZhcmlhYmxlIGZvciBjdXN0b20gZGVjaW1hbCBzeW1ib2xcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhbGxvd0RlY2ltYWxTeW1ib2w/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBjb25maWd1cmF0aW9uIGlzIHNldFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGlzU2V0Q29uZmlnOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmb3IgRGVjaW1hbFByb3ZpZGVyXHJcbiAgICAgKiBAcGFyYW0gZGVjaW1hbFBpcGUgRGVjaW1hbFBpcGVcclxuICAgICAqIEBwYXJhbSBsb2NhbGVJZCBMT0NBTEVfSURcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUsIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZUlkOiBzdHJpbmcpIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGRlY2ltYWwgYW5kIGdyb3VwIHNlcGFyYXRvcnMgYmFzZWQgb24gbG9jYWxlICovXHJcbiAgICAgICAgdGhpcy5kZWNpbWFsU2VwZXJhdG9yID0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZUlkLCBOdW1iZXJTeW1ib2wuRGVjaW1hbCk7XHJcbiAgICAgICAgdGhpcy5ncm91cFNlcGVyYXRvciA9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGVJZCwgTnVtYmVyU3ltYm9sLkdyb3VwKTtcclxuXHJcbiAgICAgICAgLyogU2V0IHN5bWJvbHMgaW4gUmVhY3RpdmVGb3JtQ29uZmlnICovXHJcbiAgICAgICAgdGhpcy5zZXRTeW1ib2xJbkNvbmZpZygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVwbGFjZXMgdGhlIGRlY2ltYWwgYW5kIGdyb3VwIHNlcGFyYXRvcnMgaW4gdGhlIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byByZXBsYWNlIHNlcGFyYXRvcnMgaW4uXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgd2l0aCByZXBsYWNlZCBzZXBhcmF0b3JzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVwbGFjZXIodmFsdWU6IGFueSk6IGFueSB7XHJcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xyXG5cclxuICAgICAgICAvKiBCaW5kIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgaWYgbm90IGFscmVhZHkgc2V0ICovXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzU2V0Q29uZmlnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmluZENvbmZpZygpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmVtb3ZlIGdyb3VwIHNlcGFyYXRvcnMgKi9cclxuICAgICAgICB2YWx1ZSA9IHZhbHVlLnNwbGl0KHRoaXMuZ3JvdXBTZXBlcmF0b3IpLmpvaW4oQkxBTkspO1xyXG5cclxuICAgICAgICAvKiBSZXBsYWNlIGRlY2ltYWwgc2VwYXJhdG9yIGlmIGFsbG93ZWQgKi9cclxuICAgICAgICBpZiAodGhpcy5hbGxvd0RlY2ltYWxTeW1ib2wpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKHRoaXMuZGVjaW1hbFNlcGVyYXRvciwgdGhpcy5hbGxvd0RlY2ltYWxTeW1ib2wpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogQ2hlY2sgZm9yIHplcm8gYWZ0ZXIgZGVjaW1hbCBwb2ludCBhbmQgcmVtb3ZlIGlmIHByZXNlbnQgKi9cclxuICAgICAgICB2YXIgc3BsaXRWYWx1ZSA9IHZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGVyYXRvcik7XHJcbiAgICAgICAgdmFsdWUgPSAoc3BsaXRWYWx1ZS5sZW5ndGggPiAxICYmIHNwbGl0VmFsdWVbMV0gJiYgUmVnZXhWYWxpZGF0b3IuaXNaZXJvKHNwbGl0VmFsdWVbMV0pKSA/IHNwbGl0VmFsdWVbMF0gOiB2YWx1ZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhbnNmb3JtcyBhIHZhbHVlIGludG8gYSBmb3JtYXR0ZWQgZGVjaW1hbCBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHRyYW5zZm9ybS5cclxuICAgICAqIEBwYXJhbSBkaWdpdHNJbmZvIFRoZSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50LlxyXG4gICAgICogQHBhcmFtIHBlcnNpc3RaZXJvIFdoZXRoZXIgdG8gcGVyc2lzdCB6ZXJvIGFmdGVyIGRlY2ltYWwgZGlnaXRzLlxyXG4gICAgICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBkZWNpbWFsIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHRyYW5zRm9ybURlY2ltYWwodmFsdWU6IGFueSwgZGlnaXRzSW5mbzogc3RyaW5nLCBwZXJzaXN0WmVybzogYm9vbGVhbik6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIC8qIENvbnZlcnQgdmFsdWUgdG8gc3RyaW5nICovXHJcbiAgICAgICAgdmFsdWUgPSBTdHJpbmcodmFsdWUpO1xyXG5cclxuICAgICAgICAvKiBJZiB2YWx1ZSBpcyBmYWxzeSwgcmV0dXJuIGl0ICovXHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUcmFuc2Zvcm0gdGhlIHZhbHVlIHVzaW5nIERlY2ltYWxQaXBlICovXHJcbiAgICAgICAgbGV0IHRyYW5zZm9ybWVkVmFsdWUgPSB0aGlzLmRlY2ltYWxQaXBlLnRyYW5zZm9ybSh2YWx1ZS5yZXBsYWNlKFJlYWN0aXZlRm9ybUNvbmZpZy5udW1iZXIuZ3JvdXBTeW1ib2wsIFwiXCIpLnJlcGxhY2UodGhpcy5kZWNpbWFsU2VwZXJhdG9yLCBcIi5cIiksIGRpZ2l0c0luZm8sIHRoaXMubG9jYWxlSWQpO1xyXG5cclxuICAgICAgICAvKiBBZGQgdHJhaWxpbmcgemVyb3MgaWYgcGVyc2lzdFplcm8gaXMgdHJ1ZSAqL1xyXG4gICAgICAgIGlmIChwZXJzaXN0WmVybyAmJiB2YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGVyYXRvcikpIHtcclxuICAgICAgICAgICAgLyogU3BsaXQgdGhlIHRyYW5zZm9ybWVkIHZhbHVlIGJ5IGRlY2ltYWwgcG9pbnQgKi9cclxuICAgICAgICAgICAgbGV0IHNwbGl0VHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1lZFZhbHVlPy5zcGxpdChcIi5cIik7XHJcblxyXG4gICAgICAgICAgICAvKiBTcGxpdCB0aGUgZGlnaXRzSW5mbyBieSBoeXBoZW4gb3IgdXNlIGFuIGVtcHR5IGFycmF5IGlmIGRpZ2l0c0luZm8gaXMgZmFsc3kgKi9cclxuICAgICAgICAgICAgbGV0IHNwbGl0RGlnaXRzSW5mbyA9IGRpZ2l0c0luZm8gPyBkaWdpdHNJbmZvLnNwbGl0KFwiLVwiKSA6IFtdO1xyXG5cclxuICAgICAgICAgICAgLyogRXh0cmFjdCB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBmcm9tIHRoZSBzcGxpdERpZ2l0c0luZm8gKi9cclxuICAgICAgICAgICAgbGV0IGRpZ2l0cyA9IHNwbGl0RGlnaXRzSW5mby5sZW5ndGggPiAxID8gcGFyc2VJbnQoc3BsaXREaWdpdHNJbmZvW3NwbGl0RGlnaXRzSW5mby5sZW5ndGggLSAxXSkgOiAwO1xyXG5cclxuICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlcmUgYXJlIHR3byBwYXJ0cyBhZnRlciBzcGxpdHRpbmcgdGhlIHRyYW5zZm9ybWVkIHZhbHVlLCBkaWdpdHNJbmZvIGlzIG5vdCBlbXB0eSwgZGlnaXRzIGlzIG5vdCAwLCBhbmQgdGhlIGxlbmd0aCBvZiB0aGUgZGVjaW1hbCBwYXJ0IGlzIG5vdCBlcXVhbCB0byBkaWdpdHMgKi9cclxuICAgICAgICAgICAgaWYgKChzcGxpdFRyYW5zZm9ybWVkPy5sZW5ndGggPz8gMCkgPiAxICYmIHNwbGl0RGlnaXRzSW5mby5sZW5ndGggPiAwICYmIGRpZ2l0cyAhPT0gMCAmJiBzcGxpdFRyYW5zZm9ybWVkIVsxXS5sZW5ndGggIT09IGRpZ2l0cykge1xyXG4gICAgICAgICAgICAgICAgLyogQ2FsY3VsYXRlIHRoZSBkaWZmZXJlbmNlIGluIGxlbmd0aCAqL1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpZmYgPSBkaWdpdHMgLSBzcGxpdFRyYW5zZm9ybWVkIVsxXS5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogQXBwZW5kIHRyYWlsaW5nIHplcm9zIHRvIHRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSAqL1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWZmOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lZFZhbHVlICs9IFwiMFwiO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGRlY2ltYWwgYW5kIGdyb3VwIHN5bWJvbHMgaW4gdGhlIFJlYWN0aXZlRm9ybUNvbmZpZy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRTeW1ib2xJbkNvbmZpZygpIHtcclxuICAgICAgICBSZWFjdGl2ZUZvcm1Db25maWcubnVtYmVyID0geyBkZWNpbWFsU3ltYm9sOiB0aGlzLmRlY2ltYWxTZXBlcmF0b3IsIGdyb3VwU3ltYm9sOiB0aGlzLmdyb3VwU2VwZXJhdG9yIH07XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCaW5kcyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZyb20gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBiaW5kQ29uZmlnKCkge1xyXG4gICAgICAgIC8qIENoZWNrIGlmIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uIGV4aXN0cyAqL1xyXG4gICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbikge1xyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiBsb2NhbGVJZCBpcyBkZWZpbmVkIGluIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICovXHJcbiAgICAgICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5sb2NhbGVJZCkge1xyXG4gICAgICAgICAgICAgICAgLyogQXNzaWduIHRoZSBsb2NhbGVJZCBmcm9tIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZUlkID0gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24ubG9jYWxlSWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIGFsbG93RGVjaW1hbFN5bWJvbCBpcyBkZWZpbmVkIGluIFJlYWN0aXZlRm9ybUNvbmZpZy5qc29uICovXHJcbiAgICAgICAgICAgIGlmIChSZWFjdGl2ZUZvcm1Db25maWcuanNvbi5hbGxvd0RlY2ltYWxTeW1ib2wpIHtcclxuICAgICAgICAgICAgICAgIC8qIEFzc2lnbiB0aGUgYWxsb3dEZWNpbWFsU3ltYm9sIGZyb20gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24gKi9cclxuICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dEZWNpbWFsU3ltYm9sID0gUmVhY3RpdmVGb3JtQ29uZmlnLmpzb24uYWxsb3dEZWNpbWFsU3ltYm9sO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBTZXQgaXNTZXRDb25maWcgdG8gdHJ1ZSBhZnRlciBjb25maWd1cmluZyAqL1xyXG4gICAgICAgIHRoaXMuaXNTZXRDb25maWcgPSB0cnVlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -450,4 +450,4 @@ export class MaskProvider {
|
|
|
450
450
|
this.eventListeners = [];
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvbWFzay5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE1BQU0sT0FBTyxZQUFZO0lBNENEO0lBQWlDO0lBQXNCO0lBQTZCO0lBQWtDO0lBMUNsSSxjQUFjLEdBQVUsRUFBRSxDQUFDO0lBRW5DLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFFdEIsSUFBSSxHQUFXLE1BQU0sQ0FBQztJQUV0QixRQUFRLEdBQVcsR0FBRyxDQUFDO0lBRXZCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFM0IsS0FBSyxDQUFNO0lBRVgsSUFBSSxDQUFNO0lBRVYsS0FBSyxDQUFTO0lBRWQsZUFBZSxDQUFNO0lBRXJCLGVBQWUsQ0FBVTtJQUV6QixzQkFBc0IsQ0FBTTtJQUU1QixHQUFHLENBQVU7SUFFYixNQUFNLENBQVU7SUFFaEIsTUFBTSxDQUFNO0lBRVosYUFBYSxDQUFVO0lBRXZCLFNBQVMsQ0FBVTtJQUVuQixjQUFjLENBQU07SUFFcEIsYUFBYSxDQUFXO0lBRXhCLEtBQUssQ0FBVztJQUVoQixNQUFN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LEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLEtBQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDL0MsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtTQUNKO1FBQ0QsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBTSxJQUFJLENBQUM7SUFFdkIsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJMVVIsIEZPQ1VTLCBLRVlfRE9XTiwgS0VZX1BSRVNTLCBQQVNURSB9IGZyb20gXCIuLi8uLi9jb25zdFwiO1xyXG5pbXBvcnQgeyBBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiLi4vLi4vY29yZS9hbm5vdGF0aW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7IE1hc2tDb25maWcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbmZpZy9tYXNrLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBnZXRDb25maWdPYmplY3QgfSBmcm9tIFwiLi4vLi4vdXRpbC9jb25maWctcHJvdmlkZXJcIjtcclxuaW1wb3J0IHsgRm9ybVByb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL3V0aWwvZm9ybS1wcm92aWRlclwiO1xyXG5pbXBvcnQgeyBPYmplY3RNYWtlciB9IGZyb20gXCIuLi8uLi91dGlsL29iamVjdC1tYWtlclwiO1xyXG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gXCIuLi8uLi91dGlsL3JlZ2V4LXZhbGlkYXRvclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1hc2tQcm92aWRlciB7XHJcblxyXG4gICAgcHJpdmF0ZSBldmVudExpc3RlbmVyczogYW55W10gPSBbXTtcclxuXHJcbiAgICBvbGRWYWx1ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgdHlwZTogc3RyaW5nID0gJ3RleHQnO1xyXG5cclxuICAgIHNsb3RDaGFyOiBzdHJpbmcgPSAnXyc7XHJcblxyXG4gICAgYXV0b0NsZWFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgdmFsdWU6IGFueTtcclxuXHJcbiAgICBkZWZzOiBhbnk7XHJcblxyXG4gICAgdGVzdHM/OiBhbnlbXTtcclxuXHJcbiAgICBwYXJ0aWFsUG9zaXRpb246IGFueTtcclxuXHJcbiAgICBmaXJzdE5vbk1hc2tQb3M/OiBudW1iZXI7XHJcblxyXG4gICAgbGFzdFJlcXVpcmVkTm9uTWFza1BvczogYW55O1xyXG5cclxuICAgIGxlbj86IG51bWJlcjtcclxuXHJcbiAgICBvbGRWYWw/OiBzdHJpbmc7XHJcblxyXG4gICAgYnVmZmVyOiBhbnk7XHJcblxyXG4gICAgZGVmYXVsdEJ1ZmZlcj86IHN0cmluZztcclxuXHJcbiAgICBmb2N1c1RleHQ/OiBzdHJpbmc7XHJcblxyXG4gICAgY2FyZXRUaW1lb3V0SWQ6IGFueTtcclxuXHJcbiAgICBhbmRyb2lkQ2hyb21lPzogYm9vbGVhbjtcclxuXHJcbiAgICBmb2N1cz86IGJvb2xlYW47XHJcblxyXG4gICAgZmlsbGVkPzogYm9vbGVhbjtcclxuXHJcbiAgICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnB1dDogSFRNTElucHV0RWxlbWVudCwgcHJpdmF0ZSBtYXNrOiBzdHJpbmcsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wsIHByaXZhdGUgY29uZmlnOiBNYXNrQ29uZmlnKSB7XHJcbiAgICAgICAgdGhpcy5iaW5kKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYmluZCgpIHtcclxuICAgICAgICBpZiAoUmVnZXhWYWxpZGF0b3IuaXNOb3RCbGFuayh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudGVzdHMgPSBbXTtcclxuICAgICAgICB0aGlzLnBhcnRpYWxQb3NpdGlvbiA9IHRoaXMubWFzay5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5sZW4gPSB0aGlzLm1hc2subGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuZmlyc3ROb25NYXNrUG9zID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuZGVmcyA9IHtcclxuICAgICAgICAgICAgJzknOiAnWzAtOV0nLFxyXG4gICAgICAgICAgICAnYSc6ICdbQS1aYS16XScsXHJcbiAgICAgICAgICAgICcqJzogJ1tBLVphLXowLTldJ1xyXG4gICAgICAgIH07XHJcblxyXG5cclxuICAgICAgICB0aGlzLmFuZHJvaWRDaHJvbWUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgbGV0IG1hc2tUb2tlbnMgPSB0aGlzLm1hc2suc3BsaXQoJycpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFza1Rva2Vucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYyA9IG1hc2tUb2tlbnNbaV07XHJcbiAgICAgICAgICAgIGlmIChjID09ICc/Jykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZW4tLTtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFydGlhbFBvc2l0aW9uID0gaTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmRlZnNbY10pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGVzdHMucHVzaChuZXcgUmVnRXhwKHRoaXMuZGVmc1tjXSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3ROb25NYXNrUG9zID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maXJzdE5vbk1hc2tQb3MgPSB0aGlzLnRlc3RzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaSA8IHRoaXMucGFydGlhbFBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zID0gdGhpcy50ZXN0cy5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50ZXN0cy5wdXNoKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWluTGVuZ3RoID0gdGhpcy5jb25maWcubWluTGVuZ3RoID8gdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zIC0gKHRoaXMubGFzdFJlcXVpcmVkTm9uTWFza1BvcyAtIHRoaXMuY29uZmlnLm1pbkxlbmd0aCkgOiB0aGlzLmxhc3RSZXF1aXJlZE5vbk1hc2tQb3M7XHJcbiAgICAgICAgdGhpcy5idWZmZXIgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2tUb2tlbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBtYXNrVG9rZW5zW2ldO1xyXG4gICAgICAgICAgICBpZiAoYyAhPSAnPycpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZnNbY10pXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXIucHVzaCh0aGlzLmdldFBsYWNlaG9sZGVyKGkpKTtcclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci5wdXNoKGMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGVmYXVsdEJ1ZmZlciA9IHRoaXMuYnVmZmVyLmpvaW4oJycpO1xyXG4gICAgICAgIHRoaXMuZm9jdXNUZXh0ID0gdGhpcy5pbnB1dC52YWx1ZTtcclxuICAgICAgICB0aGlzLmJpbmRFdmVudHMoKTtcclxuICAgICAgICB0aGlzLmNoZWNrVmFsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYmluZEV2ZW50cygpIHtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgRk9DVVMsIHRoaXMub25Gb2N1cy5iaW5kKHRoaXMpKSk7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIEJMVVIsIHRoaXMub25CbHVyLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgS0VZX0RPV04sIHRoaXMub25LZXlEb3duLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgS0VZX1BSRVNTLCB0aGlzLm9uS2V5UHJlc3MuYmluZCh0aGlzKSkpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCBcImlucHV0XCIsIHRoaXMub25JbnB1dC5iaW5kKHRoaXMpKSk7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIFBBU1RFLCB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlLmJpbmQodGhpcykpKTtcclxuICAgIH1cclxuICAgIGlzSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgdmFsaWRhdGUoKSB7XHJcbiAgICAgICAgaWYgKCh0aGlzLmlucHV0LnZhbHVlICYmIHRoaXMub2xkVmFsdWUgIT0gdGhpcy5pbnB1dC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja1ZhbCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5pc0NvbXBsZXRlZCh1bmRlZmluZWQsIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLm9sZFZhbHVlID0gdGhpcy5pbnB1dC52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgY29uZmlnID0gZ2V0Q29uZmlnT2JqZWN0KHRoaXMuY29uZmlnLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICAgICAgICBpZiAoUmVnZXhWYWxpZGF0b3IuaXNOb3RCbGFuayh0aGlzLmdldFVubWFza2VkVmFsdWUoKSkgJiYgRm9ybVByb3ZpZGVyLnByb2Nlc3NSdWxlKHRoaXMuZm9ybUNvbnRyb2wsIGNvbmZpZykpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNJbnZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0TWFrZXIudG9Kc29uKEFubm90YXRpb25UeXBlcy5tYXNrLCBjb25maWcsIFt0aGlzLmZvcm1Db250cm9sLnZhbHVlXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBPYmplY3RNYWtlci5udWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pbnB1dCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PSB1bmRlZmluZWQgfHwgdGhpcy52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jaGVja1ZhbCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVGaWxsZWRTdGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhcmV0KGZpcnN0PzogbnVtYmVyLCBsYXN0PzogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHJhbmdlLCBiZWdpbiwgZW5kO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaW5wdXQub2Zmc2V0UGFyZW50IHx8IHRoaXMuaW5wdXQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGZpcnN0ID09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGJlZ2luID0gZmlyc3Q7XHJcbiAgICAgICAgICAgIGVuZCA9ICh0eXBlb2YgbGFzdCA9PT0gJ251bWJlcicpID8gbGFzdCA6IGJlZ2luO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShiZWdpbiwgZW5kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgodGhpcy5pbnB1dCBhcyBhbnkpWydjcmVhdGVUZXh0UmFuZ2UnXSkge1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UgPSAodGhpcy5pbnB1dCBhcyBhbnkpWydjcmVhdGVUZXh0UmFuZ2UnXSgpO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICByYW5nZS5tb3ZlRW5kKCdjaGFyYWN0ZXInLCBlbmQpO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCBiZWdpbik7XHJcbiAgICAgICAgICAgICAgICByYW5nZS5zZWxlY3QoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UhKSB7XHJcbiAgICAgICAgICAgICAgICBiZWdpbiA9IHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgICAgICAgICAgICBlbmQgPSB0aGlzLmlucHV0LnNlbGVjdGlvbkVuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgoZG9jdW1lbnQgYXMgYW55KVsnc2VsZWN0aW9uJ10gJiYgKGRvY3VtZW50IGFzIGFueSlbJ3NlbGVjdGlvbiddLmNyZWF0ZVJhbmdlKSB7XHJcbiAgICAgICAgICAgICAgICByYW5nZSA9IChkb2N1bWVudCBhcyBhbnkpWydzZWxlY3Rpb24nXS5jcmVhdGVSYW5nZSgpO1xyXG4gICAgICAgICAgICAgICAgYmVnaW4gPSAwIC0gcmFuZ2UuZHVwbGljYXRlKCkubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCAtMTAwMDAwKTtcclxuICAgICAgICAgICAgICAgIGVuZCA9IGJlZ2luICsgcmFuZ2UudGV4dC5sZW5ndGg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7IGJlZ2luOiBiZWdpbiwgZW5kOiBlbmQgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ29tcGxldGVkKGxhc3RSZXF1aXJlZE5vbk1hc2tQb3M/OiBudW1iZXIsIGlzTm90UnVuVmFsaWRhdG9yPzogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBjb21wbGV0ZWQ6IGJvb2xlYW47XHJcbiAgICAgICAgbGFzdFJlcXVpcmVkTm9uTWFza1BvcyA9IGxhc3RSZXF1aXJlZE5vbk1hc2tQb3MgfHwgdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAodGhpcy5maXJzdE5vbk1hc2tQb3MgPz8gMCk7IGkgPD0gbGFzdFJlcXVpcmVkTm9uTWFza1BvcyE7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbaV0gJiYgdGhpcy5idWZmZXJbaV0gPT09IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSEpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCFpc05vdFJ1blZhbGlkYXRvcikge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFBsYWNlaG9sZGVyKGk6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChpIDwgdGhpcy5zbG90Q2hhci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xvdENoYXIuY2hhckF0KGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5zbG90Q2hhci5jaGFyQXQoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2Vla05leHQocG9zOiBudW1iZXIpIHtcclxuICAgICAgICB3aGlsZSAoKytwb3MgPCB0aGlzLmxlbiEgJiYgIXRoaXMudGVzdHMhW3Bvc10pO1xyXG4gICAgICAgIHJldHVybiBwb3M7XHJcbiAgICB9XHJcblxyXG4gICAgc2Vla1ByZXYocG9zOiBudW1iZXIpIHtcclxuICAgICAgICB3aGlsZSAoLS1wb3MgPj0gMCAmJiAhdGhpcy50ZXN0cyFbcG9zXSk7XHJcbiAgICAgICAgcmV0dXJuIHBvcztcclxuICAgIH1cclxuXHJcbiAgICBzaGlmdEwoYmVnaW46IG51bWJlciwgZW5kOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgaSwgajtcclxuXHJcbiAgICAgICAgaWYgKGJlZ2luIDwgMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGkgPSBiZWdpbiwgaiA9IHRoaXMuc2Vla05leHQoZW5kKTsgaSA8IHRoaXMubGVuITsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtpXSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGogPCB0aGlzLmxlbiEgJiYgdGhpcy50ZXN0cyFbaV0udGVzdCh0aGlzLmJ1ZmZlcltqXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IHRoaXMuYnVmZmVyW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2pdID0gdGhpcy5nZXRQbGFjZWhvbGRlcihqKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaiA9IHRoaXMuc2Vla05leHQoaik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICB0aGlzLmNhcmV0KE1hdGgubWF4KHRoaXMuZmlyc3ROb25NYXNrUG9zISwgYmVnaW4pKTtcclxuICAgIH1cclxuXHJcbiAgICBzaGlmdFIocG9zOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgaSwgYywgaiwgdDtcclxuXHJcbiAgICAgICAgZm9yIChpID0gcG9zLCBjID0gdGhpcy5nZXRQbGFjZWhvbGRlcihwb3MpOyBpIDwgdGhpcy5sZW4hOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldKSB7XHJcbiAgICAgICAgICAgICAgICBqID0gdGhpcy5zZWVrTmV4dChpKTtcclxuICAgICAgICAgICAgICAgIHQgPSB0aGlzLmJ1ZmZlcltpXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gYztcclxuICAgICAgICAgICAgICAgIGlmIChqIDwgdGhpcy5sZW4hICYmIHRoaXMudGVzdHMhW2pdLnRlc3QodCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjID0gdDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQW5kcm9pZElucHV0KF86IGFueSkge1xyXG4gICAgICAgIHZhciBjdXJWYWwgPSB0aGlzLmlucHV0LnZhbHVlO1xyXG4gICAgICAgIHZhciBwb3MgPSB0aGlzLmNhcmV0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xkVmFsICYmIHRoaXMub2xkVmFsLmxlbmd0aCAmJiB0aGlzLm9sZFZhbC5sZW5ndGggPiBjdXJWYWwubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwodHJ1ZSk7XHJcbiAgICAgICAgICAgIHdoaWxlIChwb3MhLmJlZ2luISA+IDAgJiYgIXRoaXMudGVzdHMhW3BvcyEuYmVnaW4hIC0gMV0pXHJcbiAgICAgICAgICAgICAgICBwb3MhLmJlZ2luIS0tO1xyXG4gICAgICAgICAgICBpZiAocG9zIS5iZWdpbiA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKHBvcyEuYmVnaW4gPCB0aGlzLmZpcnN0Tm9uTWFza1BvcyEgJiYgIXRoaXMudGVzdHMhW3BvcyEuYmVnaW5dKVxyXG4gICAgICAgICAgICAgICAgICAgIHBvcyEuYmVnaW4rKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNhcmV0KHBvcyEuYmVnaW4hLCBwb3MhLmJlZ2luISk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFyIHBvczIgPSB0aGlzLmNoZWNrVmFsKHRydWUpO1xyXG4gICAgICAgICAgICB3aGlsZSAocG9zIS5iZWdpbiEgPCB0aGlzLmxlbiEgJiYgIXRoaXMudGVzdHMhW3BvcyEuYmVnaW4hXSlcclxuICAgICAgICAgICAgICAgIHBvcyEuYmVnaW4hKys7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhcmV0KHBvcyEuYmVnaW4hLCBwb3MhLmJlZ2luISk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0NvbXBsZXRlZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25CbHVyKGU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNoZWNrVmFsKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQudmFsdWUgIT0gdGhpcy5mb2N1c1RleHQpIHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcclxuICAgICAgICAgICAgZXZlbnQuaW5pdEV2ZW50KCdjaGFuZ2UnLCB0cnVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcbiAgICAgICAgICAgIGxldCBtYXNrZWRWYWx1ZSA9IHRoaXMuaW5wdXQudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5jb25maWcudmFsdWVXaXRoTWFzayA/IG1hc2tlZFZhbHVlIDogdGhpcy5nZXRVbm1hc2tlZFZhbHVlKCkpO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gbWFza2VkVmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5RG93bihlOiBhbnkpIHtcclxuICAgICAgICBsZXQgayA9IGUud2hpY2ggfHwgZS5rZXlDb2RlLFxyXG4gICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgIGJlZ2luLFxyXG4gICAgICAgICAgICBlbmQ7XHJcbiAgICAgICAgbGV0IGlQaG9uZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub2xkVmFsID0gdGhpcy5pbnB1dC52YWx1ZTtcclxuICAgICAgICBsZXQgY29udHJvbFZhbGlkID0gdGhpcy5jb25maWcubWluTGVuZ3RoID8gdGhpcy5pc0NvbXBsZXRlZCh0aGlzLm1pbkxlbmd0aCEgKyAxKSA6IGZhbHNlO1xyXG4gICAgICAgIGlmIChrID09PSA4IHx8IGsgPT09IDQ2IHx8IChpUGhvbmUgJiYgayA9PT0gMTI3KSkge1xyXG4gICAgICAgICAgICBwb3MgPSB0aGlzLmNhcmV0KCk7XHJcbiAgICAgICAgICAgIGJlZ2luID0gcG9zIS5iZWdpbjtcclxuICAgICAgICAgICAgZW5kID0gcG9zIS5lbmQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoZW5kIC0gYmVnaW4hID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBiZWdpbiA9IGsgIT09IDQ2ID8gdGhpcy5zZWVrUHJldihiZWdpbiEpIDogKGVuZCA9IHRoaXMuc2Vla05leHQoYmVnaW4hIC0gMSkpO1xyXG4gICAgICAgICAgICAgICAgZW5kID0gayA9PT0gNDYgPyB0aGlzLnNlZWtOZXh0KGVuZCkgOiBlbmQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIoYmVnaW4hLCBlbmQpO1xyXG4gICAgICAgICAgICB0aGlzLnNoaWZ0TChiZWdpbiEsIGVuZCAtIDEpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShlLCBmYWxzZSwgY29udHJvbFZhbGlkKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoayA9PT0gMTMpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkJsdXIoZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGUsIGZhbHNlLCBjb250cm9sVmFsaWQpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGUpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoayA9PT0gMjcpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMuZm9jdXNUZXh0ID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmNhcmV0KDAsIHRoaXMuY2hlY2tWYWwoKSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGUsIGZhbHNlLCBjb250cm9sVmFsaWQpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25LZXlQcmVzcyhlOiBhbnkpIHtcclxuICAgICAgICB2YXIgayA9IGUud2hpY2ggfHwgZS5rZXlDb2RlLFxyXG4gICAgICAgICAgICBwb3MgPSB0aGlzLmNhcmV0KCksXHJcbiAgICAgICAgICAgIHAsXHJcbiAgICAgICAgICAgIGMsXHJcbiAgICAgICAgICAgIG5leHQsXHJcbiAgICAgICAgICAgIGNvbXBsZXRlZDtcclxuICAgICAgICBpZiAoZS5jdHJsS2V5IHx8IGUuYWx0S2V5IHx8IGUubWV0YUtleSB8fCBrIDwgMzIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoayAmJiBrICE9PSAxMykge1xyXG4gICAgICAgICAgICBpZiAocG9zIS5lbmQgLSBwb3MhLmJlZ2luISAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhckJ1ZmZlcihwb3MhLmJlZ2luISwgcG9zIS5lbmQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaGlmdEwocG9zIS5iZWdpbiEsIHBvcyEuZW5kIC0gMSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAgPSB0aGlzLnNlZWtOZXh0KHBvcyEuYmVnaW4hIC0gMSk7XHJcbiAgICAgICAgICAgIGlmIChwIDwgdGhpcy5sZW4hKSB7XHJcbiAgICAgICAgICAgICAgICBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShrKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtwXS50ZXN0KGMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGlmdFIocCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BdID0gYztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IHRoaXMuc2Vla05leHQocCk7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KG5leHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3MhLmJlZ2luISA8PSB0aGlzLmxhc3RSZXF1aXJlZE5vbk1hc2tQb3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkID0gdGhpcy5pc0NvbXBsZXRlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGUpO1xyXG4gICAgICAgIGlmIChjb21wbGV0ZWQgPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgY29tcGxldGVkID0gdGhpcy5pc0NvbXBsZXRlZCgpXHJcbiAgICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZSwgY29tcGxldGVkLCB0aGlzLmNvbmZpZy5taW5MZW5ndGggPyB0aGlzLmlzQ29tcGxldGVkKHRoaXMubWluTGVuZ3RoKSA6IGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnRlcm5hbFByb2Nlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjbGVhckJ1ZmZlcihzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xyXG4gICAgICAgIGxldCBpO1xyXG4gICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kICYmIGkgPCB0aGlzLmxlbiE7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbaV0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gdGhpcy5nZXRQbGFjZWhvbGRlcihpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3cml0ZUJ1ZmZlcigpIHtcclxuICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gdGhpcy5idWZmZXIuam9pbignJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tWYWwoYWxsb3c/OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHRlc3QgPSB0aGlzLmlucHV0LnZhbHVlLFxyXG4gICAgICAgICAgICBsYXN0TWF0Y2ggPSAtMSxcclxuICAgICAgICAgICAgaSxcclxuICAgICAgICAgICAgYyxcclxuICAgICAgICAgICAgcG9zO1xyXG5cclxuICAgICAgICBmb3IgKGkgPSAwLCBwb3MgPSAwOyBpIDwgdGhpcy5sZW4hOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSk7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAocG9zKysgPCB0ZXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGMgPSB0ZXN0LmNoYXJBdChwb3MgLSAxKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbaV0udGVzdChjKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RNYXRjaCA9IGk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwb3MgPiB0ZXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIoaSArIDEsIHRoaXMubGVuISk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5idWZmZXJbaV0gPT09IHRlc3QuY2hhckF0KHBvcykpIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3MrKztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChpIDwgdGhpcy5wYXJ0aWFsUG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBsYXN0TWF0Y2ggPSBpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhbGxvdykge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICgobGFzdE1hdGNoICsgMSA8IHRoaXMucGFydGlhbFBvc2l0aW9uKSAmJiAoIXRoaXMuY29uZmlnLm1pbkxlbmd0aCB8fCAhKGxhc3RNYXRjaCA+PSB0aGlzLm1pbkxlbmd0aCEpKSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvQ2xlYXIgfHwgdGhpcy5idWZmZXIuam9pbignJykgPT09IHRoaXMuZGVmYXVsdEJ1ZmZlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWVcclxuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMuaW5wdXQudmFsdWUuc3Vic3RyaW5nKDAsIGxhc3RNYXRjaCArIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gKHRoaXMucGFydGlhbFBvc2l0aW9uID8gaSA6IHRoaXMuZmlyc3ROb25NYXNrUG9zKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZvY3VzKGV2ZW50OiBhbnkpIHtcclxuXHJcbiAgICAgICAgdGhpcy5mb2N1cyA9IHRydWU7XHJcblxyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNhcmV0VGltZW91dElkKTtcclxuICAgICAgICBsZXQgcG9zOiBudW1iZXIgfCB1bmRlZmluZWQgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLmZvY3VzVGV4dCA9IHRoaXMuaW5wdXQudmFsdWU7XHJcblxyXG4gICAgICAgIHBvcyA9IHRoaXMuY2hlY2tWYWwoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jYXJldFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dCAhPT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICAgICAgaWYgKHBvcyA9PSB0aGlzLm1hc2sucmVwbGFjZShcIj9cIiwgXCJcIikubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KDAsIHBvcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KHBvcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVGaWxsZWRTdGF0ZSgpO1xyXG4gICAgICAgIH0sIDEwKTtcclxuICAgIH1cclxuXHJcbiAgICBvbklucHV0KGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5hbmRyb2lkQ2hyb21lKVxyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFuZHJvaWRJbnB1dChldmVudCk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRDb250cm9sVmFsdWUoZTogYW55LCBpc1ZhbGlkOiBib29sZWFuLCBpc1ZhbGlkQ29udHJvbD86IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmlzSW52YWxpZCA9IGlzVmFsaWRDb250cm9sID8gIWlzVmFsaWRDb250cm9sIDogIWlzVmFsaWQ7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5pbnB1dC52YWx1ZTtcclxuICAgICAgICBsZXQgY29udHJvbFZhbHVlID0gJyc7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzSW52YWxpZClcclxuICAgICAgICAgICAgY29udHJvbFZhbHVlID0gdGhpcy5jb25maWcudmFsdWVXaXRoTWFzayA/IHZhbHVlIDogdGhpcy5nZXRVbm1hc2tlZFZhbHVlKClcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGNvbnRyb2xWYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vbGRWYWx1ZSA9IHRoaXMuaW5wdXQudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICBpZiAoIWlzVmFsaWQpXHJcbiAgICAgICAgICAgIHRoaXMub25Gb2N1cyhlKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVJbnB1dENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBwb3MgPSB0aGlzLmNoZWNrVmFsKHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmNhcmV0KHBvcyk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZXZlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShldmVudCwgdGhpcy5pc0NvbXBsZXRlZCgpKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRVbm1hc2tlZFZhbHVlKCkge1xyXG4gICAgICAgIGxldCB1bm1hc2tlZEJ1ZmZlciA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5idWZmZXIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSB0aGlzLmJ1ZmZlcltpXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldICYmIGMgIT0gdGhpcy5nZXRQbGFjZWhvbGRlcihpKSkge1xyXG4gICAgICAgICAgICAgICAgdW5tYXNrZWRCdWZmZXIucHVzaChjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdW5tYXNrZWRCdWZmZXIuam9pbignJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlTW9kZWwoZTogYW55KSB7IH1cclxuXHJcbiAgICB1cGRhdGVGaWxsZWRTdGF0ZSgpIHtcclxuICAgICAgICB0aGlzLmZpbGxlZCA9IHRoaXMuaW5wdXQgJiYgdGhpcy5pbnB1dC52YWx1ZSAhPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBvbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgbGV0IGV2ZW50Q291bnQgPSB0aGlzLmV2ZW50TGlzdGVuZXJzLmxlbmd0aDtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50Q291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzWzBdKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gW107XHJcbiAgICB9XHJcbn0iXX0=
|
|
453
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvbWFzay5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE1BQU0sT0FBTyxZQUFZO0lBNENEO0lBQWlDO0lBQXNCO0lBQTZCO0lBQWtDO0lBMUNsSSxjQUFjLEdBQVUsRUFBRSxDQUFDO0lBRW5DLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFFdEIsSUFBSSxHQUFXLE1BQU0sQ0FBQztJQUV0QixRQUFRLEdBQVcsR0FBRyxDQUFDO0lBRXZCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFM0IsS0FBSyxDQUFNO0lBRVgsSUFBSSxDQUFNO0lBRVYsS0FBSyxDQUFTO0lBRWQsZUFBZSxDQUFNO0lBRXJCLGVBQWUsQ0FBVTtJQUV6QixzQkFBc0IsQ0FBTTtJQUU1QixHQUFHLENBQVU7SUFFYixNQUFNLENBQVU7SUFFaEIsTUFBTSxDQUFNO0lBRVosYUFBYSxDQUFVO0lBRXZCLFNBQVMsQ0FBVTtJQUVuQixjQUFjLENBQU07SUFFcEIsYUFBYSxDQUFXO0lBRXhCLEtBQUssQ0FBVztJQUVoQixNQUFN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QUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBTSxJQUFJLENBQUM7SUFFdkIsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUM3QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW5kZXJlcjIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBCTFVSLCBGT0NVUywgS0VZX0RPV04sIEtFWV9QUkVTUywgUEFTVEUgfSBmcm9tIFwiLi4vLi4vY29uc3RcIjtcclxuaW1wb3J0IHsgQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIi4uLy4uL2NvcmUvYW5ub3RhdGlvbi10eXBlc1wiO1xyXG5pbXBvcnQgeyBNYXNrQ29uZmlnIH0gZnJvbSBcIi4uLy4uL21vZGVscy9jb25maWcvbWFzay1jb25maWdcIjtcclxuaW1wb3J0IHsgZ2V0Q29uZmlnT2JqZWN0IH0gZnJvbSBcIi4uLy4uL3V0aWwvY29uZmlnLXByb3ZpZGVyXCI7XHJcbmltcG9ydCB7IEZvcm1Qcm92aWRlciB9IGZyb20gXCIuLi8uLi91dGlsL2Zvcm0tcHJvdmlkZXJcIjtcclxuaW1wb3J0IHsgT2JqZWN0TWFrZXIgfSBmcm9tIFwiLi4vLi4vdXRpbC9vYmplY3QtbWFrZXJcIjtcclxuaW1wb3J0IHsgUmVnZXhWYWxpZGF0b3IgfSBmcm9tIFwiLi4vLi4vdXRpbC9yZWdleC12YWxpZGF0b3JcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNYXNrUHJvdmlkZXIge1xyXG5cclxuICAgIHByaXZhdGUgZXZlbnRMaXN0ZW5lcnM6IGFueVtdID0gW107XHJcblxyXG4gICAgb2xkVmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIHR5cGU6IHN0cmluZyA9ICd0ZXh0JztcclxuXHJcbiAgICBzbG90Q2hhcjogc3RyaW5nID0gJ18nO1xyXG5cclxuICAgIGF1dG9DbGVhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHZhbHVlOiBhbnk7XHJcblxyXG4gICAgZGVmczogYW55O1xyXG5cclxuICAgIHRlc3RzPzogYW55W107XHJcblxyXG4gICAgcGFydGlhbFBvc2l0aW9uOiBhbnk7XHJcblxyXG4gICAgZmlyc3ROb25NYXNrUG9zPzogbnVtYmVyO1xyXG5cclxuICAgIGxhc3RSZXF1aXJlZE5vbk1hc2tQb3M6IGFueTtcclxuXHJcbiAgICBsZW4/OiBudW1iZXI7XHJcblxyXG4gICAgb2xkVmFsPzogc3RyaW5nO1xyXG5cclxuICAgIGJ1ZmZlcjogYW55O1xyXG5cclxuICAgIGRlZmF1bHRCdWZmZXI/OiBzdHJpbmc7XHJcblxyXG4gICAgZm9jdXNUZXh0Pzogc3RyaW5nO1xyXG5cclxuICAgIGNhcmV0VGltZW91dElkOiBhbnk7XHJcblxyXG4gICAgYW5kcm9pZENocm9tZT86IGJvb2xlYW47XHJcblxyXG4gICAgZm9jdXM/OiBib29sZWFuO1xyXG5cclxuICAgIGZpbGxlZD86IGJvb2xlYW47XHJcblxyXG4gICAgbWluTGVuZ3RoPzogbnVtYmVyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQsIHByaXZhdGUgbWFzazogc3RyaW5nLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sLCBwcml2YXRlIGNvbmZpZzogTWFza0NvbmZpZykge1xyXG4gICAgICAgIHRoaXMuYmluZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGJpbmQoKSB7XHJcbiAgICAgICAgaWYgKFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnRlc3RzID0gW107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWFsUG9zaXRpb24gPSB0aGlzLm1hc2subGVuZ3RoO1xyXG4gICAgICAgIHRoaXMubGVuID0gdGhpcy5tYXNrLmxlbmd0aDtcclxuICAgICAgICB0aGlzLmZpcnN0Tm9uTWFza1BvcyA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmRlZnMgPSB7XHJcbiAgICAgICAgICAgICc5JzogJ1swLTldJyxcclxuICAgICAgICAgICAgJ2EnOiAnW0EtWmEtel0nLFxyXG4gICAgICAgICAgICAnKic6ICdbQS1aYS16MC05XSdcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5hbmRyb2lkQ2hyb21lID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGxldCBtYXNrVG9rZW5zID0gdGhpcy5tYXNrLnNwbGl0KCcnKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2tUb2tlbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBtYXNrVG9rZW5zW2ldO1xyXG4gICAgICAgICAgICBpZiAoYyA9PSAnPycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVuLS07XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpYWxQb3NpdGlvbiA9IGk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5kZWZzW2NdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRlc3RzLnB1c2gobmV3IFJlZ0V4cCh0aGlzLmRlZnNbY10pKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpcnN0Tm9uTWFza1BvcyA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlyc3ROb25NYXNrUG9zID0gdGhpcy50ZXN0cy5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGkgPCB0aGlzLnBhcnRpYWxQb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFJlcXVpcmVkTm9uTWFza1BvcyA9IHRoaXMudGVzdHMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGVzdHMucHVzaChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1pbkxlbmd0aCA9IHRoaXMuY29uZmlnLm1pbkxlbmd0aCA/IHRoaXMubGFzdFJlcXVpcmVkTm9uTWFza1BvcyAtICh0aGlzLmxhc3RSZXF1aXJlZE5vbk1hc2tQb3MgLSB0aGlzLmNvbmZpZy5taW5MZW5ndGgpIDogdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zO1xyXG4gICAgICAgIHRoaXMuYnVmZmVyID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrVG9rZW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gbWFza1Rva2Vuc1tpXTtcclxuICAgICAgICAgICAgaWYgKGMgIT0gJz8nKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZWZzW2NdKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyLnB1c2godGhpcy5nZXRQbGFjZWhvbGRlcihpKSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXIucHVzaChjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRlZmF1bHRCdWZmZXIgPSB0aGlzLmJ1ZmZlci5qb2luKCcnKTtcclxuICAgICAgICB0aGlzLmZvY3VzVGV4dCA9IHRoaXMuaW5wdXQudmFsdWU7XHJcbiAgICAgICAgdGhpcy5iaW5kRXZlbnRzKCk7XHJcbiAgICAgICAgdGhpcy5jaGVja1ZhbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGJpbmRFdmVudHMoKSB7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIEZPQ1VTLCB0aGlzLm9uRm9jdXMuYmluZCh0aGlzKSkpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCBCTFVSLCB0aGlzLm9uQmx1ci5iaW5kKHRoaXMpKSk7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIEtFWV9ET1dOLCB0aGlzLm9uS2V5RG93bi5iaW5kKHRoaXMpKSk7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIEtFWV9QUkVTUywgdGhpcy5vbktleVByZXNzLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgXCJpbnB1dFwiLCB0aGlzLm9uSW5wdXQuYmluZCh0aGlzKSkpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCBQQVNURSwgdGhpcy5oYW5kbGVJbnB1dENoYW5nZS5iaW5kKHRoaXMpKSk7XHJcbiAgICB9XHJcbiAgICBpc0ludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHZhbGlkYXRlKCkge1xyXG4gICAgICAgIGlmICgodGhpcy5pbnB1dC52YWx1ZSAmJiB0aGlzLm9sZFZhbHVlICE9IHRoaXMuaW5wdXQudmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDb21wbGV0ZWQodW5kZWZpbmVkLCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5vbGRWYWx1ZSA9IHRoaXMuaW5wdXQudmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGNvbmZpZyA9IGdldENvbmZpZ09iamVjdCh0aGlzLmNvbmZpZywgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgICAgICAgaWYgKFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsodGhpcy5nZXRVbm1hc2tlZFZhbHVlKCkpICYmIEZvcm1Qcm92aWRlci5wcm9jZXNzUnVsZSh0aGlzLmZvcm1Db250cm9sLCBjb25maWcpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzSW52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLnRvSnNvbihBbm5vdGF0aW9uVHlwZXMubWFzaywgY29uZmlnLCBbdGhpcy5mb3JtQ29udHJvbC52YWx1ZV0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gT2JqZWN0TWFrZXIubnVsbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gdW5kZWZpbmVkIHx8IHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlRmlsbGVkU3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjYXJldChmaXJzdD86IG51bWJlciwgbGFzdD86IG51bWJlcikge1xyXG4gICAgICAgIGxldCByYW5nZSwgYmVnaW4sIGVuZDtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0Lm9mZnNldFBhcmVudCB8fCB0aGlzLmlucHV0ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBmaXJzdCA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICBiZWdpbiA9IGZpcnN0O1xyXG4gICAgICAgICAgICBlbmQgPSAodHlwZW9mIGxhc3QgPT09ICdudW1iZXInKSA/IGxhc3QgOiBiZWdpbjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoYmVnaW4sIGVuZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKHRoaXMuaW5wdXQgYXMgYW55KVsnY3JlYXRlVGV4dFJhbmdlJ10pIHtcclxuICAgICAgICAgICAgICAgIHJhbmdlID0gKHRoaXMuaW5wdXQgYXMgYW55KVsnY3JlYXRlVGV4dFJhbmdlJ10oKTtcclxuICAgICAgICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgZW5kKTtcclxuICAgICAgICAgICAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgYmVnaW4pO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2Uuc2VsZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0LnNldFNlbGVjdGlvblJhbmdlISkge1xyXG4gICAgICAgICAgICAgICAgYmVnaW4gPSB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICAgICAgICAgICAgZW5kID0gdGhpcy5pbnB1dC5zZWxlY3Rpb25FbmQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKGRvY3VtZW50IGFzIGFueSlbJ3NlbGVjdGlvbiddICYmIChkb2N1bWVudCBhcyBhbnkpWydzZWxlY3Rpb24nXS5jcmVhdGVSYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UgPSAoZG9jdW1lbnQgYXMgYW55KVsnc2VsZWN0aW9uJ10uY3JlYXRlUmFuZ2UoKTtcclxuICAgICAgICAgICAgICAgIGJlZ2luID0gMCAtIHJhbmdlLmR1cGxpY2F0ZSgpLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgLTEwMDAwMCk7XHJcbiAgICAgICAgICAgICAgICBlbmQgPSBiZWdpbiArIHJhbmdlLnRleHQubGVuZ3RoO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4geyBiZWdpbjogYmVnaW4sIGVuZDogZW5kIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpc0NvbXBsZXRlZChsYXN0UmVxdWlyZWROb25NYXNrUG9zPzogbnVtYmVyLCBpc05vdFJ1blZhbGlkYXRvcj86IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgY29tcGxldGVkOiBib29sZWFuO1xyXG4gICAgICAgIGxhc3RSZXF1aXJlZE5vbk1hc2tQb3MgPSBsYXN0UmVxdWlyZWROb25NYXNrUG9zIHx8IHRoaXMubGFzdFJlcXVpcmVkTm9uTWFza1BvcztcclxuICAgICAgICBmb3IgKGxldCBpID0gKHRoaXMuZmlyc3ROb25NYXNrUG9zID8/IDApOyBpIDw9IGxhc3RSZXF1aXJlZE5vbk1hc2tQb3MhOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldICYmIHRoaXMuYnVmZmVyW2ldID09PSB0aGlzLmdldFBsYWNlaG9sZGVyKGkhKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmICghaXNOb3RSdW5WYWxpZGF0b3IpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQbGFjZWhvbGRlcihpOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoaSA8IHRoaXMuc2xvdENoYXIubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNsb3RDaGFyLmNoYXJBdChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2xvdENoYXIuY2hhckF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIHNlZWtOZXh0KHBvczogbnVtYmVyKSB7XHJcbiAgICAgICAgd2hpbGUgKCsrcG9zIDwgdGhpcy5sZW4hICYmICF0aGlzLnRlc3RzIVtwb3NdKTtcclxuICAgICAgICByZXR1cm4gcG9zO1xyXG4gICAgfVxyXG5cclxuICAgIHNlZWtQcmV2KHBvczogbnVtYmVyKSB7XHJcbiAgICAgICAgd2hpbGUgKC0tcG9zID49IDAgJiYgIXRoaXMudGVzdHMhW3Bvc10pO1xyXG4gICAgICAgIHJldHVybiBwb3M7XHJcbiAgICB9XHJcblxyXG4gICAgc2hpZnRMKGJlZ2luOiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGksIGo7XHJcblxyXG4gICAgICAgIGlmIChiZWdpbiA8IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChpID0gYmVnaW4sIGogPSB0aGlzLnNlZWtOZXh0KGVuZCk7IGkgPCB0aGlzLmxlbiE7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbaV0pIHtcclxuICAgICAgICAgICAgICAgIGlmIChqIDwgdGhpcy5sZW4hICYmIHRoaXMudGVzdHMhW2ldLnRlc3QodGhpcy5idWZmZXJbal0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSB0aGlzLmJ1ZmZlcltqXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltqXSA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGogPSB0aGlzLnNlZWtOZXh0KGopO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgdGhpcy5jYXJldChNYXRoLm1heCh0aGlzLmZpcnN0Tm9uTWFza1BvcyEsIGJlZ2luKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hpZnRSKHBvczogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGksIGMsIGosIHQ7XHJcblxyXG4gICAgICAgIGZvciAoaSA9IHBvcywgYyA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIocG9zKTsgaSA8IHRoaXMubGVuITsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtpXSkge1xyXG4gICAgICAgICAgICAgICAgaiA9IHRoaXMuc2Vla05leHQoaSk7XHJcbiAgICAgICAgICAgICAgICB0ID0gdGhpcy5idWZmZXJbaV07XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IGM7XHJcbiAgICAgICAgICAgICAgICBpZiAoaiA8IHRoaXMubGVuISAmJiB0aGlzLnRlc3RzIVtqXS50ZXN0KHQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYyA9IHQ7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUFuZHJvaWRJbnB1dChfOiBhbnkpIHtcclxuICAgICAgICB2YXIgY3VyVmFsID0gdGhpcy5pbnB1dC52YWx1ZTtcclxuICAgICAgICB2YXIgcG9zID0gdGhpcy5jYXJldCgpO1xyXG4gICAgICAgIGlmICh0aGlzLm9sZFZhbCAmJiB0aGlzLm9sZFZhbC5sZW5ndGggJiYgdGhpcy5vbGRWYWwubGVuZ3RoID4gY3VyVmFsLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrVmFsKHRydWUpO1xyXG4gICAgICAgICAgICB3aGlsZSAocG9zIS5iZWdpbiEgPiAwICYmICF0aGlzLnRlc3RzIVtwb3MhLmJlZ2luISAtIDFdKVxyXG4gICAgICAgICAgICAgICAgcG9zIS5iZWdpbiEtLTtcclxuICAgICAgICAgICAgaWYgKHBvcyEuYmVnaW4gPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChwb3MhLmJlZ2luIDwgdGhpcy5maXJzdE5vbk1hc2tQb3MhICYmICF0aGlzLnRlc3RzIVtwb3MhLmJlZ2luXSlcclxuICAgICAgICAgICAgICAgICAgICBwb3MhLmJlZ2luKys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jYXJldChwb3MhLmJlZ2luISwgcG9zIS5iZWdpbiEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBwb3MyID0gdGhpcy5jaGVja1ZhbCh0cnVlKTtcclxuICAgICAgICAgICAgd2hpbGUgKHBvcyEuYmVnaW4hIDwgdGhpcy5sZW4hICYmICF0aGlzLnRlc3RzIVtwb3MhLmJlZ2luIV0pXHJcbiAgICAgICAgICAgICAgICBwb3MhLmJlZ2luISsrO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jYXJldChwb3MhLmJlZ2luISwgcG9zIS5iZWdpbiEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNDb21wbGV0ZWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQmx1cihlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmZvY3VzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGVja1ZhbCgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVGaWxsZWRTdGF0ZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmlucHV0LnZhbHVlICE9IHRoaXMuZm9jdXNUZXh0KSB7XHJcbiAgICAgICAgICAgIGxldCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJyk7XHJcbiAgICAgICAgICAgIGV2ZW50LmluaXRFdmVudCgnY2hhbmdlJywgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xyXG4gICAgICAgICAgICBsZXQgbWFza2VkVmFsdWUgPSB0aGlzLmlucHV0LnZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuY29uZmlnLnZhbHVlV2l0aE1hc2sgPyBtYXNrZWRWYWx1ZSA6IHRoaXMuZ2V0VW5tYXNrZWRWYWx1ZSgpKTtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IG1hc2tlZFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbktleURvd24oZTogYW55KSB7XHJcbiAgICAgICAgbGV0IGsgPSBlLndoaWNoIHx8IGUua2V5Q29kZSxcclxuICAgICAgICAgICAgcG9zLFxyXG4gICAgICAgICAgICBiZWdpbixcclxuICAgICAgICAgICAgZW5kO1xyXG4gICAgICAgIGxldCBpUGhvbmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9sZFZhbCA9IHRoaXMuaW5wdXQudmFsdWU7XHJcbiAgICAgICAgbGV0IGNvbnRyb2xWYWxpZCA9IHRoaXMuY29uZmlnLm1pbkxlbmd0aCA/IHRoaXMuaXNDb21wbGV0ZWQodGhpcy5taW5MZW5ndGghICsgMSkgOiBmYWxzZTtcclxuICAgICAgICBpZiAoayA9PT0gOCB8fCBrID09PSA0NiB8fCAoaVBob25lICYmIGsgPT09IDEyNykpIHtcclxuICAgICAgICAgICAgcG9zID0gdGhpcy5jYXJldCgpO1xyXG4gICAgICAgICAgICBiZWdpbiA9IHBvcyEuYmVnaW47XHJcbiAgICAgICAgICAgIGVuZCA9IHBvcyEuZW5kO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVuZCAtIGJlZ2luISA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgYmVnaW4gPSBrICE9PSA0NiA/IHRoaXMuc2Vla1ByZXYoYmVnaW4hKSA6IChlbmQgPSB0aGlzLnNlZWtOZXh0KGJlZ2luISAtIDEpKTtcclxuICAgICAgICAgICAgICAgIGVuZCA9IGsgPT09IDQ2ID8gdGhpcy5zZWVrTmV4dChlbmQpIDogZW5kO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNsZWFyQnVmZmVyKGJlZ2luISwgZW5kKTtcclxuICAgICAgICAgICAgdGhpcy5zaGlmdEwoYmVnaW4hLCBlbmQgLSAxKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZSwgZmFsc2UsIGNvbnRyb2xWYWxpZCk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGsgPT09IDEzKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25CbHVyKGUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShlLCBmYWxzZSwgY29udHJvbFZhbGlkKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGsgPT09IDI3KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSB0aGlzLmZvY3VzVGV4dCA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5jYXJldCgwLCB0aGlzLmNoZWNrVmFsKCkpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShlLCBmYWxzZSwgY29udHJvbFZhbGlkKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5UHJlc3MoZTogYW55KSB7XHJcbiAgICAgICAgdmFyIGsgPSBlLndoaWNoIHx8IGUua2V5Q29kZSxcclxuICAgICAgICAgICAgcG9zID0gdGhpcy5jYXJldCgpLFxyXG4gICAgICAgICAgICBwLFxyXG4gICAgICAgICAgICBjLFxyXG4gICAgICAgICAgICBuZXh0LFxyXG4gICAgICAgICAgICBjb21wbGV0ZWQ7XHJcbiAgICAgICAgaWYgKGUuY3RybEtleSB8fCBlLmFsdEtleSB8fCBlLm1ldGFLZXkgfHwgayA8IDMyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2UgaWYgKGsgJiYgayAhPT0gMTMpIHtcclxuICAgICAgICAgICAgaWYgKHBvcyEuZW5kIC0gcG9zIS5iZWdpbiEgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIocG9zIS5iZWdpbiEsIHBvcyEuZW5kKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hpZnRMKHBvcyEuYmVnaW4hLCBwb3MhLmVuZCAtIDEpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwID0gdGhpcy5zZWVrTmV4dChwb3MhLmJlZ2luISAtIDEpO1xyXG4gICAgICAgICAgICBpZiAocCA8IHRoaXMubGVuISkge1xyXG4gICAgICAgICAgICAgICAgYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoayk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbcF0udGVzdChjKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hpZnRSKHApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltwXSA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSB0aGlzLnNlZWtOZXh0KHApO1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXJldChuZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocG9zIS5iZWdpbiEgPD0gdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRoaXMuaXNDb21wbGV0ZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcclxuICAgICAgICBpZiAoY29tcGxldGVkID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRoaXMuaXNDb21wbGV0ZWQoKVxyXG4gICAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGUsIGNvbXBsZXRlZCwgdGhpcy5jb25maWcubWluTGVuZ3RoID8gdGhpcy5pc0NvbXBsZXRlZCh0aGlzLm1pbkxlbmd0aCkgOiBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW50ZXJuYWxQcm9jZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY2xlYXJCdWZmZXIoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgaTtcclxuICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZCAmJiBpIDwgdGhpcy5sZW4hOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVCdWZmZXIoKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMuYnVmZmVyLmpvaW4oJycpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrVmFsKGFsbG93PzogYm9vbGVhbikge1xyXG4gICAgICAgIGxldCB0ZXN0ID0gdGhpcy5pbnB1dC52YWx1ZSxcclxuICAgICAgICAgICAgbGFzdE1hdGNoID0gLTEsXHJcbiAgICAgICAgICAgIGksXHJcbiAgICAgICAgICAgIGMsXHJcbiAgICAgICAgICAgIHBvcztcclxuXHJcbiAgICAgICAgZm9yIChpID0gMCwgcG9zID0gMDsgaSA8IHRoaXMubGVuITsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtpXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSB0aGlzLmdldFBsYWNlaG9sZGVyKGkpO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKHBvcysrIDwgdGVzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjID0gdGVzdC5jaGFyQXQocG9zIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldLnRlc3QoYykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSBjO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0TWF0Y2ggPSBpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocG9zID4gdGVzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQnVmZmVyKGkgKyAxLCB0aGlzLmxlbiEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYnVmZmVyW2ldID09PSB0ZXN0LmNoYXJBdChwb3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zKys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaSA8IHRoaXMucGFydGlhbFBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFzdE1hdGNoID0gaTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYWxsb3cpIHtcclxuICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoKGxhc3RNYXRjaCArIDEgPCB0aGlzLnBhcnRpYWxQb3NpdGlvbikgJiYgKCF0aGlzLmNvbmZpZy5taW5MZW5ndGggfHwgIShsYXN0TWF0Y2ggPj0gdGhpcy5taW5MZW5ndGghKSkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0NsZWFyIHx8IHRoaXMuYnVmZmVyLmpvaW4oJycpID09PSB0aGlzLmRlZmF1bHRCdWZmZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlXHJcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSB0aGlzLmlucHV0LnZhbHVlLnN1YnN0cmluZygwLCBsYXN0TWF0Y2ggKyAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLnBhcnRpYWxQb3NpdGlvbiA/IGkgOiB0aGlzLmZpcnN0Tm9uTWFza1Bvcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb2N1cyhldmVudDogYW55KSB7XHJcblxyXG4gICAgICAgIHRoaXMuZm9jdXMgPSB0cnVlO1xyXG5cclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jYXJldFRpbWVvdXRJZCk7XHJcbiAgICAgICAgbGV0IHBvczogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5mb2N1c1RleHQgPSB0aGlzLmlucHV0LnZhbHVlO1xyXG5cclxuICAgICAgICBwb3MgPSB0aGlzLmNoZWNrVmFsKCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2FyZXRUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgICAgIGlmIChwb3MgPT0gdGhpcy5tYXNrLnJlcGxhY2UoXCI/XCIsIFwiXCIpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJldCgwLCBwb3MpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJldChwb3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsbGVkU3RhdGUoKTtcclxuICAgICAgICB9LCAxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnB1dChldmVudDogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYW5kcm9pZENocm9tZSlcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVBbmRyb2lkSW5wdXQoZXZlbnQpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZShldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q29udHJvbFZhbHVlKGU6IGFueSwgaXNWYWxpZDogYm9vbGVhbiwgaXNWYWxpZENvbnRyb2w/OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBpc1ZhbGlkQ29udHJvbCA/ICFpc1ZhbGlkQ29udHJvbCA6ICFpc1ZhbGlkO1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuaW5wdXQudmFsdWU7XHJcbiAgICAgICAgbGV0IGNvbnRyb2xWYWx1ZSA9ICcnO1xyXG4gICAgICAgIGlmICghdGhpcy5pc0ludmFsaWQpXHJcbiAgICAgICAgICAgIGNvbnRyb2xWYWx1ZSA9IHRoaXMuY29uZmlnLnZhbHVlV2l0aE1hc2sgPyB2YWx1ZSA6IHRoaXMuZ2V0VW5tYXNrZWRWYWx1ZSgpXHJcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShjb250cm9sVmFsdWUpO1xyXG4gICAgICAgIHRoaXMub2xkVmFsdWUgPSB0aGlzLmlucHV0LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFpc1ZhbGlkKVxyXG4gICAgICAgICAgICB0aGlzLm9uRm9jdXMoZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgcG9zID0gdGhpcy5jaGVja1ZhbCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5jYXJldChwb3MpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGV2ZW50KTtcclxuICAgICAgICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZXZlbnQsIHRoaXMuaXNDb21wbGV0ZWQoKSk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VW5tYXNrZWRWYWx1ZSgpIHtcclxuICAgICAgICBsZXQgdW5tYXNrZWRCdWZmZXIgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYnVmZmVyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gdGhpcy5idWZmZXJbaV07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtpXSAmJiBjICE9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSkpIHtcclxuICAgICAgICAgICAgICAgIHVubWFza2VkQnVmZmVyLnB1c2goYyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVubWFza2VkQnVmZmVyLmpvaW4oJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZU1vZGVsKGU6IGFueSkgeyB9XHJcblxyXG4gICAgdXBkYXRlRmlsbGVkU3RhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5maWxsZWQgPSB0aGlzLmlucHV0ICYmIHRoaXMuaW5wdXQudmFsdWUgIT0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgb25EZXN0cm95KCkge1xyXG4gICAgICAgIGxldCBldmVudENvdW50ID0gdGhpcy5ldmVudExpc3RlbmVycy5sZW5ndGg7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudENvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudExpc3RlbmVyc1swXSgpO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnNwbGljZSgwLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycyA9IFtdO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -90,4 +90,4 @@ export class FormDataProvider {
|
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL2RvbWFpbi9mb3JtLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELDhCQUE4QjtBQUM5QixNQUFNLE1BQU0sR0FBVyxRQUFRLENBQUM7QUFDaEMsTUFBTSxPQUFPLEdBQVcsU0FBUyxDQUFDO0FBRWxDLDhFQUE4RTtBQUM5RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRXpCOzs7OztPQUtHO0lBQ0ksaUJBQWlCLENBQUMsT0FBK0IsRUFBRSxPQUF3QjtRQUM5RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxlQUFlLENBQUMsT0FBK0IsRUFBRSxlQUEwQixFQUFFLFNBQWtCLEVBQUUsT0FBd0I7UUFDNUgsbUdBQW1HO1FBQ25HLElBQUksUUFBUSxHQUFHLGVBQWUsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRWpELDRDQUE0QztRQUM1QyxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFFMUIsK0NBQStDO1FBQy9DLEtBQUssSUFBSSxVQUFVLElBQUksT0FBTyxFQUFFO1lBQzVCLG9HQUFvRztZQUNwRyxRQUFRLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLElBQUksVUFBVSxHQUFHLENBQUM7WUFFbkUsNkNBQTZDO1lBQzdDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRTtnQkFDcEMsaURBQWlEO2dCQUNqRCxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEtBQWEsRUFBRSxFQUFFO29CQUNwRCxtREFBbUQ7b0JBQ25ELElBQUksYUFBYSxHQUFHLEdBQUcsVUFBVSxJQUFJLEtBQUssR0FBRyxDQUFDO29CQUU5QyxtRUFBbUU7b0JBQ25FLElBQUksT0FBTyxHQUFHLEtBQUssTUFBTSxFQUFFO3dCQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO3FCQUMvRDt5QkFBTTt3QkFDSCwrQ0FBK0M7d0JBQy9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztxQkFDbEU7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLFFBQVEsQ0FBQyxFQUFFO2dCQUM3TSwwRUFBMEU7Z0JBQzFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDMUU7aUJBQU07Z0JBQ0gsc0ZBQXNGO2dCQUN0RixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDN0U7U0FDSjtRQUVELDBDQUEwQztRQUMxQyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0JBQWtCLENBQUMsS0FBVSxFQUFFLFFBQWtCLEVBQUUsUUFBZ0IsRUFBRSxPQUF3QjtRQUNoRyx3Q0FBd0M7UUFDeEMsSUFBSSxPQUFPLEtBQUssS0FBSyxPQUFPLEVBQUU7WUFDMUIsdUVBQXVFO1lBQ3ZFLElBQUksU0FBUyxHQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDMUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDeEM7UUFFRCxzQ0FBc0M7YUFDakMsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFO1lBQ2hDLDRDQUE0QztZQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbkMsc0NBQXNDO2dCQUN0QyxRQUFRLENBQUMsTUFBTSxDQUNYLE9BQU8sSUFBSSxPQUFPLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLElBQUksQ0FBQyxHQUFHLEVBQzNGLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQ3hCLENBQUM7YUFDTDtTQUNKO1FBRUQsK0JBQStCO2FBQzFCO1lBQ0QsMERBQTBEO1lBQzFELElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbEMsa0NBQWtDO2dCQUNsQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNwQztTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybURhdGFDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvaW50ZXJmYWNlL2Zvcm0tZGF0YS1jb25maWcnO1xyXG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gJy4uL3V0aWwvcmVnZXgtdmFsaWRhdG9yJztcclxuXHJcbi8qIENvbnN0YW50cyBmb3IgZGF0YSB0eXBlcyAqL1xyXG5jb25zdCBPQkpFQ1Q6IHN0cmluZyA9IFwib2JqZWN0XCI7XHJcbmNvbnN0IEJPT0xFQU46IHN0cmluZyA9IFwiYm9vbGVhblwiO1xyXG5cclxuLyogQ2xhc3MgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBtZXRob2RzIHRvIGNvbnZlcnQgSlNPTiBkYXRhIHRvIEZvcm1EYXRhICovXHJcbmV4cG9ydCBjbGFzcyBGb3JtRGF0YVByb3ZpZGVyIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRzIGEgSmF2YVNjcmlwdCBvYmplY3QgdG8gRm9ybURhdGEuXHJcbiAgICAgKiBAcGFyYW0gak9iamVjdCBUaGUgSmF2YVNjcmlwdCBvYmplY3QgdG8gY29udmVydC5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIGNvbnZlcnNpb24uXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgY29udmVydGVkIEZvcm1EYXRhIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnZlcnRUb0Zvcm1EYXRhKGpPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIG9wdGlvbnM/OiBGb3JtRGF0YUNvbmZpZyk6IEZvcm1EYXRhIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0Rm9ybURhdGEoak9iamVjdCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjdXJzaXZlbHkgY29udmVydHMgYSBKYXZhU2NyaXB0IG9iamVjdCB0byBGb3JtRGF0YS5cclxuICAgICAqIEBwYXJhbSBqT2JqZWN0IFRoZSBKYXZhU2NyaXB0IG9iamVjdCB0byBjb252ZXJ0LlxyXG4gICAgICogQHBhcmFtIGN1cnJlbnRGb3JtRGF0YSBUaGUgY3VycmVudCBGb3JtRGF0YSBvYmplY3QgKHVzZWQgZm9yIHJlY3Vyc2l2ZSBjYWxscykuXHJcbiAgICAgKiBAcGFyYW0gcGFyZW50S2V5IFRoZSBwYXJlbnQga2V5ICh1c2VkIGZvciByZWN1cnNpdmUgY2FsbHMpLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgY29udmVyc2lvbi5cclxuICAgICAqIEByZXR1cm5zIFRoZSBjb252ZXJ0ZWQgRm9ybURhdGEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29udmVydEZvcm1EYXRhKGpPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGN1cnJlbnRGb3JtRGF0YT86IEZvcm1EYXRhLCBwYXJlbnRLZXk/OiBzdHJpbmcsIG9wdGlvbnM/OiBGb3JtRGF0YUNvbmZpZyk6IEZvcm1EYXRhIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGZvcm1EYXRhIHdpdGggY3VycmVudEZvcm1EYXRhIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGNyZWF0ZSBhIG5ldyBGb3JtRGF0YSBvYmplY3QgKi9cclxuICAgICAgICBsZXQgZm9ybURhdGEgPSBjdXJyZW50Rm9ybURhdGEgfHwgbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgICAgIC8qIEluaXRpYWxpemUgcHJvcE5hbWUgdG8gYW4gZW1wdHkgc3RyaW5nICovXHJcbiAgICAgICAgbGV0IHByb3BOYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAgICAgLyogSXRlcmF0ZSBvdmVyIGVhY2ggcHJvcGVydHkgaW4gdGhlIGpPYmplY3QgKi9cclxuICAgICAgICBmb3IgKHZhciBjb2x1bW5OYW1lIGluIGpPYmplY3QpIHtcclxuICAgICAgICAgICAgLyogU2V0IHByb3BOYW1lIHRvIGNvbHVtbk5hbWUgaWYgdGhlcmUncyBubyBwYXJlbnRLZXksIG90aGVyd2lzZSB1c2UgcGFyZW50S2V5W2NvbHVtbk5hbWVdIGZvcm1hdCAqL1xyXG4gICAgICAgICAgICBwcm9wTmFtZSA9ICFwYXJlbnRLZXkgPyBjb2x1bW5OYW1lIDogYCR7cGFyZW50S2V5fVske2NvbHVtbk5hbWV9XWA7XHJcblxyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgcHJvcGVydHkgdmFsdWUgaXMgYW4gYXJyYXkgKi9cclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoak9iamVjdFtjb2x1bW5OYW1lXSkpIHtcclxuICAgICAgICAgICAgICAgIC8qIElmIGl0J3MgYW4gYXJyYXksIGl0ZXJhdGUgb3ZlciBlYWNoIGVsZW1lbnQgKi9cclxuICAgICAgICAgICAgICAgIGpPYmplY3RbY29sdW1uTmFtZV0uZm9yRWFjaCgocm93OiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvKiBTZXQgYXJyYXlQcm9wTmFtZSB0byBjb2x1bW5OYW1lW2luZGV4XSBmb3JtYXQgKi9cclxuICAgICAgICAgICAgICAgICAgICBsZXQgYXJyYXlQcm9wTmFtZSA9IGAke2NvbHVtbk5hbWV9WyR7aW5kZXh9XWA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBlbGVtZW50IGlzIGFuIG9iamVjdCwgcmVjdXJzaXZlbHkgY2FsbCBjb252ZXJ0Rm9ybURhdGEgKi9cclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJvdyA9PT0gT0JKRUNUKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udmVydEZvcm1EYXRhKHJvdywgZm9ybURhdGEsIGFycmF5UHJvcE5hbWUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIG5vdCBhbiBvYmplY3QsIGNhbGwgbm9uT2JqZWN0VmFsdWVCaW5kICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9uT2JqZWN0VmFsdWVCaW5kKHJvdywgZm9ybURhdGEsIGFycmF5UHJvcE5hbWUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGpPYmplY3RbY29sdW1uTmFtZV0gIT09IG51bGwgJiYgIShqT2JqZWN0W2NvbHVtbk5hbWVdIGluc3RhbmNlb2YgRGF0ZSkgJiYgdHlwZW9mIGpPYmplY3RbY29sdW1uTmFtZV0gPT09IE9CSkVDVCAmJiAhKGpPYmplY3RbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGaWxlIHx8IGpPYmplY3RbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGaWxlTGlzdCkpIHtcclxuICAgICAgICAgICAgICAgIC8qIElmIHRoZSBwcm9wZXJ0eSB2YWx1ZSBpcyBhbiBvYmplY3QsIHJlY3Vyc2l2ZWx5IGNhbGwgY29udmVydEZvcm1EYXRhICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnRGb3JtRGF0YShqT2JqZWN0W2NvbHVtbk5hbWVdLCBmb3JtRGF0YSwgcHJvcE5hbWUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLyogSWYgdGhlIHByb3BlcnR5IHZhbHVlIGlzIG5laXRoZXIgYW4gYXJyYXkgbm9yIGFuIG9iamVjdCwgY2FsbCBub25PYmplY3RWYWx1ZUJpbmQgKi9cclxuICAgICAgICAgICAgICAgIHRoaXMubm9uT2JqZWN0VmFsdWVCaW5kKGpPYmplY3RbY29sdW1uTmFtZV0sIGZvcm1EYXRhLCBwcm9wTmFtZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFJldHVybiB0aGUgcmVzdWx0aW5nIEZvcm1EYXRhIG9iamVjdCAqL1xyXG4gICAgICAgIHJldHVybiBmb3JtRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEJpbmRzIG5vbi1vYmplY3QgdmFsdWVzIHRvIEZvcm1EYXRhLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBiaW5kLlxyXG4gICAgICogQHBhcmFtIGZvcm1EYXRhIFRoZSBGb3JtRGF0YSBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0gcHJvcE5hbWUgVGhlIHByb3BlcnR5IG5hbWUuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBjb252ZXJzaW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbm9uT2JqZWN0VmFsdWVCaW5kKHZhbHVlOiBhbnksIGZvcm1EYXRhOiBGb3JtRGF0YSwgcHJvcE5hbWU6IHN0cmluZywgb3B0aW9ucz86IEZvcm1EYXRhQ29uZmlnKSB7XHJcbiAgICAgICAgLyogQ2hlY2sgaWYgdGhlIHZhbHVlIHR5cGUgaXMgYm9vbGVhbiAqL1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IEJPT0xFQU4pIHtcclxuICAgICAgICAgICAgLyogQ29udmVydCB0aGUgYm9vbGVhbiB2YWx1ZSB0byB0cnVlIG9yIGZhbHNlIGFuZCBhcHBlbmQgdG8gZm9ybURhdGEgKi9cclxuICAgICAgICAgICAgbGV0IGZvcm1WYWx1ZTogYW55ID0gdmFsdWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChwcm9wTmFtZSwgZm9ybVZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIEZpbGVMaXN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBGaWxlTGlzdCkge1xyXG4gICAgICAgICAgICAvKiBJdGVyYXRlIG92ZXIgZWFjaCBpdGVtIGluIHRoZSBGaWxlTGlzdCAqL1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBBcHBlbmQgdGhlIGZpbGUgaXRlbSB0byBmb3JtRGF0YSAqL1xyXG4gICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5leGNsdWRlSW1hZ2VJbmRleCAmJiB2YWx1ZS5sZW5ndGggPT09IDEgPyBwcm9wTmFtZSA6IGAke3Byb3BOYW1lfVske2l9XWAsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUuaXRlbShpKSBhcyBCbG9iXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBGb3Igb3RoZXIgdHlwZXMgb2YgdmFsdWVzICovXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBub3QgYmxhbmsgdXNpbmcgUmVnZXhWYWxpZGF0b3IgKi9cclxuICAgICAgICAgICAgaWYgKFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBBcHBlbmQgdGhlIHZhbHVlIHRvIGZvcm1EYXRhICovXHJcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQocHJvcE5hbWUsIHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL2RvbWFpbi9mb3JtLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELDhCQUE4QjtBQUM5QixNQUFNLE1BQU0sR0FBVyxRQUFRLENBQUM7QUFDaEMsTUFBTSxPQUFPLEdBQVcsU0FBUyxDQUFDO0FBRWxDLDhFQUE4RTtBQUM5RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRXpCOzs7OztPQUtHO0lBQ0ksaUJBQWlCLENBQUMsT0FBK0IsRUFBRSxPQUF3QjtRQUM5RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxlQUFlLENBQUMsT0FBK0IsRUFBRSxlQUEwQixFQUFFLFNBQWtCLEVBQUUsT0FBd0I7UUFDNUgsbUdBQW1HO1FBQ25HLElBQUksUUFBUSxHQUFHLGVBQWUsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRWpELDRDQUE0QztRQUM1QyxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFFMUIsK0NBQStDO1FBQy9DLEtBQUssSUFBSSxVQUFVLElBQUksT0FBTyxFQUFFLENBQUM7WUFDN0Isb0dBQW9HO1lBQ3BHLFFBQVEsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsSUFBSSxVQUFVLEdBQUcsQ0FBQztZQUVuRSw2Q0FBNkM7WUFDN0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLGlEQUFpRDtnQkFDakQsT0FBTyxDQUFDLFVB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L21vZGVscy9pbnRlcmZhY2UvZm9ybS1kYXRhLWNvbmZpZyc7XHJcbmltcG9ydCB7IFJlZ2V4VmFsaWRhdG9yIH0gZnJvbSAnLi4vdXRpbC9yZWdleC12YWxpZGF0b3InO1xyXG5cclxuLyogQ29uc3RhbnRzIGZvciBkYXRhIHR5cGVzICovXHJcbmNvbnN0IE9CSkVDVDogc3RyaW5nID0gXCJvYmplY3RcIjtcclxuY29uc3QgQk9PTEVBTjogc3RyaW5nID0gXCJib29sZWFuXCI7XHJcblxyXG4vKiBDbGFzcyByZXNwb25zaWJsZSBmb3IgcHJvdmlkaW5nIG1ldGhvZHMgdG8gY29udmVydCBKU09OIGRhdGEgdG8gRm9ybURhdGEgKi9cclxuZXhwb3J0IGNsYXNzIEZvcm1EYXRhUHJvdmlkZXIge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udmVydHMgYSBKYXZhU2NyaXB0IG9iamVjdCB0byBGb3JtRGF0YS5cclxuICAgICAqIEBwYXJhbSBqT2JqZWN0IFRoZSBKYXZhU2NyaXB0IG9iamVjdCB0byBjb252ZXJ0LlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgY29udmVyc2lvbi5cclxuICAgICAqIEByZXR1cm5zIFRoZSBjb252ZXJ0ZWQgRm9ybURhdGEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29udmVydFRvRm9ybURhdGEoak9iamVjdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgb3B0aW9ucz86IEZvcm1EYXRhQ29uZmlnKTogRm9ybURhdGEge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnZlcnRGb3JtRGF0YShqT2JqZWN0LCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgb3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWN1cnNpdmVseSBjb252ZXJ0cyBhIEphdmFTY3JpcHQgb2JqZWN0IHRvIEZvcm1EYXRhLlxyXG4gICAgICogQHBhcmFtIGpPYmplY3QgVGhlIEphdmFTY3JpcHQgb2JqZWN0IHRvIGNvbnZlcnQuXHJcbiAgICAgKiBAcGFyYW0gY3VycmVudEZvcm1EYXRhIFRoZSBjdXJyZW50IEZvcm1EYXRhIG9iamVjdCAodXNlZCBmb3IgcmVjdXJzaXZlIGNhbGxzKS5cclxuICAgICAqIEBwYXJhbSBwYXJlbnRLZXkgVGhlIHBhcmVudCBrZXkgKHVzZWQgZm9yIHJlY3Vyc2l2ZSBjYWxscykuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBjb252ZXJzaW9uLlxyXG4gICAgICogQHJldHVybnMgVGhlIGNvbnZlcnRlZCBGb3JtRGF0YSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb252ZXJ0Rm9ybURhdGEoak9iamVjdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY3VycmVudEZvcm1EYXRhPzogRm9ybURhdGEsIHBhcmVudEtleT86IHN0cmluZywgb3B0aW9ucz86IEZvcm1EYXRhQ29uZmlnKTogRm9ybURhdGEge1xyXG4gICAgICAgIC8qIEluaXRpYWxpemUgZm9ybURhdGEgd2l0aCBjdXJyZW50Rm9ybURhdGEgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2UgY3JlYXRlIGEgbmV3IEZvcm1EYXRhIG9iamVjdCAqL1xyXG4gICAgICAgIGxldCBmb3JtRGF0YSA9IGN1cnJlbnRGb3JtRGF0YSB8fCBuZXcgRm9ybURhdGEoKTtcclxuXHJcbiAgICAgICAgLyogSW5pdGlhbGl6ZSBwcm9wTmFtZSB0byBhbiBlbXB0eSBzdHJpbmcgKi9cclxuICAgICAgICBsZXQgcHJvcE5hbWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgICAgICAvKiBJdGVyYXRlIG92ZXIgZWFjaCBwcm9wZXJ0eSBpbiB0aGUgak9iamVjdCAqL1xyXG4gICAgICAgIGZvciAodmFyIGNvbHVtbk5hbWUgaW4gak9iamVjdCkge1xyXG4gICAgICAgICAgICAvKiBTZXQgcHJvcE5hbWUgdG8gY29sdW1uTmFtZSBpZiB0aGVyZSdzIG5vIHBhcmVudEtleSwgb3RoZXJ3aXNlIHVzZSBwYXJlbnRLZXlbY29sdW1uTmFtZV0gZm9ybWF0ICovXHJcbiAgICAgICAgICAgIHByb3BOYW1lID0gIXBhcmVudEtleSA/IGNvbHVtbk5hbWUgOiBgJHtwYXJlbnRLZXl9WyR7Y29sdW1uTmFtZX1dYDtcclxuXHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBwcm9wZXJ0eSB2YWx1ZSBpcyBhbiBhcnJheSAqL1xyXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShqT2JqZWN0W2NvbHVtbk5hbWVdKSkge1xyXG4gICAgICAgICAgICAgICAgLyogSWYgaXQncyBhbiBhcnJheSwgaXRlcmF0ZSBvdmVyIGVhY2ggZWxlbWVudCAqL1xyXG4gICAgICAgICAgICAgICAgak9iamVjdFtjb2x1bW5OYW1lXS5mb3JFYWNoKChyb3c6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIFNldCBhcnJheVByb3BOYW1lIHRvIGNvbHVtbk5hbWVbaW5kZXhdIGZvcm1hdCAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBhcnJheVByb3BOYW1lID0gYCR7Y29sdW1uTmFtZX1bJHtpbmRleH1dYDtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLyogSWYgdGhlIGVsZW1lbnQgaXMgYW4gb2JqZWN0LCByZWN1cnNpdmVseSBjYWxsIGNvbnZlcnRGb3JtRGF0YSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygcm93ID09PSBPQkpFQ1QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb252ZXJ0Rm9ybURhdGEocm93LCBmb3JtRGF0YSwgYXJyYXlQcm9wTmFtZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgbm90IGFuIG9iamVjdCwgY2FsbCBub25PYmplY3RWYWx1ZUJpbmQgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub25PYmplY3RWYWx1ZUJpbmQocm93LCBmb3JtRGF0YSwgYXJyYXlQcm9wTmFtZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoak9iamVjdFtjb2x1bW5OYW1lXSAhPT0gbnVsbCAmJiAhKGpPYmplY3RbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBEYXRlKSAmJiB0eXBlb2Ygak9iamVjdFtjb2x1bW5OYW1lXSA9PT0gT0JKRUNUICYmICEoak9iamVjdFtjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIEZpbGUgfHwgak9iamVjdFtjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIEZpbGVMaXN0KSkge1xyXG4gICAgICAgICAgICAgICAgLyogSWYgdGhlIHByb3BlcnR5IHZhbHVlIGlzIGFuIG9iamVjdCwgcmVjdXJzaXZlbHkgY2FsbCBjb252ZXJ0Rm9ybURhdGEgKi9cclxuICAgICAgICAgICAgICAgIHRoaXMuY29udmVydEZvcm1EYXRhKGpPYmplY3RbY29sdW1uTmFtZV0sIGZvcm1EYXRhLCBwcm9wTmFtZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvKiBJZiB0aGUgcHJvcGVydHkgdmFsdWUgaXMgbmVpdGhlciBhbiBhcnJheSBub3IgYW4gb2JqZWN0LCBjYWxsIG5vbk9iamVjdFZhbHVlQmluZCAqL1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub25PYmplY3RWYWx1ZUJpbmQoak9iamVjdFtjb2x1bW5OYW1lXSwgZm9ybURhdGEsIHByb3BOYW1lLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogUmV0dXJuIHRoZSByZXN1bHRpbmcgRm9ybURhdGEgb2JqZWN0ICovXHJcbiAgICAgICAgcmV0dXJuIGZvcm1EYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmluZHMgbm9uLW9iamVjdCB2YWx1ZXMgdG8gRm9ybURhdGEuXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIGJpbmQuXHJcbiAgICAgKiBAcGFyYW0gZm9ybURhdGEgVGhlIEZvcm1EYXRhIG9iamVjdC5cclxuICAgICAqIEBwYXJhbSBwcm9wTmFtZSBUaGUgcHJvcGVydHkgbmFtZS5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIGNvbnZlcnNpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBub25PYmplY3RWYWx1ZUJpbmQodmFsdWU6IGFueSwgZm9ybURhdGE6IEZvcm1EYXRhLCBwcm9wTmFtZTogc3RyaW5nLCBvcHRpb25zPzogRm9ybURhdGFDb25maWcpIHtcclxuICAgICAgICAvKiBDaGVjayBpZiB0aGUgdmFsdWUgdHlwZSBpcyBib29sZWFuICovXHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gQk9PTEVBTikge1xyXG4gICAgICAgICAgICAvKiBDb252ZXJ0IHRoZSBib29sZWFuIHZhbHVlIHRvIHRydWUgb3IgZmFsc2UgYW5kIGFwcGVuZCB0byBmb3JtRGF0YSAqL1xyXG4gICAgICAgICAgICBsZXQgZm9ybVZhbHVlOiBhbnkgPSB2YWx1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKHByb3BOYW1lLCBmb3JtVmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgRmlsZUxpc3QgKi9cclxuICAgICAgICBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZpbGVMaXN0KSB7XHJcbiAgICAgICAgICAgIC8qIEl0ZXJhdGUgb3ZlciBlYWNoIGl0ZW0gaW4gdGhlIEZpbGVMaXN0ICovXHJcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIC8qIEFwcGVuZCB0aGUgZmlsZSBpdGVtIHRvIGZvcm1EYXRhICovXHJcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyAmJiBvcHRpb25zLmV4Y2x1ZGVJbWFnZUluZGV4ICYmIHZhbHVlLmxlbmd0aCA9PT0gMSA/IHByb3BOYW1lIDogYCR7cHJvcE5hbWV9WyR7aX1dYCxcclxuICAgICAgICAgICAgICAgICAgICB2YWx1ZS5pdGVtKGkpIGFzIEJsb2JcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEZvciBvdGhlciB0eXBlcyBvZiB2YWx1ZXMgKi9cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIG5vdCBibGFuayB1c2luZyBSZWdleFZhbGlkYXRvciAqL1xyXG4gICAgICAgICAgICBpZiAoUmVnZXhWYWxpZGF0b3IuaXNOb3RCbGFuayh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIC8qIEFwcGVuZCB0aGUgdmFsdWUgdG8gZm9ybURhdGEgKi9cclxuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChwcm9wTmFtZSwgdmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
|
|
@@ -55,4 +55,4 @@ export class FormBuilderConfiguration {
|
|
|
55
55
|
*/
|
|
56
56
|
baseAbstractControlOptions;
|
|
57
57
|
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idWlsZGVyLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvbW9kZWxzL2Zvcm0tYnVpbGRlci1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUNqQyxZQUFZLHdCQUFtRDtRQUMzRCwwRUFBMEU7UUFDMUUsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1lBQzNCLEtBQUssSUFBSSxNQUFNLElBQUksd0JBQXdCLEVBQUUsQ0FBQztnQkFDekMsSUFBWSxDQUFDLE1BQU0sQ0FBQyxHQUFJLHdCQUFnQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RFLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksZUFBZSxDQUErQjtJQUVyRDs7T0FFRztJQUNJLGFBQWEsQ0FBaUI7SUFFckM7O09BRUc7SUFDSSxZQUFZLENBQVk7SUFFL0I7O09BRUc7SUFDSSxZQUFZLENBQVk7SUFFL0I7O09BRUc7SUFDSSxvQkFBb0IsQ0FBWTtJQUV2Qzs7T0FFRztJQUNJLFdBQVcsQ0FBaUM7SUFFbkQ7O09BRUc7SUFDSSxpQkFBaUIsQ0FBMkM7SUFFbkU7O09BRUc7SUFDSSwwQ0FBMEMsQ0FBVTtJQUUzRDs7T0FFRztJQUNJLGtCQUFrQixDQUFzQjtJQUUvQzs7T0FFRztJQUNJLHNCQUFzQixDQUFtRDtJQUVoRjs7T0FFRztJQUNJLDBCQUEwQixDQUE2QztDQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbE9wdGlvbnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBQcm9wQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL3Byb3AtY29uZmlnXCI7XHJcbmltcG9ydCB7IEF1dG9JbnN0YW5jZUNvbmZpZyB9IGZyb20gJy4vaW50ZXJmYWNlL2F1dG8taW5zdGFuY2UtY29uZmlnLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFByb3BWYWxpZGF0aW9uQ29uZmlnIH0gZnJvbSBcIi4vcHJvcC12YWxpZGF0aW9uLWNvbmZpZ1wiO1xyXG5cclxuLyoqXHJcbiAqIENvbmZpZ3VyYXRpb24gY2xhc3MgZm9yIEFuZ3VsYXIncyBGb3JtQnVpbGRlci4gUHJvdmlkZXMgb3B0aW9ucyBhbmQgc2V0dGluZ3MgZm9yIEZvcm1CdWlsZGVyLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEZvcm1CdWlsZGVyQ29uZmlndXJhdGlvbiB7XHJcbiAgICBjb25zdHJ1Y3Rvcihmb3JtQnVpbGRlckNvbmZpZ3VyYXRpb24/OiBGb3JtQnVpbGRlckNvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICAvKiBJZiBhIGNvbmZpZ3VyYXRpb24gaXMgcHJvdmlkZWQsIGNvcHkgaXRzIHByb3BlcnRpZXMgdG8gdGhpcyBpbnN0YW5jZSAqL1xyXG4gICAgICAgIGlmIChmb3JtQnVpbGRlckNvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgY29sdW1uIGluIGZvcm1CdWlsZGVyQ29uZmlndXJhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgKHRoaXMgYXMgYW55KVtjb2x1bW5dID0gKGZvcm1CdWlsZGVyQ29uZmlndXJhdGlvbiBhcyBhbnkpW2NvbHVtbl07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXAgb2YgZ2VuZXJpYyBlbnRpdGllcyB1c2VkIGluIHRoZSBjb25maWd1cmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2VuZXJpY0VudGl0aWVzPzogeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbiB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgb2YgZ2VuZXJpYyB2YWxpZGF0aW9uIGZ1bmN0aW9ucyB0byBiZSBhcHBsaWVkIHRvIGFsbCBmb3JtIGNvbnRyb2xzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXBwbHlBbGxQcm9wcz86IFZhbGlkYXRvckZuW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyB0byBiZSBleGNsdWRlZCBmcm9tIGZvcm0gZ2VuZXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGV4Y2x1ZGVQcm9wcz86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgdG8gYmUgaW5jbHVkZWQgaW4gZm9ybSBnZW5lcmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5jbHVkZVByb3BzPzogc3RyaW5nW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyB0byBiZSBpZ25vcmVkIGlmIHRoZWlyIHZhbHVlcyBhcmUgdW5kZWZpbmVkIGR1cmluZyBmb3JtIGdlbmVyYXRpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpZ25vcmVVbmRlZmluZWRQcm9wcz86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFwIG9mIHByb3BlcnR5IGNvbmZpZ3VyYXRpb25zIHVzaW5nIFByb3BDb25maWcgZm9yIHNwZWNpZmljIGZvcm0gY29udHJvbHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwcm9wc0NvbmZpZz86IHsgW2tleTogc3RyaW5nXTogUHJvcENvbmZpZyB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFwIG9mIGR5bmFtaWMgdmFsaWRhdGlvbnMgZm9yIHNwZWNpZmljIHByb3BlcnRpZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkeW5hbWljVmFsaWRhdGlvbj86IHsgW2tleTogc3RyaW5nXTogUHJvcFZhbGlkYXRpb25Db25maWcgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIHByb3BlcnR5IGhvbGRpbmcgZHluYW1pYyB2YWxpZGF0aW9uIGNvbmZpZ3VyYXRpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBkeW5hbWljVmFsaWRhdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhdXRvLWluc3RhbnRpYXRpbmcgY2xhc3NlcyB3aGVuIGNvbnN0cnVjdGluZyBmb3JtIGdyb3Vwcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGF1dG9JbnN0YW5jZUNvbmZpZz86IEF1dG9JbnN0YW5jZUNvbmZpZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hcCBvZiBhYnN0cmFjdCBjb250cm9sIG9wdGlvbnMgc3BlY2lmeWluZyB3aGVuIHRvIHVwZGF0ZSB0aGUgY29udHJvbCAoY2hhbmdlLCBibHVyLCBzdWJtaXQpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3RDb250cm9sT3B0aW9ucz86IHsgW2tleTogc3RyaW5nXTogJ2NoYW5nZScgfCAnYmx1cicgfCAnc3VibWl0JyB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFwIG9mIGJhc2UgYWJzdHJhY3QgY29udHJvbCBvcHRpb25zIGZvciBzcGVjaWZpYyBmb3JtIGNvbnRyb2xzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYmFzZUFic3RyYWN0Q29udHJvbE9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbE9wdGlvbnMgfTtcclxufSJdfQ==
|
|
@@ -30,4 +30,4 @@ export function allOfValidator(configModel) {
|
|
|
30
30
|
return ObjectMaker.null();
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsT2YudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL3JlYWN0aXZlLWZvcm0tdmFsaWRhdG9ycy9hbGxPZi52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXhFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLFdBQXlCO0lBQ3RELE9BQU8sQ0FBQyxPQUF3QixFQUFpQyxFQUFFO1FBQ2pFLDhCQUE4QjtRQUM5QixJQUFJLE1BQU0sR0FBRyxlQUFlLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVqRSwrQ0FBK0M7UUFDL0MsSUFBSSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDMUQscUNBQXFDO1lBQ3JDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztZQUV2QixpRUFBaUU7WUFDakUsS0FBSyxJQUFJLEtBQUssSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3JDLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLENBQUMsVUFBVTtvQkFDYixNQUFNO1lBQ1YsQ0FBQztZQUVELHNEQUFzRDtZQUN0RCxJQUFJLENBQUMsVUFBVTtnQkFDYixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBRUQsc0NBQXNDO1FBQ3RDLE9BQU8sV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5pbXBvcnQgeyBBUlJBWV9DT05GSUcgfSBmcm9tIFwiLi4vY29uc3QvY29uZmlnLW5hbWVzLmNvbnN0XCI7XHJcbmltcG9ydCB7IEFubm90YXRpb25UeXBlcyB9IGZyb20gXCIuLi9jb3JlL2Fubm90YXRpb24tdHlwZXNcIjtcclxuaW1wb3J0IHsgQXJyYXlDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2NvbmZpZy9hcnJheS1jb25maWdcIjtcclxuaW1wb3J0IHsgZ2V0Q29uZmlnT2JqZWN0IH0gZnJvbSBcIi4uL3V0aWwvY29uZmlnLXByb3ZpZGVyXCI7XHJcbmltcG9ydCB7IE9iamVjdE1ha2VyIH0gZnJvbSBcIi4uL3V0aWwvb2JqZWN0LW1ha2VyXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRvclZhbHVlQ2hlY2tlciB9IGZyb20gXCIuLi91dGlsL3ZhbGlkYXRvci12YWx1ZS1jaGVja2VyXCI7XHJcblxyXG4vKipcclxuICogVmFsaWRhdG9yIGZ1bmN0aW9uIHRvIGNoZWNrIGlmIGFsbCB2YWx1ZXMgaW4gdGhlIGFycmF5IG1hdGNoIHRoZSBzcGVjaWZpZWQgdmFsdWVzLlxyXG4gKiBAcGFyYW0gY29uZmlnTW9kZWwgLSBDb25maWd1cmF0aW9uIG1vZGVsIGZvciB0aGUgYXJyYXkgdmFsaWRhdG9yLlxyXG4gKiBAcmV0dXJucyBWYWxpZGF0b3IgZnVuY3Rpb24uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWxsT2ZWYWxpZGF0b3IoY29uZmlnTW9kZWw/OiBBcnJheUNvbmZpZyk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+IHtcclxuICAgIC8qIEdldCBjb25maWd1cmF0aW9uIG9iamVjdCAqL1xyXG4gICAgbGV0IGNvbmZpZyA9IGdldENvbmZpZ09iamVjdChjb25maWdNb2RlbCwgY29udHJvbCwgQVJSQVlfQ09ORklHKTtcclxuXHJcbiAgICAvKiBDaGVjayBpZiB0aGUgYXJyYXkgdmFsdWVzIHBhc3MgdmFsaWRhdGlvbiAqL1xyXG4gICAgaWYgKFZhbGlkYXRvclZhbHVlQ2hlY2tlci5wYXNzQXJyYXlWYWx1ZShjb250cm9sLCBjb25maWcpKSB7XHJcbiAgICAgIC8qIEluaXRpYWxpemUgdGVzdCByZXN1bHQgdG8gZmFsc2UgKi9cclxuICAgICAgbGV0IHRlc3RSZXN1bHQgPSBmYWxzZTtcclxuXHJcbiAgICAgIC8qIENoZWNrIGlmIGFsbCB2YWx1ZXMgaW4gdGhlIGFycmF5IG1hdGNoIHRoZSBzcGVjaWZpZWQgdmFsdWVzICovXHJcbiAgICAgIGZvciAobGV0IHZhbHVlIG9mIGNvbmZpZy5tYXRjaFZhbHVlcykge1xyXG4gICAgICAgIHRlc3RSZXN1bHQgPSBjb250cm9sLnZhbHVlLnNvbWUoKHk6IGFueSkgPT4geSA9PSB2YWx1ZSk7XHJcbiAgICAgICAgaWYgKCF0ZXN0UmVzdWx0KVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8qIElmIG5vdCBhbGwgdmFsdWVzIG1hdGNoLCByZXR1cm4gdmFsaWRhdGlvbiBlcnJvciAqL1xyXG4gICAgICBpZiAoIXRlc3RSZXN1bHQpXHJcbiAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLnRvSnNvbihBbm5vdGF0aW9uVHlwZXMuYWxsT2YsIGNvbmZpZywgW2NvbnRyb2wudmFsdWVdKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBSZXR1cm4gbnVsbCBpZiB2YWxpZGF0aW9uIHBhc3NlcyAqL1xyXG4gICAgcmV0dXJuIE9iamVjdE1ha2VyLm51bGwoKTtcclxuICB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -35,4 +35,4 @@ export function andValidator(configModel) {
|
|
|
35
35
|
return ObjectMaker.null();
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5kLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9yZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvYW5kLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsV0FBbUM7SUFDOUQsT0FBTyxDQUFDLE9BQXdCLEVBQWlDLEVBQUU7UUFDakUsOEJBQThCO1FBQzlCLElBQUksTUFBTSxHQUFHLGVBQWUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFbkQsMkNBQTJDO1FBQzNDLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hELHNDQUFzQztZQUN0QyxJQUFJLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVwRCxnREFBZ0Q7WUFDaEQsSUFBSSxNQUFNLEdBQVksS0FBSyxDQUFDO1lBRTVCLDRDQUE0QztZQUM1QyxLQUFLLElBQUksYUFBYSxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLEdBQUcsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFNBQVM7b0JBQzNELENBQUMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQzFDLENBQUMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUU3RSw2Q0FBNkM7Z0JBQzdDLElBQUksTUFBTTtvQkFDUixNQUFNO1lBQ1YsQ0FBQztZQUVELHNEQUFzRDtZQUN0RCxJQUFJLE1BQU07Z0JBQ1IsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztRQUVELHNDQUFzQztRQUN0QyxPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHsgQVBQX1ZBTElEQVRPUlMgfSBmcm9tIFwiLi4vY29uc3QvYXBwLXZhbGlkYXRvcnMuY29uc3RcIjtcclxuaW1wb3J0IHsgQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIi4uL2NvcmUvYW5ub3RhdGlvbi10eXBlc1wiO1xyXG5pbXBvcnQgeyBMb2dpY2FsT3BlcmF0b3JDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2NvbmZpZy9sb2dpY2FsLW9wZXJhdG9yLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBnZXRDb25maWdPYmplY3QgfSBmcm9tIFwiLi4vdXRpbC9jb25maWctcHJvdmlkZXJcIjtcclxuaW1wb3J0IHsgT2JqZWN0TWFrZXIgfSBmcm9tIFwiLi4vdXRpbC9vYmplY3QtbWFrZXJcIjtcclxuaW1wb3J0IHsgVmFsaWRhdG9yVmFsdWVDaGVja2VyIH0gZnJvbSBcIi4uL3V0aWwvdmFsaWRhdG9yLXZhbHVlLWNoZWNrZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBWYWxpZGF0b3IgZnVuY3Rpb24gdG8gYXBwbHkgbXVsdGlwbGUgdmFsaWRhdG9ycyB1c2luZyBsb2dpY2FsIEFORC5cclxuICogQHBhcmFtIGNvbmZpZ01vZGVsIC0gQ29uZmlndXJhdGlvbiBtb2RlbCBmb3IgdGhlIEFORCB2YWxpZGF0b3IuXHJcbiAqIEByZXR1cm5zIFZhbGlkYXRvciBmdW5jdGlvbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhbmRWYWxpZGF0b3IoY29uZmlnTW9kZWw/OiBMb2dpY2FsT3BlcmF0b3JDb25maWcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAvKiBHZXQgY29uZmlndXJhdGlvbiBvYmplY3QgKi9cclxuICAgIGxldCBjb25maWcgPSBnZXRDb25maWdPYmplY3QoY29uZmlnTW9kZWwsIGNvbnRyb2wpO1xyXG5cclxuICAgIC8qIENoZWNrIGlmIHZhbGlkYXRpb24gc2hvdWxkIGJlIGFwcGxpZWQgKi9cclxuICAgIGlmIChWYWxpZGF0b3JWYWx1ZUNoZWNrZXIucGFzcyhjb250cm9sLCBjb25maWcpKSB7XHJcbiAgICAgIC8qIEdldCBuYW1lcyBvZiB2YWxpZGF0b3JzIHRvIGFwcGx5ICovXHJcbiAgICAgIGxldCB2YWxpZGF0b3JOYW1lcyA9IE9iamVjdC5rZXlzKGNvbmZpZy52YWxpZGF0aW9uKTtcclxuXHJcbiAgICAgIC8qIFZhcmlhYmxlIHRvIHRyYWNrIGlmIGFueSB2YWxpZGF0aW9uIGZhaWxlZCAqL1xyXG4gICAgICBsZXQgZmFpbGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgICAvKiBBcHBseSBlYWNoIHZhbGlkYXRvciB1c2luZyBsb2dpY2FsIEFORCAqL1xyXG4gICAgICBmb3IgKHZhciB2YWxpZGF0b3JOYW1lIG9mIHZhbGlkYXRvck5hbWVzKSB7XHJcbiAgICAgICAgZmFpbGVkID0gdHlwZW9mIGNvbmZpZy52YWxpZGF0aW9uW3ZhbGlkYXRvck5hbWVdID09IFwiYm9vbGVhblwiXHJcbiAgICAgICAgICA/IEFQUF9WQUxJREFUT1JTW3ZhbGlkYXRvck5hbWVdKCkoY29udHJvbClcclxuICAgICAgICAgIDogQVBQX1ZBTElEQVRPUlNbdmFsaWRhdG9yTmFtZV0oY29uZmlnLnZhbGlkYXRpb25bdmFsaWRhdG9yTmFtZV0pKGNvbnRyb2wpO1xyXG5cclxuICAgICAgICAvKiBJZiBhbnkgdmFsaWRhdGlvbiBmYWlscywgYnJlYWsgdGhlIGxvb3AgKi9cclxuICAgICAgICBpZiAoZmFpbGVkKVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8qIElmIGFueSB2YWxpZGF0aW9uIGZhaWxzLCByZXR1cm4gdmFsaWRhdGlvbiBlcnJvciAqL1xyXG4gICAgICBpZiAoZmFpbGVkKVxyXG4gICAgICAgIHJldHVybiBPYmplY3RNYWtlci50b0pzb24oQW5ub3RhdGlvblR5cGVzLmFuZCwgY29uZmlnLCBbY29udHJvbC52YWx1ZV0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFJldHVybiBudWxsIGlmIHZhbGlkYXRpb24gcGFzc2VzICovXHJcbiAgICByZXR1cm4gT2JqZWN0TWFrZXIubnVsbCgpO1xyXG4gIH07XHJcbn1cclxuIl19
|
|
@@ -42,4 +42,4 @@ function resolveConfig(configModel, validatorName, control) {
|
|
|
42
42
|
return APP_VALIDATORS[validatorName](configClone)(control);
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5hc3luYy52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvcmVhY3RpdmUtZm9ybS12YWxpZGF0b3JzL2FzeW5jL2Jhc2UuYXN5bmMudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsV0FBZ0IsRUFBRSxhQUFxQjtJQUN0RSxPQUFPLENBQUMsT0FBd0IsRUFBNkMsRUFBRTtRQUMzRSxtQ0FBbUM7UUFDbkMsV0FBVyxHQUFHLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFFaEMsSUFBSSxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDOUIscUNBQXFDO1lBQ3JDLElBQUksWUFBWSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDakQsb0RBQW9EO2dCQUNwRCxPQUF5QixXQUFXLENBQUMsZUFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4SCxDQUFDO1lBRUQsNENBQTRDO1lBQzVDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUM7YUFBTSxDQUFDO1lBQ0osNkRBQTZEO1lBQzdELE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDL0UsQ0FBQztJQUNMLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLGFBQWEsQ0FBQyxXQUFnQixFQUFFLGFBQXFCLEVBQUUsT0FBd0I7SUFDcEYsT0FBTyxDQUFDLE1BQVcsRUFBRSxFQUFFO1FBQ25CLDZFQUE2RTtRQUM3RSxJQUFJLFdBQVcsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBRWxGLGtGQUFrRjtRQUNsRixPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBBc3luY1ZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBUFBfVkFMSURBVE9SUyB9IGZyb20gJy4uLy4uL2NvbnN0L2FwcC12YWxpZGF0b3JzLmNvbnN0JztcclxuaW1wb3J0IHsgRm9ybVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vdXRpbC9mb3JtLXByb3ZpZGVyJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlIGFzeW5jaHJvbm91cyB2YWxpZGF0b3IgZmFjdG9yeSBmdW5jdGlvbi5cclxuICogQHBhcmFtIGNvbmZpZ01vZGVsIC0gQ29uZmlndXJhdGlvbiBtb2RlbCBmb3IgdGhlIHZhbGlkYXRvci5cclxuICogQHBhcmFtIHZhbGlkYXRvck5hbWUgLSBOYW1lIG9mIHRoZSB2YWxpZGF0b3IuXHJcbiAqIEByZXR1cm5zIEFzeW5jVmFsaWRhdG9yRm4gZnVuY3Rpb24uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYmFzZUFzeW5jVmFsaWRhdG9yKGNvbmZpZ01vZGVsOiBhbnksIHZhbGlkYXRvck5hbWU6IHN0cmluZyk6IEFzeW5jVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsPiA9PiB7XHJcbiAgICAgICAgLyogRW5zdXJlIGNvbmZpZ01vZGVsIGlzIGRlZmluZWQgKi9cclxuICAgICAgICBjb25maWdNb2RlbCA9IGNvbmZpZ01vZGVsIHx8IHt9O1xyXG5cclxuICAgICAgICBpZiAoY29uZmlnTW9kZWwudmFsaWRhdG9yQ29uZmlnKSB7XHJcbiAgICAgICAgICAgIC8qIFByb2Nlc3MgcnVsZSB1c2luZyBGb3JtUHJvdmlkZXIgKi9cclxuICAgICAgICAgICAgaWYgKEZvcm1Qcm92aWRlci5wcm9jZXNzUnVsZShjb250cm9sLCBjb25maWdNb2RlbCkpIHtcclxuICAgICAgICAgICAgICAgIC8qIFVzZSB0aGUgcHJvdmlkZWQgYXN5bmMgdmFsaWRhdG9yIGNvbmZpZ3VyYXRpb24gKi9cclxuICAgICAgICAgICAgICAgIHJldHVybiAoPE9ic2VydmFibGU8YW55Pj5jb25maWdNb2RlbC52YWxpZGF0b3JDb25maWcpLnBpcGUobWFwKHJlc29sdmVDb25maWcoY29uZmlnTW9kZWwsIHZhbGlkYXRvck5hbWUsIGNvbnRyb2wpKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIElmIHJ1bGUgaXMgbm90IGFwcGxpY2FibGUsIHJldHVybiBudWxsICovXHJcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvKiBVc2UgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBhbmQgcmVzb2x2ZSB0aGUgdmFsaWRhdG9yICovXHJcbiAgICAgICAgICAgIHJldHVybiBvZihyZXNvbHZlQ29uZmlnKGNvbmZpZ01vZGVsLCB2YWxpZGF0b3JOYW1lLCBjb250cm9sKShjb25maWdNb2RlbCkpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZXNvbHZlcyB0aGUgY29uZmlndXJhdGlvbiBhbmQgYXBwbGllcyB0aGUgdmFsaWRhdG9yIHRvIHRoZSBjb250cm9sLlxyXG4gKiBAcGFyYW0gY29uZmlnTW9kZWwgLSBDb25maWd1cmF0aW9uIG1vZGVsIGZvciB0aGUgdmFsaWRhdG9yLlxyXG4gKiBAcGFyYW0gdmFsaWRhdG9yTmFtZSAtIE5hbWUgb2YgdGhlIHZhbGlkYXRvci5cclxuICogQHBhcmFtIGNvbnRyb2wgLSBGb3JtIGNvbnRyb2wgdG8gdmFsaWRhdGUuXHJcbiAqIEByZXR1cm5zIFZhbGlkYXRvciBmdW5jdGlvbi5cclxuICovXHJcbmZ1bmN0aW9uIHJlc29sdmVDb25maWcoY29uZmlnTW9kZWw6IGFueSwgdmFsaWRhdG9yTmFtZTogc3RyaW5nLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcclxuICAgIHJldHVybiAoY29uZmlnOiBhbnkpID0+IHtcclxuICAgICAgICAvKiBDcmVhdGUgYSBjbG9uZSBvZiB0aGUgY29uZmlndXJhdGlvbiBtb2RlbCB3aXRoIGV4cHJlc3Npb25Qcm9jZXNzZWQgZmxhZyAqL1xyXG4gICAgICAgIGxldCBjb25maWdDbG9uZSA9IHsgLi4uY29uZmlnTW9kZWwsIC4uLmNvbmZpZywgLi4ueyBleHByZXNzaW9uUHJvY2Vzc2VkOiB0cnVlIH0gfTtcclxuXHJcbiAgICAgICAgLyogQXBwbHkgdGhlIHZhbGlkYXRvciBmdW5jdGlvbiB0byB0aGUgY29udHJvbCB1c2luZyB0aGUgcmVzb2x2ZWQgY29uZmlndXJhdGlvbiAqL1xyXG4gICAgICAgIHJldHVybiBBUFBfVkFMSURBVE9SU1t2YWxpZGF0b3JOYW1lXShjb25maWdDbG9uZSkoY29udHJvbCk7XHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
|