@messaia/cdk 17.1.0-rc15 → 17.1.0-rc16
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/form-validators/abstract/typed-form.mjs +10 -1
- package/esm2022/lib/form-validators/algorithm/luhn-algorithm.mjs +25 -7
- package/esm2022/lib/form-validators/const/app-validators.const.mjs +2 -2
- package/esm2022/lib/form-validators/const/app.const.mjs +49 -1
- package/esm2022/lib/form-validators/const/config-names.const.mjs +25 -1
- package/esm2022/lib/form-validators/const/config-required-fields.const.mjs +26 -2
- package/esm2022/lib/form-validators/const/events.const.mjs +40 -1
- package/esm2022/lib/form-validators/const/html-elements.const.mjs +19 -1
- package/esm2022/lib/form-validators/const/validator.const.mjs +22 -1
- package/esm2022/lib/form-validators/core/{validator.static.mjs → annotation-types.mjs} +1 -1
- package/esm2022/lib/form-validators/core/default-container.mjs +493 -0
- package/esm2022/lib/form-validators/decorators/allOf.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/alpha.decorator.mjs +3 -3
- package/esm2022/lib/form-validators/decorators/alphaNumeric.decorator.mjs +3 -3
- package/esm2022/lib/form-validators/decorators/and.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/ascii.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/async.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/base-decorator.function.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/choice.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/compare.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/compose.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/contains.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/credit-card.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/cusip.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/custom.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/dataUri.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/date.decorator.mjs +3 -3
- package/esm2022/lib/form-validators/decorators/different.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/digit.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/email.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/endsWith.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/even.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/extension.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/factor.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/file.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/fileSize.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/greater-than-equal-to.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/greater-than.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/grid.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/hexColor.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/image.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/json.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/latLong.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/latitude.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/leapYear.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/less-than-equal-to.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/less-than.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/longitude.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/lowercase.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/mac.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/mask.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/maxDate.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/maxLength.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/maxNumber.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/maxTime.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/minDate.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/minLength.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/minNumber.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/minTime.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/model.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/disable.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/error.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/non-validation-decorators/update-on.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/noneOf.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/not.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/notEmpty.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/numeric.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/odd.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/oneOf.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/or.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/password.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/pattern.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/port.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/primeNumber.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/prop-array.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/prop-object.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/prop.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/range.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/required.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/requiredTrue.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/rule.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/blacklist.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/escape.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/ltrim.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/prefix.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/rtrim.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/sanitize.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/stripLow.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/suffix.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/toBoolean.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/toDate.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/toDouble.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/toFloat.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/toInt.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/toString.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/trim.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/sanitize/whitelist.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/startsWith.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/time.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/unique.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/uppercase.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/decorators/url.decorator.mjs +2 -2
- package/esm2022/lib/form-validators/directives/base-directive.mjs +34 -3
- package/esm2022/lib/form-validators/directives/control-host.directive.mjs +18 -1
- package/esm2022/lib/form-validators/directives/html-control-template.directive.mjs +15 -1
- package/esm2022/lib/form-validators/directives/rx-form.directive.mjs +108 -14
- package/esm2022/lib/form-validators/directives/template-validations/async-validation.directive.mjs +2 -4
- package/esm2022/lib/form-validators/directives/template-validations/base-validator.directive.mjs +17 -7
- package/esm2022/lib/form-validators/directives/template-validations/control-expression-process.mjs +22 -8
- package/esm2022/lib/form-validators/domain/disable-provider.mjs +107 -4
- package/esm2022/lib/form-validators/domain/element-processor/decimal.provider.mjs +67 -7
- package/esm2022/lib/form-validators/domain/element-processor/mask.provider.mjs +4 -3
- package/esm2022/lib/form-validators/domain/form-data.mjs +53 -7
- package/esm2022/lib/form-validators/models/control-info.mjs +2 -0
- package/esm2022/lib/form-validators/models/data-sanitizer.mjs +2 -0
- package/esm2022/lib/form-validators/models/decorator-configuration.mjs +2 -0
- package/esm2022/lib/form-validators/models/form-builder-configuration.mjs +35 -13
- package/esm2022/lib/form-validators/models/instance-container.mjs +2 -0
- package/esm2022/lib/form-validators/models/password-validation.model.mjs +1 -1
- package/esm2022/lib/form-validators/models/prop-validation-config.mjs +1 -1
- package/esm2022/lib/form-validators/models/property-info.mjs +2 -0
- package/esm2022/lib/form-validators/reactive-form-validators/allOf.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/alpha.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/alphaNumeric.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/and.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/ascii.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/choice.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/compare.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/compose.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/contains.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/cusip.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/dataUri.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/date.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/different.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/digit.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/email.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/even.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/extension.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/factor.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/file.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/greater-than.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/grid.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/hexcolor.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/iban.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/image.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/ip.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/json.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/latLong.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/latitude.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/less-than.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/longitude.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/mac.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/mask.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/maxDate.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/maxTime.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/minDate.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/minLength.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/minTime.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/not.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/numeric.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/odd.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/or.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/password.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/port.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/range.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/required.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/time.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/unique.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +2 -2
- package/esm2022/lib/form-validators/reactive-form-validators/url.validator.mjs +2 -2
- package/esm2022/lib/form-validators/services/base-form-builder.mjs +105 -6
- package/esm2022/lib/form-validators/services/form-control.mjs +2 -2
- package/esm2022/lib/form-validators/services/reactive-form.module.mjs +2 -2
- package/esm2022/lib/form-validators/services/rx-form-builder.mjs +479 -39
- package/esm2022/lib/form-validators/services/rx-form-group.mjs +197 -52
- package/esm2022/lib/form-validators/util/date-checker.function.mjs +2 -2
- package/esm2022/lib/form-validators/util/instance-provider.function.mjs +2 -2
- package/esm2022/lib/form-validators/util/relational-checker.function.mjs +2 -2
- package/esm2022/lib/form-validators/util/time-checker.function.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/allOf-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/alpha-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/alphaNumeric-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/and-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/ascii-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/base-validator.function.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/choice-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/compare-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/compose-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/contains-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/credit-card-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/cusip-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/custom-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/dataUri-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/date-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/different-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/digit-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/email-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/endsWith-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/even-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/extension-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/factor-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/file-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/fileSize-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/greater-than-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/grid-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/hexcolor-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/iban-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/image-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/ip-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/json-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/latLong-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/latitude-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/leapYear-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/less-than-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/longitude-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/lowercase-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/mac-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/mask-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/maxDate-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/maxLength-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/maxNumber-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/maxTime-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/minDate-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/minLength-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/minNumber-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/minTime-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/noneOf-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/not-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/notEmpty-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/numeric-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/odd-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/oneOf-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/or-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/password-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/pattern-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/port-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/primeNumber-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/range-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/required-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/requiredTrue-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/startsWith-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/time-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-extension/unique-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/uppercase-validator.extension.mjs +2 -2
- package/esm2022/lib/form-validators/validators-extension/url-validator.extension.mjs +4 -4
- package/esm2022/lib/form-validators/validators-function/alpha-validation.function.mjs +28 -1
- package/esm2022/lib/form-validators/validators-function/regex-validation.function.mjs +17 -1
- package/fesm2022/messaia-cdk.mjs +1777 -203
- package/fesm2022/messaia-cdk.mjs.map +1 -1
- package/lib/form-validators/abstract/typed-form.d.ts +9 -0
- package/lib/form-validators/algorithm/luhn-algorithm.d.ts +7 -0
- package/lib/form-validators/const/app.const.d.ts +48 -0
- package/lib/form-validators/const/config-names.const.d.ts +24 -0
- package/lib/form-validators/const/config-required-fields.const.d.ts +3 -0
- package/lib/form-validators/const/events.const.d.ts +39 -0
- package/lib/form-validators/const/html-elements.const.d.ts +18 -0
- package/lib/form-validators/const/validator.const.d.ts +21 -0
- package/lib/form-validators/core/default-container.d.ts +153 -0
- package/lib/form-validators/directives/base-directive.d.ts +17 -0
- package/lib/form-validators/directives/control-host.directive.d.ts +17 -0
- package/lib/form-validators/directives/html-control-template.directive.d.ts +13 -0
- package/lib/form-validators/directives/rx-form.directive.d.ts +34 -3
- package/lib/form-validators/directives/template-validations/async-validation.directive.d.ts +1 -3
- package/lib/form-validators/directives/template-validations/base-validator.directive.d.ts +15 -5
- package/lib/form-validators/directives/template-validations/control-expression-process.d.ts +19 -8
- package/lib/form-validators/domain/disable-provider.d.ts +54 -0
- package/lib/form-validators/domain/element-processor/decimal.provider.d.ts +36 -1
- package/lib/form-validators/domain/form-data.d.ts +21 -0
- package/lib/form-validators/models/control-info.d.ts +25 -0
- package/lib/form-validators/models/data-sanitizer.d.ts +13 -0
- package/lib/form-validators/models/decorator-configuration.d.ts +37 -0
- package/lib/form-validators/models/form-builder-configuration.d.ts +33 -0
- package/lib/form-validators/models/instance-container.d.ts +47 -0
- package/lib/form-validators/models/password-validation.model.d.ts +54 -0
- package/lib/form-validators/models/prop-validation-config.d.ts +156 -0
- package/lib/form-validators/models/property-info.d.ts +49 -0
- package/lib/form-validators/services/base-form-builder.d.ts +59 -2
- package/lib/form-validators/services/form-control.d.ts +1 -1
- package/lib/form-validators/services/rx-form-builder.d.ts +197 -1
- package/lib/form-validators/services/rx-form-group.d.ts +121 -0
- package/lib/form-validators/util/instance-provider.function.d.ts +1 -1
- package/lib/form-validators/validators-extension/allOf-validator.extension.d.ts +1 -1
- package/lib/form-validators/validators-extension/alpha-validator.extension.d.ts +1 -1
- package/lib/form-validators/validators-extension/iban-validator.extension.d.ts +1 -1
- package/lib/form-validators/validators-extension/maxLength-validator.extension.d.ts +1 -1
- package/lib/form-validators/validators-function/alpha-validation.function.d.ts +7 -0
- package/lib/form-validators/validators-function/regex-validation.function.d.ts +16 -0
- package/package.json +1 -1
- package/esm2022/lib/form-validators/core/defaultContainer.mjs +0 -257
- package/esm2022/lib/form-validators/core/validator.interface.mjs +0 -2
- package/lib/form-validators/core/defaultContainer.d.ts +0 -18
- package/lib/form-validators/core/validator.interface.d.ts +0 -62
- /package/lib/form-validators/core/{validator.static.d.ts → annotation-types.d.ts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BLUR, FOCUS, KEY_DOWN, KEY_PRESS, PASTE } from "../../const";
|
|
2
|
-
import { AnnotationTypes } from "../../core/
|
|
2
|
+
import { AnnotationTypes } from "../../core/annotation-types";
|
|
3
3
|
import { getConfigObject } from "../../util/config-provider";
|
|
4
4
|
import { FormProvider } from "../../util/form-provider";
|
|
5
5
|
import { ObjectMaker } from "../../util/object-maker";
|
|
@@ -40,8 +40,9 @@ export class MaskProvider {
|
|
|
40
40
|
this.bind();
|
|
41
41
|
}
|
|
42
42
|
bind() {
|
|
43
|
-
if (RegexValidator.isNotBlank(this.formControl.value))
|
|
43
|
+
if (RegexValidator.isNotBlank(this.formControl.value)) {
|
|
44
44
|
this.input.value = this.formControl.value;
|
|
45
|
+
}
|
|
45
46
|
this.tests = [];
|
|
46
47
|
this.partialPosition = this.mask.length;
|
|
47
48
|
this.len = this.mask.length;
|
|
@@ -449,4 +450,4 @@ export class MaskProvider {
|
|
|
449
450
|
this.eventListeners = [];
|
|
450
451
|
}
|
|
451
452
|
}
|
|
452
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvbWFzay5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE1BQU0sT0FBTyxZQUFZO0lBNENEO0lBQWlDO0lBQXNCO0lBQTZCO0lBQWtDO0lBMUNsSSxjQUFjLEdBQVUsRUFBRSxDQUFDO0lBRW5DLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFFdEIsSUFBSSxHQUFXLE1BQU0sQ0FBQztJQUV0QixRQUFRLEdBQVcsR0FBRyxDQUFDO0lBRXZCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFM0IsS0FBSyxDQUFNO0lBRVgsSUFBSSxDQUFNO0lBRVYsS0FBSyxDQUFTO0lBRWQsZUFBZSxDQUFNO0lBRXJCLGVBQWUsQ0FBVTtJQUV6QixzQkFBc0IsQ0FBTTtJQUU1QixHQUFHLENBQVU7SUFFYixNQUFNLENBQVU7SUFFaEIsTUFBTSxDQUFNO0lBRVosYUFBYSxDQUFVO0lBRXZCLFNBQVMsQ0FBVTtJQUVuQixjQUFjLENBQU07SUFFcEIsYUFBYSxDQUFXO0lBRXhCLEtBQUssQ0FBVztJQUVoQixNQUFN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O1lBQ3pDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMvQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzFCO1NBQ0o7UUFDRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFNLElBQUksQ0FBQztJQUV2QixpQkFBaUI7UUFDYixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDNUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQkxVUiwgRk9DVVMsIEtFWV9ET1dOLCBLRVlfUFJFU1MsIFBBU1RFIH0gZnJvbSBcIi4uLy4uL2NvbnN0XCI7XHJcbmltcG9ydCB7IEFubm90YXRpb25UeXBlcyB9IGZyb20gXCIuLi8uLi9jb3JlL3ZhbGlkYXRvci5zdGF0aWNcIjtcclxuaW1wb3J0IHsgTWFza0NvbmZpZyB9IGZyb20gXCIuLi8uLi9tb2RlbHMvY29uZmlnL21hc2stY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldENvbmZpZ09iamVjdCB9IGZyb20gXCIuLi8uLi91dGlsL2NvbmZpZy1wcm92aWRlclwiO1xyXG5pbXBvcnQgeyBGb3JtUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vdXRpbC9mb3JtLXByb3ZpZGVyXCI7XHJcbmltcG9ydCB7IE9iamVjdE1ha2VyIH0gZnJvbSBcIi4uLy4uL3V0aWwvb2JqZWN0LW1ha2VyXCI7XHJcbmltcG9ydCB7IFJlZ2V4VmFsaWRhdG9yIH0gZnJvbSBcIi4uLy4uL3V0aWwvcmVnZXgtdmFsaWRhdG9yXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgTWFza1Byb3ZpZGVyIHtcclxuXHJcbiAgICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIG9sZFZhbHVlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICB0eXBlOiBzdHJpbmcgPSAndGV4dCc7XHJcblxyXG4gICAgc2xvdENoYXI6IHN0cmluZyA9ICdfJztcclxuXHJcbiAgICBhdXRvQ2xlYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICB2YWx1ZTogYW55O1xyXG5cclxuICAgIGRlZnM6IGFueTtcclxuXHJcbiAgICB0ZXN0cz86IGFueVtdO1xyXG5cclxuICAgIHBhcnRpYWxQb3NpdGlvbjogYW55O1xyXG5cclxuICAgIGZpcnN0Tm9uTWFza1Bvcz86IG51bWJlcjtcclxuXHJcbiAgICBsYXN0UmVxdWlyZWROb25NYXNrUG9zOiBhbnk7XHJcblxyXG4gICAgbGVuPzogbnVtYmVyO1xyXG5cclxuICAgIG9sZFZhbD86IHN0cmluZztcclxuXHJcbiAgICBidWZmZXI6IGFueTtcclxuXHJcbiAgICBkZWZhdWx0QnVmZmVyPzogc3RyaW5nO1xyXG5cclxuICAgIGZvY3VzVGV4dD86IHN0cmluZztcclxuXHJcbiAgICBjYXJldFRpbWVvdXRJZDogYW55O1xyXG5cclxuICAgIGFuZHJvaWRDaHJvbWU/OiBib29sZWFuO1xyXG5cclxuICAgIGZvY3VzPzogYm9vbGVhbjtcclxuXHJcbiAgICBmaWxsZWQ/OiBib29sZWFuO1xyXG5cclxuICAgIG1pbkxlbmd0aD86IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50LCBwcml2YXRlIG1hc2s6IHN0cmluZywgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCwgcHJpdmF0ZSBjb25maWc6IE1hc2tDb25maWcpIHtcclxuICAgICAgICB0aGlzLmJpbmQoKTtcclxuICAgIH1cclxuXHJcbiAgICBiaW5kKCkge1xyXG4gICAgICAgIGlmIChSZWdleFZhbGlkYXRvci5pc05vdEJsYW5rKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKVxyXG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICB0aGlzLnRlc3RzID0gW107XHJcbiAgICAgICAgdGhpcy5wYXJ0aWFsUG9zaXRpb24gPSB0aGlzLm1hc2subGVuZ3RoO1xyXG4gICAgICAgIHRoaXMubGVuID0gdGhpcy5tYXNrLmxlbmd0aDtcclxuICAgICAgICB0aGlzLmZpcnN0Tm9uTWFza1BvcyA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmRlZnMgPSB7XHJcbiAgICAgICAgICAgICc5JzogJ1swLTldJyxcclxuICAgICAgICAgICAgJ2EnOiAnW0EtWmEtel0nLFxyXG4gICAgICAgICAgICAnKic6ICdbQS1aYS16MC05XSdcclxuICAgICAgICB9O1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5hbmRyb2lkQ2hyb21lID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGxldCBtYXNrVG9rZW5zID0gdGhpcy5tYXNrLnNwbGl0KCcnKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2tUb2tlbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBtYXNrVG9rZW5zW2ldO1xyXG4gICAgICAgICAgICBpZiAoYyA9PSAnPycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVuLS07XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpYWxQb3NpdGlvbiA9IGk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5kZWZzW2NdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRlc3RzLnB1c2gobmV3IFJlZ0V4cCh0aGlzLmRlZnNbY10pKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZpcnN0Tm9uTWFza1BvcyA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlyc3ROb25NYXNrUG9zID0gdGhpcy50ZXN0cy5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGkgPCB0aGlzLnBhcnRpYWxQb3NpdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdFJlcXVpcmVkTm9uTWFza1BvcyA9IHRoaXMudGVzdHMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGVzdHMucHVzaChudWxsKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1pbkxlbmd0aCA9IHRoaXMuY29uZmlnLm1pbkxlbmd0aCA/IHRoaXMubGFzdFJlcXVpcmVkTm9uTWFza1BvcyAtICh0aGlzLmxhc3RSZXF1aXJlZE5vbk1hc2tQb3MgLSB0aGlzLmNvbmZpZy5taW5MZW5ndGgpIDogdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zO1xyXG4gICAgICAgIHRoaXMuYnVmZmVyID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrVG9rZW5zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gbWFza1Rva2Vuc1tpXTtcclxuICAgICAgICAgICAgaWYgKGMgIT0gJz8nKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZWZzW2NdKVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyLnB1c2godGhpcy5nZXRQbGFjZWhvbGRlcihpKSk7XHJcbiAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXIucHVzaChjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRlZmF1bHRCdWZmZXIgPSB0aGlzLmJ1ZmZlci5qb2luKCcnKTtcclxuICAgICAgICB0aGlzLmZvY3VzVGV4dCA9IHRoaXMuaW5wdXQudmFsdWU7XHJcbiAgICAgICAgdGhpcy5iaW5kRXZlbnRzKCk7XHJcbiAgICAgICAgdGhpcy5jaGVja1ZhbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGJpbmRFdmVudHMoKSB7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIEZPQ1VTLCB0aGlzLm9uRm9jdXMuYmluZCh0aGlzKSkpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCBCTFVSLCB0aGlzLm9uQmx1ci5iaW5kKHRoaXMpKSk7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIEtFWV9ET1dOLCB0aGlzLm9uS2V5RG93bi5iaW5kKHRoaXMpKSk7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIEtFWV9QUkVTUywgdGhpcy5vbktleVByZXNzLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgXCJpbnB1dFwiLCB0aGlzLm9uSW5wdXQuYmluZCh0aGlzKSkpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCBQQVNURSwgdGhpcy5oYW5kbGVJbnB1dENoYW5nZS5iaW5kKHRoaXMpKSk7XHJcbiAgICB9XHJcbiAgICBpc0ludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHZhbGlkYXRlKCkge1xyXG4gICAgICAgIGlmICgodGhpcy5pbnB1dC52YWx1ZSAmJiB0aGlzLm9sZFZhbHVlICE9IHRoaXMuaW5wdXQudmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwodHJ1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDb21wbGV0ZWQodW5kZWZpbmVkLCB0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5vbGRWYWx1ZSA9IHRoaXMuaW5wdXQudmFsdWVcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGNvbmZpZyA9IGdldENvbmZpZ09iamVjdCh0aGlzLmNvbmZpZywgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgICAgICAgaWYgKFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsodGhpcy5nZXRVbm1hc2tlZFZhbHVlKCkpICYmIEZvcm1Qcm92aWRlci5Qcm9jZXNzUnVsZSh0aGlzLmZvcm1Db250cm9sLCBjb25maWcpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzSW52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLnRvSnNvbihBbm5vdGF0aW9uVHlwZXMubWFzaywgY29uZmlnLCBbdGhpcy5mb3JtQ29udHJvbC52YWx1ZV0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gT2JqZWN0TWFrZXIubnVsbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgPT0gdW5kZWZpbmVkIHx8IHRoaXMudmFsdWUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXBkYXRlRmlsbGVkU3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBjYXJldChmaXJzdD86IG51bWJlciwgbGFzdD86IG51bWJlcikge1xyXG4gICAgICAgIGxldCByYW5nZSwgYmVnaW4sIGVuZDtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlucHV0Lm9mZnNldFBhcmVudCB8fCB0aGlzLmlucHV0ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHR5cGVvZiBmaXJzdCA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICBiZWdpbiA9IGZpcnN0O1xyXG4gICAgICAgICAgICBlbmQgPSAodHlwZW9mIGxhc3QgPT09ICdudW1iZXInKSA/IGxhc3QgOiBiZWdpbjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoYmVnaW4sIGVuZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKHRoaXMuaW5wdXQgYXMgYW55KVsnY3JlYXRlVGV4dFJhbmdlJ10pIHtcclxuICAgICAgICAgICAgICAgIHJhbmdlID0gKHRoaXMuaW5wdXQgYXMgYW55KVsnY3JlYXRlVGV4dFJhbmdlJ10oKTtcclxuICAgICAgICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgZW5kKTtcclxuICAgICAgICAgICAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgYmVnaW4pO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2Uuc2VsZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0LnNldFNlbGVjdGlvblJhbmdlISkge1xyXG4gICAgICAgICAgICAgICAgYmVnaW4gPSB0aGlzLmlucHV0LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgICAgICAgICAgICAgZW5kID0gdGhpcy5pbnB1dC5zZWxlY3Rpb25FbmQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoKGRvY3VtZW50IGFzIGFueSlbJ3NlbGVjdGlvbiddICYmIChkb2N1bWVudCBhcyBhbnkpWydzZWxlY3Rpb24nXS5jcmVhdGVSYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UgPSAoZG9jdW1lbnQgYXMgYW55KVsnc2VsZWN0aW9uJ10uY3JlYXRlUmFuZ2UoKTtcclxuICAgICAgICAgICAgICAgIGJlZ2luID0gMCAtIHJhbmdlLmR1cGxpY2F0ZSgpLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgLTEwMDAwMCk7XHJcbiAgICAgICAgICAgICAgICBlbmQgPSBiZWdpbiArIHJhbmdlLnRleHQubGVuZ3RoO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4geyBiZWdpbjogYmVnaW4sIGVuZDogZW5kIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpc0NvbXBsZXRlZChsYXN0UmVxdWlyZWROb25NYXNrUG9zPzogbnVtYmVyLCBpc05vdFJ1blZhbGlkYXRvcj86IGJvb2xlYW4pOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgY29tcGxldGVkOiBib29sZWFuO1xyXG4gICAgICAgIGxhc3RSZXF1aXJlZE5vbk1hc2tQb3MgPSBsYXN0UmVxdWlyZWROb25NYXNrUG9zIHx8IHRoaXMubGFzdFJlcXVpcmVkTm9uTWFza1BvcztcclxuICAgICAgICBmb3IgKGxldCBpID0gKHRoaXMuZmlyc3ROb25NYXNrUG9zID8/IDApOyBpIDw9IGxhc3RSZXF1aXJlZE5vbk1hc2tQb3MhOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldICYmIHRoaXMuYnVmZmVyW2ldID09PSB0aGlzLmdldFBsYWNlaG9sZGVyKGkhKSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmICghaXNOb3RSdW5WYWxpZGF0b3IpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRQbGFjZWhvbGRlcihpOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoaSA8IHRoaXMuc2xvdENoYXIubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNsb3RDaGFyLmNoYXJBdChpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2xvdENoYXIuY2hhckF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIHNlZWtOZXh0KHBvczogbnVtYmVyKSB7XHJcbiAgICAgICAgd2hpbGUgKCsrcG9zIDwgdGhpcy5sZW4hICYmICF0aGlzLnRlc3RzIVtwb3NdKTtcclxuICAgICAgICByZXR1cm4gcG9zO1xyXG4gICAgfVxyXG5cclxuICAgIHNlZWtQcmV2KHBvczogbnVtYmVyKSB7XHJcbiAgICAgICAgd2hpbGUgKC0tcG9zID49IDAgJiYgIXRoaXMudGVzdHMhW3Bvc10pO1xyXG4gICAgICAgIHJldHVybiBwb3M7XHJcbiAgICB9XHJcblxyXG4gICAgc2hpZnRMKGJlZ2luOiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGksIGo7XHJcblxyXG4gICAgICAgIGlmIChiZWdpbiA8IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZm9yIChpID0gYmVnaW4sIGogPSB0aGlzLnNlZWtOZXh0KGVuZCk7IGkgPCB0aGlzLmxlbiE7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbaV0pIHtcclxuICAgICAgICAgICAgICAgIGlmIChqIDwgdGhpcy5sZW4hICYmIHRoaXMudGVzdHMhW2ldLnRlc3QodGhpcy5idWZmZXJbal0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSB0aGlzLmJ1ZmZlcltqXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltqXSA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGogPSB0aGlzLnNlZWtOZXh0KGopO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgdGhpcy5jYXJldChNYXRoLm1heCh0aGlzLmZpcnN0Tm9uTWFza1BvcyEsIGJlZ2luKSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2hpZnRSKHBvczogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IGksIGMsIGosIHQ7XHJcblxyXG4gICAgICAgIGZvciAoaSA9IHBvcywgYyA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIocG9zKTsgaSA8IHRoaXMubGVuITsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtpXSkge1xyXG4gICAgICAgICAgICAgICAgaiA9IHRoaXMuc2Vla05leHQoaSk7XHJcbiAgICAgICAgICAgICAgICB0ID0gdGhpcy5idWZmZXJbaV07XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IGM7XHJcbiAgICAgICAgICAgICAgICBpZiAoaiA8IHRoaXMubGVuISAmJiB0aGlzLnRlc3RzIVtqXS50ZXN0KHQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYyA9IHQ7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGhhbmRsZUFuZHJvaWRJbnB1dChfOiBhbnkpIHtcclxuICAgICAgICB2YXIgY3VyVmFsID0gdGhpcy5pbnB1dC52YWx1ZTtcclxuICAgICAgICB2YXIgcG9zID0gdGhpcy5jYXJldCgpO1xyXG4gICAgICAgIGlmICh0aGlzLm9sZFZhbCAmJiB0aGlzLm9sZFZhbC5sZW5ndGggJiYgdGhpcy5vbGRWYWwubGVuZ3RoID4gY3VyVmFsLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrVmFsKHRydWUpO1xyXG4gICAgICAgICAgICB3aGlsZSAocG9zIS5iZWdpbiEgPiAwICYmICF0aGlzLnRlc3RzIVtwb3MhLmJlZ2luISAtIDFdKVxyXG4gICAgICAgICAgICAgICAgcG9zIS5iZWdpbiEtLTtcclxuICAgICAgICAgICAgaWYgKHBvcyEuYmVnaW4gPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChwb3MhLmJlZ2luIDwgdGhpcy5maXJzdE5vbk1hc2tQb3MhICYmICF0aGlzLnRlc3RzIVtwb3MhLmJlZ2luXSlcclxuICAgICAgICAgICAgICAgICAgICBwb3MhLmJlZ2luKys7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jYXJldChwb3MhLmJlZ2luISwgcG9zIS5iZWdpbiEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhciBwb3MyID0gdGhpcy5jaGVja1ZhbCh0cnVlKTtcclxuICAgICAgICAgICAgd2hpbGUgKHBvcyEuYmVnaW4hIDwgdGhpcy5sZW4hICYmICF0aGlzLnRlc3RzIVtwb3MhLmJlZ2luIV0pXHJcbiAgICAgICAgICAgICAgICBwb3MhLmJlZ2luISsrO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5jYXJldChwb3MhLmJlZ2luISwgcG9zIS5iZWdpbiEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNDb21wbGV0ZWQoKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uQmx1cihlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmZvY3VzID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGVja1ZhbCgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVGaWxsZWRTdGF0ZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmlucHV0LnZhbHVlICE9IHRoaXMuZm9jdXNUZXh0KSB7XHJcbiAgICAgICAgICAgIGxldCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJyk7XHJcbiAgICAgICAgICAgIGV2ZW50LmluaXRFdmVudCgnY2hhbmdlJywgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xyXG4gICAgICAgICAgICBsZXQgbWFza2VkVmFsdWUgPSB0aGlzLmlucHV0LnZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuY29uZmlnLnZhbHVlV2l0aE1hc2sgPyBtYXNrZWRWYWx1ZSA6IHRoaXMuZ2V0VW5tYXNrZWRWYWx1ZSgpKTtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IG1hc2tlZFZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbktleURvd24oZTogYW55KSB7XHJcbiAgICAgICAgbGV0IGsgPSBlLndoaWNoIHx8IGUua2V5Q29kZSxcclxuICAgICAgICAgICAgcG9zLFxyXG4gICAgICAgICAgICBiZWdpbixcclxuICAgICAgICAgICAgZW5kO1xyXG4gICAgICAgIGxldCBpUGhvbmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm9sZFZhbCA9IHRoaXMuaW5wdXQudmFsdWU7XHJcbiAgICAgICAgbGV0IGNvbnRyb2xWYWxpZCA9IHRoaXMuY29uZmlnLm1pbkxlbmd0aCA/IHRoaXMuaXNDb21wbGV0ZWQodGhpcy5taW5MZW5ndGghICsgMSkgOiBmYWxzZTtcclxuICAgICAgICBpZiAoayA9PT0gOCB8fCBrID09PSA0NiB8fCAoaVBob25lICYmIGsgPT09IDEyNykpIHtcclxuICAgICAgICAgICAgcG9zID0gdGhpcy5jYXJldCgpO1xyXG4gICAgICAgICAgICBiZWdpbiA9IHBvcyEuYmVnaW47XHJcbiAgICAgICAgICAgIGVuZCA9IHBvcyEuZW5kO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVuZCAtIGJlZ2luISA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgYmVnaW4gPSBrICE9PSA0NiA/IHRoaXMuc2Vla1ByZXYoYmVnaW4hKSA6IChlbmQgPSB0aGlzLnNlZWtOZXh0KGJlZ2luISAtIDEpKTtcclxuICAgICAgICAgICAgICAgIGVuZCA9IGsgPT09IDQ2ID8gdGhpcy5zZWVrTmV4dChlbmQpIDogZW5kO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNsZWFyQnVmZmVyKGJlZ2luISwgZW5kKTtcclxuICAgICAgICAgICAgdGhpcy5zaGlmdEwoYmVnaW4hLCBlbmQgLSAxKTtcclxuICAgICAgICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZSwgZmFsc2UsIGNvbnRyb2xWYWxpZCk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGsgPT09IDEzKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25CbHVyKGUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShlLCBmYWxzZSwgY29udHJvbFZhbGlkKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGsgPT09IDI3KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSB0aGlzLmZvY3VzVGV4dCA/PyAnJztcclxuICAgICAgICAgICAgdGhpcy5jYXJldCgwLCB0aGlzLmNoZWNrVmFsKCkpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShlLCBmYWxzZSwgY29udHJvbFZhbGlkKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5UHJlc3MoZTogYW55KSB7XHJcbiAgICAgICAgdmFyIGsgPSBlLndoaWNoIHx8IGUua2V5Q29kZSxcclxuICAgICAgICAgICAgcG9zID0gdGhpcy5jYXJldCgpLFxyXG4gICAgICAgICAgICBwLFxyXG4gICAgICAgICAgICBjLFxyXG4gICAgICAgICAgICBuZXh0LFxyXG4gICAgICAgICAgICBjb21wbGV0ZWQ7XHJcbiAgICAgICAgaWYgKGUuY3RybEtleSB8fCBlLmFsdEtleSB8fCBlLm1ldGFLZXkgfHwgayA8IDMyKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2UgaWYgKGsgJiYgayAhPT0gMTMpIHtcclxuICAgICAgICAgICAgaWYgKHBvcyEuZW5kIC0gcG9zIS5iZWdpbiEgIT09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIocG9zIS5iZWdpbiEsIHBvcyEuZW5kKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2hpZnRMKHBvcyEuYmVnaW4hLCBwb3MhLmVuZCAtIDEpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBwID0gdGhpcy5zZWVrTmV4dChwb3MhLmJlZ2luISAtIDEpO1xyXG4gICAgICAgICAgICBpZiAocCA8IHRoaXMubGVuISkge1xyXG4gICAgICAgICAgICAgICAgYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoayk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbcF0udGVzdChjKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hpZnRSKHApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltwXSA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSB0aGlzLnNlZWtOZXh0KHApO1xyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXJldChuZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocG9zIS5iZWdpbiEgPD0gdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRoaXMuaXNDb21wbGV0ZWQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcclxuICAgICAgICBpZiAoY29tcGxldGVkID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICAgIGNvbXBsZXRlZCA9IHRoaXMuaXNDb21wbGV0ZWQoKVxyXG4gICAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGUsIGNvbXBsZXRlZCwgdGhpcy5jb25maWcubWluTGVuZ3RoID8gdGhpcy5pc0NvbXBsZXRlZCh0aGlzLm1pbkxlbmd0aCkgOiBmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW50ZXJuYWxQcm9jZXNzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY2xlYXJCdWZmZXIoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgaTtcclxuICAgICAgICBmb3IgKGkgPSBzdGFydDsgaSA8IGVuZCAmJiBpIDwgdGhpcy5sZW4hOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVCdWZmZXIoKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMuYnVmZmVyLmpvaW4oJycpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrVmFsKGFsbG93PzogYm9vbGVhbikge1xyXG4gICAgICAgIGxldCB0ZXN0ID0gdGhpcy5pbnB1dC52YWx1ZSxcclxuICAgICAgICAgICAgbGFzdE1hdGNoID0gLTEsXHJcbiAgICAgICAgICAgIGksXHJcbiAgICAgICAgICAgIGMsXHJcbiAgICAgICAgICAgIHBvcztcclxuXHJcbiAgICAgICAgZm9yIChpID0gMCwgcG9zID0gMDsgaSA8IHRoaXMubGVuITsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtpXSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSB0aGlzLmdldFBsYWNlaG9sZGVyKGkpO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKHBvcysrIDwgdGVzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjID0gdGVzdC5jaGFyQXQocG9zIC0gMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldLnRlc3QoYykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSBjO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0TWF0Y2ggPSBpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocG9zID4gdGVzdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQnVmZmVyKGkgKyAxLCB0aGlzLmxlbiEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYnVmZmVyW2ldID09PSB0ZXN0LmNoYXJBdChwb3MpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9zKys7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaSA8IHRoaXMucGFydGlhbFBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGFzdE1hdGNoID0gaTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoYWxsb3cpIHtcclxuICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoKGxhc3RNYXRjaCArIDEgPCB0aGlzLnBhcnRpYWxQb3NpdGlvbikgJiYgKCF0aGlzLmNvbmZpZy5taW5MZW5ndGggfHwgIShsYXN0TWF0Y2ggPj0gdGhpcy5taW5MZW5ndGghKSkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0NsZWFyIHx8IHRoaXMuYnVmZmVyLmpvaW4oJycpID09PSB0aGlzLmRlZmF1bHRCdWZmZXIpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlXHJcbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSB0aGlzLmlucHV0LnZhbHVlLnN1YnN0cmluZygwLCBsYXN0TWF0Y2ggKyAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLnBhcnRpYWxQb3NpdGlvbiA/IGkgOiB0aGlzLmZpcnN0Tm9uTWFza1Bvcyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25Gb2N1cyhldmVudDogYW55KSB7XHJcblxyXG4gICAgICAgIHRoaXMuZm9jdXMgPSB0cnVlO1xyXG5cclxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jYXJldFRpbWVvdXRJZCk7XHJcbiAgICAgICAgbGV0IHBvczogbnVtYmVyIHwgdW5kZWZpbmVkID0gMDtcclxuXHJcbiAgICAgICAgdGhpcy5mb2N1c1RleHQgPSB0aGlzLmlucHV0LnZhbHVlO1xyXG5cclxuICAgICAgICBwb3MgPSB0aGlzLmNoZWNrVmFsKCk7XHJcblxyXG4gICAgICAgIHRoaXMuY2FyZXRUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgICAgIGlmIChwb3MgPT0gdGhpcy5tYXNrLnJlcGxhY2UoXCI/XCIsIFwiXCIpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJldCgwLCBwb3MpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJldChwb3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsbGVkU3RhdGUoKTtcclxuICAgICAgICB9LCAxMCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnB1dChldmVudDogYW55KSB7XHJcbiAgICAgICAgaWYgKHRoaXMuYW5kcm9pZENocm9tZSlcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVBbmRyb2lkSW5wdXQoZXZlbnQpO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZShldmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q29udHJvbFZhbHVlKGU6IGFueSwgaXNWYWxpZDogYm9vbGVhbiwgaXNWYWxpZENvbnRyb2w/OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBpc1ZhbGlkQ29udHJvbCA/ICFpc1ZhbGlkQ29udHJvbCA6ICFpc1ZhbGlkO1xyXG4gICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuaW5wdXQudmFsdWU7XHJcbiAgICAgICAgbGV0IGNvbnRyb2xWYWx1ZSA9ICcnO1xyXG4gICAgICAgIGlmICghdGhpcy5pc0ludmFsaWQpXHJcbiAgICAgICAgICAgIGNvbnRyb2xWYWx1ZSA9IHRoaXMuY29uZmlnLnZhbHVlV2l0aE1hc2sgPyB2YWx1ZSA6IHRoaXMuZ2V0VW5tYXNrZWRWYWx1ZSgpXHJcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShjb250cm9sVmFsdWUpO1xyXG4gICAgICAgIHRoaXMub2xkVmFsdWUgPSB0aGlzLmlucHV0LnZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKCFpc1ZhbGlkKVxyXG4gICAgICAgICAgICB0aGlzLm9uRm9jdXMoZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB2YXIgcG9zID0gdGhpcy5jaGVja1ZhbCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5jYXJldChwb3MpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGV2ZW50KTtcclxuICAgICAgICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZXZlbnQsIHRoaXMuaXNDb21wbGV0ZWQoKSk7XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VW5tYXNrZWRWYWx1ZSgpIHtcclxuICAgICAgICBsZXQgdW5tYXNrZWRCdWZmZXIgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYnVmZmVyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjID0gdGhpcy5idWZmZXJbaV07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtpXSAmJiBjICE9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSkpIHtcclxuICAgICAgICAgICAgICAgIHVubWFza2VkQnVmZmVyLnB1c2goYyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVubWFza2VkQnVmZmVyLmpvaW4oJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZU1vZGVsKGU6IGFueSkgeyB9XHJcblxyXG4gICAgdXBkYXRlRmlsbGVkU3RhdGUoKSB7XHJcbiAgICAgICAgdGhpcy5maWxsZWQgPSB0aGlzLmlucHV0ICYmIHRoaXMuaW5wdXQudmFsdWUgIT0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgb25EZXN0cm95KCkge1xyXG4gICAgICAgIGxldCBldmVudENvdW50ID0gdGhpcy5ldmVudExpc3RlbmVycy5sZW5ndGg7XHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudENvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudExpc3RlbmVyc1swXSgpO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnNwbGljZSgwLCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycyA9IFtdO1xyXG4gICAgfVxyXG59Il19
|
|
453
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvbWFzay5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE1BQU0sT0FBTyxZQUFZO0lBNENEO0lBQWlDO0lBQXNCO0lBQTZCO0lBQWtDO0lBMUNsSSxjQUFjLEdBQVUsRUFBRSxDQUFDO0lBRW5DLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFFdEIsSUFBSSxHQUFXLE1BQU0sQ0FBQztJQUV0QixRQUFRLEdBQVcsR0FBRyxDQUFDO0lBRXZCLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFFM0IsS0FBSyxDQUFNO0lBRVgsSUFBSSxDQUFNO0lBRVYsS0FBSyxDQUFTO0lBRWQsZUFBZSxDQUFNO0lBRXJCLGVBQWUsQ0FBVTtJQUV6QixzQkFBc0IsQ0FBTTtJQUU1QixHQUFHLENBQVU7SUFFYixNQUFNLENBQVU7SUFFaEIsTUFBTSxDQUFNO0lBRVosYUFBYSxDQUFVO0lBRXZCLFNBQVMsQ0FBVTtJQUVuQixjQUFjLENBQU07SUFFcEIsYUFBYSxDQUFXO0lBRXhCLEtBQUssQ0FBVztJQUVoQixNQUFNLENBQVc7SUFFakIsU0FBUyxDQUFVO0lBRW5CLFlBQW9CLEtBQXVCLEVBQVUsSUFBWSxFQUFVLFFBQW1CLEVBQVUsV0FBd0IsRUFBVSxNQUFrQjtRQUF4SSxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUFVLFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ3hKLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsSUFBSTtRQUNBLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDUixHQUFHLEVBQUUsT0FBTztZQUNaLEdBQUcsRUFBRSxVQUFVO1lBQ2YsR0FBRyxFQUFFLGFBQWE7U0FDckIsQ0FBQztRQUdGLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTNCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO2FBQzVCO2lCQUNJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUNoRDtnQkFDRCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFO29CQUMxQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUN2RDthQUNKO2lCQUNJO2dCQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3pCO1NBQ0o7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQzNKLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7O29CQUV6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMzQjtTQUNKO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFDRCxTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQTtTQUNuQztRQUNELElBQUksTUFBTSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDMUcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoQixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDckY7U0FFSjtRQUNELE9BQU8sV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO2dCQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7YUFDekI7WUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbkI7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWMsRUFBRSxJQUFhO1FBQy9CLElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUM7UUFFdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLGFBQWEsRUFBRTtZQUNuRSxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRLEVBQUU7WUFDMUIsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNkLEdBQUcsR0FBRyxDQUFDLE9BQU8sSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNoRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2FBQzVDO2lCQUNJLElBQUssSUFBSSxDQUFDLEtBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUM3QyxLQUFLLEdBQUksSUFBSSxDQUFDLEtBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pELEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDcEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ2xCO1NBQ0o7YUFDSTtZQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBa0IsRUFBRTtnQkFDL0IsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO2dCQUNsQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7YUFDakM7aUJBQ0ksSUFBSyxRQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFLLFFBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFO2dCQUNuRixLQUFLLEdBQUksUUFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDckQsS0FBSyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM5RCxHQUFHLEdBQUcsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ25DO1lBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFdBQVcsQ0FBQyxzQkFBK0IsRUFBRSxpQkFBMkI7UUFDcEUsSUFBSSxTQUFrQixDQUFDO1FBQ3ZCLHNCQUFzQixHQUFHLHNCQUFzQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztRQUMvRSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksc0JBQXVCLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekUsSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFFLENBQUMsRUFBRTtnQkFDOUQsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDSjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDN0M7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsY0FBYyxDQUFDLENBQVM7UUFDcEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ2hCLE9BQU8sRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUMsR0FBRyxDQUFDO1lBQUMsQ0FBQztRQUMvQyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBVztRQUNoQixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUMsR0FBRyxDQUFDO1lBQUMsQ0FBQztRQUN4QyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBYSxFQUFFLEdBQVc7UUFDN0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRVQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ1gsT0FBTztTQUNWO1FBRUQsS0FBSyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hELElBQUksSUFBSSxDQUFDLEtBQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUksSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3RELElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMzQztxQkFBTTtvQkFDSCxNQUFNO2lCQUNUO2dCQUVELENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3hCO1NBQ0o7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFnQixFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFXO1FBQ2QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFZixLQUFLLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUQsSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDckIsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBSSxJQUFJLElBQUksQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN6QyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNUO3FCQUFNO29CQUNILE1BQU07aUJBQ1Q7YUFDSjtTQUNKO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLENBQU07UUFDckIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDOUIsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ3pFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEIsT0FBTyxHQUFJLENBQUMsS0FBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUMsR0FBSSxDQUFDLEtBQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ25ELEdBQUksQ0FBQyxLQUFNLEVBQUUsQ0FBQztZQUNsQixJQUFJLEdBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO2dCQUNsQixPQUFPLEdBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBTSxDQUFDLEdBQUksQ0FBQyxLQUFLLENBQUM7b0JBQ2pFLEdBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNwQjtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBSSxDQUFDLEtBQU0sRUFBRSxHQUFJLENBQUMsS0FBTSxDQUFDLENBQUM7U0FDeEM7YUFBTTtZQUNILElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsT0FBTyxHQUFJLENBQUMsS0FBTSxHQUFHLElBQUksQ0FBQyxHQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBTSxDQUFDLEdBQUksQ0FBQyxLQUFNLENBQUM7Z0JBQ3ZELEdBQUksQ0FBQyxLQUFNLEVBQUUsQ0FBQztZQUVsQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUksQ0FBQyxLQUFNLEVBQUUsR0FBSSxDQUFDLEtBQU0sQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7U0FDMUI7YUFBTTtZQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUM3QztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsQ0FBTTtRQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNwQyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQy9DLEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoQyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsQ0FBTTtRQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFDeEIsR0FBRyxFQUNILEtBQUssRUFDTCxHQUFHLENBQUM7UUFDUixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMvQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDekYsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQzlDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsS0FBSyxHQUFHLEdBQUksQ0FBQyxLQUFLLENBQUM7WUFDbkIsR0FBRyxHQUFHLEdBQUksQ0FBQyxHQUFHLENBQUM7WUFFZixJQUFJLEdBQUcsR0FBRyxLQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNwQixLQUFLLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0UsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQzthQUM3QztZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdEI7YUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO2FBQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUV0QjtJQUVMLENBQUM7SUFFRCxVQUFVLENBQUMsQ0FBTTtRQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFDeEIsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFDbEIsQ0FBQyxFQUNELENBQUMsRUFDRCxJQUFJLEVBQ0osU0FBUyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlDLE9BQU87U0FDVjthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDdEIsSUFBSSxHQUFJLENBQUMsR0FBRyxHQUFHLEdBQUksQ0FBQyxLQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUksQ0FBQyxLQUFNLEVBQUUsR0FBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUksQ0FBQyxLQUFNLEVBQUUsR0FBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMxQztZQUVELENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUksQ0FBQyxLQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUksRUFBRTtnQkFDZixDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFZixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNuQixJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFHeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDakIsSUFBSSxHQUFJLENBQUMsS0FBTSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTt3QkFDNUMsU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztxQkFDbEM7aUJBQ0o7YUFDSjtZQUNELENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN0QjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxTQUFTLEtBQUssU0FBUztZQUN2QixTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pHLENBQUM7SUFFRCxlQUFlLEdBQVksS0FBSyxDQUFDO0lBRWpDLFdBQVcsQ0FBQyxLQUFhLEVBQUUsR0FBVztRQUNsQyxJQUFJLENBQUMsQ0FBQztRQUNOLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBSSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzNDLElBQUksSUFBSSxDQUFDLEtBQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNDO1NBQ0o7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBZTtRQUNwQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFDdkIsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUNkLENBQUMsRUFDRCxDQUFDLEVBQ0QsR0FBRyxDQUFDO1FBRVIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hDLE9BQU8sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRTtvQkFDeEIsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6QixJQUFJLElBQUksQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzt3QkFDbkIsU0FBUyxHQUFHLENBQUMsQ0FBQzt3QkFDZCxNQUFNO3FCQUNUO2lCQUNKO2dCQUNELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBSSxDQUFDLENBQUM7b0JBQ25DLE1BQU07aUJBQ1Q7YUFDSjtpQkFBTTtnQkFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDckMsR0FBRyxFQUFFLENBQUM7aUJBQ1Q7Z0JBQ0QsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDMUIsU0FBUyxHQUFHLENBQUMsQ0FBQztpQkFDakI7YUFDSjtTQUNKO1FBQ0QsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEI7YUFBTSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVUsQ0FBQyxDQUFDLEVBQUU7WUFDOUcsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQy9ELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO2FBQ3hCO2lCQUFNO2dCQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO2dCQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDdEI7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ25FO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUVkLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRWxCLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsSUFBSSxHQUFHLEdBQXVCLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBRWxDLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsYUFBYSxFQUFFO2dCQUN2QyxPQUFPO2FBQ1Y7WUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtnQkFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDdEI7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNuQjtZQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBVTtRQUNkLElBQUksSUFBSSxDQUFDLGFBQWE7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUUvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFNLEVBQUUsT0FBZ0IsRUFBRSxjQUF3QjtRQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzdELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFDZixZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUE7UUFDOUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU87WUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQ3hCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLEtBQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDL0MsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtTQUNKO1FBQ0QsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQUMsQ0FBTSxJQUFJLENBQUM7SUFFdkIsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEJMVVIsIEZPQ1VTLCBLRVlfRE9XTiwgS0VZX1BSRVNTLCBQQVNURSB9IGZyb20gXCIuLi8uLi9jb25zdFwiO1xyXG5pbXBvcnQgeyBBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiLi4vLi4vY29yZS9hbm5vdGF0aW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7IE1hc2tDb25maWcgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2NvbmZpZy9tYXNrLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBnZXRDb25maWdPYmplY3QgfSBmcm9tIFwiLi4vLi4vdXRpbC9jb25maWctcHJvdmlkZXJcIjtcclxuaW1wb3J0IHsgRm9ybVByb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL3V0aWwvZm9ybS1wcm92aWRlclwiO1xyXG5pbXBvcnQgeyBPYmplY3RNYWtlciB9IGZyb20gXCIuLi8uLi91dGlsL29iamVjdC1tYWtlclwiO1xyXG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gXCIuLi8uLi91dGlsL3JlZ2V4LXZhbGlkYXRvclwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE1hc2tQcm92aWRlciB7XHJcblxyXG4gICAgcHJpdmF0ZSBldmVudExpc3RlbmVyczogYW55W10gPSBbXTtcclxuXHJcbiAgICBvbGRWYWx1ZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgdHlwZTogc3RyaW5nID0gJ3RleHQnO1xyXG5cclxuICAgIHNsb3RDaGFyOiBzdHJpbmcgPSAnXyc7XHJcblxyXG4gICAgYXV0b0NsZWFyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgdmFsdWU6IGFueTtcclxuXHJcbiAgICBkZWZzOiBhbnk7XHJcblxyXG4gICAgdGVzdHM/OiBhbnlbXTtcclxuXHJcbiAgICBwYXJ0aWFsUG9zaXRpb246IGFueTtcclxuXHJcbiAgICBmaXJzdE5vbk1hc2tQb3M/OiBudW1iZXI7XHJcblxyXG4gICAgbGFzdFJlcXVpcmVkTm9uTWFza1BvczogYW55O1xyXG5cclxuICAgIGxlbj86IG51bWJlcjtcclxuXHJcbiAgICBvbGRWYWw/OiBzdHJpbmc7XHJcblxyXG4gICAgYnVmZmVyOiBhbnk7XHJcblxyXG4gICAgZGVmYXVsdEJ1ZmZlcj86IHN0cmluZztcclxuXHJcbiAgICBmb2N1c1RleHQ/OiBzdHJpbmc7XHJcblxyXG4gICAgY2FyZXRUaW1lb3V0SWQ6IGFueTtcclxuXHJcbiAgICBhbmRyb2lkQ2hyb21lPzogYm9vbGVhbjtcclxuXHJcbiAgICBmb2N1cz86IGJvb2xlYW47XHJcblxyXG4gICAgZmlsbGVkPzogYm9vbGVhbjtcclxuXHJcbiAgICBtaW5MZW5ndGg/OiBudW1iZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnB1dDogSFRNTElucHV0RWxlbWVudCwgcHJpdmF0ZSBtYXNrOiBzdHJpbmcsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2wsIHByaXZhdGUgY29uZmlnOiBNYXNrQ29uZmlnKSB7XHJcbiAgICAgICAgdGhpcy5iaW5kKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYmluZCgpIHtcclxuICAgICAgICBpZiAoUmVnZXhWYWxpZGF0b3IuaXNOb3RCbGFuayh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudGVzdHMgPSBbXTtcclxuICAgICAgICB0aGlzLnBhcnRpYWxQb3NpdGlvbiA9IHRoaXMubWFzay5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5sZW4gPSB0aGlzLm1hc2subGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuZmlyc3ROb25NYXNrUG9zID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuZGVmcyA9IHtcclxuICAgICAgICAgICAgJzknOiAnWzAtOV0nLFxyXG4gICAgICAgICAgICAnYSc6ICdbQS1aYS16XScsXHJcbiAgICAgICAgICAgICcqJzogJ1tBLVphLXowLTldJ1xyXG4gICAgICAgIH07XHJcblxyXG5cclxuICAgICAgICB0aGlzLmFuZHJvaWRDaHJvbWUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgbGV0IG1hc2tUb2tlbnMgPSB0aGlzLm1hc2suc3BsaXQoJycpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWFza1Rva2Vucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgYyA9IG1hc2tUb2tlbnNbaV07XHJcbiAgICAgICAgICAgIGlmIChjID09ICc/Jykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sZW4tLTtcclxuICAgICAgICAgICAgICAgIHRoaXMucGFydGlhbFBvc2l0aW9uID0gaTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICh0aGlzLmRlZnNbY10pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGVzdHMucHVzaChuZXcgUmVnRXhwKHRoaXMuZGVmc1tjXSkpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3ROb25NYXNrUG9zID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maXJzdE5vbk1hc2tQb3MgPSB0aGlzLnRlc3RzLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaSA8IHRoaXMucGFydGlhbFBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zID0gdGhpcy50ZXN0cy5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50ZXN0cy5wdXNoKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWluTGVuZ3RoID0gdGhpcy5jb25maWcubWluTGVuZ3RoID8gdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zIC0gKHRoaXMubGFzdFJlcXVpcmVkTm9uTWFza1BvcyAtIHRoaXMuY29uZmlnLm1pbkxlbmd0aCkgOiB0aGlzLmxhc3RSZXF1aXJlZE5vbk1hc2tQb3M7XHJcbiAgICAgICAgdGhpcy5idWZmZXIgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2tUb2tlbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSBtYXNrVG9rZW5zW2ldO1xyXG4gICAgICAgICAgICBpZiAoYyAhPSAnPycpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZnNbY10pXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXIucHVzaCh0aGlzLmdldFBsYWNlaG9sZGVyKGkpKTtcclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci5wdXNoKGMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZGVmYXVsdEJ1ZmZlciA9IHRoaXMuYnVmZmVyLmpvaW4oJycpO1xyXG4gICAgICAgIHRoaXMuZm9jdXNUZXh0ID0gdGhpcy5pbnB1dC52YWx1ZTtcclxuICAgICAgICB0aGlzLmJpbmRFdmVudHMoKTtcclxuICAgICAgICB0aGlzLmNoZWNrVmFsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYmluZEV2ZW50cygpIHtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgRk9DVVMsIHRoaXMub25Gb2N1cy5iaW5kKHRoaXMpKSk7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIEJMVVIsIHRoaXMub25CbHVyLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgS0VZX0RPV04sIHRoaXMub25LZXlEb3duLmJpbmQodGhpcykpKTtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgS0VZX1BSRVNTLCB0aGlzLm9uS2V5UHJlc3MuYmluZCh0aGlzKSkpO1xyXG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCBcImlucHV0XCIsIHRoaXMub25JbnB1dC5iaW5kKHRoaXMpKSk7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsIFBBU1RFLCB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlLmJpbmQodGhpcykpKTtcclxuICAgIH1cclxuICAgIGlzSW52YWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgdmFsaWRhdGUoKSB7XHJcbiAgICAgICAgaWYgKCh0aGlzLmlucHV0LnZhbHVlICYmIHRoaXMub2xkVmFsdWUgIT0gdGhpcy5pbnB1dC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja1ZhbCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5pc0NvbXBsZXRlZCh1bmRlZmluZWQsIHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLm9sZFZhbHVlID0gdGhpcy5pbnB1dC52YWx1ZVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgY29uZmlnID0gZ2V0Q29uZmlnT2JqZWN0KHRoaXMuY29uZmlnLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICAgICAgICBpZiAoUmVnZXhWYWxpZGF0b3IuaXNOb3RCbGFuayh0aGlzLmdldFVubWFza2VkVmFsdWUoKSkgJiYgRm9ybVByb3ZpZGVyLlByb2Nlc3NSdWxlKHRoaXMuZm9ybUNvbnRyb2wsIGNvbmZpZykpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNJbnZhbGlkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0TWFrZXIudG9Kc29uKEFubm90YXRpb25UeXBlcy5tYXNrLCBjb25maWcsIFt0aGlzLmZvcm1Db250cm9sLnZhbHVlXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBPYmplY3RNYWtlci5udWxsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pbnB1dCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZSA9PSB1bmRlZmluZWQgfHwgdGhpcy52YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jaGVja1ZhbCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVGaWxsZWRTdGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhcmV0KGZpcnN0PzogbnVtYmVyLCBsYXN0PzogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHJhbmdlLCBiZWdpbiwgZW5kO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaW5wdXQub2Zmc2V0UGFyZW50IHx8IHRoaXMuaW5wdXQgIT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodHlwZW9mIGZpcnN0ID09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgIGJlZ2luID0gZmlyc3Q7XHJcbiAgICAgICAgICAgIGVuZCA9ICh0eXBlb2YgbGFzdCA9PT0gJ251bWJlcicpID8gbGFzdCA6IGJlZ2luO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShiZWdpbiwgZW5kKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgodGhpcy5pbnB1dCBhcyBhbnkpWydjcmVhdGVUZXh0UmFuZ2UnXSkge1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UgPSAodGhpcy5pbnB1dCBhcyBhbnkpWydjcmVhdGVUZXh0UmFuZ2UnXSgpO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UuY29sbGFwc2UodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICByYW5nZS5tb3ZlRW5kKCdjaGFyYWN0ZXInLCBlbmQpO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCBiZWdpbik7XHJcbiAgICAgICAgICAgICAgICByYW5nZS5zZWxlY3QoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UhKSB7XHJcbiAgICAgICAgICAgICAgICBiZWdpbiA9IHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgICAgICAgICAgICBlbmQgPSB0aGlzLmlucHV0LnNlbGVjdGlvbkVuZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIGlmICgoZG9jdW1lbnQgYXMgYW55KVsnc2VsZWN0aW9uJ10gJiYgKGRvY3VtZW50IGFzIGFueSlbJ3NlbGVjdGlvbiddLmNyZWF0ZVJhbmdlKSB7XHJcbiAgICAgICAgICAgICAgICByYW5nZSA9IChkb2N1bWVudCBhcyBhbnkpWydzZWxlY3Rpb24nXS5jcmVhdGVSYW5nZSgpO1xyXG4gICAgICAgICAgICAgICAgYmVnaW4gPSAwIC0gcmFuZ2UuZHVwbGljYXRlKCkubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCAtMTAwMDAwKTtcclxuICAgICAgICAgICAgICAgIGVuZCA9IGJlZ2luICsgcmFuZ2UudGV4dC5sZW5ndGg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7IGJlZ2luOiBiZWdpbiwgZW5kOiBlbmQgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ29tcGxldGVkKGxhc3RSZXF1aXJlZE5vbk1hc2tQb3M/OiBudW1iZXIsIGlzTm90UnVuVmFsaWRhdG9yPzogYm9vbGVhbik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGxldCBjb21wbGV0ZWQ6IGJvb2xlYW47XHJcbiAgICAgICAgbGFzdFJlcXVpcmVkTm9uTWFza1BvcyA9IGxhc3RSZXF1aXJlZE5vbk1hc2tQb3MgfHwgdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAodGhpcy5maXJzdE5vbk1hc2tQb3MgPz8gMCk7IGkgPD0gbGFzdFJlcXVpcmVkTm9uTWFza1BvcyE7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbaV0gJiYgdGhpcy5idWZmZXJbaV0gPT09IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSEpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKCFpc05vdFJ1blZhbGlkYXRvcikge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFBsYWNlaG9sZGVyKGk6IG51bWJlcikge1xyXG4gICAgICAgIGlmIChpIDwgdGhpcy5zbG90Q2hhci5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xvdENoYXIuY2hhckF0KGkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdGhpcy5zbG90Q2hhci5jaGFyQXQoMCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2Vla05leHQocG9zOiBudW1iZXIpIHtcclxuICAgICAgICB3aGlsZSAoKytwb3MgPCB0aGlzLmxlbiEgJiYgIXRoaXMudGVzdHMhW3Bvc10pO1xyXG4gICAgICAgIHJldHVybiBwb3M7XHJcbiAgICB9XHJcblxyXG4gICAgc2Vla1ByZXYocG9zOiBudW1iZXIpIHtcclxuICAgICAgICB3aGlsZSAoLS1wb3MgPj0gMCAmJiAhdGhpcy50ZXN0cyFbcG9zXSk7XHJcbiAgICAgICAgcmV0dXJuIHBvcztcclxuICAgIH1cclxuXHJcbiAgICBzaGlmdEwoYmVnaW46IG51bWJlciwgZW5kOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgaSwgajtcclxuXHJcbiAgICAgICAgaWYgKGJlZ2luIDwgMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGkgPSBiZWdpbiwgaiA9IHRoaXMuc2Vla05leHQoZW5kKTsgaSA8IHRoaXMubGVuITsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtpXSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGogPCB0aGlzLmxlbiEgJiYgdGhpcy50ZXN0cyFbaV0udGVzdCh0aGlzLmJ1ZmZlcltqXSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IHRoaXMuYnVmZmVyW2pdO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2pdID0gdGhpcy5nZXRQbGFjZWhvbGRlcihqKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaiA9IHRoaXMuc2Vla05leHQoaik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICB0aGlzLmNhcmV0KE1hdGgubWF4KHRoaXMuZmlyc3ROb25NYXNrUG9zISwgYmVnaW4pKTtcclxuICAgIH1cclxuXHJcbiAgICBzaGlmdFIocG9zOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgaSwgYywgaiwgdDtcclxuXHJcbiAgICAgICAgZm9yIChpID0gcG9zLCBjID0gdGhpcy5nZXRQbGFjZWhvbGRlcihwb3MpOyBpIDwgdGhpcy5sZW4hOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldKSB7XHJcbiAgICAgICAgICAgICAgICBqID0gdGhpcy5zZWVrTmV4dChpKTtcclxuICAgICAgICAgICAgICAgIHQgPSB0aGlzLmJ1ZmZlcltpXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gYztcclxuICAgICAgICAgICAgICAgIGlmIChqIDwgdGhpcy5sZW4hICYmIHRoaXMudGVzdHMhW2pdLnRlc3QodCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjID0gdDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaGFuZGxlQW5kcm9pZElucHV0KF86IGFueSkge1xyXG4gICAgICAgIHZhciBjdXJWYWwgPSB0aGlzLmlucHV0LnZhbHVlO1xyXG4gICAgICAgIHZhciBwb3MgPSB0aGlzLmNhcmV0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMub2xkVmFsICYmIHRoaXMub2xkVmFsLmxlbmd0aCAmJiB0aGlzLm9sZFZhbC5sZW5ndGggPiBjdXJWYWwubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwodHJ1ZSk7XHJcbiAgICAgICAgICAgIHdoaWxlIChwb3MhLmJlZ2luISA+IDAgJiYgIXRoaXMudGVzdHMhW3BvcyEuYmVnaW4hIC0gMV0pXHJcbiAgICAgICAgICAgICAgICBwb3MhLmJlZ2luIS0tO1xyXG4gICAgICAgICAgICBpZiAocG9zIS5iZWdpbiA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKHBvcyEuYmVnaW4gPCB0aGlzLmZpcnN0Tm9uTWFza1BvcyEgJiYgIXRoaXMudGVzdHMhW3BvcyEuYmVnaW5dKVxyXG4gICAgICAgICAgICAgICAgICAgIHBvcyEuYmVnaW4rKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNhcmV0KHBvcyEuYmVnaW4hLCBwb3MhLmJlZ2luISk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFyIHBvczIgPSB0aGlzLmNoZWNrVmFsKHRydWUpO1xyXG4gICAgICAgICAgICB3aGlsZSAocG9zIS5iZWdpbiEgPCB0aGlzLmxlbiEgJiYgIXRoaXMudGVzdHMhW3BvcyEuYmVnaW4hXSlcclxuICAgICAgICAgICAgICAgIHBvcyEuYmVnaW4hKys7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNhcmV0KHBvcyEuYmVnaW4hLCBwb3MhLmJlZ2luISk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0NvbXBsZXRlZCgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNJbnZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb25CbHVyKGU6IGFueSkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNoZWNrVmFsKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQudmFsdWUgIT0gdGhpcy5mb2N1c1RleHQpIHtcclxuICAgICAgICAgICAgbGV0IGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcclxuICAgICAgICAgICAgZXZlbnQuaW5pdEV2ZW50KCdjaGFuZ2UnLCB0cnVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZGlzcGF0Y2hFdmVudChldmVudCk7XHJcbiAgICAgICAgICAgIGxldCBtYXNrZWRWYWx1ZSA9IHRoaXMuaW5wdXQudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5jb25maWcudmFsdWVXaXRoTWFzayA/IG1hc2tlZFZhbHVlIDogdGhpcy5nZXRVbm1hc2tlZFZhbHVlKCkpO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gbWFza2VkVmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5RG93bihlOiBhbnkpIHtcclxuICAgICAgICBsZXQgayA9IGUud2hpY2ggfHwgZS5rZXlDb2RlLFxyXG4gICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgIGJlZ2luLFxyXG4gICAgICAgICAgICBlbmQ7XHJcbiAgICAgICAgbGV0IGlQaG9uZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub2xkVmFsID0gdGhpcy5pbnB1dC52YWx1ZTtcclxuICAgICAgICBsZXQgY29udHJvbFZhbGlkID0gdGhpcy5jb25maWcubWluTGVuZ3RoID8gdGhpcy5pc0NvbXBsZXRlZCh0aGlzLm1pbkxlbmd0aCEgKyAxKSA6IGZhbHNlO1xyXG4gICAgICAgIGlmIChrID09PSA4IHx8IGsgPT09IDQ2IHx8IChpUGhvbmUgJiYgayA9PT0gMTI3KSkge1xyXG4gICAgICAgICAgICBwb3MgPSB0aGlzLmNhcmV0KCk7XHJcbiAgICAgICAgICAgIGJlZ2luID0gcG9zIS5iZWdpbjtcclxuICAgICAgICAgICAgZW5kID0gcG9zIS5lbmQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoZW5kIC0gYmVnaW4hID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICBiZWdpbiA9IGsgIT09IDQ2ID8gdGhpcy5zZWVrUHJldihiZWdpbiEpIDogKGVuZCA9IHRoaXMuc2Vla05leHQoYmVnaW4hIC0gMSkpO1xyXG4gICAgICAgICAgICAgICAgZW5kID0gayA9PT0gNDYgPyB0aGlzLnNlZWtOZXh0KGVuZCkgOiBlbmQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIoYmVnaW4hLCBlbmQpO1xyXG4gICAgICAgICAgICB0aGlzLnNoaWZ0TChiZWdpbiEsIGVuZCAtIDEpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShlLCBmYWxzZSwgY29udHJvbFZhbGlkKTtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoayA9PT0gMTMpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkJsdXIoZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGUsIGZhbHNlLCBjb250cm9sVmFsaWQpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGUpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoayA9PT0gMjcpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMuZm9jdXNUZXh0ID8/ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmNhcmV0KDAsIHRoaXMuY2hlY2tWYWwoKSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udHJvbFZhbHVlKGUsIGZhbHNlLCBjb250cm9sVmFsaWQpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgb25LZXlQcmVzcyhlOiBhbnkpIHtcclxuICAgICAgICB2YXIgayA9IGUud2hpY2ggfHwgZS5rZXlDb2RlLFxyXG4gICAgICAgICAgICBwb3MgPSB0aGlzLmNhcmV0KCksXHJcbiAgICAgICAgICAgIHAsXHJcbiAgICAgICAgICAgIGMsXHJcbiAgICAgICAgICAgIG5leHQsXHJcbiAgICAgICAgICAgIGNvbXBsZXRlZDtcclxuICAgICAgICBpZiAoZS5jdHJsS2V5IHx8IGUuYWx0S2V5IHx8IGUubWV0YUtleSB8fCBrIDwgMzIpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoayAmJiBrICE9PSAxMykge1xyXG4gICAgICAgICAgICBpZiAocG9zIS5lbmQgLSBwb3MhLmJlZ2luISAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhckJ1ZmZlcihwb3MhLmJlZ2luISwgcG9zIS5lbmQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zaGlmdEwocG9zIS5iZWdpbiEsIHBvcyEuZW5kIC0gMSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHAgPSB0aGlzLnNlZWtOZXh0KHBvcyEuYmVnaW4hIC0gMSk7XHJcbiAgICAgICAgICAgIGlmIChwIDwgdGhpcy5sZW4hKSB7XHJcbiAgICAgICAgICAgICAgICBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShrKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzIVtwXS50ZXN0KGMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGlmdFIocCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BdID0gYztcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgbmV4dCA9IHRoaXMuc2Vla05leHQocCk7XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KG5leHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3MhLmJlZ2luISA8PSB0aGlzLmxhc3RSZXF1aXJlZE5vbk1hc2tQb3MpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkID0gdGhpcy5pc0NvbXBsZXRlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGUpO1xyXG4gICAgICAgIGlmIChjb21wbGV0ZWQgPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgICAgY29tcGxldGVkID0gdGhpcy5pc0NvbXBsZXRlZCgpXHJcbiAgICAgICAgdGhpcy5zZXRDb250cm9sVmFsdWUoZSwgY29tcGxldGVkLCB0aGlzLmNvbmZpZy5taW5MZW5ndGggPyB0aGlzLmlzQ29tcGxldGVkKHRoaXMubWluTGVuZ3RoKSA6IGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnRlcm5hbFByb2Nlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjbGVhckJ1ZmZlcihzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xyXG4gICAgICAgIGxldCBpO1xyXG4gICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kICYmIGkgPCB0aGlzLmxlbiE7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbaV0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gdGhpcy5nZXRQbGFjZWhvbGRlcihpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB3cml0ZUJ1ZmZlcigpIHtcclxuICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gdGhpcy5idWZmZXIuam9pbignJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tWYWwoYWxsb3c/OiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IHRlc3QgPSB0aGlzLmlucHV0LnZhbHVlLFxyXG4gICAgICAgICAgICBsYXN0TWF0Y2ggPSAtMSxcclxuICAgICAgICAgICAgaSxcclxuICAgICAgICAgICAgYyxcclxuICAgICAgICAgICAgcG9zO1xyXG5cclxuICAgICAgICBmb3IgKGkgPSAwLCBwb3MgPSAwOyBpIDwgdGhpcy5sZW4hOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSk7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAocG9zKysgPCB0ZXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGMgPSB0ZXN0LmNoYXJBdChwb3MgLSAxKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50ZXN0cyFbaV0udGVzdChjKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RNYXRjaCA9IGk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwb3MgPiB0ZXN0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIoaSArIDEsIHRoaXMubGVuISk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5idWZmZXJbaV0gPT09IHRlc3QuY2hhckF0KHBvcykpIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3MrKztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChpIDwgdGhpcy5wYXJ0aWFsUG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBsYXN0TWF0Y2ggPSBpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhbGxvdykge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmICgobGFzdE1hdGNoICsgMSA8IHRoaXMucGFydGlhbFBvc2l0aW9uKSAmJiAoIXRoaXMuY29uZmlnLm1pbkxlbmd0aCB8fCAhKGxhc3RNYXRjaCA+PSB0aGlzLm1pbkxlbmd0aCEpKSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvQ2xlYXIgfHwgdGhpcy5idWZmZXIuam9pbignJykgPT09IHRoaXMuZGVmYXVsdEJ1ZmZlcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWVcclxuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMuaW5wdXQudmFsdWUuc3Vic3RyaW5nKDAsIGxhc3RNYXRjaCArIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gKHRoaXMucGFydGlhbFBvc2l0aW9uID8gaSA6IHRoaXMuZmlyc3ROb25NYXNrUG9zKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkZvY3VzKGV2ZW50OiBhbnkpIHtcclxuXHJcbiAgICAgICAgdGhpcy5mb2N1cyA9IHRydWU7XHJcblxyXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNhcmV0VGltZW91dElkKTtcclxuICAgICAgICBsZXQgcG9zOiBudW1iZXIgfCB1bmRlZmluZWQgPSAwO1xyXG5cclxuICAgICAgICB0aGlzLmZvY3VzVGV4dCA9IHRoaXMuaW5wdXQudmFsdWU7XHJcblxyXG4gICAgICAgIHBvcyA9IHRoaXMuY2hlY2tWYWwoKTtcclxuXHJcbiAgICAgICAgdGhpcy5jYXJldFRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dCAhPT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICAgICAgaWYgKHBvcyA9PSB0aGlzLm1hc2sucmVwbGFjZShcIj9cIiwgXCJcIikubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KDAsIHBvcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KHBvcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy51cGRhdGVGaWxsZWRTdGF0ZSgpO1xyXG4gICAgICAgIH0sIDEwKTtcclxuICAgIH1cclxuXHJcbiAgICBvbklucHV0KGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5hbmRyb2lkQ2hyb21lKVxyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUFuZHJvaWRJbnB1dChldmVudCk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRDb250cm9sVmFsdWUoZTogYW55LCBpc1ZhbGlkOiBib29sZWFuLCBpc1ZhbGlkQ29udHJvbD86IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmlzSW52YWxpZCA9IGlzVmFsaWRDb250cm9sID8gIWlzVmFsaWRDb250cm9sIDogIWlzVmFsaWQ7XHJcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5pbnB1dC52YWx1ZTtcclxuICAgICAgICBsZXQgY29udHJvbFZhbHVlID0gJyc7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzSW52YWxpZClcclxuICAgICAgICAgICAgY29udHJvbFZhbHVlID0gdGhpcy5jb25maWcudmFsdWVXaXRoTWFzayA/IHZhbHVlIDogdGhpcy5nZXRVbm1hc2tlZFZhbHVlKClcclxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGNvbnRyb2xWYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5vbGRWYWx1ZSA9IHRoaXMuaW5wdXQudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICBpZiAoIWlzVmFsaWQpXHJcbiAgICAgICAgICAgIHRoaXMub25Gb2N1cyhlKTtcclxuICAgIH1cclxuXHJcbiAgICBoYW5kbGVJbnB1dENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHZhciBwb3MgPSB0aGlzLmNoZWNrVmFsKHRydWUpO1xyXG4gICAgICAgICAgICB0aGlzLmNhcmV0KHBvcyk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZXZlbnQpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRyb2xWYWx1ZShldmVudCwgdGhpcy5pc0NvbXBsZXRlZCgpKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRVbm1hc2tlZFZhbHVlKCkge1xyXG4gICAgICAgIGxldCB1bm1hc2tlZEJ1ZmZlciA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5idWZmZXIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgbGV0IGMgPSB0aGlzLmJ1ZmZlcltpXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHMhW2ldICYmIGMgIT0gdGhpcy5nZXRQbGFjZWhvbGRlcihpKSkge1xyXG4gICAgICAgICAgICAgICAgdW5tYXNrZWRCdWZmZXIucHVzaChjKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdW5tYXNrZWRCdWZmZXIuam9pbignJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlTW9kZWwoZTogYW55KSB7IH1cclxuXHJcbiAgICB1cGRhdGVGaWxsZWRTdGF0ZSgpIHtcclxuICAgICAgICB0aGlzLmZpbGxlZCA9IHRoaXMuaW5wdXQgJiYgdGhpcy5pbnB1dC52YWx1ZSAhPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBvbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgbGV0IGV2ZW50Q291bnQgPSB0aGlzLmV2ZW50TGlzdGVuZXJzLmxlbmd0aDtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50Q291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzWzBdKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzID0gW107XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -1,47 +1,93 @@
|
|
|
1
1
|
import { RegexValidator } from '../util/regex-validator';
|
|
2
|
+
/* Constants for data types */
|
|
2
3
|
const OBJECT = "object";
|
|
3
4
|
const BOOLEAN = "boolean";
|
|
5
|
+
/* Class responsible for providing methods to convert JSON data to FormData */
|
|
4
6
|
export class FormDataProvider {
|
|
7
|
+
/**
|
|
8
|
+
* Converts a JavaScript object to FormData.
|
|
9
|
+
* @param jObject The JavaScript object to convert.
|
|
10
|
+
* @param options Additional options for the conversion.
|
|
11
|
+
* @returns The converted FormData object.
|
|
12
|
+
*/
|
|
5
13
|
convertToFormData(jObject, options) {
|
|
6
14
|
return this.convertFormData(jObject, undefined, undefined, options);
|
|
7
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Recursively converts a JavaScript object to FormData.
|
|
18
|
+
* @param jObject The JavaScript object to convert.
|
|
19
|
+
* @param currentFormData The current FormData object (used for recursive calls).
|
|
20
|
+
* @param parentKey The parent key (used for recursive calls).
|
|
21
|
+
* @param options Additional options for the conversion.
|
|
22
|
+
* @returns The converted FormData object.
|
|
23
|
+
*/
|
|
8
24
|
convertFormData(jObject, currentFormData, parentKey, options) {
|
|
25
|
+
/* Initialize formData with currentFormData if available, otherwise create a new FormData object */
|
|
9
26
|
let formData = currentFormData || new FormData();
|
|
27
|
+
/* Initialize propName to an empty string */
|
|
10
28
|
let propName = '';
|
|
29
|
+
/* Iterate over each property in the jObject */
|
|
11
30
|
for (var columnName in jObject) {
|
|
31
|
+
/* Set propName to columnName if there's no parentKey, otherwise use parentKey[columnName] format */
|
|
12
32
|
propName = !parentKey ? columnName : `${parentKey}[${columnName}]`;
|
|
33
|
+
/* Check if the property value is an array */
|
|
13
34
|
if (Array.isArray(jObject[columnName])) {
|
|
35
|
+
/* If it's an array, iterate over each element */
|
|
14
36
|
jObject[columnName].forEach((row, index) => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.
|
|
37
|
+
/* Set arrayPropName to columnName[index] format */
|
|
38
|
+
let arrayPropName = `${columnName}[${index}]`;
|
|
39
|
+
/* If the element is an object, recursively call convertFormData */
|
|
40
|
+
if (typeof row === OBJECT) {
|
|
41
|
+
this.convertFormData(row, formData, arrayPropName, options);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
/* If not an object, call nonObjectValueBind */
|
|
45
|
+
this.nonObjectValueBind(row, formData, arrayPropName, options);
|
|
46
|
+
}
|
|
20
47
|
});
|
|
21
48
|
}
|
|
22
49
|
else if (jObject[columnName] !== null && !(jObject[columnName] instanceof Date) && typeof jObject[columnName] === OBJECT && !(jObject[columnName] instanceof File || jObject[columnName] instanceof FileList)) {
|
|
50
|
+
/* If the property value is an object, recursively call convertFormData */
|
|
23
51
|
this.convertFormData(jObject[columnName], formData, propName, options);
|
|
24
52
|
}
|
|
25
53
|
else {
|
|
54
|
+
/* If the property value is neither an array nor an object, call nonObjectValueBind */
|
|
26
55
|
this.nonObjectValueBind(jObject[columnName], formData, propName, options);
|
|
27
56
|
}
|
|
28
57
|
}
|
|
58
|
+
/* Return the resulting FormData object */
|
|
29
59
|
return formData;
|
|
30
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Binds non-object values to FormData.
|
|
63
|
+
* @param value The value to bind.
|
|
64
|
+
* @param formData The FormData object.
|
|
65
|
+
* @param propName The property name.
|
|
66
|
+
* @param options Additional options for the conversion.
|
|
67
|
+
*/
|
|
31
68
|
nonObjectValueBind(value, formData, propName, options) {
|
|
69
|
+
/* Check if the value type is boolean */
|
|
32
70
|
if (typeof value === BOOLEAN) {
|
|
71
|
+
/* Convert the boolean value to true or false and append to formData */
|
|
33
72
|
let formValue = value ? true : false;
|
|
34
73
|
formData.append(propName, formValue);
|
|
35
74
|
}
|
|
75
|
+
/* Check if the value is a FileList */
|
|
36
76
|
else if (value instanceof FileList) {
|
|
77
|
+
/* Iterate over each item in the FileList */
|
|
37
78
|
for (var i = 0; i < value.length; i++) {
|
|
79
|
+
/* Append the file item to formData */
|
|
38
80
|
formData.append(options && options.excludeImageIndex && value.length === 1 ? propName : `${propName}[${i}]`, value.item(i));
|
|
39
81
|
}
|
|
40
82
|
}
|
|
83
|
+
/* For other types of values */
|
|
41
84
|
else {
|
|
42
|
-
if
|
|
85
|
+
/* Check if the value is not blank using RegexValidator */
|
|
86
|
+
if (RegexValidator.isNotBlank(value)) {
|
|
87
|
+
/* Append the value to formData */
|
|
43
88
|
formData.append(propName, value);
|
|
89
|
+
}
|
|
44
90
|
}
|
|
45
91
|
}
|
|
46
92
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL2RvbWFpbi9mb3JtLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE1BQU0sTUFBTSxHQUFXLFFBQVEsQ0FBQztBQUNoQyxNQUFNLE9BQU8sR0FBVyxTQUFTLENBQUM7QUFDbEMsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixpQkFBaUIsQ0FBQyxPQUErQixFQUFFLE9BQXdCO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQStCLEVBQUUsZUFBMEIsRUFBRSxTQUFrQixFQUFFLE9BQXdCO1FBQ3JILElBQUksUUFBUSxHQUFHLGVBQWUsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2pELElBQUksUUFBUSxHQUFXLEVBQUUsQ0FBQztRQUMxQixLQUFLLElBQUksVUFBVSxJQUFJLE9BQU8sRUFBRTtZQUM1QixRQUFRLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLElBQUksVUFBVSxHQUFHLENBQUM7WUFDbkUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFO2dCQUNwQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEtBQWEsRUFBRSxFQUFFO29CQUNwRCxRQUFRLEdBQUcsR0FBRyxVQUFVLElBQUksS0FBSyxHQUFHLENBQUM7b0JBQ3JDLElBQUksT0FBTyxHQUFHLEtBQUssTUFBTTt3QkFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzs7d0JBRXZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDbEUsQ0FBQyxDQUFDLENBQUE7YUFDTDtpQkFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLFFBQVEsQ0FBQyxFQUFFO2dCQUM3TSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFBO2FBQ3pFO2lCQUFNO2dCQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUM3RTtTQUNKO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVUsRUFBRSxRQUFrQixFQUFFLFFBQWdCLEVBQUUsT0FBd0I7UUFDekYsSUFBSSxPQUFPLEtBQUssS0FBSyxPQUFPLEVBQUU7WUFDMUIsSUFBSSxTQUFTLEdBQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUMxQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUN4QzthQUFNLElBQUksS0FBSyxZQUFZLFFBQVEsRUFBRTtZQUNsQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbkMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLGlCQUFpQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsQ0FBQzthQUN2STtTQUNKO2FBQU07WUFDSCxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN4QztJQUNMLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1EYXRhQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzL2ludGVyZmFjZS9mb3JtLWRhdGEtY29uZmlnJztcclxuaW1wb3J0IHsgUmVnZXhWYWxpZGF0b3IgfSBmcm9tICcuLi91dGlsL3JlZ2V4LXZhbGlkYXRvcic7XHJcbmNvbnN0IE9CSkVDVDogc3RyaW5nID0gXCJvYmplY3RcIjtcclxuY29uc3QgQk9PTEVBTjogc3RyaW5nID0gXCJib29sZWFuXCI7XHJcbmV4cG9ydCBjbGFzcyBGb3JtRGF0YVByb3ZpZGVyIHtcclxuXHJcbiAgICBjb252ZXJ0VG9Gb3JtRGF0YShqT2JqZWN0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LCBvcHRpb25zPzogRm9ybURhdGFDb25maWcpOiBGb3JtRGF0YSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udmVydEZvcm1EYXRhKGpPYmplY3QsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBvcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBjb252ZXJ0Rm9ybURhdGEoak9iamVjdDogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgY3VycmVudEZvcm1EYXRhPzogRm9ybURhdGEsIHBhcmVudEtleT86IHN0cmluZywgb3B0aW9ucz86IEZvcm1EYXRhQ29uZmlnKTogRm9ybURhdGEge1xyXG4gICAgICAgIGxldCBmb3JtRGF0YSA9IGN1cnJlbnRGb3JtRGF0YSB8fCBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICBsZXQgcHJvcE5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgICAgIGZvciAodmFyIGNvbHVtbk5hbWUgaW4gak9iamVjdCkge1xyXG4gICAgICAgICAgICBwcm9wTmFtZSA9ICFwYXJlbnRLZXkgPyBjb2x1bW5OYW1lIDogYCR7cGFyZW50S2V5fVske2NvbHVtbk5hbWV9XWA7XHJcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGpPYmplY3RbY29sdW1uTmFtZV0pKSB7XHJcbiAgICAgICAgICAgICAgICBqT2JqZWN0W2NvbHVtbk5hbWVdLmZvckVhY2goKHJvdzogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcE5hbWUgPSBgJHtjb2x1bW5OYW1lfVske2luZGV4fV1gO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygcm93ID09PSBPQkpFQ1QpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udmVydEZvcm1EYXRhKHJvdywgZm9ybURhdGEsIHByb3BOYW1lLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9uT2JqZWN0VmFsdWVCaW5kKHJvdywgZm9ybURhdGEsIHByb3BOYW1lLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoak9iamVjdFtjb2x1bW5OYW1lXSAhPT0gbnVsbCAmJiAhKGpPYmplY3RbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBEYXRlKSAmJiB0eXBlb2Ygak9iamVjdFtjb2x1bW5OYW1lXSA9PT0gT0JKRUNUICYmICEoak9iamVjdFtjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIEZpbGUgfHwgak9iamVjdFtjb2x1bW5OYW1lXSBpbnN0YW5jZW9mIEZpbGVMaXN0KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb252ZXJ0Rm9ybURhdGEoak9iamVjdFtjb2x1bW5OYW1lXSwgZm9ybURhdGEsIHByb3BOYW1lLCBvcHRpb25zKVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ub25PYmplY3RWYWx1ZUJpbmQoak9iamVjdFtjb2x1bW5OYW1lXSwgZm9ybURhdGEsIHByb3BOYW1lLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZm9ybURhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgbm9uT2JqZWN0VmFsdWVCaW5kKHZhbHVlOiBhbnksIGZvcm1EYXRhOiBGb3JtRGF0YSwgcHJvcE5hbWU6IHN0cmluZywgb3B0aW9ucz86IEZvcm1EYXRhQ29uZmlnKSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gQk9PTEVBTikge1xyXG4gICAgICAgICAgICBsZXQgZm9ybVZhbHVlOiBhbnkgPSB2YWx1ZSA/IHRydWUgOiBmYWxzZTtcclxuICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKHByb3BOYW1lLCBmb3JtVmFsdWUpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBGaWxlTGlzdCkge1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQob3B0aW9ucyAmJiBvcHRpb25zLmV4Y2x1ZGVJbWFnZUluZGV4ICYmIHZhbHVlLmxlbmd0aCA9PT0gMSA/IHByb3BOYW1lIDogYCR7cHJvcE5hbWV9WyR7aX1dYCwgdmFsdWUuaXRlbShpKSBhcyBCbG9iKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChSZWdleFZhbGlkYXRvci5pc05vdEJsYW5rKHZhbHVlKSlcclxuICAgICAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChwcm9wTmFtZSwgdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbn0iXX0=
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL2RvbWFpbi9mb3JtLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELDhCQUE4QjtBQUM5QixNQUFNLE1BQU0sR0FBVyxRQUFRLENBQUM7QUFDaEMsTUFBTSxPQUFPLEdBQVcsU0FBUyxDQUFDO0FBRWxDLDhFQUE4RTtBQUM5RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRXpCOzs7OztPQUtHO0lBQ0ksaUJBQWlCLENBQUMsT0FBK0IsRUFBRSxPQUF3QjtRQUM5RSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxlQUFlLENBQUMsT0FBK0IsRUFBRSxlQUEwQixFQUFFLFNBQWtCLEVBQUUsT0FBd0I7UUFDNUgsbUdBQW1HO1FBQ25HLElBQUksUUFBUSxHQUFHLGVBQWUsSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRWpELDRDQUE0QztRQUM1QyxJQUFJLFFBQVEsR0FBVyxFQUFFLENBQUM7UUFFMUIsK0NBQStDO1FBQy9DLEtBQUssSUFBSSxVQUFVLElBQUksT0FBTyxFQUFFO1lBQzVCLG9HQUFvRztZQUNwRyxRQUFRLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLElBQUksVUFBVSxHQUFHLENBQUM7WUFFbkUsNkNBQTZDO1lBQzdDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRTtnQkFDcEMsaURBQWlEO2dCQUNqRCxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBUSxFQUFFLEtBQWEsRUFBRSxFQUFFO29CQUNwRCxtREFBbUQ7b0JBQ25ELElBQUksYUFBYSxHQUFHLEdBQUcsVUFBVSxJQUFJLEtBQUssR0FBRyxDQUFDO29CQUU5QyxtRUFBbUU7b0JBQ25FLElBQUksT0FBTyxHQUFHLEtBQUssTUFBTSxFQUFFO3dCQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO3FCQUMvRDt5QkFBTTt3QkFDSCwrQ0FBK0M7d0JBQy9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztxQkFDbEU7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7YUFDTjtpQkFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLFFBQVEsQ0FBQyxFQUFFO2dCQUM3TSwwRUFBMEU7Z0JBQzFFLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDMUU7aUJBQU07Z0JBQ0gsc0ZBQXNGO2dCQUN0RixJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDN0U7U0FDSjtRQUVELDBDQUEwQztRQUMxQyxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksa0JBQWtCLENBQUMsS0FBVSxFQUFFLFFBQWtCLEVBQUUsUUFBZ0IsRUFBRSxPQUF3QjtRQUNoRyx3Q0FBd0M7UUFDeEMsSUFBSSxPQUFPLEtBQUssS0FBSyxPQUFPLEVBQUU7WUFDMUIsdUVBQXVFO1lBQ3ZFLElBQUksU0FBUyxHQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDMUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDeEM7UUFFRCxzQ0FBc0M7YUFDakMsSUFBSSxLQUFLLFlBQVksUUFBUSxFQUFFO1lBQ2hDLDRDQUE0QztZQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbkMsc0NBQXNDO2dCQUN0QyxRQUFRLENBQUMsTUFBTSxDQUNYLE9BQU8sSUFBSSxPQUFPLENBQUMsaUJBQWlCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLElBQUksQ0FBQyxHQUFHLEVBQzNGLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQ3hCLENBQUM7YUFDTDtTQUNKO1FBRUQsK0JBQStCO2FBQzFCO1lBQ0QsMERBQTBEO1lBQzFELElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbEMsa0NBQWtDO2dCQUNsQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNwQztTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybURhdGFDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvaW50ZXJmYWNlL2Zvcm0tZGF0YS1jb25maWcnO1xyXG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gJy4uL3V0aWwvcmVnZXgtdmFsaWRhdG9yJztcclxuXHJcbi8qIENvbnN0YW50cyBmb3IgZGF0YSB0eXBlcyAqL1xyXG5jb25zdCBPQkpFQ1Q6IHN0cmluZyA9IFwib2JqZWN0XCI7XHJcbmNvbnN0IEJPT0xFQU46IHN0cmluZyA9IFwiYm9vbGVhblwiO1xyXG5cclxuLyogQ2xhc3MgcmVzcG9uc2libGUgZm9yIHByb3ZpZGluZyBtZXRob2RzIHRvIGNvbnZlcnQgSlNPTiBkYXRhIHRvIEZvcm1EYXRhICovXHJcbmV4cG9ydCBjbGFzcyBGb3JtRGF0YVByb3ZpZGVyIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnZlcnRzIGEgSmF2YVNjcmlwdCBvYmplY3QgdG8gRm9ybURhdGEuXHJcbiAgICAgKiBAcGFyYW0gak9iamVjdCBUaGUgSmF2YVNjcmlwdCBvYmplY3QgdG8gY29udmVydC5cclxuICAgICAqIEBwYXJhbSBvcHRpb25zIEFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIGNvbnZlcnNpb24uXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgY29udmVydGVkIEZvcm1EYXRhIG9iamVjdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnZlcnRUb0Zvcm1EYXRhKGpPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIG9wdGlvbnM/OiBGb3JtRGF0YUNvbmZpZyk6IEZvcm1EYXRhIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb252ZXJ0Rm9ybURhdGEoak9iamVjdCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjdXJzaXZlbHkgY29udmVydHMgYSBKYXZhU2NyaXB0IG9iamVjdCB0byBGb3JtRGF0YS5cclxuICAgICAqIEBwYXJhbSBqT2JqZWN0IFRoZSBKYXZhU2NyaXB0IG9iamVjdCB0byBjb252ZXJ0LlxyXG4gICAgICogQHBhcmFtIGN1cnJlbnRGb3JtRGF0YSBUaGUgY3VycmVudCBGb3JtRGF0YSBvYmplY3QgKHVzZWQgZm9yIHJlY3Vyc2l2ZSBjYWxscykuXHJcbiAgICAgKiBAcGFyYW0gcGFyZW50S2V5IFRoZSBwYXJlbnQga2V5ICh1c2VkIGZvciByZWN1cnNpdmUgY2FsbHMpLlxyXG4gICAgICogQHBhcmFtIG9wdGlvbnMgQWRkaXRpb25hbCBvcHRpb25zIGZvciB0aGUgY29udmVyc2lvbi5cclxuICAgICAqIEByZXR1cm5zIFRoZSBjb252ZXJ0ZWQgRm9ybURhdGEgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29udmVydEZvcm1EYXRhKGpPYmplY3Q6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIGN1cnJlbnRGb3JtRGF0YT86IEZvcm1EYXRhLCBwYXJlbnRLZXk/OiBzdHJpbmcsIG9wdGlvbnM/OiBGb3JtRGF0YUNvbmZpZyk6IEZvcm1EYXRhIHtcclxuICAgICAgICAvKiBJbml0aWFsaXplIGZvcm1EYXRhIHdpdGggY3VycmVudEZvcm1EYXRhIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGNyZWF0ZSBhIG5ldyBGb3JtRGF0YSBvYmplY3QgKi9cclxuICAgICAgICBsZXQgZm9ybURhdGEgPSBjdXJyZW50Rm9ybURhdGEgfHwgbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgICAgIC8qIEluaXRpYWxpemUgcHJvcE5hbWUgdG8gYW4gZW1wdHkgc3RyaW5nICovXHJcbiAgICAgICAgbGV0IHByb3BOYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAgICAgLyogSXRlcmF0ZSBvdmVyIGVhY2ggcHJvcGVydHkgaW4gdGhlIGpPYmplY3QgKi9cclxuICAgICAgICBmb3IgKHZhciBjb2x1bW5OYW1lIGluIGpPYmplY3QpIHtcclxuICAgICAgICAgICAgLyogU2V0IHByb3BOYW1lIHRvIGNvbHVtbk5hbWUgaWYgdGhlcmUncyBubyBwYXJlbnRLZXksIG90aGVyd2lzZSB1c2UgcGFyZW50S2V5W2NvbHVtbk5hbWVdIGZvcm1hdCAqL1xyXG4gICAgICAgICAgICBwcm9wTmFtZSA9ICFwYXJlbnRLZXkgPyBjb2x1bW5OYW1lIDogYCR7cGFyZW50S2V5fVske2NvbHVtbk5hbWV9XWA7XHJcblxyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgcHJvcGVydHkgdmFsdWUgaXMgYW4gYXJyYXkgKi9cclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoak9iamVjdFtjb2x1bW5OYW1lXSkpIHtcclxuICAgICAgICAgICAgICAgIC8qIElmIGl0J3MgYW4gYXJyYXksIGl0ZXJhdGUgb3ZlciBlYWNoIGVsZW1lbnQgKi9cclxuICAgICAgICAgICAgICAgIGpPYmplY3RbY29sdW1uTmFtZV0uZm9yRWFjaCgocm93OiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAvKiBTZXQgYXJyYXlQcm9wTmFtZSB0byBjb2x1bW5OYW1lW2luZGV4XSBmb3JtYXQgKi9cclxuICAgICAgICAgICAgICAgICAgICBsZXQgYXJyYXlQcm9wTmFtZSA9IGAke2NvbHVtbk5hbWV9WyR7aW5kZXh9XWA7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBlbGVtZW50IGlzIGFuIG9iamVjdCwgcmVjdXJzaXZlbHkgY2FsbCBjb252ZXJ0Rm9ybURhdGEgKi9cclxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJvdyA9PT0gT0JKRUNUKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udmVydEZvcm1EYXRhKHJvdywgZm9ybURhdGEsIGFycmF5UHJvcE5hbWUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIG5vdCBhbiBvYmplY3QsIGNhbGwgbm9uT2JqZWN0VmFsdWVCaW5kICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm9uT2JqZWN0VmFsdWVCaW5kKHJvdywgZm9ybURhdGEsIGFycmF5UHJvcE5hbWUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGpPYmplY3RbY29sdW1uTmFtZV0gIT09IG51bGwgJiYgIShqT2JqZWN0W2NvbHVtbk5hbWVdIGluc3RhbmNlb2YgRGF0ZSkgJiYgdHlwZW9mIGpPYmplY3RbY29sdW1uTmFtZV0gPT09IE9CSkVDVCAmJiAhKGpPYmplY3RbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGaWxlIHx8IGpPYmplY3RbY29sdW1uTmFtZV0gaW5zdGFuY2VvZiBGaWxlTGlzdCkpIHtcclxuICAgICAgICAgICAgICAgIC8qIElmIHRoZSBwcm9wZXJ0eSB2YWx1ZSBpcyBhbiBvYmplY3QsIHJlY3Vyc2l2ZWx5IGNhbGwgY29udmVydEZvcm1EYXRhICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnZlcnRGb3JtRGF0YShqT2JqZWN0W2NvbHVtbk5hbWVdLCBmb3JtRGF0YSwgcHJvcE5hbWUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLyogSWYgdGhlIHByb3BlcnR5IHZhbHVlIGlzIG5laXRoZXIgYW4gYXJyYXkgbm9yIGFuIG9iamVjdCwgY2FsbCBub25PYmplY3RWYWx1ZUJpbmQgKi9cclxuICAgICAgICAgICAgICAgIHRoaXMubm9uT2JqZWN0VmFsdWVCaW5kKGpPYmplY3RbY29sdW1uTmFtZV0sIGZvcm1EYXRhLCBwcm9wTmFtZSwgb3B0aW9ucyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFJldHVybiB0aGUgcmVzdWx0aW5nIEZvcm1EYXRhIG9iamVjdCAqL1xyXG4gICAgICAgIHJldHVybiBmb3JtRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEJpbmRzIG5vbi1vYmplY3QgdmFsdWVzIHRvIEZvcm1EYXRhLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBiaW5kLlxyXG4gICAgICogQHBhcmFtIGZvcm1EYXRhIFRoZSBGb3JtRGF0YSBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0gcHJvcE5hbWUgVGhlIHByb3BlcnR5IG5hbWUuXHJcbiAgICAgKiBAcGFyYW0gb3B0aW9ucyBBZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSBjb252ZXJzaW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbm9uT2JqZWN0VmFsdWVCaW5kKHZhbHVlOiBhbnksIGZvcm1EYXRhOiBGb3JtRGF0YSwgcHJvcE5hbWU6IHN0cmluZywgb3B0aW9ucz86IEZvcm1EYXRhQ29uZmlnKSB7XHJcbiAgICAgICAgLyogQ2hlY2sgaWYgdGhlIHZhbHVlIHR5cGUgaXMgYm9vbGVhbiAqL1xyXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IEJPT0xFQU4pIHtcclxuICAgICAgICAgICAgLyogQ29udmVydCB0aGUgYm9vbGVhbiB2YWx1ZSB0byB0cnVlIG9yIGZhbHNlIGFuZCBhcHBlbmQgdG8gZm9ybURhdGEgKi9cclxuICAgICAgICAgICAgbGV0IGZvcm1WYWx1ZTogYW55ID0gdmFsdWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgIGZvcm1EYXRhLmFwcGVuZChwcm9wTmFtZSwgZm9ybVZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBhIEZpbGVMaXN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAodmFsdWUgaW5zdGFuY2VvZiBGaWxlTGlzdCkge1xyXG4gICAgICAgICAgICAvKiBJdGVyYXRlIG92ZXIgZWFjaCBpdGVtIGluIHRoZSBGaWxlTGlzdCAqL1xyXG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBBcHBlbmQgdGhlIGZpbGUgaXRlbSB0byBmb3JtRGF0YSAqL1xyXG4gICAgICAgICAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxyXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgJiYgb3B0aW9ucy5leGNsdWRlSW1hZ2VJbmRleCAmJiB2YWx1ZS5sZW5ndGggPT09IDEgPyBwcm9wTmFtZSA6IGAke3Byb3BOYW1lfVske2l9XWAsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUuaXRlbShpKSBhcyBCbG9iXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBGb3Igb3RoZXIgdHlwZXMgb2YgdmFsdWVzICovXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSB2YWx1ZSBpcyBub3QgYmxhbmsgdXNpbmcgUmVnZXhWYWxpZGF0b3IgKi9cclxuICAgICAgICAgICAgaWYgKFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsodmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBBcHBlbmQgdGhlIHZhbHVlIHRvIGZvcm1EYXRhICovXHJcbiAgICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQocHJvcE5hbWUsIHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL21vZGVscy9jb250cm9sLWluZm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBJbnRlcmZhY2UgZm9yIGNvbnRyb2wgaW5mb3JtYXRpb25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbEluZm8ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25kaXRpb25hbCBleHByZXNzaW9ucyBmb3IgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBjb25kaXRpb25hbEV4cHJlc3Npb25zPzogeyBba2V5OiBzdHJpbmddOiBGdW5jdGlvbjsgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENoYW5nZSBkZXRlY3Rpb24gY29uZmlndXJhdGlvbiBmb3IgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb24/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdOyB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udHJvbCBwcm9wZXJ0aWVzXHJcbiAgICAgKi9cclxuICAgIGNvbnRyb2xQcm9wOiB7IFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbjsgfTsgfTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zYW5pdGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvbW9kZWxzL2RhdGEtc2FuaXRpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogSW50ZXJmYWNlIGZvciBkYXRhIHNhbml0aXplclxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2FuaXRpemVyIHtcclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgc2FuaXRpemVyXHJcbiAgICAgKi9cclxuICAgIG5hbWU6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBzYW5pdGl6ZXJcclxuICAgICAqL1xyXG4gICAgY29uZmlnOiBhbnk7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9yLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvbW9kZWxzL2RlY29yYXRvci1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogSW50ZXJmYWNlIGZvciBjb25maWd1cmluZyBkZWNvcmF0b3JzXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERlY29yYXRvckNvbmZpZ3VyYXRpb24ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUeXBlIG9mIGFubm90YXRpb25cclxuICAgICAqL1xyXG4gICAgYW5ub3RhdGlvblR5cGU6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIHByb3BlcnR5XHJcbiAgICAgKi9cclxuICAgIHByb3BlcnR5TmFtZTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kZXggb2YgdGhlIHByb3BlcnR5XHJcbiAgICAgKi9cclxuICAgIHByb3BlcnR5SW5kZXg6IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRhcmdldCBvYmplY3RcclxuICAgICAqL1xyXG4gICAgdGFyZ2V0PzogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3IgZnVuY3Rpb24gZm9yIHRoZSBwcm9wZXJ0eVxyXG4gICAgICovXHJcbiAgICBwcm9wZXJ0eUNvbnN0cnVjdG9yPzogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkaXRpb25hbCBjb25maWd1cmF0aW9uXHJcbiAgICAgKi9cclxuICAgIGNvbmZpZz86IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyBpZiB0aGUgb3BlcmF0aW9uIGlzIGFzeW5jaHJvbm91c1xyXG4gICAgICovXHJcbiAgICBpc0FzeW5jOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGlmIGl0J3MgYSB2YWxpZGF0b3JcclxuICAgICAqL1xyXG4gICAgaXNWYWxpZGF0b3I/OiBib29sZWFuO1xyXG59XHJcbiJdfQ==
|
|
@@ -3,34 +3,56 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export class FormBuilderConfiguration {
|
|
5
5
|
constructor(formBuilderConfiguration) {
|
|
6
|
-
|
|
6
|
+
/* If a configuration is provided, copy its properties to this instance */
|
|
7
7
|
if (formBuilderConfiguration) {
|
|
8
8
|
for (var column in formBuilderConfiguration) {
|
|
9
9
|
this[column] = formBuilderConfiguration[column];
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Map of generic entities used in the configuration.
|
|
15
|
+
*/
|
|
14
16
|
genericEntities;
|
|
15
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Array of generic validation functions to be applied to all form controls.
|
|
19
|
+
*/
|
|
16
20
|
applyAllProps;
|
|
17
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Array of property names to be excluded from form generation.
|
|
23
|
+
*/
|
|
18
24
|
excludeProps;
|
|
19
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Array of property names to be included in form generation.
|
|
27
|
+
*/
|
|
20
28
|
includeProps;
|
|
21
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Array of property names to be ignored if their values are undefined during form generation.
|
|
31
|
+
*/
|
|
22
32
|
ignoreUndefinedProps;
|
|
23
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Map of property configurations using PropConfig for specific form controls.
|
|
35
|
+
*/
|
|
24
36
|
propsConfig;
|
|
25
|
-
|
|
37
|
+
/**
|
|
38
|
+
* Map of dynamic validations for specific properties.
|
|
39
|
+
*/
|
|
26
40
|
dynamicValidation;
|
|
27
|
-
|
|
41
|
+
/**
|
|
42
|
+
* Name of the property holding dynamic validation configuration.
|
|
43
|
+
*/
|
|
28
44
|
dynamicValidationConfigurationPropertyName;
|
|
29
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Configuration for auto-instantiating classes when constructing form groups.
|
|
47
|
+
*/
|
|
30
48
|
autoInstanceConfig;
|
|
31
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Map of abstract control options specifying when to update the control (change, blur, submit).
|
|
51
|
+
*/
|
|
32
52
|
abstractControlOptions;
|
|
33
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Map of base abstract control options for specific form controls.
|
|
55
|
+
*/
|
|
34
56
|
baseAbstractControlOptions;
|
|
35
57
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1idWlsZGVyLWNvbmZpZ3VyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvbW9kZWxzL2Zvcm0tYnVpbGRlci1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHdCQUF3QjtJQUNqQyxZQUFZLHdCQUFtRDtRQUMzRCwwRUFBMEU7UUFDMUUsSUFBSSx3QkFBd0IsRUFBRTtZQUMxQixLQUFLLElBQUksTUFBTSxJQUFJLHdCQUF3QixFQUFFO2dCQUN4QyxJQUFZLENBQUMsTUFBTSxDQUFDLEdBQUksd0JBQWdDLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckU7U0FDSjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWUsQ0FBK0I7SUFFckQ7O09BRUc7SUFDSSxhQUFhLENBQWlCO0lBRXJDOztPQUVHO0lBQ0ksWUFBWSxDQUFZO0lBRS9COztPQUVHO0lBQ0ksWUFBWSxDQUFZO0lBRS9COztPQUVHO0lBQ0ksb0JBQW9CLENBQVk7SUFFdkM7O09BRUc7SUFDSSxXQUFXLENBQWlDO0lBRW5EOztPQUVHO0lBQ0ksaUJBQWlCLENBQTJDO0lBRW5FOztPQUVHO0lBQ0ksMENBQTBDLENBQVU7SUFFM0Q7O09BRUc7SUFDSSxrQkFBa0IsQ0FBc0I7SUFFL0M7O09BRUc7SUFDSSxzQkFBc0IsQ0FBbUQ7SUFFaEY7O09BRUc7SUFDSSwwQkFBMEIsQ0FBNkM7Q0FDakYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2xPcHRpb25zLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUHJvcENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9wcm9wLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBBdXRvSW5zdGFuY2VDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZS9hdXRvLWluc3RhbmNlLWNvbmZpZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQcm9wVmFsaWRhdGlvbkNvbmZpZyB9IGZyb20gXCIuL3Byb3AtdmFsaWRhdGlvbi1jb25maWdcIjtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGNsYXNzIGZvciBBbmd1bGFyJ3MgRm9ybUJ1aWxkZXIuIFByb3ZpZGVzIG9wdGlvbnMgYW5kIHNldHRpbmdzIGZvciBGb3JtQnVpbGRlci5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBGb3JtQnVpbGRlckNvbmZpZ3VyYXRpb24ge1xyXG4gICAgY29uc3RydWN0b3IoZm9ybUJ1aWxkZXJDb25maWd1cmF0aW9uPzogRm9ybUJ1aWxkZXJDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgLyogSWYgYSBjb25maWd1cmF0aW9uIGlzIHByb3ZpZGVkLCBjb3B5IGl0cyBwcm9wZXJ0aWVzIHRvIHRoaXMgaW5zdGFuY2UgKi9cclxuICAgICAgICBpZiAoZm9ybUJ1aWxkZXJDb25maWd1cmF0aW9uKSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGNvbHVtbiBpbiBmb3JtQnVpbGRlckNvbmZpZ3VyYXRpb24pIHtcclxuICAgICAgICAgICAgICAgICh0aGlzIGFzIGFueSlbY29sdW1uXSA9IChmb3JtQnVpbGRlckNvbmZpZ3VyYXRpb24gYXMgYW55KVtjb2x1bW5dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWFwIG9mIGdlbmVyaWMgZW50aXRpZXMgdXNlZCBpbiB0aGUgY29uZmlndXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdlbmVyaWNFbnRpdGllcz86IHsgW2tleTogc3RyaW5nXTogRnVuY3Rpb24gfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmF5IG9mIGdlbmVyaWMgdmFsaWRhdGlvbiBmdW5jdGlvbnMgdG8gYmUgYXBwbGllZCB0byBhbGwgZm9ybSBjb250cm9scy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFwcGx5QWxsUHJvcHM/OiBWYWxpZGF0b3JGbltdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgdG8gYmUgZXhjbHVkZWQgZnJvbSBmb3JtIGdlbmVyYXRpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBleGNsdWRlUHJvcHM/OiBzdHJpbmdbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmF5IG9mIHByb3BlcnR5IG5hbWVzIHRvIGJlIGluY2x1ZGVkIGluIGZvcm0gZ2VuZXJhdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGluY2x1ZGVQcm9wcz86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgdG8gYmUgaWdub3JlZCBpZiB0aGVpciB2YWx1ZXMgYXJlIHVuZGVmaW5lZCBkdXJpbmcgZm9ybSBnZW5lcmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaWdub3JlVW5kZWZpbmVkUHJvcHM/OiBzdHJpbmdbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hcCBvZiBwcm9wZXJ0eSBjb25maWd1cmF0aW9ucyB1c2luZyBQcm9wQ29uZmlnIGZvciBzcGVjaWZpYyBmb3JtIGNvbnRyb2xzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcHJvcHNDb25maWc/OiB7IFtrZXk6IHN0cmluZ106IFByb3BDb25maWcgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hcCBvZiBkeW5hbWljIHZhbGlkYXRpb25zIGZvciBzcGVjaWZpYyBwcm9wZXJ0aWVzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZHluYW1pY1ZhbGlkYXRpb24/OiB7IFtrZXk6IHN0cmluZ106IFByb3BWYWxpZGF0aW9uQ29uZmlnIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBob2xkaW5nIGR5bmFtaWMgdmFsaWRhdGlvbiBjb25maWd1cmF0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZHluYW1pY1ZhbGlkYXRpb25Db25maWd1cmF0aW9uUHJvcGVydHlOYW1lPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYXV0by1pbnN0YW50aWF0aW5nIGNsYXNzZXMgd2hlbiBjb25zdHJ1Y3RpbmcgZm9ybSBncm91cHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhdXRvSW5zdGFuY2VDb25maWc/OiBBdXRvSW5zdGFuY2VDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXAgb2YgYWJzdHJhY3QgY29udHJvbCBvcHRpb25zIHNwZWNpZnlpbmcgd2hlbiB0byB1cGRhdGUgdGhlIGNvbnRyb2wgKGNoYW5nZSwgYmx1ciwgc3VibWl0KS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0Q29udHJvbE9wdGlvbnM/OiB7IFtrZXk6IHN0cmluZ106ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCcgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hcCBvZiBiYXNlIGFic3RyYWN0IGNvbnRyb2wgb3B0aW9ucyBmb3Igc3BlY2lmaWMgZm9ybSBjb250cm9scy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGJhc2VBYnN0cmFjdENvbnRyb2xPcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2xPcHRpb25zIH07XHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UtY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL21vZGVscy9pbnN0YW5jZS1jb250YWluZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRyb2xJbmZvIH0gZnJvbSBcIi4vY29udHJvbC1pbmZvXCI7XHJcbmltcG9ydCB7IERhdGFTYW5pdGl6ZXIgfSBmcm9tIFwiLi9kYXRhLXNhbml0aXplclwiO1xyXG5pbXBvcnQgeyBEZWNvcmF0b3JDb25maWd1cmF0aW9uIH0gZnJvbSBcIi4vZGVjb3JhdG9yLWNvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcIi4vcHJvcGVydHktaW5mb1wiO1xyXG5cclxuLyoqXHJcbiAqIEludGVyZmFjZSBmb3IgaW5zdGFuY2UgY29udGFpbmVyXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlQ29udGFpbmVyIHtcclxuICAgIC8qKlxyXG4gICAgICogSW5zdGFuY2Ugb2JqZWN0XHJcbiAgICAgKi9cclxuICAgIGluc3RhbmNlOiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSBvZiBwcm9wZXJ0eSBhbm5vdGF0aW9uc1xyXG4gICAgICovXHJcbiAgICBwcm9wZXJ0eUFubm90YXRpb25zOiBEZWNvcmF0b3JDb25maWd1cmF0aW9uW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSBvZiBwcm9wZXJ0aWVzXHJcbiAgICAgKi9cclxuICAgIHByb3BlcnRpZXM/OiBQcm9wZXJ0eUluZm9bXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmRpdGlvbmFsIHZhbGlkYXRpb24gcHJvcGVydGllc1xyXG4gICAgICovXHJcbiAgICBjb25kaXRpb25hbFZhbGlkYXRpb25Qcm9wcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW107IH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25kaXRpb25hbCBvYmplY3QgcHJvcGVydGllc1xyXG4gICAgICovXHJcbiAgICBjb25kaXRpb25hbE9iamVjdFByb3BzPzogeyBba2V5OiBzdHJpbmddOiBhbnk7IH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOb24tdmFsaWRhdGlvbiBkZWNvcmF0b3JzXHJcbiAgICAgKi9cclxuICAgIG5vblZhbGlkYXRpb25EZWNvcmF0b3JzPzoge1xyXG4gICAgICAgIGRpc2FibGVkOiBDb250cm9sSW5mbztcclxuICAgICAgICBlcnJvcjogQ29udHJvbEluZm87XHJcbiAgICAgICAgZWxlbWVudENsYXNzOiBDb250cm9sSW5mbztcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTYW5pdGl6ZXJzIGZvciBkYXRhXHJcbiAgICAgKi9cclxuICAgIHNhbml0aXplcnM/OiB7IFtrZXk6IHN0cmluZ106IERhdGFTYW5pdGl6ZXJbXTsgfTtcclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtdmFsaWRhdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9tb2RlbHMvcGFzc3dvcmQtdmFsaWRhdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEludGVyZmFjZSBkZWZpbmluZyBwYXNzd29yZCB2YWxpZGF0aW9uIGNyaXRlcmlhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhc3N3b3JkVmFsaWRhdGlvbiB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG91bGQgY29udGFpbiBhdCBsZWFzdCBvbmUgZGlnaXRcclxuICAgICAqL1xyXG4gICAgZGlnaXQ/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdWxkIGNvbnRhaW4gYXQgbGVhc3Qgb25lIGFscGhhYmV0IGNoYXJhY3RlclxyXG4gICAgICovXHJcbiAgICBhbHBoYWJldD86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG91bGQgY29udGFpbiBhIHNwZWNpZmljIHN0cmluZ1xyXG4gICAgICovXHJcbiAgICBjb250YWlucz86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3VsZCBjb250YWluIGF0IGxlYXN0IG9uZSBsb3dlcmNhc2UgbGV0dGVyXHJcbiAgICAgKi9cclxuICAgIGxvd2VyQ2FzZT86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG91bGQgY29udGFpbiBhdCBsZWFzdCBvbmUgdXBwZXJjYXNlIGxldHRlclxyXG4gICAgICovXHJcbiAgICB1cHBlckNhc2U/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvdWxkIGNvbnRhaW4gYXQgbGVhc3Qgb25lIHNwZWNpYWwgY2hhcmFjdGVyXHJcbiAgICAgKi9cclxuICAgIHNwZWNpYWxDaGFyYWN0ZXI/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWluaW11bSBsZW5ndGggb2YgdGhlIHBhc3N3b3JkXHJcbiAgICAgKi9cclxuICAgIG1pbkxlbmd0aD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBwYXNzd29yZFxyXG4gICAgICovXHJcbiAgICBtYXhMZW5ndGg/OiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlcmZhY2UgZGVmaW5pbmcgY3VzdG9tIGVycm9yIG1lc3NhZ2VzIGZvciBwYXNzd29yZCB2YWxpZGF0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhc3N3b3JkVmFsaWRhdGlvbk1lc3NhZ2Uge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIGVycm9yIG1lc3NhZ2UgZm9yIGRpZ2l0IHJlcXVpcmVtZW50XHJcbiAgICAgKi9cclxuICAgIGRpZ2l0Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIGVycm9yIG1lc3NhZ2UgZm9yIGFscGhhYmV0IHJlcXVpcmVtZW50XHJcbiAgICAgKi9cclxuICAgIGFscGhhYmV0Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIGVycm9yIG1lc3NhZ2UgZm9yIHNwZWNpZmljIHN0cmluZyByZXF1aXJlbWVudFxyXG4gICAgICovXHJcbiAgICBjb250YWlucz86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1c3RvbSBlcnJvciBtZXNzYWdlIGZvciBsb3dlcmNhc2UgbGV0dGVyIHJlcXVpcmVtZW50XHJcbiAgICAgKi9cclxuICAgIGxvd2VyQ2FzZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1c3RvbSBlcnJvciBtZXNzYWdlIGZvciB1cHBlcmNhc2UgbGV0dGVyIHJlcXVpcmVtZW50XHJcbiAgICAgKi9cclxuICAgIHVwcGVyQ2FzZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1c3RvbSBlcnJvciBtZXNzYWdlIGZvciBzcGVjaWFsIGNoYXJhY3RlciByZXF1aXJlbWVudFxyXG4gICAgICovXHJcbiAgICBzcGVjaWFsQ2hhcmFjdGVyPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VzdG9tIGVycm9yIG1lc3NhZ2UgZm9yIG1pbmltdW0gbGVuZ3RoIHJlcXVpcmVtZW50XHJcbiAgICAgKi9cclxuICAgIG1pbkxlbmd0aD86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1c3RvbSBlcnJvciBtZXNzYWdlIGZvciBtYXhpbXVtIGxlbmd0aCByZXF1aXJlbWVudFxyXG4gICAgICovXHJcbiAgICBtYXhMZW5ndGg/OiBzdHJpbmc7XHJcbn0iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC12YWxpZGF0aW9uLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9tb2RlbHMvcHJvcC12YWxpZGF0aW9uLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JGbiwgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQWxwaGFDb25maWcgfSBmcm9tIFwiLi9jb25maWcvYWxwaGEtY29uZmlnXCI7XHJcbmltcG9ydCB7IEFycmF5Q29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2FycmF5LWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBCYXNlQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2Jhc2UtY29uZmlnXCI7XHJcbmltcG9ydCB7IENob2ljZUNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9jaG9pY2UtY29uZmlnXCI7XHJcbmltcG9ydCB7IENvbXBhcmVDb25maWcsIERpZmZlcmVudENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9jb21wYXJlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBDcmVkaXRDYXJkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2NyZWRpdC1jYXJkLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Q29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2RlZmF1bHQtY29uZmlnXCI7XHJcbmltcG9ydCB7IERpZ2l0Q29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2RpZ2l0LWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBFbWFpbENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9lbWFpbC1jb25maWdcIjtcclxuaW1wb3J0IHsgRXh0ZW5zaW9uQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2V4dGVuc2lvbi1jb25maWdcIjtcclxuaW1wb3J0IHsgRmFjdG9yQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2ZhY3Rvci1jb25maWdcIjtcclxuaW1wb3J0IHsgSGV4Q29sb3JDb25maWcgfSBmcm9tIFwiLi9jb25maWcvaGV4LWNvbG9yLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBNYXhEYXRlQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL21heC1kYXRlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBNZXNzYWdlQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL21lc3NhZ2UtY29uZmlnXCI7XHJcbmltcG9ydCB7IE1pbkRhdGVDb25maWcgfSBmcm9tIFwiLi9jb25maWcvbWluLWRhdGUtY29uZmlnXCI7XHJcbmltcG9ydCB7IE51bWJlckNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9udW1iZXItY29uZmlnXCI7XHJcbmltcG9ydCB7IE51bWVyaWNDb25maWcgfSBmcm9tIFwiLi9jb25maWcvbnVtZXJpYy1jb25maWdcIjtcclxuaW1wb3J0IHsgUGFzc3dvcmRDb25maWcgfSBmcm9tIFwiLi9jb25maWcvcGFzc3dvcmQtY29uZmlnXCI7XHJcbmltcG9ydCB7IFBhdHRlcm5Db25maWcgfSBmcm9tIFwiLi9jb25maWcvcGF0dGVybi1jb25maWdcIjtcclxuaW1wb3J0IHsgUmFuZ2VDb25maWcgfSBmcm9tIFwiLi9jb25maWcvcmFuZ2UtY29uZmlnXCI7XHJcbmltcG9ydCB7IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9yZWxhdGlvbmFsLW9wZXJhdG9yLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBTaXplQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL3NpemUtY29uZmlnXCI7XHJcbmltcG9ydCB7IFRpbWVDb25maWcgfSBmcm9tIFwiLi9jb25maWcvdGltZS1jb25maWdcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvcFZhbGlkYXRpb25Db25maWcge1xyXG4gICAgYWxsT2Y/OiBBcnJheUNvbmZpZztcclxuICAgIGNob2ljZT86IENob2ljZUNvbmZpZztcclxuICAgIHJlcXVpcmVkPzogQmFzZUNvbmZpZyB8IGJvb2xlYW47XHJcbiAgICBjcmVkaXRDYXJkPzogQ3JlZGl0Q2FyZENvbmZpZztcclxuICAgIGRpZmZlcmVudD86IERpZmZlcmVudENvbmZpZztcclxuICAgIGV2ZW4/OiBCYXNlQ29uZmlnIHwgYm9vbGVhbjtcclxuICAgIGZhY3Rvcj86IEZhY3RvckNvbmZpZztcclxuICAgIGdyZWF0ZXJUaGFuRXF1YWxUbz86IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZztcclxuICAgIGdyZWF0ZXJUaGFuPzogUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnO1xyXG4gICAgaGV4Q29sb3I/OiBIZXhDb2xvckNvbmZpZyB8IGJvb2xlYW47XHJcbiAgICBqc29uPzogRGVmYXVsdENvbmZpZztcclxuICAgIGxlYXBZZWFyPzogQmFzZUNvbmZpZyB8IGJvb2xlYW47XHJcbiAgICBsZXNzVGhhbkVxdWFsVG8/OiBSZWxhdGlvbmFsT3BlcmF0b3JDb25maWc7XHJcbiAgICBsZXNzVGhhbj86IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZztcclxuICAgIG1hYz86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG4gICAgbm9uZU9mPzogQXJyYXlDb25maWc7XHJcbiAgICBudW1lcmljPzogTnVtZXJpY0NvbmZpZyB8IGJvb2xlYW47XHJcbiAgICBvZGQ/OiBCYXNlQ29uZmlnIHwgYm9vbGVhbjtcclxuICAgIG9uZU9mPzogQXJyYXlDb25maWc7XHJcbiAgICBwYXNzd29yZD86IFBhc3N3b3JkQ29uZmlnO1xyXG4gICAgdGltZT86IFRpbWVDb25maWcgfCBib29sZWFuO1xyXG4gICAgdXJsPzogRGVmYXVsdENvbmZpZyB8IGJvb2xlYW47XHJcbiAgICBtaW5MZW5ndGg/OiBOdW1iZXJDb25maWc7XHJcbiAgICBtYXhMZW5ndGg/OiBOdW1iZXJDb25maWc7XHJcbiAgICBwYXR0ZXJuPzogUGF0dGVybkNvbmZpZztcclxuICAgIGNvbXBhcmU/OiBDb21wYXJlQ29uZmlnO1xyXG4gICAgY29udGFpbnM/OiBEZWZhdWx0Q29uZmlnO1xyXG4gICAgYWxwaGE/OiBBbHBoYUNvbmZpZyB8IGJvb2xlYW47XHJcbiAgICBkaWdpdD86IERpZ2l0Q29uZmlnIHwgYm9vbGVhbjtcclxuICAgIGFscGhhTnVtZXJpYz86IEFscGhhQ29uZmlnIHwgYm9vbGVhbjtcclxuICAgIGVtYWlsPzogRW1haWxDb25maWcgfCBib29sZWFuO1xyXG4gICAgbG93ZXJDYXNlPzogTWVzc2FnZUNvbmZpZyB8IGJvb2xlYW47XHJcbiAgICBtYXhEYXRlPzogTWF4RGF0ZUNvbmZpZztcclxuICAgIG1heE51bWJlcj86IE51bWJlckNvbmZpZztcclxuICAgIG1pbkRhdGU/OiBNaW5EYXRlQ29uZmlnO1xyXG4gICAgbWluTnVtYmVyPzogTnVtYmVyQ29uZmlnO1xyXG4gICAgdXBwZXJDYXNlPzogTWVzc2FnZUNvbmZpZyB8IGJvb2xlYW47XHJcbiAgICByYW5nZT86IFJhbmdlQ29uZmlnO1xyXG4gICAgY3VzdG9tPzogVmFsaWRhdG9yRm47XHJcbiAgICBhc2NpaT86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG4gICAgZGF0YVVyaT86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG4gICAgcG9ydD86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG4gICAgbGF0TG9uZz86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG4gICAgZXh0ZW5zaW9uPzogRXh0ZW5zaW9uQ29uZmlnO1xyXG4gICAgZmlsZVNpemU/OiBTaXplQ29uZmlnO1xyXG4gICAgZW5kc1dpdGg/OiBEZWZhdWx0Q29uZmlnO1xyXG4gICAgc3RhcnRzV2l0aD86IERlZmF1bHRDb25maWcgfCBib29sZWFuO1xyXG4gICAgcHJpbWVOdW1iZXI/OiBCYXNlQ29uZmlnIHwgYm9vbGVhbjtcclxuICAgIGxhdGl0dWRlPzogQmFzZUNvbmZpZyB8IGJvb2xlYW47XHJcbiAgICBsb25naXR1ZGU/OiBCYXNlQ29uZmlnIHwgYm9vbGVhbjtcclxuICAgIGFzeW5jPzogQXN5bmNWYWxpZGF0b3JGbltdO1xyXG59XHJcbiJdfQ==
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcC12YWxpZGF0aW9uLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9tb2RlbHMvcHJvcC12YWxpZGF0aW9uLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNWYWxpZGF0b3JGbiwgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgQWxwaGFDb25maWcgfSBmcm9tIFwiLi9jb25maWcvYWxwaGEtY29uZmlnXCI7XHJcbmltcG9ydCB7IEFycmF5Q29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2FycmF5LWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBCYXNlQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2Jhc2UtY29uZmlnXCI7XHJcbmltcG9ydCB7IENob2ljZUNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9jaG9pY2UtY29uZmlnXCI7XHJcbmltcG9ydCB7IENvbXBhcmVDb25maWcsIERpZmZlcmVudENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9jb21wYXJlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBDcmVkaXRDYXJkQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2NyZWRpdC1jYXJkLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBEZWZhdWx0Q29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2RlZmF1bHQtY29uZmlnXCI7XHJcbmltcG9ydCB7IERpZ2l0Q29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2RpZ2l0LWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBFbWFpbENvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9lbWFpbC1jb25maWdcIjtcclxuaW1wb3J0IHsgRXh0ZW5zaW9uQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2V4dGVuc2lvbi1jb25maWdcIjtcclxuaW1wb3J0IHsgRmFjdG9yQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL2ZhY3Rvci1jb25maWdcIjtcclxuaW1wb3J0IHsgSGV4Q29sb3JDb25maWcgfSBmcm9tIFwiLi9jb25maWcvaGV4LWNvbG9yLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBNYXhEYXRlQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL21heC1kYXRlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBNZXNzYWdlQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL21lc3NhZ2UtY29uZmlnXCI7XHJcbmltcG9ydCB7IE1pbkRhdGVDb25maWcgfSBmcm9tIFwiLi9jb25maWcvbWluLWRhdGUtY29uZmlnXCI7XHJcbmltcG9ydCB7IE51bWJlckNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9udW1iZXItY29uZmlnXCI7XHJcbmltcG9ydCB7IE51bWVyaWNDb25maWcgfSBmcm9tIFwiLi9jb25maWcvbnVtZXJpYy1jb25maWdcIjtcclxuaW1wb3J0IHsgUGFzc3dvcmRDb25maWcgfSBmcm9tIFwiLi9jb25maWcvcGFzc3dvcmQtY29uZmlnXCI7XHJcbmltcG9ydCB7IFBhdHRlcm5Db25maWcgfSBmcm9tIFwiLi9jb25maWcvcGF0dGVybi1jb25maWdcIjtcclxuaW1wb3J0IHsgUmFuZ2VDb25maWcgfSBmcm9tIFwiLi9jb25maWcvcmFuZ2UtY29uZmlnXCI7XHJcbmltcG9ydCB7IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy9yZWxhdGlvbmFsLW9wZXJhdG9yLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBTaXplQ29uZmlnIH0gZnJvbSBcIi4vY29uZmlnL3NpemUtY29uZmlnXCI7XHJcbmltcG9ydCB7IFRpbWVDb25maWcgfSBmcm9tIFwiLi9jb25maWcvdGltZS1jb25maWdcIjtcclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmF0aW9uIGZvciBwcm9wZXJ0eSB2YWxpZGF0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFByb3BWYWxpZGF0aW9uQ29uZmlnIHtcclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYWxsT2YgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBhbGxPZj86IEFycmF5Q29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgY2hvaWNlIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgY2hvaWNlPzogQ2hvaWNlQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgcmVxdWlyZWQgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICByZXF1aXJlZD86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgY3JlZGl0IGNhcmQgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBjcmVkaXRDYXJkPzogQ3JlZGl0Q2FyZENvbmZpZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGRpZmZlcmVudCB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIGRpZmZlcmVudD86IERpZmZlcmVudENvbmZpZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGV2ZW4gdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBldmVuPzogQmFzZUNvbmZpZyB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBmYWN0b3IgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBmYWN0b3I/OiBGYWN0b3JDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBncmVhdGVyVGhhbkVxdWFsVG8/OiBSZWxhdGlvbmFsT3BlcmF0b3JDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBncmVhdGVyIHRoYW4gdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBncmVhdGVyVGhhbj86IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGhleGFkZWNpbWFsIGNvbG9yIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgaGV4Q29sb3I/OiBIZXhDb2xvckNvbmZpZyB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBKU09OIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAganNvbj86IERlZmF1bHRDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBsZWFwIHllYXIgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBsZWFwWWVhcj86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgbGVzc1RoYW5FcXVhbFRvPzogUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgbGVzcyB0aGFuIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgbGVzc1RoYW4/OiBSZWxhdGlvbmFsT3BlcmF0b3JDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBNQUMgYWRkcmVzcyB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIG1hYz86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3Igbm9uZU9mIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgbm9uZU9mPzogQXJyYXlDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBudW1lcmljIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgbnVtZXJpYz86IE51bWVyaWNDb25maWcgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3Igb2RkIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgb2RkPzogQmFzZUNvbmZpZyB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBvbmVPZiB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIG9uZU9mPzogQXJyYXlDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBwYXNzd29yZCB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIHBhc3N3b3JkPzogUGFzc3dvcmRDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciB0aW1lIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgdGltZT86IFRpbWVDb25maWcgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgVVJMIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgdXJsPzogRGVmYXVsdENvbmZpZyB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBtaW5pbXVtIGxlbmd0aCB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIG1pbkxlbmd0aD86IE51bWJlckNvbmZpZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIG1heGltdW0gbGVuZ3RoIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgbWF4TGVuZ3RoPzogTnVtYmVyQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgcGF0dGVybiB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIHBhdHRlcm4/OiBQYXR0ZXJuQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgY29tcGFyaXNvbiB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIGNvbXBhcmU/OiBDb21wYXJlQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgY29udGFpbnMgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBjb250YWlucz86IERlZmF1bHRDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhbHBoYSB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIGFscGhhPzogQWxwaGFDb25maWcgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgZGlnaXQgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBkaWdpdD86IERpZ2l0Q29uZmlnIHwgYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGFscGhhTnVtZXJpYyB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIGFscGhhTnVtZXJpYz86IEFscGhhQ29uZmlnIHwgYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGVtYWlsIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgZW1haWw/OiBFbWFpbENvbmZpZyB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBsb3dlcmNhc2UgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBsb3dlckNhc2U/OiBNZXNzYWdlQ29uZmlnIHwgYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIG1heGltdW0gZGF0ZSB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIG1heERhdGU/OiBNYXhEYXRlQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgbWF4aW11bSBudW1iZXIgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBtYXhOdW1iZXI/OiBOdW1iZXJDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBtaW5pbXVtIGRhdGUgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBtaW5EYXRlPzogTWluRGF0ZUNvbmZpZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIG1pbmltdW0gbnVtYmVyIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgbWluTnVtYmVyPzogTnVtYmVyQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgdXBwZXJjYXNlIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgdXBwZXJDYXNlPzogTWVzc2FnZUNvbmZpZyB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciByYW5nZSB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIHJhbmdlPzogUmFuZ2VDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gdmFsaWRhdG9yIGZ1bmN0aW9uXHJcbiAgICAgKi9cclxuICAgIGN1c3RvbT86IFZhbGlkYXRvckZuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgQVNDSUkgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBhc2NpaT86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgZGF0YSBVUkkgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBkYXRhVXJpPzogQmFzZUNvbmZpZyB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBwb3J0IHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgcG9ydD86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgbGF0aXR1ZGUtbG9uZ2l0dWRlIHZhbGlkYXRpb25cclxuICAgICAqL1xyXG4gICAgbGF0TG9uZz86IEJhc2VDb25maWcgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgZmlsZSBleHRlbnNpb24gdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBleHRlbnNpb24/OiBFeHRlbnNpb25Db25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBmaWxlIHNpemUgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBmaWxlU2l6ZT86IFNpemVDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBlbmRzIHdpdGggdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBlbmRzV2l0aD86IERlZmF1bHRDb25maWc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBzdGFydHMgd2l0aCB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIHN0YXJ0c1dpdGg/OiBEZWZhdWx0Q29uZmlnIHwgYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIHByaW1lIG51bWJlciB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIHByaW1lTnVtYmVyPzogQmFzZUNvbmZpZyB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBsYXRpdHVkZSB2YWxpZGF0aW9uXHJcbiAgICAgKi9cclxuICAgIGxhdGl0dWRlPzogQmFzZUNvbmZpZyB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBsb25naXR1ZGUgdmFsaWRhdGlvblxyXG4gICAgICovXHJcbiAgICBsb25naXR1ZGU/OiBCYXNlQ29uZmlnIHwgYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGFzeW5jaHJvbm91cyB2YWxpZGF0b3JzXHJcbiAgICAgKi9cclxuICAgIGFzeW5jPzogQXN5bmNWYWxpZGF0b3JGbltdO1xyXG59Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktaW5mby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9tb2RlbHMvcHJvcGVydHktaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEludGVyZmFjZSBmb3IgcHJvcGVydHkgaW5mb3JtYXRpb25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlJbmZvIHtcclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHlwZSBvZiB0aGUgcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgcHJvcGVydHlUeXBlOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbnRpdHkgaW5mb3JtYXRpb25cclxuICAgICAqL1xyXG4gICAgZW50aXR5PzogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF0YSBwcm9wZXJ0eSBuYW1lXHJcbiAgICAgKi9cclxuICAgIGRhdGFQcm9wZXJ0eU5hbWU/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZWZhdWx0IHZhbHVlIG9mIHRoZSBwcm9wZXJ0eVxyXG4gICAgICovXHJcbiAgICBkZWZhdWx0VmFsdWU/OiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJZ25vcmUgZnVuY3Rpb24gZm9yIHRoZSBwcm9wZXJ0eVxyXG4gICAgICovXHJcbiAgICBpZ25vcmU/OiAoeDogYW55KSA9PiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIGlmIGl0J3MgYSBwcmltYXJ5IGtleVxyXG4gICAgICovXHJcbiAgICBpc1ByaW1hcnlLZXk/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW50aXR5IHByb3ZpZGVyIGZ1bmN0aW9uXHJcbiAgICAgKi9cclxuICAgIGVudGl0eVByb3ZpZGVyPzogRnVuY3Rpb247XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSBjb25maWd1cmF0aW9uIGZvciB0aGUgcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgYXJyYXlDb25maWc/OiB7XHJcbiAgICAgICAgYWxsb3dNYXhJbmRleD86IG51bWJlcjtcclxuICAgICAgICBtZXNzYWdlS2V5Pzogc3RyaW5nO1xyXG4gICAgICAgIGNyZWF0ZUJsYW5rPzogYm9vbGVhbjtcclxuICAgIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBVcGRhdGUgdGltaW5nIGZvciB0aGUgcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgdXBkYXRlT24/OiAnY2hhbmdlJyB8ICdibHVyJyB8ICdzdWJtaXQnO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ARRAY_CONFIG } from "../const/config-names.const";
|
|
2
|
-
import { AnnotationTypes } from "../core/
|
|
2
|
+
import { AnnotationTypes } from "../core/annotation-types";
|
|
3
3
|
import { getConfigObject } from "../util/config-provider";
|
|
4
4
|
import { ObjectMaker } from "../util/object-maker";
|
|
5
5
|
import { ValidatorValueChecker } from "../util/validator-value-checker";
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsT2YudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL3JlYWN0aXZlLWZvcm0tdmFsaWRhdG9ycy9hbGxPZi52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXhFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLFdBQXlCO0lBQ3RELE9BQU8sQ0FBQyxPQUF3QixFQUFpQyxFQUFFO1FBQ2pFLDhCQUE4QjtRQUM5QixJQUFJLE1BQU0sR0FBRyxlQUFlLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUVqRSwrQ0FBK0M7UUFDL0MsSUFBSSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ3pELHFDQUFxQztZQUNyQyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFFdkIsaUVBQWlFO1lBQ2pFLEtBQUssSUFBSSxLQUFLLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDcEMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxVQUFVO29CQUNiLE1BQU07YUFDVDtZQUVELHNEQUFzRDtZQUN0RCxJQUFJLENBQUMsVUFBVTtnQkFDYixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM3RTtRQUVELHNDQUFzQztRQUN0QyxPQUFPLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHsgQVJSQVlfQ09ORklHIH0gZnJvbSBcIi4uL2NvbnN0L2NvbmZpZy1uYW1lcy5jb25zdFwiO1xyXG5pbXBvcnQgeyBBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiLi4vY29yZS9hbm5vdGF0aW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7IEFycmF5Q29uZmlnIH0gZnJvbSBcIi4uL21vZGVscy9jb25maWcvYXJyYXktY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldENvbmZpZ09iamVjdCB9IGZyb20gXCIuLi91dGlsL2NvbmZpZy1wcm92aWRlclwiO1xyXG5pbXBvcnQgeyBPYmplY3RNYWtlciB9IGZyb20gXCIuLi91dGlsL29iamVjdC1tYWtlclwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0b3JWYWx1ZUNoZWNrZXIgfSBmcm9tIFwiLi4vdXRpbC92YWxpZGF0b3ItdmFsdWUtY2hlY2tlclwiO1xyXG5cclxuLyoqXHJcbiAqIFZhbGlkYXRvciBmdW5jdGlvbiB0byBjaGVjayBpZiBhbGwgdmFsdWVzIGluIHRoZSBhcnJheSBtYXRjaCB0aGUgc3BlY2lmaWVkIHZhbHVlcy5cclxuICogQHBhcmFtIGNvbmZpZ01vZGVsIC0gQ29uZmlndXJhdGlvbiBtb2RlbCBmb3IgdGhlIGFycmF5IHZhbGlkYXRvci5cclxuICogQHJldHVybnMgVmFsaWRhdG9yIGZ1bmN0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFsbE9mVmFsaWRhdG9yKGNvbmZpZ01vZGVsPzogQXJyYXlDb25maWcpOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcbiAgICAvKiBHZXQgY29uZmlndXJhdGlvbiBvYmplY3QgKi9cclxuICAgIGxldCBjb25maWcgPSBnZXRDb25maWdPYmplY3QoY29uZmlnTW9kZWwsIGNvbnRyb2wsIEFSUkFZX0NPTkZJRyk7XHJcblxyXG4gICAgLyogQ2hlY2sgaWYgdGhlIGFycmF5IHZhbHVlcyBwYXNzIHZhbGlkYXRpb24gKi9cclxuICAgIGlmIChWYWxpZGF0b3JWYWx1ZUNoZWNrZXIucGFzc0FycmF5VmFsdWUoY29udHJvbCwgY29uZmlnKSkge1xyXG4gICAgICAvKiBJbml0aWFsaXplIHRlc3QgcmVzdWx0IHRvIGZhbHNlICovXHJcbiAgICAgIGxldCB0ZXN0UmVzdWx0ID0gZmFsc2U7XHJcblxyXG4gICAgICAvKiBDaGVjayBpZiBhbGwgdmFsdWVzIGluIHRoZSBhcnJheSBtYXRjaCB0aGUgc3BlY2lmaWVkIHZhbHVlcyAqL1xyXG4gICAgICBmb3IgKGxldCB2YWx1ZSBvZiBjb25maWcubWF0Y2hWYWx1ZXMpIHtcclxuICAgICAgICB0ZXN0UmVzdWx0ID0gY29udHJvbC52YWx1ZS5zb21lKCh5OiBhbnkpID0+IHkgPT0gdmFsdWUpO1xyXG4gICAgICAgIGlmICghdGVzdFJlc3VsdClcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiBJZiBub3QgYWxsIHZhbHVlcyBtYXRjaCwgcmV0dXJuIHZhbGlkYXRpb24gZXJyb3IgKi9cclxuICAgICAgaWYgKCF0ZXN0UmVzdWx0KVxyXG4gICAgICAgIHJldHVybiBPYmplY3RNYWtlci50b0pzb24oQW5ub3RhdGlvblR5cGVzLmFsbE9mLCBjb25maWcsIFtjb250cm9sLnZhbHVlXSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogUmV0dXJuIG51bGwgaWYgdmFsaWRhdGlvbiBwYXNzZXMgKi9cclxuICAgIHJldHVybiBPYmplY3RNYWtlci5udWxsKCk7XHJcbiAgfTtcclxufVxyXG4iXX0=
|