@po-ui/ng-components 18.20.0 → 18.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/esm2022/lib/components/po-field/po-input/po-input-base.component.mjs +38 -4
  2. package/esm2022/lib/components/po-field/validators.mjs +21 -8
  3. package/esm2022/lib/components/po-stepper/po-stepper-base.component.mjs +15 -2
  4. package/esm2022/lib/components/po-stepper/po-stepper-label/po-stepper-label.component.mjs +8 -4
  5. package/esm2022/lib/components/po-stepper/po-stepper-step/po-stepper-step.component.mjs +13 -8
  6. package/esm2022/lib/components/po-stepper/po-stepper.component.mjs +5 -5
  7. package/fesm2022/po-ui-ng-components.mjs +94 -25
  8. package/fesm2022/po-ui-ng-components.mjs.map +1 -1
  9. package/lib/components/po-field/po-input/po-input-base.component.d.ts +27 -1
  10. package/lib/components/po-field/validators.d.ts +3 -2
  11. package/lib/components/po-stepper/po-stepper-base.component.d.ts +11 -1
  12. package/lib/components/po-stepper/po-stepper-label/po-stepper-label.component.d.ts +2 -1
  13. package/lib/components/po-stepper/po-stepper-step/po-stepper-step.component.d.ts +2 -1
  14. package/package.json +4 -4
  15. package/po-ui-ng-components-18.21.0.tgz +0 -0
  16. package/schematics/ng-add/index.js +1 -1
  17. package/schematics/ng-update/v14/index.js +1 -1
  18. package/schematics/ng-update/v15/index.js +1 -1
  19. package/schematics/ng-update/v16/index.js +1 -1
  20. package/schematics/ng-update/v17/index.js +1 -1
  21. package/schematics/ng-update/v18/index.js +2 -2
  22. package/schematics/ng-update/v2/index.js +1 -1
  23. package/schematics/ng-update/v3/index.js +1 -1
  24. package/schematics/ng-update/v4/index.js +1 -1
  25. package/schematics/ng-update/v5/index.js +1 -1
  26. package/schematics/ng-update/v6/index.js +1 -1
  27. package/po-ui-ng-components-18.20.0.tgz +0 -0
@@ -160,6 +160,37 @@ export class PoInputBaseComponent {
160
160
  *
161
161
  */
162
162
  upperCase = false;
163
+ _maskNoLengthValidation = false;
164
+ /**
165
+ * @description
166
+ *
167
+ * Define se os caracteres especiais da máscara devem ser ignorados ao validar os comprimentos mínimo (`minLength`) e máximo (`maxLength`) do campo.
168
+ *
169
+ * - Quando `true`, apenas os caracteres alfanuméricos serão contabilizados para a validação dos comprimentos.
170
+ * - Quando `false`, todos os caracteres, incluindo os especiais da máscara, serão considerados na validação.
171
+ *
172
+ * > Será ignorado essa propriedade , caso esteja utilizando junto com a propriedade `p-mask-format-model`.
173
+ *
174
+ * Exemplo:
175
+ * ```
176
+ * <po-input
177
+ * p-mask="999-999"
178
+ * p-maxlength="6"
179
+ * p-minlength="4"
180
+ * p-mask-no-length-validation="true"
181
+ * ></po-input>
182
+ * ```
183
+ * - Entrada: `123-456` → Validação será aplicada somente aos números, ignorando o caractere especial `-`.
184
+ *
185
+ * @default `false`
186
+ */
187
+ set maskNoLengthValidation(value) {
188
+ this._maskNoLengthValidation = convertToBoolean(value);
189
+ this.validateModel();
190
+ }
191
+ get maskNoLengthValidation() {
192
+ return this._maskNoLengthValidation;
193
+ }
163
194
  /**
164
195
  * @optional
165
196
  *
@@ -431,7 +462,7 @@ export class PoInputBaseComponent {
431
462
  }
432
463
  };
433
464
  }
434
- if (maxlengpoailed(this.maxlength, this.getScreenValue())) {
465
+ if (maxlengpoailed(this.maxlength, this.getScreenValue(), this.maskFormatModel ? false : this.maskNoLengthValidation)) {
435
466
  this.isInvalid = true;
436
467
  return {
437
468
  maxlength: {
@@ -439,7 +470,7 @@ export class PoInputBaseComponent {
439
470
  }
440
471
  };
441
472
  }
442
- if (minlengpoailed(this.minlength, this.getScreenValue())) {
473
+ if (minlengpoailed(this.minlength, this.getScreenValue(), this.maskFormatModel ? false : this.maskNoLengthValidation)) {
443
474
  this.isInvalid = true;
444
475
  return {
445
476
  minlength: {
@@ -490,7 +521,7 @@ export class PoInputBaseComponent {
490
521
  }
491
522
  }
492
523
  static ɵfac = function PoInputBaseComponent_Factory(t) { return new (t || PoInputBaseComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
493
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoInputBaseComponent, inputs: { autoFocus: [2, "p-auto-focus", "autoFocus", convertToBoolean], icon: [0, "p-icon", "icon"], emitAllChanges: [2, "p-emit-all-changes", "emitAllChanges", convertToBoolean], label: [0, "p-label", "label"], help: [0, "p-help", "help"], name: "name", errorAsyncProperties: [0, "p-error-async-properties", "errorAsyncProperties"], errorPattern: [0, "p-error-pattern", "errorPattern"], optional: [0, "p-optional", "optional"], showErrorMessageRequired: [0, "p-required-field-error-message", "showErrorMessageRequired"], upperCase: [2, "p-upper-case", "upperCase", convertToBoolean], noAutocomplete: [0, "p-no-autocomplete", "noAutocomplete"], placeholder: [0, "p-placeholder", "placeholder"], setDisabled: [0, "p-disabled", "setDisabled"], setReadonly: [0, "p-readonly", "setReadonly"], setRequired: [0, "p-required", "setRequired"], showRequired: [0, "p-show-required", "showRequired"], setClean: [0, "p-clean", "setClean"], setPattern: [0, "p-pattern", "setPattern"], maxlength: [0, "p-maxlength", "maxlength"], minlength: [0, "p-minlength", "minlength"], setMask: [0, "p-mask", "setMask"], setMaskFormatModel: [0, "p-mask-format-model", "setMaskFormatModel"] }, outputs: { blur: "p-blur", enter: "p-enter", change: "p-change", changeModel: "p-change-model" }, features: [i0.ɵɵInputTransformsFeature] });
524
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoInputBaseComponent, inputs: { autoFocus: [2, "p-auto-focus", "autoFocus", convertToBoolean], icon: [0, "p-icon", "icon"], emitAllChanges: [2, "p-emit-all-changes", "emitAllChanges", convertToBoolean], label: [0, "p-label", "label"], help: [0, "p-help", "help"], name: "name", errorAsyncProperties: [0, "p-error-async-properties", "errorAsyncProperties"], errorPattern: [0, "p-error-pattern", "errorPattern"], optional: [0, "p-optional", "optional"], showErrorMessageRequired: [0, "p-required-field-error-message", "showErrorMessageRequired"], upperCase: [2, "p-upper-case", "upperCase", convertToBoolean], maskNoLengthValidation: [0, "p-mask-no-length-validation", "maskNoLengthValidation"], noAutocomplete: [0, "p-no-autocomplete", "noAutocomplete"], placeholder: [0, "p-placeholder", "placeholder"], setDisabled: [0, "p-disabled", "setDisabled"], setReadonly: [0, "p-readonly", "setReadonly"], setRequired: [0, "p-required", "setRequired"], showRequired: [0, "p-show-required", "showRequired"], setClean: [0, "p-clean", "setClean"], setPattern: [0, "p-pattern", "setPattern"], maxlength: [0, "p-maxlength", "maxlength"], minlength: [0, "p-minlength", "minlength"], setMask: [0, "p-mask", "setMask"], setMaskFormatModel: [0, "p-mask-format-model", "setMaskFormatModel"] }, outputs: { blur: "p-blur", enter: "p-enter", change: "p-change", changeModel: "p-change-model" }, features: [i0.ɵɵInputTransformsFeature] });
494
525
  }
495
526
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoInputBaseComponent, [{
496
527
  type: Directive
@@ -527,6 +558,9 @@ export class PoInputBaseComponent {
527
558
  }], upperCase: [{
528
559
  type: Input,
529
560
  args: [{ alias: 'p-upper-case', transform: convertToBoolean }]
561
+ }], maskNoLengthValidation: [{
562
+ type: Input,
563
+ args: ['p-mask-no-length-validation']
530
564
  }], blur: [{
531
565
  type: Output,
532
566
  args: ['p-blur']
@@ -576,4 +610,4 @@ export class PoInputBaseComponent {
576
610
  type: Input,
577
611
  args: ['p-mask-format-model']
578
612
  }] }); })();
579
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taW5wdXQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8taW5wdXQvcG8taW5wdXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFvRCxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RixPQUFPLEVBQVcsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Q0c7QUFFSCxNQUFNLE9BQWdCLG9CQUFvQjtJQTBXbEI7SUF6V3RCOzs7Ozs7Ozs7O09BVUc7SUFDNEQsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUUxRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bd0JHO0lBQ2MsSUFBSSxDQUE4QjtJQUVuRDs7Ozs7Ozs7T0FRRztJQUNrRSxjQUFjLEdBQVksS0FBSyxDQUFDO0lBRXJHLHVCQUF1QjtJQUNMLEtBQUssQ0FBVTtJQUVqQywrQkFBK0I7SUFDZCxJQUFJLENBQVU7SUFFL0IscUNBQXFDO0lBQ3RCLElBQUksQ0FBUztJQUU1Qjs7Ozs7Ozs7T0FRRztJQUNnQyxvQkFBb0IsQ0FBdUI7SUFFOUU7Ozs7Ozs7T0FPRztJQUN1QixZ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aUJFLFdBQVc7a0JBQXRDLEtBQUs7bUJBQUMsZUFBZTtZQWdCRyxXQUFXO2tCQUFuQyxLQUFLO21CQUFDLFlBQVk7WUFTTSxXQUFXO2tCQUFuQyxLQUFLO21CQUFDLFlBQVk7WUFnQk0sV0FBVztrQkFBbkMsS0FBSzttQkFBQyxZQUFZO1lBWU8sWUFBWTtrQkFBckMsS0FBSzttQkFBQyxpQkFBaUI7WUFLRixRQUFRO2tCQUE3QixLQUFLO21CQUFDLFNBQVM7WUFhUSxVQUFVO2tCQUFqQyxLQUFLO21CQUFDLFdBQVc7WUFhUSxTQUFTO2tCQUFsQyxLQUFLO21CQUFDLGFBQWE7WUF1Qk0sU0FBUztrQkFBbEMsS0FBSzttQkFBQyxhQUFhO1lBMkJDLE9BQU87a0JBQTNCLEtBQUs7bUJBQUMsUUFBUTtZQWdCbUIsa0JBQWtCO2tCQUFuRCxLQUFLO21CQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V0aWwnO1xuaW1wb3J0IHsgRXJyb3JBc3luY1Byb3BlcnRpZXMgfSBmcm9tICcuLi9zaGFyZWQvaW50ZXJmYWNlcy9lcnJvci1hc3luYy1wcm9wZXJ0aWVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBtYXhsZW5ncG9haWxlZCwgbWlubGVuZ3BvYWlsZWQsIHBhdHRlcm5GYWlsZWQsIHJlcXVpcmVkRmFpbGVkIH0gZnJvbSAnLi8uLi92YWxpZGF0b3JzJztcbmltcG9ydCB7IFBvTWFzayB9IGZyb20gJy4vcG8tbWFzayc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogRXN0ZSDDqSB1bSBjb21wb25lbnRlIGJhc2VhZG8gZW0gaW5wdXQsIGNvbSB2w6FyaWFzIHByb3ByaWVkYWRlcyBkbyBpbnB1dCBuYXRpdm8gZSBvdXRyYXNcbiAqIHByb3ByaWVkYWRlcyBleHRyYXMgY29tbzogbcOhc2NhcmEsIHBhdHRlcm4sIG1lbnNhZ2VtIGRlIGVycm8gZSBldGMuXG4gKiBWb2PDqiBkZXZlIGluZm9ybWFyIGEgdmFyacOhdmVsIHF1ZSBjb250w6ltIG8gdmFsb3IgY29tbyBbKG5nTW9kZWwpXT1cInZhcmlhdmVsXCIsIHBhcmEgcXVlIG9cbiAqIGlucHV0IHJlY2ViYSBvIHZhbG9yIGRhIHZhcmnDoXZlbCBlIHBhcmEgcXVlIGVsYSByZWNlYmEgYXMgYWx0ZXJhw6fDtWVzIGRvIHZhbG9yICh0d28td2F5LWRhdGFiaW5kaW5nKS5cbiAqIEEgcHJvcHJpZWRhZGUgbmFtZSDDqSBvYnJpZ2F0w7NyaWEgcGFyYSBxdWUgbyBmb3JtdWzDoXJpbyBlIG8gbW9kZWwgZnVuY2lvbmVtIGNvcnJldGFtZW50ZS5cbiAqXG4gKiBJbXBvcnRhbnRlOlxuICpcbiAqIC0gQ2FzbyBvIGlucHV0IHRlbmhhIHVtIFsobmdNb2RlbCldIHNlbSBvIGF0cmlidXRvIG5hbWUsIG9jb3JyZXLDoSB1bSBlcnJvIGRlIGFuZ3VsYXIuXG4gKiBFbnTDo28gdm9jw6ogcHJlY2lzYSBpbmZvcm1hciBvIGF0cmlidXRvIG5hbWUgb3UgbyBhdHJpYnV0byBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIuXG4gKiBFeGVtcGxvOiBbKG5nTW9kZWwpXT1cInBlc3NvYS5ub21lXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiLlxuICpcbiAqICMjIyMgVG9rZW5zIGN1c3RvbWl6w6F2ZWlzXG4gKlxuICogw4kgcG9zc8OtdmVsIGFsdGVyYXIgbyBlc3RpbG8gZG8gY29tcG9uZW50ZSB1c2FuZG8gb3Mgc2VndWludGVzIHRva2VucyAoQ1NTKTogPGJyPlxuICogT2JzOiBTw7Mgw6kgcG9zc8OtdmVsIHJlYWxpemFyIGFsdGVyYcOnw7VlcyBhbyBhZGljaW9uYXIgYSBjbGFzc2UgYC5wby1pbnB1dGBcbiAqXG4gKiA+IFBhcmEgY29ycmV0byBhbGluaGFtZW50byDDqSByZWNvbWVuZGFkbyBvIHVzbyBkYXMgY2xhc3NlcyBkZSBlc3Bhw6dhbWVudG8gZG8gW0dyaWQgU3lzdGVtXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy9ncmlkLXN5c3RlbSkuXG4gKlxuICogPiBQYXJhIG1haW9yZXMgaW5mb3JtYcOnw7VlcywgYWNlc3NlIG8gZ3VpYSBbUGVyc29uYWxpemFuZG8gbyBUZW1hIFBhZHLDo28gY29tIFRva2VucyBDU1NdKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL3RoZW1lLWN1c3RvbWl6YXRpb24pLlxuICpcbiAqIHwgUHJvcHJpZWRhZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmnDp8OjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmFsb3IgUGFkcsOjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipEZWZhdWx0IFZhbHVlcyoqICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC1mYW1pbHlgICAgICAgICAgICAgICAgICAgICAgICAgfCBGYW3DrWxpYSB0aXBvZ3LDoWZpY2EgdXNhZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtZmFtaWx5LXRoZW1lKWAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXNpemVgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFRhbWFuaG8gZGEgZm9udGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtc2l6ZS1kZWZhdWx0KWAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS10ZXh0LWNvbG9yLXBsYWNlaG9sZGVyYCAgICAgICAgICAgICB8IENvciBkbyB0ZXh0byBwbGFjZWhvbGRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMzApYCAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvcmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBwaW5jaXBhbCBkbyBpbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtZGFyay03MClgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kYCAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBkZSBiYWNrZ3JvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMDUpYCAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1wYWRkaW5nYCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFByZWVuY2hpbWVudG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGAwIDAuNXJlbWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS10ZXh0LWNvbG9yYCAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBkbyB0ZXh0byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtZGFyay05MClgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkhvdmVyKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1ob3ZlcmAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBwcmluY2lwYWwgbm8gZXN0YWRvIGhvdmVyICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWJyYW5kLTAxLWRhcmspYCAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWhvdmVyYCAgICAgICAgICAgICAgICAgICB8IENvciBkZSBiYWNrZ3JvdW5kIG5vIGVzdGFkbyBob3ZlciAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWJyYW5kLTAxLWxpZ2h0ZXN0KWAgICAgICAgICAgICAgICAgfFxuICogfCAqKkZvY3VzZWQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1mb2N1c2VkYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBwcmluY2lwYWwgbm8gZXN0YWRvIGRlIGZvY3VzICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWFjdGlvbi1kZWZhdWx0KWAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1vdXRsaW5lLWNvbG9yLWZvY3VzZWRgICAgICAgICAgICAgICB8IENvciBkbyBvdXRsaW5lIGRvIGVzdGFkbyBkZSBmb2N1cyAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWFjdGlvbi1mb2N1cylgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkRpc2FibGVkKiogICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1kaXNhYmxlZGAgICAgICAgICAgICAgICAgICAgICB8IENvciBwcmluY2lwYWwgbm8gZXN0YWRvIGRpc2FibGVkICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMzApYCAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWRpc2FibGVkYCAgICAgICAgICAgICAgICB8IENvciBkZSBiYWNrZ3JvdW5kIG5vIGVzdGFkbyBkaXNhYmxlZCAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMjApYCAgICAgICAgICAgICAgICAgfFxuICogfCBgLS10ZXh0LWNvbG9yLWRpc2FibGVkYCAgICAgICAgICAgICAgICB8IENvciBkbyB0ZXh0byBubyBlc3RhZG8gZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtZGFyay03MClgICAgICAgICAgICAgICAgICAgfFxuICpcbiAqIDxicj5cbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUG9JbnB1dEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBBcGxpY2EgZm9jbyBubyBlbGVtZW50byBhbyBzZXIgaW5pY2lhZG8uXG4gICAqXG4gICAqID4gQ2FzbyBtYWlzIGRlIHVtIGVsZW1lbnRvIHNlamEgY29uZmlndXJhZG8gY29tIGVzc2EgcHJvcHJpZWRhZGUsIGFwZW5hcyBvIMO6bHRpbW8gZWxlbWVudG8gZGVjbGFyYWRvIGNvbSBlbGEgdGVyw6EgbyBmb2NvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtYXV0by1mb2N1cycsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBhdXRvRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgbyDDrWNvbmUgcXVlIHNlcsOhIGV4aWJpZG8gbm8gaW7DrWNpbyBkbyBjYW1wby5cbiAgICpcbiAgICogw4kgcG9zc8OtdmVsIHVzYXIgcXVhbHF1ZXIgdW0gZG9zIMOtY29uZXMgZGEgW0JpYmxpb3RlY2EgZGUgw61jb25lc10oaHR0cHM6Ly9wby11aS5pby9pY29ucykuIGNvbmZvcm1lIGV4ZW1wbG8gYWJhaXhvOlxuICAgKiBgYGBcbiAgICogPHBvLWlucHV0IHAtaWNvbj1cInBoIHBoLXVzZXJcIiBwLWxhYmVsPVwiUE8gaW5wdXRcIj48L3BvLWlucHV0PlxuICAgKiBgYGBcbiAgICogVGFtYsOpbSDDqSBwb3Nzw612ZWwgdXRpbGl6YXIgb3V0cmFzIGZvbnRlcyBkZSDDrWNvbmVzLCBwb3IgZXhlbXBsbyBhIGJpYmxpb3RlY2EgKkZvbnQgQXdlc29tZSosIGRhIHNlZ3VpbnRlIGZvcm1hOlxuICAgKiBgYGBcbiAgICogPHBvLWlucHV0IHAtaWNvbj1cImZhIGZhLXBvZGNhc3RcIiBwLWxhYmVsPVwiUE8gaW5wdXRcIj48L3BvLWlucHV0PlxuICAgKiBgYGBcbiAgICogT3V0cmEgb3DDp8OjbyBzZXJpYSBhIGN1c3RvbWl6YcOnw6NvIGRvIMOtY29uZSBhdHJhdsOpcyBkbyBgVGVtcGxhdGVSZWZgLCBjb25mb3JtZSBleGVtcGxvIGFiYWl4bzpcbiAgICogYGBgXG4gICAqIDxwby1pbnB1dCBbcC1pY29uXT1cInRlbXBsYXRlXCIgcC1sYWJlbD1cImlucHV0IHRlbXBsYXRlIGlvbmljXCI+PC9wby1pbnB1dD5cbiAgICpcbiAgICogPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgICogIDxpb24taWNvbiBzdHlsZT1cImZvbnQtc2l6ZTogaW5oZXJpdFwiIG5hbWU9XCJoZWFydFwiPjwvaW9uLWljb24+XG4gICAqIDwvbmctdGVtcGxhdGU+XG4gICAqIGBgYFxuICAgKiA+IFBhcmEgbyDDrWNvbmUgZW5xdWFkcmFyIGNvcnJldGFtZW50ZSwgZGV2ZS1zZSB1dGlsaXphciBgZm9udC1zaXplOiBpbmhlcml0YCBjYXNvIG8gw61jb25lIHV0aWxpemFkbyBuw6NvIGFwbGlxdWUtby5cbiAgICovXG4gIEBJbnB1dCgncC1pY29uJykgaWNvbj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFNlbXByZSBlbWl0ZSBhcyBhbHRlcmHDp8O1ZXMgZG8gbW9kZWwgbWVzbW8gcXVhbmRvIG8gdmFsb3IgYXR1YWwgZm9yIGlndWFsIGFvIHZhbG9yIGFudGVyaW9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ3AtZW1pdC1hbGwtY2hhbmdlcycsIHRyYW5zZm9ybTogY29udmVydFRvQm9vbGVhbiB9KSBlbWl0QWxsQ2hhbmdlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBSw7N0dWxvIGRvIGNhbXBvLiAqL1xuICBASW5wdXQoJ3AtbGFiZWwnKSBsYWJlbD86IHN0cmluZztcblxuICAvKiogVGV4dG8gZGUgYXBvaW8gZG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1oZWxwJykgaGVscD86IHN0cmluZztcblxuICAvKiogTm9tZSBlIGlkZW50aWZpY2Fkb3IgZG8gY2FtcG8uICovXG4gIEBJbnB1dCgnbmFtZScpIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBSZWFsaXphIGFsZ3VtYSB2YWxpZGHDp8OjbyBjdXN0b21pemFkYSBhc3PDrW5jcm9uYSBubyBjb21wb25lbnRlLlxuICAgKiBBY29uc2VsaGFtb3MgYSB1dGlsaXphw6fDo28gZGVzc2EgcHJvcHJpZWRhZGUgc29tZW50ZSBlbSBjb21wb25lbnRlcyBxdWUgbsOjbyBlc3RlamFtXG4gICAqIHV0aWxpemFuZG8gYFJlYWN0aXZlIEZvcm1zYC4gRW0gZm9ybXVsw6FyaW9zIHJlYXRpdm9zLCBwb2RlLXNlIHV0aWxpemFyIG8gcHLDs3ByaW8gYGFzeW5jVmFsaWRhdG9yc2AuXG4gICAqL1xuICBASW5wdXQoJ3AtZXJyb3ItYXN5bmMtcHJvcGVydGllcycpIGVycm9yQXN5bmNQcm9wZXJ0aWVzOiBFcnJvckFzeW5jUHJvcGVydGllcztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIE1lbnNhZ2VtIHF1ZSBzZXLDoSBhcHJlc2VudGFkYSBxdWFuZG8gbyBgcGF0dGVybmAgb3UgYSBtw6FzY2FyYSBuw6NvIGZvciBzYXRpc2ZlaXRhLlxuICAgKlxuICAgKiA+IFBvciBwYWRyw6NvLCBlc3RhIG1lbnNhZ2VtIG7Do28gw6kgYXByZXNlbnRhZGEgcXVhbmRvIG8gY2FtcG8gZXN0aXZlciB2YXppbywgbWVzbW8gcXVlIGVsZSBzZWphIHJlcXVlcmlkby5cbiAgICogUGFyYSBleGliaXIgYSBtZW5zYWdlbSBjb20gbyBjYW1wbyB2YXppbywgdXRpbGl6ZSBhIHByb3ByaWVkYWRlIGBwLXJlcXVpcmVkLWZpZWxkLWVycm9yLW1lc3NhZ2VgIGVtIGNvbmp1bnRvLlxuICAgKi9cbiAgQElucHV0KCdwLWVycm9yLXBhdHRlcm4nKSBlcnJvclBhdHRlcm4/OiBzdHJpbmcgPSAnJztcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgc2UgYSBpbmRpY2HDp8OjbyBkZSBjYW1wbyBvcGNpb25hbCBzZXLDoSBleGliaWRhLlxuICAgKlxuICAgKiA+IE7Do28gc2Vyw6EgZXhpYmlkYSBhIGluZGljYcOnw6NvIHNlOlxuICAgKiAtIE8gY2FtcG8gY29udGVyIGBwLXJlcXVpcmVkYDtcbiAgICogLSBOw6NvIHBvc3N1aXIgYHAtaGVscGAgZS9vdSBgcC1sYWJlbGAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1vcHRpb25hbCcpIG9wdGlvbmFsOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV4aWJlIGEgbWVuc2FnZW0gc2V0YWRhIG5hIHByb3ByaWVkYWRlIGBwLWVycm9yLXBhdHRlcm5gIHNlIG8gY2FtcG8gZXN0aXZlciB2YXppbyBlIGZvciByZXF1ZXJpZG8uXG4gICAqXG4gICAqID4gTmVjZXNzw6FyaW8gcXVlIGEgcHJvcHJpZWRhZGUgYHAtcmVxdWlyZWRgIGVzdGVqYSBoYWJpbGl0YWRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtcmVxdWlyZWQtZmllbGQtZXJyb3ItbWVzc2FnZScpIHNob3dFcnJvck1lc3NhZ2VSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ29udmVydGUgbyBjb250ZcO6ZG8gZG8gY2FtcG8gZW0gbWFpw7pzdWxvIGF1dG9tYXRpY2FtZW50ZS5cbiAgICpcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC11cHBlci1jYXNlJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIHVwcGVyQ2FzZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gc2FpciBkbyBjYW1wby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtYmx1cicpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gZW50cmFyIGRvIGNhbXBvLlxuICAgKi9cbiAgQE91dHB1dCgncC1lbnRlcicpIGVudGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIGFsdGVyYXIgdmFsb3IgZSBkZWl4YXIgbyBjYW1wby5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlJykgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFdmVudG8gZGlzcGFyYWRvIGFvIGFsdGVyYXIgdmFsb3IgZG8gbW9kZWwuXG4gICAqL1xuICBAT3V0cHV0KCdwLWNoYW5nZS1tb2RlbCcpIGNoYW5nZU1vZGVsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB0eXBlOiBzdHJpbmc7XG5cbiAgb25DaGFuZ2VQcm9wYWdhdGU6IGFueSA9IG51bGw7XG4gIG9iak1hc2s6IGFueTtcbiAgbW9kZWxMYXN0VXBkYXRlOiBhbnk7XG4gIGlzSW52YWxpZDogYm9vbGVhbjtcbiAgaGFzVmFsaWRhdG9yUmVxdWlyZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJvdGVjdGVkIG9uVG91Y2hlZDogYW55ID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgcGFzc2VkV3JpdGVWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgdmFsaWRhdG9yQ2hhbmdlOiBhbnk7XG5cbiAgcHJpdmF0ZSBfbWF4bGVuZ3RoPzogbnVtYmVyO1xuICBwcml2YXRlIF9taW5sZW5ndGg/OiBudW1iZXI7XG4gIHByaXZhdGUgX25vQXV0b2NvbXBsZXRlPzogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9wbGFjZWhvbGRlcj86IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBhIHByb3ByaWVkYWRlIG5hdGl2YSBgYXV0b2NvbXBsZXRlYCBkbyBjYW1wbyBjb21vIGBvZmZgLlxuICAgKlxuICAgKiA+IE5vIGNvbXBvbmVudGUgYHBvLXBhc3N3b3JkYCBzZXLDoSBkZWZpbmlkbyBjb21vIGBuZXctcGFzc3dvcmRgLlxuICAgKlxuICAgKiBOb3MgY29tcG9uZW50ZXMgYHBvLXBhc3N3b3JkYCBlIGBwby1sb2dpbmAgbyB2YWxvciBwYWRyw6NvIHNlcsOhIGB0cnVlYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLW5vLWF1dG9jb21wbGV0ZScpIHNldCBub0F1dG9jb21wbGV0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX25vQXV0b2NvbXBsZXRlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gIH1cblxuICBnZXQgbm9BdXRvY29tcGxldGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX25vQXV0b2NvbXBsZXRlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTWVuc2FnZW0gcXVlIGFwYXJlY2Vyw6EgZW5xdWFudG8gbyBjYW1wbyBuw6NvIGVzdGl2ZXIgcHJlZW5jaGlkby5cbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIEBJbnB1dCgncC1wbGFjZWhvbGRlcicpIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZSB8fCAnJztcbiAgfVxuICBnZXQgcGxhY2Vob2xkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBTZSB2ZXJkYWRlaXJvLCBkZXNhYmlsaXRhIG8gY2FtcG8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIGRpc2FibGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ3AtZGlzYWJsZWQnKSBzZXQgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IHN0cmluZykge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZCA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihkaXNhYmxlZCk7XG5cbiAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgfVxuXG4gIC8qKiBJbmRpY2EgcXVlIG8gY2FtcG8gc2Vyw6Egc29tZW50ZSBsZWl0dXJhLiAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICByZWFkb25seT86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdwLXJlYWRvbmx5Jykgc2V0IHNldFJlYWRvbmx5KHJlYWRvbmx5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlYWRvbmx5ID0gcmVhZG9ubHkgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4ocmVhZG9ubHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIHF1ZSBvIGNhbXBvIHNlcsOhIG9icmlnYXTDs3Jpby5cbiAgICogPiBFc3RhIHByb3ByaWVkYWRlIMOpIGRlc2NvbnNpZGVyYWRhIHF1YW5kbyBvIGlucHV0IGVzdMOhIGRlc2FiaWxpdGFkbyBgKHAtZGlzYWJsZWQpYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgcmVxdWlyZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgncC1yZXF1aXJlZCcpIHNldCBzZXRSZXF1aXJlZChyZXF1aXJlZDogc3RyaW5nKSB7XG4gICAgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKHJlcXVpcmVkKTtcblxuICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBzZSBhIGluZGljYcOnw6NvIGRlIGNhbXBvIG9icmlnYXTDs3JpbyBzZXLDoSBleGliaWRhLlxuICAgKlxuICAgKiA+IE7Do28gc2Vyw6EgZXhpYmlkYSBhIGluZGljYcOnw6NvIHNlOlxuICAgKiAtIE7Do28gcG9zc3VpciBgcC1oZWxwYCBlL291IGBwLWxhYmVsYC5cbiAgICovXG4gIEBJbnB1dCgncC1zaG93LXJlcXVpcmVkJykgc2hvd1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFNlIHZlcmRhZGVpcm8sIG8gY2FtcG8gcmVjZWJlcsOhIHVtIGJvdMOjbyBwYXJhIHNlciBsaW1wby4gKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgY2xlYW4/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgncC1jbGVhbicpIHNldCBzZXRDbGVhbihjbGVhbjogc3RyaW5nKSB7XG4gICAgdGhpcy5jbGVhbiA9IGNsZWFuID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKGNsZWFuKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhwcmVzc8OjbyByZWd1bGFyIHBhcmEgdmFsaWRhciBvIGNhbXBvLlxuICAgKiBRdWFuZG8gbyBjYW1wbyBwb3NzdWlyIHVtYSBtw6FzY2FyYSBgKHAtbWFzaylgIHNlcsOhIGF1dG9tYXRpY2FtZW50ZSB2YWxpZGFkbyBwb3IgZWxhLCBwb3LDqW1cbiAgICogw6kgcG9zc8OtdmVsIGRlZmluaXIgdW0gcC1wYXR0ZXJuIHBhcmEgc3Vic3RpdHVpciBhIHZhbGlkYcOnw6NvIGRhIG3DoXNjYXJhLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgcGF0dGVybj86IHN0cmluZztcbiAgQElucHV0KCdwLXBhdHRlcm4nKSBzZXQgc2V0UGF0dGVybihwYXR0ZXJuOiBzdHJpbmcpIHtcbiAgICB0aGlzLnBhdHRlcm4gPSBwYXR0ZXJuO1xuXG4gICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgYSBxdWFudGlkYWRlIG3DoXhpbWEgZGUgY2FyYWN0ZXJlcyBxdWUgbyBjYW1wbyBhY2VpdGEuXG4gICAqL1xuICBASW5wdXQoJ3AtbWF4bGVuZ3RoJykgc2V0IG1heGxlbmd0aCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKCFpc05hTihwYXJzZUludCg8YW55PnZhbHVlLCAxMCkpKSB7XG4gICAgICB0aGlzLl9tYXhsZW5ndGggPSBwYXJzZUludCg8YW55PnZhbHVlLCAxMCk7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH0gZWxzZSBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLl9tYXhsZW5ndGggPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtYXhsZW5ndGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heGxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBhIHF1YW50aWRhZGUgbcOtbmltYSBkZSBjYXJhY3RlcmVzIHF1ZSBvIGNhbXBvIGFjZWl0YS5cbiAgICovXG4gIEBJbnB1dCgncC1taW5sZW5ndGgnKSBzZXQgbWlubGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoIWlzTmFOKHBhcnNlSW50KDxhbnk+dmFsdWUsIDEwKSkpIHtcbiAgICAgIHRoaXMuX21pbmxlbmd0aCA9IHBhcnNlSW50KDxhbnk+dmFsdWUsIDEwKTtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfSBlbHNlIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuX21pbmxlbmd0aCA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1pbmxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWlubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2EgdW1hIG3DoXNjYXJhIHBhcmEgbyBjYW1wby4gRXhlbXBsb3M6ICgrOTkpICg5OSkgOTk5OTk/LTk5OTksIDk5OTk5LTk5OSwgOTk5Ljk5OS45OTktOTkuXG4gICAqIEEgbcOhc2NhcmEgZ2VyYSB1bWEgdmFsaWRhw6fDo28gYXV0b23DoXRpY2EgZG8gY2FtcG8sIHBvZGVuZG8gZXN0YSBzZXIgc3Vic3RpdHXDrWRhIHBvciB1bSBSRUdFWCBlc3BlY8OtZmljb1xuICAgKiBhdHJhdsOpcyBkYSBwcm9wcmllZGFkZSBwLXBhdHRlcm4uXG4gICAqIE8gY2FtcG8gc2Vyw6Egc2luYWxpemFkbyBlIG8gZm9ybXVsw6FyaW8gZmljYXLDoSBpbnbDoWxpZG8gcXVhbmRvIG8gdmFsb3IgaW5mb3JtYWRvIGVzdGl2ZXIgZm9yYSBkbyBwYWRyw6NvIGRlZmluaWRvLFxuICAgKiBtZXNtbyBxdWFuZG8gZGVzYWJpbGl0YWRvLlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgbWFzaz86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoJ3AtbWFzaycpIHNldCBzZXRNYXNrKG1hc2s6IHN0cmluZykge1xuICAgIHRoaXMubWFzayA9IG1hc2s7XG5cbiAgICAvLyBBdHVhbGl6YSBNw6FzY2FyYSBkbyBDYW1wb1xuICAgIHRoaXMub2JqTWFzayA9IG5ldyBQb01hc2sodGhpcy5tYXNrLCB0aGlzLm1hc2tGb3JtYXRNb2RlbCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBzZSBvIGBtb2RlbGAgcmVjZWJlcsOhIG8gdmFsb3IgZm9ybWF0YWRvIHBlbGEgbcOhc2NhcmEgb3UgYXBlbmFzIG8gdmFsb3IgcHVybyAoc2VtIGZvcm1hdGHDp8OjbykuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIG1hc2tGb3JtYXRNb2RlbD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdwLW1hc2stZm9ybWF0LW1vZGVsJykgc2V0IHNldE1hc2tGb3JtYXRNb2RlbChtYXNrRm9ybWF0TW9kZWw6IHN0cmluZykge1xuICAgIHRoaXMubWFza0Zvcm1hdE1vZGVsID0gbWFza0Zvcm1hdE1vZGVsID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKG1hc2tGb3JtYXRNb2RlbCk7XG5cbiAgICBpZiAodGhpcy5vYmpNYXNrIGluc3RhbmNlb2YgUG9NYXNrKSB7XG4gICAgICB0aGlzLm9iak1hc2suZm9ybWF0TW9kZWwgPSB0aGlzLm1hc2tGb3JtYXRNb2RlbDtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkPzogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLm9iak1hc2sgPSBuZXcgUG9NYXNrKHRoaXMubWFzaywgdGhpcy5tYXNrRm9ybWF0TW9kZWwpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNhbGxPbkNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy51cGRhdGVNb2RlbCh2YWx1ZSk7XG5cbiAgICB0aGlzLmNvbnRyb2xDaGFuZ2VNb2RlbEVtaXR0ZXIodmFsdWUpO1xuICB9XG5cbiAgY2FsbFVwZGF0ZU1vZGVsV2l0aFRpbWVvdXQodmFsdWUpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudXBkYXRlTW9kZWwodmFsdWUpKTtcbiAgfVxuXG4gIGNvbnRyb2xDaGFuZ2VNb2RlbEVtaXR0ZXIodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLm1vZGVsTGFzdFVwZGF0ZSAhPT0gdmFsdWUgfHwgdGhpcy5lbWl0QWxsQ2hhbmdlcykge1xuICAgICAgdGhpcy5jaGFuZ2VNb2RlbC5lbWl0KHZhbHVlKTtcbiAgICAgIHRoaXMubW9kZWxMYXN0VXBkYXRlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLy8gRnVuw6fDo28gaW1wbGVtZW50YWRhIGRvIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIC8vIFVzYWRhIHBhcmEgaW50ZXJjZXB0YXIgb3MgZXN0YWRvcyBkZSBoYWJpbGl0YWRvIHZpYSBmb3JtcyBhcGlcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgdGhpcy5jZD8ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgLy8gVXNhZGEgcGFyYSBpbnRlcmNlcHRhciBhcyBtdWRhbsOnYXMgZSBuw6NvIGF0dWFsaXphciBhdXRvbWF0aWNhbWVudGUgbyBNb2RlbFxuICByZWdpc3Rlck9uQ2hhbmdlKGZ1bmM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VQcm9wYWdhdGUgPSBmdW5jO1xuICB9XG5cbiAgLy8gRnVuw6fDo28gaW1wbGVtZW50YWRhIGRvIENvbnRyb2xWYWx1ZUFjY2Vzc29yXG4gIC8vIFVzYWRhIHBhcmEgaW50ZXJjZXB0YXIgYXMgbXVkYW7Dp2FzIGUgbsOjbyBhdHVhbGl6YXIgYXV0b21hdGljYW1lbnRlIG8gTW9kZWxcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZnVuYzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmdW5jO1xuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMudmFsaWRhdG9yQ2hhbmdlID0gZm47XG4gIH1cblxuICB1cGRhdGVNb2RlbCh2YWx1ZTogYW55KSB7XG4gICAgLy8gUXVhbmRvIG8gaW5wdXQgbsOjbyBwb3NzdWkgdW0gZm9ybXVsw6FyaW8sIGVudMOjbyBlc3RhIGZ1bsOnw6NvIG7Do28gw6kgcmVnaXN0cmFkYVxuICAgIGlmICh0aGlzLm9uQ2hhbmdlUHJvcGFnYXRlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlUHJvcGFnYXRlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICBpZiAoIXRoaXMuaGFzVmFsaWRhdG9yUmVxdWlyZWQgJiYgdGhpcy5zaG93RXJyb3JNZXNzYWdlUmVxdWlyZWQgJiYgYy5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkpIHtcbiAgICAgIHRoaXMuaGFzVmFsaWRhdG9yUmVxdWlyZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChyZXF1aXJlZEZhaWxlZCh0aGlzLnJlcXVpcmVkLCB0aGlzLmRpc2FibGVkLCB0aGlzLmdldFNjcmVlblZhbHVlKCkpKSB7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZXF1aXJlZDoge1xuICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChtYXhsZW5ncG9haWxlZCh0aGlzLm1heGxlbmd0aCwgdGhpcy5nZXRTY3JlZW5WYWx1ZSgpKSkge1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWF4bGVuZ3RoOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKG1pbmxlbmdwb2FpbGVkKHRoaXMubWlubGVuZ3RoLCB0aGlzLmdldFNjcmVlblZhbHVlKCkpKSB7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtaW5sZW5ndGg6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAocGF0dGVybkZhaWxlZCh0aGlzLnBhdHRlcm4sIGMudmFsdWUpKSB7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRlUGF0dGVybk9uV3JpdGVWYWx1ZShjLnZhbHVlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdHRlcm46IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lcnJvclBhdHRlcm4gIT09ICcnKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGMuc3RhdHVzQ2hhbmdlc1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoc3RhdHVzID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdJTlZBTElEJykge1xuICAgICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc0ludmFsaWQgPSBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5leHRyYVZhbGlkYXRpb24oYyk7XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy53cml0ZVZhbHVlTW9kZWwodmFsdWUpO1xuICAgIHRoaXMuY2Q/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlTW9kZWwoKSB7XG4gICAgaWYgKHRoaXMudmFsaWRhdG9yQ2hhbmdlKSB7XG4gICAgICB0aGlzLnZhbGlkYXRvckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHV0aWxpemFkbyBwYXJhIHZhbGlkYXIgbyBwYXR0ZXJuIG5hIGluaWNpYWxpemFjYW8sIGZhemVuZG8gZGVzc2EgZm9ybWEgbyBjYW1wbyBmaWNhIHN1am8gKGRpcnR5KS5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhdHRlcm5PbldyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLnBhc3NlZFdyaXRlVmFsdWUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKHZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnBhc3NlZFdyaXRlVmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuw6fDo28gcXVlIGF0cmlidWkgZm9jbyBhbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBQYXJhIHV0aWxpesOhLWxhIMOpIG5lY2Vzc8OhcmlvIHRlciBhIGluc3TDom5jaWEgZG8gY29tcG9uZW50ZSBubyBET00sIHBvZGVuZG8gc2VyIHV0aWxpemFkbyBvIFZpZXdDaGlsZCBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICpcbiAgICogYGBgXG4gICAqIGltcG9ydCB7IFBvTm9tZURvQ29tcG9uZW50ZUNvbXBvbmVudCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcbiAgICpcbiAgICogLi4uXG4gICAqXG4gICAqIEBWaWV3Q2hpbGQoUG9Ob21lRG9Db21wb25lbnRlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBub21lRG9Db21wb25lbnRlOiBQb05vbWVEb0NvbXBvbmVudGVDb21wb25lbnQ7XG4gICAqXG4gICAqIGZvY3VzQ29tcG9uZW50KCkge1xuICAgKiAgIHRoaXMubm9tZURvQ29tcG9uZW50ZS5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYWJzdHJhY3QgZm9jdXMoKTogdm9pZDtcblxuICAvLyBNw6l0b2RvIHF1ZSByZWNlYmVyw6EgbyB2YWxvciBkbyBtb2RlbFxuICBhYnN0cmFjdCB3cml0ZVZhbHVlTW9kZWwodmFsdWU6IGFueSk6IHZvaWQ7XG5cbiAgLy8gVmFsaWRhw6fDtWVzIGRvIGNhbXBvXG4gIGFic3RyYWN0IGV4dHJhVmFsaWRhdGlvbihjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8vIERldmUgcmV0b3JuYXIgbyB2YWxvciBkbyBjYW1wb1xuICBhYnN0cmFjdCBnZXRTY3JlZW5WYWx1ZSgpOiBzdHJpbmc7XG59XG4iXX0=
613
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taW5wdXQtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8taW5wdXQvcG8taW5wdXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFvRCxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Q0c7QUFFSCxNQUFNLE9BQWdCLG9CQUFvQjtJQTRZbEI7SUEzWXRCOzs7Ozs7Ozs7O09BVUc7SUFDNEQsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUUxRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bd0JHO0lBQ2MsSUFBSSxDQUE4QjtJQUVuRDs7Ozs7Ozs7T0FRRztJQUNrRSxjQUFjLEdBQVksS0FBSyxDQUFDO0lBRXJHLHVCQUF1QjtJQUNMLEtBQUssQ0FBVTtJQUVqQywrQkFBK0I7SUFDZCxJQUFJLENBQVU7SUFFL0IscUNBQXFDO0lBQ3RCLElBQUksQ0FBUztJQUU1Qjs7Ozs7Ozs7T0FRRztJQUNnQyxvQkFBb0IsQ0FBdUI7SUFFOUU7Ozs7Ozs7T0FPRztJQUN1QixZ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V3NCLG9CQUFvQjtrQkFBdEQsS0FBSzttQkFBQywwQkFBMEI7WUFVUCxZQUFZO2tCQUFyQyxLQUFLO21CQUFDLGlCQUFpQjtZQWVILFFBQVE7a0JBQTVCLEtBQUs7bUJBQUMsWUFBWTtZQWFzQix3QkFBd0I7a0JBQWhFLEtBQUs7bUJBQUMsZ0NBQWdDO1lBUXdCLFNBQVM7a0JBQXZFLEtBQUs7bUJBQUMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtZQTBCbkIsc0JBQXNCO2tCQUEvRCxLQUFLO21CQUFDLDZCQUE2QjtZQWlCbEIsSUFBSTtrQkFBckIsTUFBTTttQkFBQyxRQUFRO1lBU0csS0FBSztrQkFBdkIsTUFBTTttQkFBQyxTQUFTO1lBU0csTUFBTTtrQkFBekIsTUFBTTttQkFBQyxVQUFVO1lBU1EsV0FBVztrQkFBcEMsTUFBTTttQkFBQyxnQkFBZ0I7WUFpQ1EsY0FBYztrQkFBN0MsS0FBSzttQkFBQyxtQkFBbUI7WUFpQkUsV0FBVztrQkFBdEMsS0FBSzttQkFBQyxlQUFlO1lBZ0JHLFdBQVc7a0JBQW5DLEtBQUs7bUJBQUMsWUFBWTtZQVNNLFdBQVc7a0JBQW5DLEtBQUs7bUJBQUMsWUFBWTtZQWdCTSxXQUFXO2tCQUFuQyxLQUFLO21CQUFDLFlBQVk7WUFZTyxZQUFZO2tCQUFyQyxLQUFLO21CQUFDLGlCQUFpQjtZQUtGLFFBQVE7a0JBQTdCLEtBQUs7bUJBQUMsU0FBUztZQWFRLFVBQVU7a0JBQWpDLEtBQUs7bUJBQUMsV0FBVztZQWFRLFNBQVM7a0JBQWxDLEtBQUs7bUJBQUMsYUFBYTtZQXVCTSxTQUFTO2tCQUFsQyxLQUFLO21CQUFDLGFBQWE7WUEyQkMsT0FBTztrQkFBM0IsS0FBSzttQkFBQyxRQUFRO1lBZ0JtQixrQkFBa0I7a0JBQW5ELEtBQUs7bUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5pbXBvcnQgeyBFcnJvckFzeW5jUHJvcGVydGllcyB9IGZyb20gJy4uL3NoYXJlZC9pbnRlcmZhY2VzL2Vycm9yLWFzeW5jLXByb3BlcnRpZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IG1heGxlbmdwb2FpbGVkLCBtaW5sZW5ncG9haWxlZCwgcGF0dGVybkZhaWxlZCwgcmVxdWlyZWRGYWlsZWQgfSBmcm9tICcuLy4uL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgUG9NYXNrIH0gZnJvbSAnLi9wby1tYXNrJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBFc3RlIMOpIHVtIGNvbXBvbmVudGUgYmFzZWFkbyBlbSBpbnB1dCwgY29tIHbDoXJpYXMgcHJvcHJpZWRhZGVzIGRvIGlucHV0IG5hdGl2byBlIG91dHJhc1xuICogcHJvcHJpZWRhZGVzIGV4dHJhcyBjb21vOiBtw6FzY2FyYSwgcGF0dGVybiwgbWVuc2FnZW0gZGUgZXJybyBlIGV0Yy5cbiAqIFZvY8OqIGRldmUgaW5mb3JtYXIgYSB2YXJpw6F2ZWwgcXVlIGNvbnTDqW0gbyB2YWxvciBjb21vIFsobmdNb2RlbCldPVwidmFyaWF2ZWxcIiwgcGFyYSBxdWUgb1xuICogaW5wdXQgcmVjZWJhIG8gdmFsb3IgZGEgdmFyacOhdmVsIGUgcGFyYSBxdWUgZWxhIHJlY2ViYSBhcyBhbHRlcmHDp8O1ZXMgZG8gdmFsb3IgKHR3by13YXktZGF0YWJpbmRpbmcpLlxuICogQSBwcm9wcmllZGFkZSBuYW1lIMOpIG9icmlnYXTDs3JpYSBwYXJhIHF1ZSBvIGZvcm11bMOhcmlvIGUgbyBtb2RlbCBmdW5jaW9uZW0gY29ycmV0YW1lbnRlLlxuICpcbiAqIEltcG9ydGFudGU6XG4gKlxuICogLSBDYXNvIG8gaW5wdXQgdGVuaGEgdW0gWyhuZ01vZGVsKV0gc2VtIG8gYXRyaWJ1dG8gbmFtZSwgb2NvcnJlcsOhIHVtIGVycm8gZGUgYW5ndWxhci5cbiAqIEVudMOjbyB2b2PDqiBwcmVjaXNhIGluZm9ybWFyIG8gYXRyaWJ1dG8gbmFtZSBvdSBvIGF0cmlidXRvIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIi5cbiAqIEV4ZW1wbG86IFsobmdNb2RlbCldPVwicGVzc29hLm5vbWVcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIuXG4gKlxuICogIyMjIyBUb2tlbnMgY3VzdG9taXrDoXZlaXNcbiAqXG4gKiDDiSBwb3Nzw612ZWwgYWx0ZXJhciBvIGVzdGlsbyBkbyBjb21wb25lbnRlIHVzYW5kbyBvcyBzZWd1aW50ZXMgdG9rZW5zIChDU1MpOiA8YnI+XG4gKiBPYnM6IFPDsyDDqSBwb3Nzw612ZWwgcmVhbGl6YXIgYWx0ZXJhw6fDtWVzIGFvIGFkaWNpb25hciBhIGNsYXNzZSBgLnBvLWlucHV0YFxuICpcbiAqID4gUGFyYSBjb3JyZXRvIGFsaW5oYW1lbnRvIMOpIHJlY29tZW5kYWRvIG8gdXNvIGRhcyBjbGFzc2VzIGRlIGVzcGHDp2FtZW50byBkbyBbR3JpZCBTeXN0ZW1dKGh0dHBzOi8vcG8tdWkuaW8vZ3VpZGVzL2dyaWQtc3lzdGVtKS5cbiAqXG4gKiA+IFBhcmEgbWFpb3JlcyBpbmZvcm1hw6fDtWVzLCBhY2Vzc2UgbyBndWlhIFtQZXJzb25hbGl6YW5kbyBvIFRlbWEgUGFkcsOjbyBjb20gVG9rZW5zIENTU10oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvdGhlbWUtY3VzdG9taXphdGlvbikuXG4gKlxuICogfCBQcm9wcmllZGFkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyacOnw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBWYWxvciBQYWRyw6NvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfFxuICogfCAqKkRlZmF1bHQgVmFsdWVzKiogICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LWZhbWlseWAgICAgICAgICAgICAgICAgICAgICAgICB8IEZhbcOtbGlhIHRpcG9ncsOhZmljYSB1c2FkYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC1mYW1pbHktdGhlbWUpYCAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtc2l6ZWAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGFtYW5obyBkYSBmb250ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC1zaXplLWRlZmF1bHQpYCAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXRleHQtY29sb3ItcGxhY2Vob2xkZXJgICAgICAgICAgICAgIHwgQ29yIGRvIHRleHRvIHBsYWNlaG9sZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0zMClgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWNvbG9yYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIHBpbmNpcGFsIGRvIGlucHV0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWJhY2tncm91bmRgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRlIGJhY2tncm91bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0wNSlgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXBhZGRpbmdgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHJlZW5jaGltZW50byAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYDAgMC41cmVtYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXRleHQtY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIHRleHRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTkwKWAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqSG92ZXIqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWNvbG9yLWhvdmVyYCAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIHByaW5jaXBhbCBubyBlc3RhZG8gaG92ZXIgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYnJhbmQtMDEtZGFyaylgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWJhY2tncm91bmQtaG92ZXJgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRlIGJhY2tncm91bmQgbm8gZXN0YWRvIGhvdmVyICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYnJhbmQtMDEtbGlnaHRlc3QpYCAgICAgICAgICAgICAgICB8XG4gKiB8ICoqRm9jdXNlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWNvbG9yLWZvY3VzZWRgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIHByaW5jaXBhbCBubyBlc3RhZG8gZGUgZm9jdXMgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWRlZmF1bHQpYCAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLW91dGxpbmUtY29sb3ItZm9jdXNlZGAgICAgICAgICAgICAgIHwgQ29yIGRvIG91dGxpbmUgZG8gZXN0YWRvIGRlIGZvY3VzICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWZvY3VzKWAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqRGlzYWJsZWQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWNvbG9yLWRpc2FibGVkYCAgICAgICAgICAgICAgICAgICAgIHwgQ29yIHByaW5jaXBhbCBubyBlc3RhZG8gZGlzYWJsZWQgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0zMClgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWJhY2tncm91bmQtZGlzYWJsZWRgICAgICAgICAgICAgICAgIHwgQ29yIGRlIGJhY2tncm91bmQgbm8gZXN0YWRvIGRpc2FibGVkICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0yMClgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXRleHQtY29sb3ItZGlzYWJsZWRgICAgICAgICAgICAgICAgIHwgQ29yIGRvIHRleHRvIG5vIGVzdGFkbyBkaXNhYmxlZCAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICB8XG4gKlxuICogPGJyPlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0lucHV0QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEFwbGljYSBmb2NvIG5vIGVsZW1lbnRvIGFvIHNlciBpbmljaWFkby5cbiAgICpcbiAgICogPiBDYXNvIG1haXMgZGUgdW0gZWxlbWVudG8gc2VqYSBjb25maWd1cmFkbyBjb20gZXNzYSBwcm9wcmllZGFkZSwgYXBlbmFzIG8gw7psdGltbyBlbGVtZW50byBkZWNsYXJhZG8gY29tIGVsYSB0ZXLDoSBvIGZvY28uXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1hdXRvLWZvY3VzJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGF1dG9Gb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvIMOtY29uZSBxdWUgc2Vyw6EgZXhpYmlkbyBubyBpbsOtY2lvIGRvIGNhbXBvLlxuICAgKlxuICAgKiDDiSBwb3Nzw612ZWwgdXNhciBxdWFscXVlciB1bSBkb3Mgw61jb25lcyBkYSBbQmlibGlvdGVjYSBkZSDDrWNvbmVzXShodHRwczovL3BvLXVpLmlvL2ljb25zKS4gY29uZm9ybWUgZXhlbXBsbyBhYmFpeG86XG4gICAqIGBgYFxuICAgKiA8cG8taW5wdXQgcC1pY29uPVwicGggcGgtdXNlclwiIHAtbGFiZWw9XCJQTyBpbnB1dFwiPjwvcG8taW5wdXQ+XG4gICAqIGBgYFxuICAgKiBUYW1iw6ltIMOpIHBvc3PDrXZlbCB1dGlsaXphciBvdXRyYXMgZm9udGVzIGRlIMOtY29uZXMsIHBvciBleGVtcGxvIGEgYmlibGlvdGVjYSAqRm9udCBBd2Vzb21lKiwgZGEgc2VndWludGUgZm9ybWE6XG4gICAqIGBgYFxuICAgKiA8cG8taW5wdXQgcC1pY29uPVwiZmEgZmEtcG9kY2FzdFwiIHAtbGFiZWw9XCJQTyBpbnB1dFwiPjwvcG8taW5wdXQ+XG4gICAqIGBgYFxuICAgKiBPdXRyYSBvcMOnw6NvIHNlcmlhIGEgY3VzdG9taXphw6fDo28gZG8gw61jb25lIGF0cmF2w6lzIGRvIGBUZW1wbGF0ZVJlZmAsIGNvbmZvcm1lIGV4ZW1wbG8gYWJhaXhvOlxuICAgKiBgYGBcbiAgICogPHBvLWlucHV0IFtwLWljb25dPVwidGVtcGxhdGVcIiBwLWxhYmVsPVwiaW5wdXQgdGVtcGxhdGUgaW9uaWNcIj48L3BvLWlucHV0PlxuICAgKlxuICAgKiA8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgKiAgPGlvbi1pY29uIHN0eWxlPVwiZm9udC1zaXplOiBpbmhlcml0XCIgbmFtZT1cImhlYXJ0XCI+PC9pb24taWNvbj5cbiAgICogPC9uZy10ZW1wbGF0ZT5cbiAgICogYGBgXG4gICAqID4gUGFyYSBvIMOtY29uZSBlbnF1YWRyYXIgY29ycmV0YW1lbnRlLCBkZXZlLXNlIHV0aWxpemFyIGBmb250LXNpemU6IGluaGVyaXRgIGNhc28gbyDDrWNvbmUgdXRpbGl6YWRvIG7Do28gYXBsaXF1ZS1vLlxuICAgKi9cbiAgQElucHV0KCdwLWljb24nKSBpY29uPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogU2VtcHJlIGVtaXRlIGFzIGFsdGVyYcOnw7VlcyBkbyBtb2RlbCBtZXNtbyBxdWFuZG8gbyB2YWxvciBhdHVhbCBmb3IgaWd1YWwgYW8gdmFsb3IgYW50ZXJpb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAncC1lbWl0LWFsbC1jaGFuZ2VzJywgdHJhbnNmb3JtOiBjb252ZXJ0VG9Cb29sZWFuIH0pIGVtaXRBbGxDaGFuZ2VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFLDs3R1bG8gZG8gY2FtcG8uICovXG4gIEBJbnB1dCgncC1sYWJlbCcpIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBUZXh0byBkZSBhcG9pbyBkbyBjYW1wby4gKi9cbiAgQElucHV0KCdwLWhlbHAnKSBoZWxwPzogc3RyaW5nO1xuXG4gIC8qKiBOb21lIGUgaWRlbnRpZmljYWRvciBkbyBjYW1wby4gKi9cbiAgQElucHV0KCduYW1lJykgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFJlYWxpemEgYWxndW1hIHZhbGlkYcOnw6NvIGN1c3RvbWl6YWRhIGFzc8OtbmNyb25hIG5vIGNvbXBvbmVudGUuXG4gICAqIEFjb25zZWxoYW1vcyBhIHV0aWxpemHDp8OjbyBkZXNzYSBwcm9wcmllZGFkZSBzb21lbnRlIGVtIGNvbXBvbmVudGVzIHF1ZSBuw6NvIGVzdGVqYW1cbiAgICogdXRpbGl6YW5kbyBgUmVhY3RpdmUgRm9ybXNgLiBFbSBmb3JtdWzDoXJpb3MgcmVhdGl2b3MsIHBvZGUtc2UgdXRpbGl6YXIgbyBwcsOzcHJpbyBgYXN5bmNWYWxpZGF0b3JzYC5cbiAgICovXG4gIEBJbnB1dCgncC1lcnJvci1hc3luYy1wcm9wZXJ0aWVzJykgZXJyb3JBc3luY1Byb3BlcnRpZXM6IEVycm9yQXN5bmNQcm9wZXJ0aWVzO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTWVuc2FnZW0gcXVlIHNlcsOhIGFwcmVzZW50YWRhIHF1YW5kbyBvIGBwYXR0ZXJuYCBvdSBhIG3DoXNjYXJhIG7Do28gZm9yIHNhdGlzZmVpdGEuXG4gICAqXG4gICAqID4gUG9yIHBhZHLDo28sIGVzdGEgbWVuc2FnZW0gbsOjbyDDqSBhcHJlc2VudGFkYSBxdWFuZG8gbyBjYW1wbyBlc3RpdmVyIHZhemlvLCBtZXNtbyBxdWUgZWxlIHNlamEgcmVxdWVyaWRvLlxuICAgKiBQYXJhIGV4aWJpciBhIG1lbnNhZ2VtIGNvbSBvIGNhbXBvIHZhemlvLCB1dGlsaXplIGEgcHJvcHJpZWRhZGUgYHAtcmVxdWlyZWQtZmllbGQtZXJyb3ItbWVzc2FnZWAgZW0gY29uanVudG8uXG4gICAqL1xuICBASW5wdXQoJ3AtZXJyb3ItcGF0dGVybicpIGVycm9yUGF0dGVybj86IHN0cmluZyA9ICcnO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBzZSBhIGluZGljYcOnw6NvIGRlIGNhbXBvIG9wY2lvbmFsIHNlcsOhIGV4aWJpZGEuXG4gICAqXG4gICAqID4gTsOjbyBzZXLDoSBleGliaWRhIGEgaW5kaWNhw6fDo28gc2U6XG4gICAqIC0gTyBjYW1wbyBjb250ZXIgYHAtcmVxdWlyZWRgO1xuICAgKiAtIE7Do28gcG9zc3VpciBgcC1oZWxwYCBlL291IGBwLWxhYmVsYC5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLW9wdGlvbmFsJykgb3B0aW9uYWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXhpYmUgYSBtZW5zYWdlbSBzZXRhZGEgbmEgcHJvcHJpZWRhZGUgYHAtZXJyb3ItcGF0dGVybmAgc2UgbyBjYW1wbyBlc3RpdmVyIHZhemlvIGUgZm9yIHJlcXVlcmlkby5cbiAgICpcbiAgICogPiBOZWNlc3PDoXJpbyBxdWUgYSBwcm9wcmllZGFkZSBgcC1yZXF1aXJlZGAgZXN0ZWphIGhhYmlsaXRhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1yZXF1aXJlZC1maWVsZC1lcnJvci1tZXNzYWdlJykgc2hvd0Vycm9yTWVzc2FnZVJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDb252ZXJ0ZSBvIGNvbnRlw7pkbyBkbyBjYW1wbyBlbSBtYWnDunN1bG8gYXV0b21hdGljYW1lbnRlLlxuICAgKlxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdwLXVwcGVyLWNhc2UnLCB0cmFuc2Zvcm06IGNvbnZlcnRUb0Jvb2xlYW4gfSkgdXBwZXJDYXNlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgX21hc2tOb0xlbmd0aFZhbGlkYXRpb24gPSBmYWxzZTtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgc2Ugb3MgY2FyYWN0ZXJlcyBlc3BlY2lhaXMgZGEgbcOhc2NhcmEgZGV2ZW0gc2VyIGlnbm9yYWRvcyBhbyB2YWxpZGFyIG9zIGNvbXByaW1lbnRvcyBtw61uaW1vIChgbWluTGVuZ3RoYCkgZSBtw6F4aW1vIChgbWF4TGVuZ3RoYCkgZG8gY2FtcG8uXG4gICAqXG4gICAqIC0gUXVhbmRvIGB0cnVlYCwgYXBlbmFzIG9zIGNhcmFjdGVyZXMgYWxmYW51bcOpcmljb3Mgc2Vyw6NvIGNvbnRhYmlsaXphZG9zIHBhcmEgYSB2YWxpZGHDp8OjbyBkb3MgY29tcHJpbWVudG9zLlxuICAgKiAtIFF1YW5kbyBgZmFsc2VgLCB0b2RvcyBvcyBjYXJhY3RlcmVzLCBpbmNsdWluZG8gb3MgZXNwZWNpYWlzIGRhIG3DoXNjYXJhLCBzZXLDo28gY29uc2lkZXJhZG9zIG5hIHZhbGlkYcOnw6NvLlxuICAgKlxuICAgKiA+IFNlcsOhIGlnbm9yYWRvIGVzc2EgcHJvcHJpZWRhZGUgLCBjYXNvIGVzdGVqYSB1dGlsaXphbmRvIGp1bnRvIGNvbSBhIHByb3ByaWVkYWRlIGBwLW1hc2stZm9ybWF0LW1vZGVsYC5cbiAgICpcbiAgICogRXhlbXBsbzpcbiAgICogYGBgXG4gICAqIDxwby1pbnB1dFxuICAgKiAgIHAtbWFzaz1cIjk5OS05OTlcIlxuICAgKiAgIHAtbWF4bGVuZ3RoPVwiNlwiXG4gICAqICAgcC1taW5sZW5ndGg9XCI0XCJcbiAgICogICBwLW1hc2stbm8tbGVuZ3RoLXZhbGlkYXRpb249XCJ0cnVlXCJcbiAgICogPjwvcG8taW5wdXQ+XG4gICAqIGBgYFxuICAgKiAtIEVudHJhZGE6IGAxMjMtNDU2YCDihpIgVmFsaWRhw6fDo28gc2Vyw6EgYXBsaWNhZGEgc29tZW50ZSBhb3MgbsO6bWVyb3MsIGlnbm9yYW5kbyBvIGNhcmFjdGVyZSBlc3BlY2lhbCBgLWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcbiAgICovXG4gIEBJbnB1dCgncC1tYXNrLW5vLWxlbmd0aC12YWxpZGF0aW9uJykgc2V0IG1hc2tOb0xlbmd0aFZhbGlkYXRpb24odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9tYXNrTm9MZW5ndGhWYWxpZGF0aW9uID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG5cbiAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgfVxuXG4gIGdldCBtYXNrTm9MZW5ndGhWYWxpZGF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXNrTm9MZW5ndGhWYWxpZGF0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGRpc3BhcmFkbyBhbyBzYWlyIGRvIGNhbXBvLlxuICAgKi9cbiAgQE91dHB1dCgncC1ibHVyJykgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRXZlbnRvIGRpc3BhcmFkbyBhbyBlbnRyYXIgZG8gY2FtcG8uXG4gICAqL1xuICBAT3V0cHV0KCdwLWVudGVyJykgZW50ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gYWx0ZXJhciB2YWxvciBlIGRlaXhhciBvIGNhbXBvLlxuICAgKi9cbiAgQE91dHB1dCgncC1jaGFuZ2UnKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEV2ZW50byBkaXNwYXJhZG8gYW8gYWx0ZXJhciB2YWxvciBkbyBtb2RlbC5cbiAgICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlLW1vZGVsJykgY2hhbmdlTW9kZWw6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHR5cGU6IHN0cmluZztcblxuICBvbkNoYW5nZVByb3BhZ2F0ZTogYW55ID0gbnVsbDtcbiAgb2JqTWFzazogYW55O1xuICBtb2RlbExhc3RVcGRhdGU6IGFueTtcbiAgaXNJbnZhbGlkOiBib29sZWFuO1xuICBoYXNWYWxpZGF0b3JSZXF1aXJlZCA9IGZhbHNlO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcm90ZWN0ZWQgb25Ub3VjaGVkOiBhbnkgPSBudWxsO1xuXG4gIHByb3RlY3RlZCBwYXNzZWRXcml0ZVZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCB2YWxpZGF0b3JDaGFuZ2U6IGFueTtcblxuICBwcml2YXRlIF9tYXhsZW5ndGg/OiBudW1iZXI7XG4gIHByaXZhdGUgX21pbmxlbmd0aD86IG51bWJlcjtcbiAgcHJpdmF0ZSBfbm9BdXRvY29tcGxldGU/OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyPzogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgcHJvcHJpZWRhZGUgbmF0aXZhIGBhdXRvY29tcGxldGVgIGRvIGNhbXBvIGNvbW8gYG9mZmAuXG4gICAqXG4gICAqID4gTm8gY29tcG9uZW50ZSBgcG8tcGFzc3dvcmRgIHNlcsOhIGRlZmluaWRvIGNvbW8gYG5ldy1wYXNzd29yZGAuXG4gICAqXG4gICAqIE5vcyBjb21wb25lbnRlcyBgcG8tcGFzc3dvcmRgIGUgYHBvLWxvZ2luYCBvIHZhbG9yIHBhZHLDo28gc2Vyw6EgYHRydWVgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atbm8tYXV0b2NvbXBsZXRlJykgc2V0IG5vQXV0b2NvbXBsZXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbm9BdXRvY29tcGxldGUgPSBjb252ZXJ0VG9Cb29sZWFuKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBub0F1dG9jb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbm9BdXRvY29tcGxldGU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBNZW5zYWdlbSBxdWUgYXBhcmVjZXLDoSBlbnF1YW50byBvIGNhbXBvIG7Do28gZXN0aXZlciBwcmVlbmNoaWRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgQElucHV0KCdwLXBsYWNlaG9sZGVyJykgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlIHx8ICcnO1xuICB9XG4gIGdldCBwbGFjZWhvbGRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIFNlIHZlcmRhZGVpcm8sIGRlc2FiaWxpdGEgbyBjYW1wby5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgZGlzYWJsZWQ/OiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgncC1kaXNhYmxlZCcpIHNldCBzZXREaXNhYmxlZChkaXNhYmxlZDogc3RyaW5nKSB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkID09PSAnJyA/IHRydWUgOiBjb252ZXJ0VG9Cb29sZWFuKGRpc2FibGVkKTtcblxuICAgIHRoaXMudmFsaWRhdGVNb2RlbCgpO1xuICB9XG5cbiAgLyoqIEluZGljYSBxdWUgbyBjYW1wbyBzZXLDoSBzb21lbnRlIGxlaXR1cmEuICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXG4gIHJlYWRvbmx5PzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ3AtcmVhZG9ubHknKSBzZXQgc2V0UmVhZG9ubHkocmVhZG9ubHk6IHN0cmluZykge1xuICAgIHRoaXMucmVhZG9ubHkgPSByZWFkb25seSA9PT0gJycgPyB0cnVlIDogY29udmVydFRvQm9vbGVhbihyZWFkb25seSk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgcXVlIG8gY2FtcG8gc2Vyw6Egb2JyaWdhdMOzcmlvLlxuICAgKiA+IEVzdGEgcHJvcHJpZWRhZGUgw6kgZGVzY29uc2lkZXJhZGEgcXVhbmRvIG8gaW5wdXQgZXN0w6EgZGVzYWJpbGl0YWRvIGAocC1kaXNhYmxlZClgLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICByZXF1aXJlZD86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdwLXJlcXVpcmVkJykgc2V0IHNldFJlcXVpcmVkKHJlcXVpcmVkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnJlcXVpcmVkID0gcmVxdWlyZWQgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4ocmVxdWlyZWQpO1xuXG4gICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIHNlIGEgaW5kaWNhw6fDo28gZGUgY2FtcG8gb2JyaWdhdMOzcmlvIHNlcsOhIGV4aWJpZGEuXG4gICAqXG4gICAqID4gTsOjbyBzZXLDoSBleGliaWRhIGEgaW5kaWNhw6fDo28gc2U6XG4gICAqIC0gTsOjbyBwb3NzdWlyIGBwLWhlbHBgIGUvb3UgYHAtbGFiZWxgLlxuICAgKi9cbiAgQElucHV0KCdwLXNob3ctcmVxdWlyZWQnKSBzaG93UmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU2UgdmVyZGFkZWlybywgbyBjYW1wbyByZWNlYmVyw6EgdW0gYm90w6NvIHBhcmEgc2VyIGxpbXBvLiAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICBjbGVhbj86IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdwLWNsZWFuJykgc2V0IHNldENsZWFuKGNsZWFuOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsZWFuID0gY2xlYW4gPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4oY2xlYW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBFeHByZXNzw6NvIHJlZ3VsYXIgcGFyYSB2YWxpZGFyIG8gY2FtcG8uXG4gICAqIFF1YW5kbyBvIGNhbXBvIHBvc3N1aXIgdW1hIG3DoXNjYXJhIGAocC1tYXNrKWAgc2Vyw6EgYXV0b21hdGljYW1lbnRlIHZhbGlkYWRvIHBvciBlbGEsIHBvcsOpbVxuICAgKiDDqSBwb3Nzw612ZWwgZGVmaW5pciB1bSBwLXBhdHRlcm4gcGFyYSBzdWJzdGl0dWlyIGEgdmFsaWRhw6fDo28gZGEgbcOhc2NhcmEuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICBwYXR0ZXJuPzogc3RyaW5nO1xuICBASW5wdXQoJ3AtcGF0dGVybicpIHNldCBzZXRQYXR0ZXJuKHBhdHRlcm46IHN0cmluZykge1xuICAgIHRoaXMucGF0dGVybiA9IHBhdHRlcm47XG5cbiAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBhIHF1YW50aWRhZGUgbcOheGltYSBkZSBjYXJhY3RlcmVzIHF1ZSBvIGNhbXBvIGFjZWl0YS5cbiAgICovXG4gIEBJbnB1dCgncC1tYXhsZW5ndGgnKSBzZXQgbWF4bGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAoIWlzTmFOKHBhcnNlSW50KDxhbnk+dmFsdWUsIDEwKSkpIHtcbiAgICAgIHRoaXMuX21heGxlbmd0aCA9IHBhcnNlSW50KDxhbnk+dmFsdWUsIDEwKTtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfSBlbHNlIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMuX21heGxlbmd0aCA9IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy52YWxpZGF0ZU1vZGVsKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1heGxlbmd0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4bGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIGEgcXVhbnRpZGFkZSBtw61uaW1hIGRlIGNhcmFjdGVyZXMgcXVlIG8gY2FtcG8gYWNlaXRhLlxuICAgKi9cbiAgQElucHV0KCdwLW1pbmxlbmd0aCcpIHNldCBtaW5sZW5ndGgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICghaXNOYU4ocGFyc2VJbnQoPGFueT52YWx1ZSwgMTApKSkge1xuICAgICAgdGhpcy5fbWlubGVuZ3RoID0gcGFyc2VJbnQoPGFueT52YWx1ZSwgMTApO1xuXG4gICAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgICB9IGVsc2UgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5fbWlubGVuZ3RoID0gdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgICB9XG4gIH1cblxuICBnZXQgbWlubGVuZ3RoKCkge1xuICAgIHJldHVybiB0aGlzLl9taW5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSB1bWEgbcOhc2NhcmEgcGFyYSBvIGNhbXBvLiBFeGVtcGxvczogKCs5OSkgKDk5KSA5OTk5OT8tOTk5OSwgOTk5OTktOTk5LCA5OTkuOTk5Ljk5OS05OS5cbiAgICogQSBtw6FzY2FyYSBnZXJhIHVtYSB2YWxpZGHDp8OjbyBhdXRvbcOhdGljYSBkbyBjYW1wbywgcG9kZW5kbyBlc3RhIHNlciBzdWJzdGl0dcOtZGEgcG9yIHVtIFJFR0VYIGVzcGVjw61maWNvXG4gICAqIGF0cmF2w6lzIGRhIHByb3ByaWVkYWRlIHAtcGF0dGVybi5cbiAgICogTyBjYW1wbyBzZXLDoSBzaW5hbGl6YWRvIGUgbyBmb3JtdWzDoXJpbyBmaWNhcsOhIGludsOhbGlkbyBxdWFuZG8gbyB2YWxvciBpbmZvcm1hZG8gZXN0aXZlciBmb3JhIGRvIHBhZHLDo28gZGVmaW5pZG8sXG4gICAqIG1lc21vIHF1YW5kbyBkZXNhYmlsaXRhZG8uXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICBtYXNrPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgncC1tYXNrJykgc2V0IHNldE1hc2sobWFzazogc3RyaW5nKSB7XG4gICAgdGhpcy5tYXNrID0gbWFzaztcblxuICAgIC8vIEF0dWFsaXphIE3DoXNjYXJhIGRvIENhbXBvXG4gICAgdGhpcy5vYmpNYXNrID0gbmV3IFBvTWFzayh0aGlzLm1hc2ssIHRoaXMubWFza0Zvcm1hdE1vZGVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogSW5kaWNhIHNlIG8gYG1vZGVsYCByZWNlYmVyw6EgbyB2YWxvciBmb3JtYXRhZG8gcGVsYSBtw6FzY2FyYSBvdSBhcGVuYXMgbyB2YWxvciBwdXJvIChzZW0gZm9ybWF0YcOnw6NvKS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgbWFza0Zvcm1hdE1vZGVsPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoJ3AtbWFzay1mb3JtYXQtbW9kZWwnKSBzZXQgc2V0TWFza0Zvcm1hdE1vZGVsKG1hc2tGb3JtYXRNb2RlbDogc3RyaW5nKSB7XG4gICAgdGhpcy5tYXNrRm9ybWF0TW9kZWwgPSBtYXNrRm9ybWF0TW9kZWwgPT09ICcnID8gdHJ1ZSA6IGNvbnZlcnRUb0Jvb2xlYW4obWFza0Zvcm1hdE1vZGVsKTtcblxuICAgIGlmICh0aGlzLm9iak1hc2sgaW5zdGFuY2VvZiBQb01hc2spIHtcbiAgICAgIHRoaXMub2JqTWFzay5mb3JtYXRNb2RlbCA9IHRoaXMubWFza0Zvcm1hdE1vZGVsO1xuXG4gICAgICB0aGlzLnZhbGlkYXRlTW9kZWwoKTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2Q/OiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMub2JqTWFzayA9IG5ldyBQb01hc2sodGhpcy5tYXNrLCB0aGlzLm1hc2tGb3JtYXRNb2RlbCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgY2FsbE9uQ2hhbmdlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnVwZGF0ZU1vZGVsKHZhbHVlKTtcblxuICAgIHRoaXMuY29udHJvbENoYW5nZU1vZGVsRW1pdHRlcih2YWx1ZSk7XG4gIH1cblxuICBjYWxsVXBkYXRlTW9kZWxXaXRoVGltZW91dCh2YWx1ZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy51cGRhdGVNb2RlbCh2YWx1ZSkpO1xuICB9XG5cbiAgY29udHJvbENoYW5nZU1vZGVsRW1pdHRlcih2YWx1ZTogYW55KSB7XG4gICAgaWYgKHRoaXMubW9kZWxMYXN0VXBkYXRlICE9PSB2YWx1ZSB8fCB0aGlzLmVtaXRBbGxDaGFuZ2VzKSB7XG4gICAgICB0aGlzLmNoYW5nZU1vZGVsLmVtaXQodmFsdWUpO1xuICAgICAgdGhpcy5tb2RlbExhc3RVcGRhdGUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgLy8gVXNhZGEgcGFyYSBpbnRlcmNlcHRhciBvcyBlc3RhZG9zIGRlIGhhYmlsaXRhZG8gdmlhIGZvcm1zIGFwaVxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkPy5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8vIEZ1bsOnw6NvIGltcGxlbWVudGFkYSBkbyBDb250cm9sVmFsdWVBY2Nlc3NvclxuICAvLyBVc2FkYSBwYXJhIGludGVyY2VwdGFyIGFzIG11ZGFuw6dhcyBlIG7Do28gYXR1YWxpemFyIGF1dG9tYXRpY2FtZW50ZSBvIE1vZGVsXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZnVuYzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZSA9IGZ1bmM7XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgLy8gVXNhZGEgcGFyYSBpbnRlcmNlcHRhciBhcyBtdWRhbsOnYXMgZSBuw6NvIGF0dWFsaXphciBhdXRvbWF0aWNhbWVudGUgbyBNb2RlbFxuICByZWdpc3Rlck9uVG91Y2hlZChmdW5jOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZ1bmM7XG4gIH1cblxuICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy52YWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHVwZGF0ZU1vZGVsKHZhbHVlOiBhbnkpIHtcbiAgICAvLyBRdWFuZG8gbyBpbnB1dCBuw6NvIHBvc3N1aSB1bSBmb3JtdWzDoXJpbywgZW50w6NvIGVzdGEgZnVuw6fDo28gbsOjbyDDqSByZWdpc3RyYWRhXG4gICAgaWYgKHRoaXMub25DaGFuZ2VQcm9wYWdhdGUpIHtcbiAgICAgIHRoaXMub25DaGFuZ2VQcm9wYWdhdGUodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlKGM6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIGlmICghdGhpcy5oYXNWYWxpZGF0b3JSZXF1aXJlZCAmJiB0aGlzLnNob3dFcnJvck1lc3NhZ2VSZXF1aXJlZCAmJiBjLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSkge1xuICAgICAgdGhpcy5oYXNWYWxpZGF0b3JSZXF1aXJlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHJlcXVpcmVkRmFpbGVkKHRoaXMucmVxdWlyZWQsIHRoaXMuZGlzYWJsZWQsIHRoaXMuZ2V0U2NyZWVuVmFsdWUoKSkpIHtcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlcXVpcmVkOiB7XG4gICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgbWF4bGVuZ3BvYWlsZWQodGhpcy5tYXhsZW5ndGgsIHRoaXMuZ2V0U2NyZWVuVmFsdWUoKSwgdGhpcy5tYXNrRm9ybWF0TW9kZWwgPyBmYWxzZSA6IHRoaXMubWFza05vTGVuZ3RoVmFsaWRhdGlvbilcbiAgICApIHtcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1heGxlbmd0aDoge1xuICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIG1pbmxlbmdwb2FpbGVkKHRoaXMubWlubGVuZ3RoLCB0aGlzLmdldFNjcmVlblZhbHVlKCksIHRoaXMubWFza0Zvcm1hdE1vZGVsID8gZmFsc2UgOiB0aGlzLm1hc2tOb0xlbmd0aFZhbGlkYXRpb24pXG4gICAgKSB7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtaW5sZW5ndGg6IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAocGF0dGVybkZhaWxlZCh0aGlzLnBhdHRlcm4sIGMudmFsdWUpKSB7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICB0aGlzLnZhbGlkYXRlUGF0dGVybk9uV3JpdGVWYWx1ZShjLnZhbHVlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBhdHRlcm46IHtcbiAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lcnJvclBhdHRlcm4gIT09ICcnKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGMuc3RhdHVzQ2hhbmdlc1xuICAgICAgICAucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoc3RhdHVzID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdJTlZBTElEJykge1xuICAgICAgICAgICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5pc0ludmFsaWQgPSBmYWxzZTtcbiAgICByZXR1cm4gdGhpcy5leHRyYVZhbGlkYXRpb24oYyk7XG4gIH1cblxuICAvLyBGdW7Dp8OjbyBpbXBsZW1lbnRhZGEgZG8gQ29udHJvbFZhbHVlQWNjZXNzb3JcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy53cml0ZVZhbHVlTW9kZWwodmFsdWUpO1xuICAgIHRoaXMuY2Q/Lm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHZhbGlkYXRlTW9kZWwoKSB7XG4gICAgaWYgKHRoaXMudmFsaWRhdG9yQ2hhbmdlKSB7XG4gICAgICB0aGlzLnZhbGlkYXRvckNoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHV0aWxpemFkbyBwYXJhIHZhbGlkYXIgbyBwYXR0ZXJuIG5hIGluaWNpYWxpemFjYW8sIGZhemVuZG8gZGVzc2EgZm9ybWEgbyBjYW1wbyBmaWNhIHN1am8gKGRpcnR5KS5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVBhdHRlcm5PbldyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSAmJiB0aGlzLnBhc3NlZFdyaXRlVmFsdWUpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKHZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnBhc3NlZFdyaXRlVmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRnVuw6fDo28gcXVlIGF0cmlidWkgZm9jbyBhbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBQYXJhIHV0aWxpesOhLWxhIMOpIG5lY2Vzc8OhcmlvIHRlciBhIGluc3TDom5jaWEgZG8gY29tcG9uZW50ZSBubyBET00sIHBvZGVuZG8gc2VyIHV0aWxpemFkbyBvIFZpZXdDaGlsZCBkYSBzZWd1aW50ZSBmb3JtYTpcbiAgICpcbiAgICogYGBgXG4gICAqIGltcG9ydCB7IFBvTm9tZURvQ29tcG9uZW50ZUNvbXBvbmVudCB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcbiAgICpcbiAgICogLi4uXG4gICAqXG4gICAqIEBWaWV3Q2hpbGQoUG9Ob21lRG9Db21wb25lbnRlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBub21lRG9Db21wb25lbnRlOiBQb05vbWVEb0NvbXBvbmVudGVDb21wb25lbnQ7XG4gICAqXG4gICAqIGZvY3VzQ29tcG9uZW50KCkge1xuICAgKiAgIHRoaXMubm9tZURvQ29tcG9uZW50ZS5mb2N1cygpO1xuICAgKiB9XG4gICAqIGBgYFxuICAgKi9cbiAgYWJzdHJhY3QgZm9jdXMoKTogdm9pZDtcblxuICAvLyBNw6l0b2RvIHF1ZSByZWNlYmVyw6EgbyB2YWxvciBkbyBtb2RlbFxuICBhYnN0cmFjdCB3cml0ZVZhbHVlTW9kZWwodmFsdWU6IGFueSk6IHZvaWQ7XG5cbiAgLy8gVmFsaWRhw6fDtWVzIGRvIGNhbXBvXG4gIGFic3RyYWN0IGV4dHJhVmFsaWRhdGlvbihjOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIC8vIERldmUgcmV0b3JuYXIgbyB2YWxvciBkbyBjYW1wb1xuICBhYnN0cmFjdCBnZXRTY3JlZW5WYWx1ZSgpOiBzdHJpbmc7XG59XG4iXX0=
@@ -5,15 +5,28 @@ export function requiredFailed(required, disabled, value) {
5
5
  (typeof value === 'boolean' && value);
6
6
  return required && !disabled && !valid;
7
7
  }
8
- export function maxlengpoailed(maxlength, value) {
9
- const validMaxlength = maxlength || maxlength === 0;
10
- const validValue = (value || value === 0) && value.toString();
11
- return validMaxlength && validValue && validValue.length > Number(maxlength);
8
+ export function maxlengpoailed(maxlength, value, maskNoLengthValidation = false) {
9
+ return validateLength(maxlength, value, 'max', maskNoLengthValidation);
10
+ }
11
+ export function minlengpoailed(minlength, value, maskNoLengthValidation = false) {
12
+ return validateLength(minlength, value, 'min', maskNoLengthValidation);
12
13
  }
13
- export function minlengpoailed(minlength, value) {
14
- const validMinlength = minlength || minlength === 0;
14
+ export function validateLength(limit, value, comparison, maskNoLengthValidation = false) {
15
+ if (!limit && limit !== 0) {
16
+ return false;
17
+ }
15
18
  const validValue = (value || value === 0) && value.toString();
16
- return validMinlength && validValue && validValue.length < Number(minlength);
19
+ if (!validValue) {
20
+ return false;
21
+ }
22
+ const processedValue = maskNoLengthValidation ? validValue.replace(/[^\w]/g, '') : validValue;
23
+ if (comparison === 'max') {
24
+ return processedValue.length > Number(limit);
25
+ }
26
+ else if (comparison === 'min') {
27
+ return processedValue.length < Number(limit);
28
+ }
29
+ return false;
17
30
  }
18
31
  export function patternFailed(pattern, value) {
19
32
  let reg;
@@ -38,4 +51,4 @@ export function maxFailed(max, value) {
38
51
  export function dateFailed(value) {
39
52
  return value && isNaN(Date.parse(value));
40
53
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBaUIsRUFBRSxRQUFpQixFQUFFLEtBQTZDO0lBQ2hILE1BQU0sS0FBSyxHQUNULENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQztRQUNwQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNwRCxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckQsQ0FBQyxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUM7SUFDeEMsT0FBTyxRQUFRLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsU0FBaUIsRUFBRSxLQUFzQjtJQUN0RSxNQUFNLGNBQWMsR0FBRyxTQUFTLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQztJQUNwRCxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlELE9BQU8sY0FBYyxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxTQUFpQixFQUFFLEtBQXNCO0lBQ3RFLE1BQU0sY0FBYyxHQUFHLFNBQVMsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE1BQU0sVUFBVSxHQUFHLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUQsT0FBTyxjQUFjLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQy9FLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWUsRUFBRSxLQUFhO0lBQzFELElBQUksR0FBRyxDQUFDO0lBQ1IsSUFBSSxDQUFDO1FBQ0gsR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxPQUFPLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBYTtJQUNsRCxNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztJQUNsQyxPQUFPLFVBQVUsSUFBSSxRQUFRLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBYTtJQUNsRCxNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztJQUNsQyxPQUFPLFVBQVUsSUFBSSxRQUFRLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFhO0lBQ3RDLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiByZXF1aXJlZEZhaWxlZChyZXF1aXJlZDogYm9vbGVhbiwgZGlzYWJsZWQ6IGJvb2xlYW4sIHZhbHVlOiBzdHJpbmcgfCBBcnJheTxhbnk+IHwgbnVtYmVyIHwgYm9vbGVhbikge1xuICBjb25zdCB2YWxpZCA9XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUpIHx8XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUubGVuZ3RoKSB8fFxuICAgICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkpIHx8XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nICYmIHZhbHVlKTtcbiAgcmV0dXJuIHJlcXVpcmVkICYmICFkaXNhYmxlZCAmJiAhdmFsaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXhsZW5ncG9haWxlZChtYXhsZW5ndGg6IG51bWJlciwgdmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICBjb25zdCB2YWxpZE1heGxlbmd0aCA9IG1heGxlbmd0aCB8fCBtYXhsZW5ndGggPT09IDA7XG4gIGNvbnN0IHZhbGlkVmFsdWUgPSAodmFsdWUgfHwgdmFsdWUgPT09IDApICYmIHZhbHVlLnRvU3RyaW5nKCk7XG4gIHJldHVybiB2YWxpZE1heGxlbmd0aCAmJiB2YWxpZFZhbHVlICYmIHZhbGlkVmFsdWUubGVuZ3RoID4gTnVtYmVyKG1heGxlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5sZW5ncG9haWxlZChtaW5sZW5ndGg6IG51bWJlciwgdmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICBjb25zdCB2YWxpZE1pbmxlbmd0aCA9IG1pbmxlbmd0aCB8fCBtaW5sZW5ndGggPT09IDA7XG4gIGNvbnN0IHZhbGlkVmFsdWUgPSAodmFsdWUgfHwgdmFsdWUgPT09IDApICYmIHZhbHVlLnRvU3RyaW5nKCk7XG4gIHJldHVybiB2YWxpZE1pbmxlbmd0aCAmJiB2YWxpZFZhbHVlICYmIHZhbGlkVmFsdWUubGVuZ3RoIDwgTnVtYmVyKG1pbmxlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXR0ZXJuRmFpbGVkKHBhdHRlcm46IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICBsZXQgcmVnO1xuICB0cnkge1xuICAgIHJlZyA9IG5ldyBSZWdFeHAocGF0dGVybik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gcGF0dGVybiAmJiB2YWx1ZSAmJiAhcmVnLnRlc3QodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWluRmFpbGVkKG1pbjogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKSB7XG4gIGNvbnN0IHZhbGlkVmFsdWUgPSB2YWx1ZSB8fCB2YWx1ZSA9PT0gMDtcbiAgY29uc3QgdmFsaWRNaW4gPSBtaW4gfHwgbWluID09PSAwO1xuICByZXR1cm4gdmFsaWRWYWx1ZSAmJiB2YWxpZE1pbiAmJiB2YWx1ZSA8IG1pbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1heEZhaWxlZChtYXg6IG51bWJlciwgdmFsdWU6IG51bWJlcikge1xuICBjb25zdCB2YWxpZFZhbHVlID0gdmFsdWUgfHwgdmFsdWUgPT09IDA7XG4gIGNvbnN0IHZhbGlkTWF4ID0gbWF4IHx8IG1heCA9PT0gMDtcbiAgcmV0dXJuIHZhbGlkVmFsdWUgJiYgdmFsaWRNYXggJiYgdmFsdWUgPiBtYXg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRlRmFpbGVkKHZhbHVlOiBzdHJpbmcpIHtcbiAgcmV0dXJuIHZhbHVlICYmIGlzTmFOKERhdGUucGFyc2UodmFsdWUpKTtcbn1cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1maWVsZC92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBaUIsRUFBRSxRQUFpQixFQUFFLEtBQTZDO0lBQ2hILE1BQU0sS0FBSyxHQUNULENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQztRQUNwQyxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNwRCxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDckQsQ0FBQyxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLENBQUM7SUFDeEMsT0FBTyxRQUFRLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQzVCLFNBQWlCLEVBQ2pCLEtBQXNCLEVBQ3RCLHlCQUFrQyxLQUFLO0lBRXZDLE9BQU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQzVCLFNBQWlCLEVBQ2pCLEtBQXNCLEVBQ3RCLHlCQUFrQyxLQUFLO0lBRXZDLE9BQU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQzVCLEtBQWEsRUFDYixLQUFzQixFQUN0QixVQUF5QixFQUN6Qix5QkFBa0MsS0FBSztJQUV2QyxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQUssSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUU5RixJQUFJLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUN6QixPQUFPLGNBQWMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7U0FBTSxJQUFJLFVBQVUsS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUNoQyxPQUFPLGNBQWMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWUsRUFBRSxLQUFhO0lBQzFELElBQUksR0FBRyxDQUFDO0lBQ1IsSUFBSSxDQUFDO1FBQ0gsR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxPQUFPLElBQUksS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBYTtJQUNsRCxNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztJQUNsQyxPQUFPLFVBQVUsSUFBSSxRQUFRLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxHQUFXLEVBQUUsS0FBYTtJQUNsRCxNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztJQUNsQyxPQUFPLFVBQVUsSUFBSSxRQUFRLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFhO0lBQ3RDLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiByZXF1aXJlZEZhaWxlZChyZXF1aXJlZDogYm9vbGVhbiwgZGlzYWJsZWQ6IGJvb2xlYW4sIHZhbHVlOiBzdHJpbmcgfCBBcnJheTxhbnk+IHwgbnVtYmVyIHwgYm9vbGVhbikge1xuICBjb25zdCB2YWxpZCA9XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUpIHx8XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUubGVuZ3RoKSB8fFxuICAgICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmICh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkpIHx8XG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nICYmIHZhbHVlKTtcbiAgcmV0dXJuIHJlcXVpcmVkICYmICFkaXNhYmxlZCAmJiAhdmFsaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXhsZW5ncG9haWxlZChcbiAgbWF4bGVuZ3RoOiBudW1iZXIsXG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIsXG4gIG1hc2tOb0xlbmd0aFZhbGlkYXRpb246IGJvb2xlYW4gPSBmYWxzZVxuKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWxpZGF0ZUxlbmd0aChtYXhsZW5ndGgsIHZhbHVlLCAnbWF4JywgbWFza05vTGVuZ3RoVmFsaWRhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5sZW5ncG9haWxlZChcbiAgbWlubGVuZ3RoOiBudW1iZXIsXG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXIsXG4gIG1hc2tOb0xlbmd0aFZhbGlkYXRpb246IGJvb2xlYW4gPSBmYWxzZVxuKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWxpZGF0ZUxlbmd0aChtaW5sZW5ndGgsIHZhbHVlLCAnbWluJywgbWFza05vTGVuZ3RoVmFsaWRhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUxlbmd0aChcbiAgbGltaXQ6IG51bWJlcixcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcixcbiAgY29tcGFyaXNvbjogJ21heCcgfCAnbWluJyxcbiAgbWFza05vTGVuZ3RoVmFsaWRhdGlvbjogYm9vbGVhbiA9IGZhbHNlXG4pOiBib29sZWFuIHtcbiAgaWYgKCFsaW1pdCAmJiBsaW1pdCAhPT0gMCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHZhbGlkVmFsdWUgPSAodmFsdWUgfHwgdmFsdWUgPT09IDApICYmIHZhbHVlLnRvU3RyaW5nKCk7XG4gIGlmICghdmFsaWRWYWx1ZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHByb2Nlc3NlZFZhbHVlID0gbWFza05vTGVuZ3RoVmFsaWRhdGlvbiA/IHZhbGlkVmFsdWUucmVwbGFjZSgvW15cXHddL2csICcnKSA6IHZhbGlkVmFsdWU7XG5cbiAgaWYgKGNvbXBhcmlzb24gPT09ICdtYXgnKSB7XG4gICAgcmV0dXJuIHByb2Nlc3NlZFZhbHVlLmxlbmd0aCA+IE51bWJlcihsaW1pdCk7XG4gIH0gZWxzZSBpZiAoY29tcGFyaXNvbiA9PT0gJ21pbicpIHtcbiAgICByZXR1cm4gcHJvY2Vzc2VkVmFsdWUubGVuZ3RoIDwgTnVtYmVyKGxpbWl0KTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdHRlcm5GYWlsZWQocGF0dGVybjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gIGxldCByZWc7XG4gIHRyeSB7XG4gICAgcmVnID0gbmV3IFJlZ0V4cChwYXR0ZXJuKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBwYXR0ZXJuICYmIHZhbHVlICYmICFyZWcudGVzdCh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW5GYWlsZWQobWluOiBudW1iZXIsIHZhbHVlOiBudW1iZXIpIHtcbiAgY29uc3QgdmFsaWRWYWx1ZSA9IHZhbHVlIHx8IHZhbHVlID09PSAwO1xuICBjb25zdCB2YWxpZE1pbiA9IG1pbiB8fCBtaW4gPT09IDA7XG4gIHJldHVybiB2YWxpZFZhbHVlICYmIHZhbGlkTWluICYmIHZhbHVlIDwgbWluO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF4RmFpbGVkKG1heDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyKSB7XG4gIGNvbnN0IHZhbGlkVmFsdWUgPSB2YWx1ZSB8fCB2YWx1ZSA9PT0gMDtcbiAgY29uc3QgdmFsaWRNYXggPSBtYXggfHwgbWF4ID09PSAwO1xuICByZXR1cm4gdmFsaWRWYWx1ZSAmJiB2YWxpZE1heCAmJiB2YWx1ZSA+IG1heDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVGYWlsZWQodmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gdmFsdWUgJiYgaXNOYU4oRGF0ZS5wYXJzZSh2YWx1ZSkpO1xufVxuIl19
@@ -261,6 +261,16 @@ export class PoStepperBaseComponent {
261
261
  * @default `po-icon-edit`
262
262
  */
263
263
  iconActive;
264
+ /**
265
+ * @optional
266
+ *
267
+ * @description
268
+ *
269
+ * Desabilita o clique nos steps.
270
+ *
271
+ * @default `false`
272
+ */
273
+ disabledClick = false;
264
274
  initializeSteps() {
265
275
  const hasStatus = this._steps.some(step => step.status !== PoStepperStatus.Default);
266
276
  if (!hasStatus && this.step === 1) {
@@ -268,7 +278,7 @@ export class PoStepperBaseComponent {
268
278
  }
269
279
  }
270
280
  static ɵfac = function PoStepperBaseComponent_Factory(t) { return new (t || PoStepperBaseComponent)(); };
271
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoStepperBaseComponent, inputs: { stepIcons: [0, "p-step-icons", "stepIcons"], stepSize: [0, "p-step-size", "stepSize"], alignCenter: [0, "p-align-center", "alignCenter"], orientation: [0, "p-orientation", "orientation"], step: [0, "p-step", "step"], steps: [0, "p-steps", "steps"], sequential: [0, "p-sequential", "sequential"], iconDone: [0, "p-step-icon-done", "iconDone"], iconActive: [0, "p-step-icon-active", "iconActive"] }, outputs: { onChangeStep: "p-change-step" } });
281
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoStepperBaseComponent, inputs: { stepIcons: [0, "p-step-icons", "stepIcons"], stepSize: [0, "p-step-size", "stepSize"], alignCenter: [0, "p-align-center", "alignCenter"], orientation: [0, "p-orientation", "orientation"], step: [0, "p-step", "step"], steps: [0, "p-steps", "steps"], sequential: [0, "p-sequential", "sequential"], iconDone: [0, "p-step-icon-done", "iconDone"], iconActive: [0, "p-step-icon-active", "iconActive"], disabledClick: [0, "p-disable-click", "disabledClick"] }, outputs: { onChangeStep: "p-change-step" } });
272
282
  }
273
283
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoStepperBaseComponent, [{
274
284
  type: Directive
@@ -302,5 +312,8 @@ export class PoStepperBaseComponent {
302
312
  }], iconActive: [{
303
313
  type: Input,
304
314
  args: ['p-step-icon-active']
315
+ }], disabledClick: [{
316
+ type: Input,
317
+ args: ['p-disable-click']
305
318
  }] }); })();
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc3RlcHBlci1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1zdGVwcGVyL3BvLXN0ZXBwZXItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRWpFLE1BQU0sMkJBQTJCLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxDQUFDO0FBRXBFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDOzs7Ozs7Ozs7O09BVUc7SUFDb0IsU0FBUyxDQUFVO0lBRTFDOzs7Ozs7Ozs7Ozs7T0FZRztJQUNtQixRQUFRLENBQVM7SUFFdkMsOEVBQThFO0lBQ3JELFlBQVksR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztJQUU3RSxZQUFZLEdBQWEsSUFBSSxDQUFDO0lBQzlCLFlBQVksR0FBMEIsMkJBQTJCLENBQUM7SUFDbEUsV0FBVyxHQUFhLElBQUksQ0FBQztJQUM3QixLQUFLLEdBQVcsQ0FBQyxDQUFDO0lBQ2xCLE1BQU0sR0FBeUIsRUFBRSxDQUFDO0lBRTFDOzs7Ozs7Ozs7OztPQVdHO0lBRUgsSUFBNkIsV0FBVyxDQUFDLFdBQW9CO1FBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENB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LEtBQUs7a0JBQTFCLEtBQUs7bUJBQUMsU0FBUztZQXFCVyxVQUFVO2tCQUFwQyxLQUFLO21CQUFDLGNBQWM7WUF5Q00sUUFBUTtrQkFBbEMsS0FBSzttQkFBQyxrQkFBa0I7WUEyQkksVUFBVTtrQkFBdEMsS0FBSzttQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb1N0ZXBDb21wb25lbnQgfSBmcm9tICcuL3BvLXN0ZXAvcG8tc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9TdGVwcGVySXRlbSB9IGZyb20gJy4vcG8tc3RlcHBlci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1N0ZXBwZXJPcmllbnRhdGlvbiB9IGZyb20gJy4vZW51bXMvcG8tc3RlcHBlci1vcmllbnRhdGlvbi5lbnVtJztcbmltcG9ydCB7IFBvU3RlcHBlclN0YXR1cyB9IGZyb20gJy4vZW51bXMvcG8tc3RlcHBlci1zdGF0dXMuZW51bSc7XG5cbmNvbnN0IHBvU3RlcHBlck9yaWVudGF0aW9uRGVmYXVsdCA9IFBvU3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWw7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTyBgcG8tc3RlcHBlcmAgcGVybWl0ZSBxdWUgdW0gcHJvY2Vzc28gc2VqYSBkaXZpZGlkbyBlbSBwYXNzb3MgcGFyYSBxdWUgbyB1c3XDoXJpbyBvIHJlYWxpemVcbiAqIG1haXMgZmFjaWxtZW50ZS5cbiAqXG4gKiBFeGlzdGVtIGR1YXMgZm9ybWFzIGRlIHV0aWxpemHDp8OjbzpcbiAqXG4gKiAxIC0gVXNhbmRvIG8gY29tcG9uZW50ZSBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApIHBhcmEgcmVuZGVyaXphciBlIGRlc2NyZXZlciBvcyBwYXNzb3MuXG4gKlxuICogMiAtIEF0cmF2w6lzIGRhIHByb3ByaWVkYWRlIGBwLXN0ZXBzYCBwYXJhIGRlc2NyZXZlciBvcyBwYXNzb3MgZG8gcHJvY2Vzc28sIHNlbmRvIHJlc3BvbnNhYmlsaWRhZGUgZG8gZGVzZW52b2x2ZWRvciBvIGNvbnRyb2xlXG4gKiBkZSByZW5kZXJpemHDp8OjbyBkbyBxdWUgc2Vyw6EgZXhpYmlkbyBhIGNhZGEgKnN0ZXAqIGF0aXZvLlxuICpcbiAqIEF0cmF2w6lzIGRlIHN1YXMgcHJvcHJpZWRhZGVzLCDDqSBwb3Nzw612ZWwgZGVmaW5pciBzZSBzdWEgb3JpZW50YcOnw6NvIHNlcsOhIGhvcml6b250YWwgb3UgdmVydGljYWwsXG4gKiBhbMOpbSBkYSBwb3NzaWJpbGlkYWRlIGRlIGF1bWVudGFyIG8gdGFtYW5obyBkb3MgKnN0ZXBzKi5cbiAqXG4gKiBUYW1iw6ltIMOpIHBvc3PDrXZlbCBuYXZlZ2FyIGVudHJlIG9zICpzdGVwcyogYXRyYXbDqXMgZG8gdGVjbGFkbyB1dGlsaXphbmRvIGEgdGVjbGEgKnRhYiogZSwgcGFyYSBhdGl2YXIgbyAqc3RlcCogZW0gZm9jbyBiYXN0YVxuICogcHJlc3Npb25hciBhIHRlY2xhICplbnRlciouIEFsw6ltIGRpc3NvLCDDqSBwb3Nzw612ZWwgYXRpdmFyIGEgZXhpYmnDp8OjbyBkZSDDrWNvbmVzIG5vIGx1Z2FyIGRlIG7Dum1lcm9zIG5vcyAqc3RlcHMqIGF0cmF2w6lzIGRhXG4gKiBwcm9wcmllZGFkZSBbYHAtc3RlcC1pY29uc2BdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXBwZXIjc3RlcEljb25zUHJvcGVydHkpLlxuICpcbiAqICMjIyMgVXRpbGl6YW5kbyBvcyBtw6l0b2RvcyBkbyBjb21wb25lbnRlOlxuICpcbiAqIFBhcmEgYWNlc3NhciBvcyBtw6l0b2RvcyBkbyBjb21wb25lbnRlIMOpIG5lY2Vzc8OhcmlvIHRlciBhIHJlZmVyw6puY2lhIGRvIG1lc21vLlxuICpcbiAqIFBvciBleGVtcGxvLCB1dGlsaXphbmRvIHVtIFsqKlZpZXdDaGlsZCoqXShodHRwczovL2FuZ3VsYXIuaW8vYXBpL2NvcmUvVmlld0NoaWxkKTpcbiAqXG4gKiBgYGBcbiAqIEBWaWV3Q2hpbGQoUG9TdGVwcGVyQ29tcG9uZW50KSBwb1N0ZXBwZXJDb21wb25lbnQ6IFBvU3RlcHBlckNvbXBvbmVudDtcbiAqIGBgYFxuICpcbiAqIEUgcGFyYSBhY2Vzc2FyIG8gbcOpdG9kbzpcbiAqXG4gKiBgYGBcbiAqIHBvU3RlcHBlckNvbXBvbmVudC5uZXh0KCk7XG4gKiBgYGBcbiAqXG4gKiAjIyMjIEJvYXMgcHLDoXRpY2FzXG4gKlxuICogLSBFdml0ZSBgbGFiZWxzYCBleHRlbnNvcyBxdWUgcXVlYnJhbSBvIGxheW91dCBkbyBgcG8tc3RlcHBlcmAsIHVzZSBgbGFiZWxzYCBkaXJldG9zLCBjdXJ0b3MgZSBpbnR1aXRpdm9zLlxuICogLSBVdGlsaXplIGFwZW5hcyB1bSBgcG8tc3RlcHBlcmAgcG9yIHDDoWdpbmEuXG4gKlxuICogIyMjIyBUb2tlbnMgY3VzdG9taXrDoXZlaXNcbiAqXG4gKiDDiSBwb3Nzw612ZWwgYWx0ZXJhciBvIGVzdGlsbyBkbyBjb21wb25lbnRlIHVzYW5kbyBvcyBzZWd1aW50ZXMgdG9rZW5zIChDU1MpOlxuICpcbiAqID4gUGFyYSBtYWlvcmVzIGluZm9ybWHDp8O1ZXMsIGFjZXNzZSBvIGd1aWEgW1BlcnNvbmFsaXphbmRvIG8gVGVtYSBQYWRyw6NvIGNvbSBUb2tlbnMgQ1NTXShodHRwczovL3BvLXVpLmlvL2d1aWRlcy90aGVtZS1jdXN0b21pemF0aW9uKS5cbiAqXG4gKiB8IFByb3ByaWVkYWRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmnDp8OjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVmFsb3IgUGFkcsOjbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXxcbiAqIHwgKipMYWJlbCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtZmFtaWx5YCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBGYW3DrWxpYSB0aXBvZ3LDoWZpY2EgdXNhZGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtZmFtaWx5LXRoZW1lKWAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtc2l6ZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUYW1hbmhvIGRhIGZvbnRlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXNpemUtZGVmYXVsdClgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXdlaWdodGAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUGVzbyBkYSBmb250ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC13ZWlnaHQtbm9ybWFsKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipTdGVwIC0gRG9uZSoqICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLXRleHQtY29sb3JgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZG8gdGV4dG8gbm8gc3RlcCBjb25jbHXDrWRvICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItaWNvbi1kb25lYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkbyDDrWNvbmUgbm8gc3RlcCBjb25jbHXDrWRvICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1kYXJrLTcwKWAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1kb25lYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkZSBmdW5kbyBubyBzdGVwIGNvbmNsdcOtZG8gICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTAwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkxpbmUgLSBEb25lKiogICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItbGluZS1kb25lYCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkYSBsaW5oYSBubyBzdGVwIGNvbmNsdcOtZG8gICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLW1pZC00MClgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKlN0ZXAgLSBDdXJyZW50KiogICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItaWNvbi1jdXJyZW50YCAgICAgICAgICAgICAgICAgICB8IENvciBkbyDDrWNvbmUgbm8gc3RlcCBhdHVhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTAwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1iYWNrZ3JvdW5kLWN1cnJlbnRgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRlIGZ1bmRvIG5vIHN0ZXAgYXR1YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWRlZmF1bHQpYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHQtY3VycmVudGAgICAgICAgICAgICAgICAgICB8IFBlc28gZGEgZm9udGUgbm8gc3RlcCBhdHVhbCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpYCAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqU3RlcCAtIE5leHQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXNpemUtY2lyY2xlYCAgICAgICAgICAgICAgICAgICAgIHwgVGFtYW5obyBkYSBmb250ZSBubyBjw61yY3VsbyBkbyBwcsOzeGltbyBzdGVwICAgICAgICAgICB8IGB2YXIoLS1mb250LXNpemUtc20pYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1jb2xvci1uZXh0YCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIMOtY29uZSBubyBwcsOzeGltbyBzdGVwICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1hY3Rpb24tZGlzYWJsZWQpYCAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS10ZXh0LWNvbG9yLW5leHRgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIHRleHRvIG5vIHByw7N4aW1vIHN0ZXAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtbGlnaHQtMzApYCAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqRm9jdXNlZCoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1vdXRsaW5lLWNvbG9yLWZvY3VzZWRgICAgICAgICAgICAgICAgIHwgQ29yIGRvIG91dGxpbmUgZG8gZXN0YWRvIGRlIGZvY3VzICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWZvY3VzKWAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUG9TdGVwcGVyQmFzZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIDxhIGlkPVwic3RlcEljb25zUHJvcGVydHlcIj48L2E+XG4gICAqXG4gICAqIEhhYmlsaXRhIGEgZXhpYmnDp8OjbyBkZSDDrWNvbmUgYW8gaW52w6lzIGRlIG7Dum1lcm8gbm8gY2VudHJvIGRvIGPDrXJjdWxvIGRvcyAqc3RlcHMqLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3Atc3RlcC1pY29ucycpIHN0ZXBJY29uczogYm9vbGVhbjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgbyB0YW1hbmhvIGRvcyAqc3RlcHMqIGVtICpwaXhlbHMqLCBwb3NzaWJpbGl0YW5kbyB1bSBtYWlvciBkZXN0YXF1ZS5cbiAgICpcbiAgICogTyB2YWxvciBpbmZvcm1hZG8gZGV2ZSBzZXIgZW50cmUgYDI0YCBlIGA2NGAuXG4gICAqXG4gICAqID4gVmFsb3JlcyBxdWUgbsOjbyBzZSBlbnF1YWRyYXJlbSBhIGVzdGEgcmVncmEgc2Vyw6NvIGlnbm9yYWRvcywgbWFudGVuZG8tc2UgbyB2YWxvciAqZGVmYXVsdCouXG4gICAqXG4gICAqIEBkZWZhdWx0IGAyNGBcbiAgICovXG4gIEBJbnB1dCgncC1zdGVwLXNpemUnKSBzdGVwU2l6ZTogbnVtYmVyO1xuXG4gIC8qKiBBw6fDo28gcXVlIHNlcsOhIGV4ZWN1dGFkYSBxdWFuZG8gbyB1c3XDoXJpbyBtdWRhciBvIHBhc3NvIGRvIGBwby1zdGVwcGVyYC4gKi9cbiAgQE91dHB1dCgncC1jaGFuZ2Utc3RlcCcpIG9uQ2hhbmdlU3RlcCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgUG9TdGVwQ29tcG9uZW50PigpO1xuXG4gIHByaXZhdGUgX2FsaWduQ2VudGVyPzogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgX29yaWVudGF0aW9uPzogUG9TdGVwcGVyT3JpZW50YXRpb24gPSBwb1N0ZXBwZXJPcmllbnRhdGlvbkRlZmF1bHQ7XG4gIHByaXZhdGUgX3NlcXVlbnRpYWw/OiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfc3RlcDogbnVtYmVyID0gMTtcbiAgcHJpdmF0ZSBfc3RlcHM6IEFycmF5PFBvU3RlcHBlckl0ZW0+ID0gW107XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIG8gYWxpbmhhbWVudG8gZG9zICpzdGVwcyogZSAqbGFiZWxzKiBubyAqc3RlcHBlciosIGRlcGVuZGVuZG8gZGEgb3JpZW50YcOnw6NvLlxuICAgKlxuICAgKiAtIFF1YW5kbyBgdHJ1ZWAsIGZpY2FtIGNlbnRyYWxpemFkb3MgZW0gYW1iYXMgYXMgb3JpZW50YcOnw7VlcyAoaG9yaXpvbnRhbCBlIHZlcnRpY2FsKS5cbiAgICogLSBRdWFuZG8gYGZhbHNlYCwgZmljYW0gYWxpbmhhZG9zIMOgIGVzcXVlcmRhIG5hIG9yaWVudGHDp8OjbyBob3Jpem9udGFsIGUgYW8gdG9wbyBuYSBvcmllbnRhw6fDo28gdmVydGljYWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cblxuICBASW5wdXQoJ3AtYWxpZ24tY2VudGVyJykgc2V0IGFsaWduQ2VudGVyKGFsaWduQ2VudGVyOiBib29sZWFuKSB7XG4gICAgdGhpcy5fYWxpZ25DZW50ZXIgPSBjb252ZXJ0VG9Cb29sZWFuKGFsaWduQ2VudGVyKTtcbiAgfVxuXG4gIGdldCBhbGlnbkNlbnRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWxpZ25DZW50ZXI7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBvcmllbnRhw6fDo28gZGUgZXhpYmnDp8OjbyBkbyBgcG8tc3RlcHBlcmAuXG4gICAqXG4gICAqID4gVmVqYSBvcyB2YWxvcmVzIHbDoWxpZG9zIG5vICplbnVtKiBbUG9TdGVwcGVyT3JpZW50YXRpb25dKGRvY3VtZW50YXRpb24vcG8tc3RlcHBlciNzdGVwcGVyT3JpZW50YXRpb24pLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgUG9TdGVwcGVyT3JpZW50YXRpb24uSG9yaXpvbnRhbGBcbiAgICovXG4gIEBJbnB1dCgncC1vcmllbnRhdGlvbicpIHNldCBvcmllbnRhdGlvbih2YWx1ZTogUG9TdGVwcGVyT3JpZW50YXRpb24pIHtcbiAgICB0aGlzLl9vcmllbnRhdGlvbiA9ICg8YW55Pk9iamVjdCkudmFsdWVzKFBvU3RlcHBlck9yaWVudGF0aW9uKS5pbmNsdWRlcyh2YWx1ZSlcbiAgICAgID8gdmFsdWVcbiAgICAgIDogcG9TdGVwcGVyT3JpZW50YXRpb25EZWZhdWx0O1xuICB9XG5cbiAgZ2V0IG9yaWVudGF0aW9uKCk6IFBvU3RlcHBlck9yaWVudGF0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fb3JpZW50YXRpb247XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBDb250cm9sYSBvIHBhc3NvIGF0dWFsIGRvIGBwby1zdGVwcGVyYC5cbiAgICpcbiAgICogPiBBbyB1dGlsaXphciBlc3RhIHByb3ByaWVkYWRlIGUgdGFtYsOpbSB1dGlsaXphciBvIGNvbXBvbmVudGUgWyoqcG8tc3RlcCoqXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwKSxcbiAgICogbyB2YWxvciBkZXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBwZXJtYW5lY2VuZG8gYSBkZWZpbmnDp8OjbyBkbyBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMWBcbiAgICovXG4gIEBJbnB1dCgncC1zdGVwJykgc2V0IHN0ZXAoc3RlcDogbnVtYmVyKSB7XG4gICAgaWYgKHN0ZXAgPj0gMSAmJiBzdGVwIDw9IHRoaXMuc3RlcHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9zdGVwID0gc3RlcDtcbiAgICAgIHRoaXMuX3N0ZXBzW3RoaXMuX3N0ZXAgLSAxXS5zdGF0dXMgPSBQb1N0ZXBwZXJTdGF0dXMuQWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXA7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBMaXN0YSBkb3MgaXRlbnMgZG8gc3RlcHBlci4gU2UgbyB2YWxvciBlc3RpdmVyIGluZGVmaW5pZG8gb3UgaW52w6FsaWRvLCBzZXLDoSBpbmljaWFsaXphZG8gY29tbyB1bSBhcnJheSB2YXppby5cbiAgICpcbiAgICogPiBBbyB1dGlsaXphciBlc3RhIHByb3ByaWVkYWRlIGUgdGFtYsOpbSB1dGlsaXphciBvIGNvbXBvbmVudGUgWyoqcG8tc3RlcCoqXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwKSxcbiAgICogbyB2YWxvciBkZXN0YSBwcm9wcmllZGFkZSBzZXLDoSBpZ25vcmFkYSBwZXJtYW5lY2VuZG8gYSBkZWZpbmnDp8OjbyBkbyBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApLlxuICAgKi9cbiAgQElucHV0KCdwLXN0ZXBzJykgc2V0IHN0ZXBzKHN0ZXBzOiBBcnJheTxQb1N0ZXBwZXJJdGVtPikge1xuICAgIHRoaXMuX3N0ZXBzID0gQXJyYXkuaXNBcnJheShzdGVwcykgPyBzdGVwcyA6IFtdO1xuICAgIHRoaXMuX3N0ZXBzLmZvckVhY2goc3RlcCA9PiAoc3RlcC5zdGF0dXMgPSBzdGVwLnN0YXR1cyA/PyBQb1N0ZXBwZXJTdGF0dXMuRGVmYXVsdCkpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZVN0ZXBzKCk7XG4gIH1cblxuICBnZXQgc3RlcHMoKTogQXJyYXk8UG9TdGVwcGVySXRlbT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGVwcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBzZSBvIGBwby1zdGVwcGVyYCBzZXLDoSBzZXF1ZW5jaWFsIG91IGFsZWF0w7NyaW8uXG4gICAqXG4gICAqID4gQW8gdXRpbGl6YXIgbyBjb21wb25lbnRlIFsqKnBvLXN0ZXAqKl0oL2RvY3VtZW50YXRpb24vcG8tc3RlcCksIG8gdmFsb3IgZGVzdGEgcHJvcHJpZWRhZGUgc2VtcHJlIHNlcsOhIHZlcmRhZGVpcm8uXG4gICAqXG4gICAqIEBkZWZhdWx0IGB0cnVlYFxuICAgKi9cbiAgQElucHV0KCdwLXNlcXVlbnRpYWwnKSBzZXQgc2VxdWVudGlhbChzZXF1ZW50aWFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2VxdWVudGlhbCA9IGNvbnZlcnRUb0Jvb2xlYW4oc2VxdWVudGlhbCk7XG4gIH1cblxuICBnZXQgc2VxdWVudGlhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2VxdWVudGlhbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBlcm1pdGUgZGVmaW5pciBvIMOtY29uZSBkbyBzdGVwIG5vIHN0YXR1cyBjb25jbHXDrWRvLlxuICAgKiBFc3RhIHByb3ByaWVkYWRlIHBlcm1pdGUgdXNhciDDrWNvbmVzIGRhIFtCaWJsaW90ZWNhIGRlIMOtY29uZXNdKGh0dHBzOi8vcG8tdWkuaW8vaWNvbnMpIG91IGRhIGJpYmxpb3RlY2EgW1Bob3NwaG9yXShodHRwczovL3Bob3NwaG9yaWNvbnMuY29tLykuXG4gICAqXG4gICAqIEV4ZW1wbG8gdXNhbmRvIGEgYmlibGlvdGVjYSBkZSDDrWNvbmVzIHBhZHLDo286XG4gICAqIGBgYFxuICAgKiA8cG8tc3RlcHBlciBwLXN0ZXAtaWNvbi1kb25lPVwicG8taWNvbiBwby1pY29uLWV5ZVwiPlxuICAgKiAgICAuLi5cbiAgICogPC9wby1zdGVwcGVyPlxuICAgKiBgYGBcbiAgICogRXhlbXBsbyB1c2FuZG8gYSBiaWJsaW90ZWNhICpQaG9zcGhvcio6XG4gICAqIGBgYFxuICAgKiA8cG8tc3RlcHBlciBwLXN0ZXAtaWNvbi1kb25lPVwicGggcGgtY2hlY2stY2lyY2xlXCI+XG4gICAqICAgIC4uLlxuICAgKiA8L3BvLXN0ZXBwZXI+XG4gICAqIGBgYFxuICAgKiBPdXRyYSBvcMOnw6NvIHNlcmlhIGEgY3VzdG9taXphw6fDo28gZG8gw61jb25lIGF0cmF2w6lzIGRvIGBUZW1wbGF0ZVJlZmAsIGNvbmZvcm1lIGV4ZW1wbG8gYWJhaXhvOlxuICAgKiBgYGBcbiAgICogPHBvLXN0ZXBwZXIgW3Atc3RlcC1pY29uLWRvbmVdPVwiZG9uZUljb25cIj5cbiAgICogICAgLi4uXG4gICAqIDwvcG8tc3RlcHBlcj5cbiAgICpcbiAgICogPG5nLXRlbXBsYXRlICNkb25lSWNvbj5cbiAgICogICAgPGkgY2xhc3M9XCJwaCBwaC1jaGVjay1mYXRcIj48L2k+XG4gICAqIDwvbmctdGVtcGxhdGU+XG4gICAqIGBgYFxuICAgKiA+IERldmUtc2UgdXNhciBgZm9udC1zaXplOiBpbmhlcml0YCBwYXJhIGFqdXN0YXIgw61jb25lcyBxdWUgbsOjbyBzZSBhanVzdGFtIGF1dG9tYXRpY2FtZW50ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHBvLWljb24tb2tgXG4gICAqL1xuICBASW5wdXQoJ3Atc3RlcC1pY29uLWRvbmUnKSBpY29uRG9uZT86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFBlcm1pdGUgZGVmaW5pciBvIMOtY29uZSBkbyBzdGVwIG5vIHN0YXR1cyBhdGl2by5cbiAgICogRXN0YSBwcm9wcmllZGFkZSBwZXJtaXRlIHVzYXIgw61jb25lcyBkYSBbQmlibGlvdGVjYSBkZSDDrWNvbmVzXShodHRwczovL3BvLXVpLmlvL2ljb25zKSBvdSBkYSBiaWJsaW90ZWNhIFtQaG9zcGhvcl0oaHR0cHM6Ly9waG9zcGhvcmljb25zLmNvbS8pLlxuICAgKlxuICAgKiBFeGVtcGxvIHVzYW5kbyBhIGJpYmxpb3RlY2EgZGUgw61jb25lcyBwYWRyw6NvOlxuICAgKiBgYGBcbiAgICogPHBvLXN0ZXBwZXIgcC1zdGVwLWljb24tYWN0aXZlPVwicG8taWNvbiBwby1pY29uLXNldHRpbmdzXCI+XG4gICAqICAgIC4uLlxuICAgKiA8L3BvLXN0ZXBwZXI+XG4gICAqIGBgYFxuICAgKiBFeGVtcGxvIHVzYW5kbyBhIGJpYmxpb3RlY2EgKlBob3NwaG9yKjpcbiAgICogYGBgXG4gICAqIDxwby1zdGVwcGVyIHAtc3RlcC1pY29uLWFjdGl2ZT1cInBoIHBoLXBlbmNpbC1zaW1wbGUtbGluZVwiPlxuICAgKiAgICAuLi5cbiAgICogPC9wby1zdGVwcGVyPlxuICAgKiBgYGBcbiAgICogUGFyYSBjdXN0b21pemFyIG8gw61jb25lIGF0cmF2w6lzIGRvIGBUZW1wbGF0ZVJlZmAsIHZlamEgYSBkb2N1bWVudGHDp8OjbyBkYSBwcm9wcmllZGFkZSBgcC1zdGVwLWljb24tZG9uZWAuXG4gICAqXG4gICAqID4gRGV2ZS1zZSB1c2FyIGBmb250LXNpemU6IGluaGVyaXRgIHBhcmEgYWp1c3RhciDDrWNvbmVzIHF1ZSBuw6NvIHNlIGFqdXN0YW0gYXV0b21hdGljYW1lbnRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgcG8taWNvbi1lZGl0YFxuICAgKi9cbiAgQElucHV0KCdwLXN0ZXAtaWNvbi1hY3RpdmUnKSBpY29uQWN0aXZlPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplU3RlcHMoKTogdm9pZCB7XG4gICAgY29uc3QgaGFzU3RhdHVzID0gdGhpcy5fc3RlcHMuc29tZShzdGVwID0+IHN0ZXAuc3RhdHVzICE9PSBQb1N0ZXBwZXJTdGF0dXMuRGVmYXVsdCk7XG5cbiAgICBpZiAoIWhhc1N0YXR1cyAmJiB0aGlzLnN0ZXAgPT09IDEpIHtcbiAgICAgIHRoaXMuc3RlcCA9IDE7XG4gICAgfVxuICB9XG59XG4iXX0=
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc3RlcHBlci1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY29tcG9uZW50cy9wby1zdGVwcGVyL3BvLXN0ZXBwZXItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUlwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBRWpFLE1BQU0sMkJBQTJCLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxDQUFDO0FBRXBFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDOzs7Ozs7Ozs7O09BVUc7SUFDb0IsU0FBUyxDQUFVO0lBRTFDOzs7Ozs7Ozs7Ozs7T0FZRztJQUNtQixRQUFRLENBQVM7SUFFdkMsOEVBQThFO0lBQ3JELFlBQVksR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztJQUU3RSxZQUFZLEdBQWEsSUFBSSxDQUFDO0lBQzlCLFlBQVksR0FBMEIsMkJBQTJCLENBQUM7SUFDbEUsV0FBVyxHQUFhLElBQUksQ0FBQztJQUM3QixLQUFLLEdBQVcsQ0FBQyxDQUFDO0lBQ2xCLE1BQU0sR0FBeUIsRUFBRSxDQUFDO0lBRTFDOzs7Ozs7Ozs7OztPQVdHO0lBRUgsSUFBNkIsV0FBVyxDQUFDLFdBQW9CO1FBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENB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ZUFBZTtZQXNCRCxJQUFJO2tCQUF4QixLQUFLO21CQUFDLFFBQVE7WUFxQk8sS0FBSztrQkFBMUIsS0FBSzttQkFBQyxTQUFTO1lBcUJXLFVBQVU7a0JBQXBDLEtBQUs7bUJBQUMsY0FBYztZQXlDTSxRQUFRO2tCQUFsQyxLQUFLO21CQUFDLGtCQUFrQjtZQTJCSSxVQUFVO2tCQUF0QyxLQUFLO21CQUFDLG9CQUFvQjtZQVdELGFBQWE7a0JBQXRDLEtBQUs7bUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGNvbnZlcnRUb0Jvb2xlYW4gfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcblxuaW1wb3J0IHsgUG9TdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9wby1zdGVwL3BvLXN0ZXAuY29tcG9uZW50JztcbmltcG9ydCB7IFBvU3RlcHBlckl0ZW0gfSBmcm9tICcuL3BvLXN0ZXBwZXItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9TdGVwcGVyT3JpZW50YXRpb24gfSBmcm9tICcuL2VudW1zL3BvLXN0ZXBwZXItb3JpZW50YXRpb24uZW51bSc7XG5pbXBvcnQgeyBQb1N0ZXBwZXJTdGF0dXMgfSBmcm9tICcuL2VudW1zL3BvLXN0ZXBwZXItc3RhdHVzLmVudW0nO1xuXG5jb25zdCBwb1N0ZXBwZXJPcmllbnRhdGlvbkRlZmF1bHQgPSBQb1N0ZXBwZXJPcmllbnRhdGlvbi5Ib3Jpem9udGFsO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIE8gYHBvLXN0ZXBwZXJgIHBlcm1pdGUgcXVlIHVtIHByb2Nlc3NvIHNlamEgZGl2aWRpZG8gZW0gcGFzc29zIHBhcmEgcXVlIG8gdXN1w6FyaW8gbyByZWFsaXplXG4gKiBtYWlzIGZhY2lsbWVudGUuXG4gKlxuICogRXhpc3RlbSBkdWFzIGZvcm1hcyBkZSB1dGlsaXphw6fDo286XG4gKlxuICogMSAtIFVzYW5kbyBvIGNvbXBvbmVudGUgWyoqcG8tc3RlcCoqXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwKSBwYXJhIHJlbmRlcml6YXIgZSBkZXNjcmV2ZXIgb3MgcGFzc29zLlxuICpcbiAqIDIgLSBBdHJhdsOpcyBkYSBwcm9wcmllZGFkZSBgcC1zdGVwc2AgcGFyYSBkZXNjcmV2ZXIgb3MgcGFzc29zIGRvIHByb2Nlc3NvLCBzZW5kbyByZXNwb25zYWJpbGlkYWRlIGRvIGRlc2Vudm9sdmVkb3IgbyBjb250cm9sZVxuICogZGUgcmVuZGVyaXphw6fDo28gZG8gcXVlIHNlcsOhIGV4aWJpZG8gYSBjYWRhICpzdGVwKiBhdGl2by5cbiAqXG4gKiBBdHJhdsOpcyBkZSBzdWFzIHByb3ByaWVkYWRlcywgw6kgcG9zc8OtdmVsIGRlZmluaXIgc2Ugc3VhIG9yaWVudGHDp8OjbyBzZXLDoSBob3Jpem9udGFsIG91IHZlcnRpY2FsLFxuICogYWzDqW0gZGEgcG9zc2liaWxpZGFkZSBkZSBhdW1lbnRhciBvIHRhbWFuaG8gZG9zICpzdGVwcyouXG4gKlxuICogVGFtYsOpbSDDqSBwb3Nzw612ZWwgbmF2ZWdhciBlbnRyZSBvcyAqc3RlcHMqIGF0cmF2w6lzIGRvIHRlY2xhZG8gdXRpbGl6YW5kbyBhIHRlY2xhICp0YWIqIGUsIHBhcmEgYXRpdmFyIG8gKnN0ZXAqIGVtIGZvY28gYmFzdGFcbiAqIHByZXNzaW9uYXIgYSB0ZWNsYSAqZW50ZXIqLiBBbMOpbSBkaXNzbywgw6kgcG9zc8OtdmVsIGF0aXZhciBhIGV4aWJpw6fDo28gZGUgw61jb25lcyBubyBsdWdhciBkZSBuw7ptZXJvcyBub3MgKnN0ZXBzKiBhdHJhdsOpcyBkYVxuICogcHJvcHJpZWRhZGUgW2BwLXN0ZXAtaWNvbnNgXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwcGVyI3N0ZXBJY29uc1Byb3BlcnR5KS5cbiAqXG4gKiAjIyMjIFV0aWxpemFuZG8gb3MgbcOpdG9kb3MgZG8gY29tcG9uZW50ZTpcbiAqXG4gKiBQYXJhIGFjZXNzYXIgb3MgbcOpdG9kb3MgZG8gY29tcG9uZW50ZSDDqSBuZWNlc3PDoXJpbyB0ZXIgYSByZWZlcsOqbmNpYSBkbyBtZXNtby5cbiAqXG4gKiBQb3IgZXhlbXBsbywgdXRpbGl6YW5kbyB1bSBbKipWaWV3Q2hpbGQqKl0oaHR0cHM6Ly9hbmd1bGFyLmlvL2FwaS9jb3JlL1ZpZXdDaGlsZCk6XG4gKlxuICogYGBgXG4gKiBAVmlld0NoaWxkKFBvU3RlcHBlckNvbXBvbmVudCkgcG9TdGVwcGVyQ29tcG9uZW50OiBQb1N0ZXBwZXJDb21wb25lbnQ7XG4gKiBgYGBcbiAqXG4gKiBFIHBhcmEgYWNlc3NhciBvIG3DqXRvZG86XG4gKlxuICogYGBgXG4gKiBwb1N0ZXBwZXJDb21wb25lbnQubmV4dCgpO1xuICogYGBgXG4gKlxuICogIyMjIyBCb2FzIHByw6F0aWNhc1xuICpcbiAqIC0gRXZpdGUgYGxhYmVsc2AgZXh0ZW5zb3MgcXVlIHF1ZWJyYW0gbyBsYXlvdXQgZG8gYHBvLXN0ZXBwZXJgLCB1c2UgYGxhYmVsc2AgZGlyZXRvcywgY3VydG9zIGUgaW50dWl0aXZvcy5cbiAqIC0gVXRpbGl6ZSBhcGVuYXMgdW0gYHBvLXN0ZXBwZXJgIHBvciBww6FnaW5hLlxuICpcbiAqICMjIyMgVG9rZW5zIGN1c3RvbWl6w6F2ZWlzXG4gKlxuICogw4kgcG9zc8OtdmVsIGFsdGVyYXIgbyBlc3RpbG8gZG8gY29tcG9uZW50ZSB1c2FuZG8gb3Mgc2VndWludGVzIHRva2VucyAoQ1NTKTpcbiAqXG4gKiA+IFBhcmEgbWFpb3JlcyBpbmZvcm1hw6fDtWVzLCBhY2Vzc2UgbyBndWlhIFtQZXJzb25hbGl6YW5kbyBvIFRlbWEgUGFkcsOjbyBjb20gVG9rZW5zIENTU10oaHR0cHM6Ly9wby11aS5pby9ndWlkZXMvdGhlbWUtY3VzdG9taXphdGlvbikuXG4gKlxuICogfCBQcm9wcmllZGFkZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRGVzY3Jpw6fDo28gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFZhbG9yIFBhZHLDo28gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18XG4gKiB8ICoqTGFiZWwqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LWZhbWlseWAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgRmFtw61saWEgdGlwb2dyw6FmaWNhIHVzYWRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LWZhbWlseS10aGVtZSlgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS1mb250LXNpemVgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgVGFtYW5obyBkYSBmb250ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tZm9udC1zaXplLWRlZmF1bHQpYCAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC13ZWlnaHRgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBlc28gZGEgZm9udGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWZvbnQtd2VpZ2h0LW5vcm1hbClgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICoqU3RlcCAtIERvbmUqKiAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCBgLS10ZXh0LWNvbG9yYCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ29yIGRvIHRleHRvIG5vIHN0ZXAgY29uY2x1w61kbyAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtZGFyay03MClgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWNvbG9yLWljb24tZG9uZWAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZG8gw61jb25lIG5vIHN0ZXAgY29uY2x1w61kbyAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLW5ldXRyYWwtZGFyay03MClgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWJhY2tncm91bmQtZG9uZWAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGUgZnVuZG8gbm8gc3RlcCBjb25jbHXDrWRvICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0wMClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipMaW5lIC0gRG9uZSoqICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWNvbG9yLWxpbmUtZG9uZWAgICAgICAgICAgICAgICAgICAgICAgfCBDb3IgZGEgbGluaGEgbm8gc3RlcCBjb25jbHXDrWRvICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1taWQtNDApYCAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgKipTdGVwIC0gQ3VycmVudCoqICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWNvbG9yLWljb24tY3VycmVudGAgICAgICAgICAgICAgICAgICAgfCBDb3IgZG8gw61jb25lIG5vIHN0ZXAgYXR1YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItbmV1dHJhbC1saWdodC0wMClgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tYmFja2dyb3VuZC1jdXJyZW50YCAgICAgICAgICAgICAgICAgICB8IENvciBkZSBmdW5kbyBubyBzdGVwIGF0dWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWFjdGlvbi1kZWZhdWx0KWAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8IGAtLWZvbnQtd2VpZ2h0LWN1cnJlbnRgICAgICAgICAgICAgICAgICAgfCBQZXNvIGRhIGZvbnRlIG5vIHN0ZXAgYXR1YWwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1mb250LXdlaWdodC1ib2xkKWAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKlN0ZXAgLSBOZXh0KiogICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tZm9udC1zaXplLWNpcmNsZWAgICAgICAgICAgICAgICAgICAgICB8IFRhbWFuaG8gZGEgZm9udGUgbm8gY8OtcmN1bG8gZG8gcHLDs3hpbW8gc3RlcCAgICAgICAgICAgfCBgdmFyKC0tZm9udC1zaXplLXNtKWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tY29sb3ItbmV4dGAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvciBkbyDDrWNvbmUgbm8gcHLDs3hpbW8gc3RlcCAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgdmFyKC0tY29sb3ItYWN0aW9uLWRpc2FibGVkKWAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tdGV4dC1jb2xvci1uZXh0YCAgICAgICAgICAgICAgICAgICAgICB8IENvciBkbyB0ZXh0byBubyBwcsOzeGltbyBzdGVwICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB2YXIoLS1jb2xvci1uZXV0cmFsLWxpZ2h0LTMwKWAgICAgICAgICAgICAgICAgICAgfFxuICogfCAqKkZvY3VzZWQqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgYC0tb3V0bGluZS1jb2xvci1mb2N1c2VkYCAgICAgICAgICAgICAgICB8IENvciBkbyBvdXRsaW5lIGRvIGVzdGFkbyBkZSBmb2N1cyAgICAgICAgICAgICAgICAgICAgIHwgYHZhcigtLWNvbG9yLWFjdGlvbi1mb2N1cylgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFBvU3RlcHBlckJhc2VDb21wb25lbnQge1xuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiA8YSBpZD1cInN0ZXBJY29uc1Byb3BlcnR5XCI+PC9hPlxuICAgKlxuICAgKiBIYWJpbGl0YSBhIGV4aWJpw6fDo28gZGUgw61jb25lIGFvIGludsOpcyBkZSBuw7ptZXJvIG5vIGNlbnRybyBkbyBjw61yY3VsbyBkb3MgKnN0ZXBzKi5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXN0ZXAtaWNvbnMnKSBzdGVwSWNvbnM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIG8gdGFtYW5obyBkb3MgKnN0ZXBzKiBlbSAqcGl4ZWxzKiwgcG9zc2liaWxpdGFuZG8gdW0gbWFpb3IgZGVzdGFxdWUuXG4gICAqXG4gICAqIE8gdmFsb3IgaW5mb3JtYWRvIGRldmUgc2VyIGVudHJlIGAyNGAgZSBgNjRgLlxuICAgKlxuICAgKiA+IFZhbG9yZXMgcXVlIG7Do28gc2UgZW5xdWFkcmFyZW0gYSBlc3RhIHJlZ3JhIHNlcsOjbyBpZ25vcmFkb3MsIG1hbnRlbmRvLXNlIG8gdmFsb3IgKmRlZmF1bHQqLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgMjRgXG4gICAqL1xuICBASW5wdXQoJ3Atc3RlcC1zaXplJykgc3RlcFNpemU6IG51bWJlcjtcblxuICAvKiogQcOnw6NvIHF1ZSBzZXLDoSBleGVjdXRhZGEgcXVhbmRvIG8gdXN1w6FyaW8gbXVkYXIgbyBwYXNzbyBkbyBgcG8tc3RlcHBlcmAuICovXG4gIEBPdXRwdXQoJ3AtY2hhbmdlLXN0ZXAnKSBvbkNoYW5nZVN0ZXAgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlciB8IFBvU3RlcENvbXBvbmVudD4oKTtcblxuICBwcml2YXRlIF9hbGlnbkNlbnRlcj86IGJvb2xlYW4gPSB0cnVlO1xuICBwcml2YXRlIF9vcmllbnRhdGlvbj86IFBvU3RlcHBlck9yaWVudGF0aW9uID0gcG9TdGVwcGVyT3JpZW50YXRpb25EZWZhdWx0O1xuICBwcml2YXRlIF9zZXF1ZW50aWFsPzogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgX3N0ZXA6IG51bWJlciA9IDE7XG4gIHByaXZhdGUgX3N0ZXBzOiBBcnJheTxQb1N0ZXBwZXJJdGVtPiA9IFtdO1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlZmluZSBvIGFsaW5oYW1lbnRvIGRvcyAqc3RlcHMqIGUgKmxhYmVscyogbm8gKnN0ZXBwZXIqLCBkZXBlbmRlbmRvIGRhIG9yaWVudGHDp8Ojby5cbiAgICpcbiAgICogLSBRdWFuZG8gYHRydWVgLCBmaWNhbSBjZW50cmFsaXphZG9zIGVtIGFtYmFzIGFzIG9yaWVudGHDp8O1ZXMgKGhvcml6b250YWwgZSB2ZXJ0aWNhbCkuXG4gICAqIC0gUXVhbmRvIGBmYWxzZWAsIGZpY2FtIGFsaW5oYWRvcyDDoCBlc3F1ZXJkYSBuYSBvcmllbnRhw6fDo28gaG9yaXpvbnRhbCBlIGFvIHRvcG8gbmEgb3JpZW50YcOnw6NvIHZlcnRpY2FsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG5cbiAgQElucHV0KCdwLWFsaWduLWNlbnRlcicpIHNldCBhbGlnbkNlbnRlcihhbGlnbkNlbnRlcjogYm9vbGVhbikge1xuICAgIHRoaXMuX2FsaWduQ2VudGVyID0gY29udmVydFRvQm9vbGVhbihhbGlnbkNlbnRlcik7XG4gIH1cblxuICBnZXQgYWxpZ25DZW50ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FsaWduQ2VudGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogRGVmaW5lIGEgb3JpZW50YcOnw6NvIGRlIGV4aWJpw6fDo28gZG8gYHBvLXN0ZXBwZXJgLlxuICAgKlxuICAgKiA+IFZlamEgb3MgdmFsb3JlcyB2w6FsaWRvcyBubyAqZW51bSogW1BvU3RlcHBlck9yaWVudGF0aW9uXShkb2N1bWVudGF0aW9uL3BvLXN0ZXBwZXIjc3RlcHBlck9yaWVudGF0aW9uKS5cbiAgICpcbiAgICogQGRlZmF1bHQgYFBvU3RlcHBlck9yaWVudGF0aW9uLkhvcml6b250YWxgXG4gICAqL1xuICBASW5wdXQoJ3Atb3JpZW50YXRpb24nKSBzZXQgb3JpZW50YXRpb24odmFsdWU6IFBvU3RlcHBlck9yaWVudGF0aW9uKSB7XG4gICAgdGhpcy5fb3JpZW50YXRpb24gPSAoPGFueT5PYmplY3QpLnZhbHVlcyhQb1N0ZXBwZXJPcmllbnRhdGlvbikuaW5jbHVkZXModmFsdWUpXG4gICAgICA/IHZhbHVlXG4gICAgICA6IHBvU3RlcHBlck9yaWVudGF0aW9uRGVmYXVsdDtcbiAgfVxuXG4gIGdldCBvcmllbnRhdGlvbigpOiBQb1N0ZXBwZXJPcmllbnRhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX29yaWVudGF0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogQ29udHJvbGEgbyBwYXNzbyBhdHVhbCBkbyBgcG8tc3RlcHBlcmAuXG4gICAqXG4gICAqID4gQW8gdXRpbGl6YXIgZXN0YSBwcm9wcmllZGFkZSBlIHRhbWLDqW0gdXRpbGl6YXIgbyBjb21wb25lbnRlIFsqKnBvLXN0ZXAqKl0oL2RvY3VtZW50YXRpb24vcG8tc3RlcCksXG4gICAqIG8gdmFsb3IgZGVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgaWdub3JhZGEgcGVybWFuZWNlbmRvIGEgZGVmaW5pw6fDo28gZG8gWyoqcG8tc3RlcCoqXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwKS5cbiAgICpcbiAgICogQGRlZmF1bHQgYDFgXG4gICAqL1xuICBASW5wdXQoJ3Atc3RlcCcpIHNldCBzdGVwKHN0ZXA6IG51bWJlcikge1xuICAgIGlmIChzdGVwID49IDEgJiYgc3RlcCA8PSB0aGlzLnN0ZXBzLmxlbmd0aCkge1xuICAgICAgdGhpcy5fc3RlcCA9IHN0ZXA7XG4gICAgICB0aGlzLl9zdGVwc1t0aGlzLl9zdGVwIC0gMV0uc3RhdHVzID0gUG9TdGVwcGVyU3RhdHVzLkFjdGl2ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgc3RlcCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zdGVwO1xuICB9XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGlzdGEgZG9zIGl0ZW5zIGRvIHN0ZXBwZXIuIFNlIG8gdmFsb3IgZXN0aXZlciBpbmRlZmluaWRvIG91IGludsOhbGlkbywgc2Vyw6EgaW5pY2lhbGl6YWRvIGNvbW8gdW0gYXJyYXkgdmF6aW8uXG4gICAqXG4gICAqID4gQW8gdXRpbGl6YXIgZXN0YSBwcm9wcmllZGFkZSBlIHRhbWLDqW0gdXRpbGl6YXIgbyBjb21wb25lbnRlIFsqKnBvLXN0ZXAqKl0oL2RvY3VtZW50YXRpb24vcG8tc3RlcCksXG4gICAqIG8gdmFsb3IgZGVzdGEgcHJvcHJpZWRhZGUgc2Vyw6EgaWdub3JhZGEgcGVybWFuZWNlbmRvIGEgZGVmaW5pw6fDo28gZG8gWyoqcG8tc3RlcCoqXSgvZG9jdW1lbnRhdGlvbi9wby1zdGVwKS5cbiAgICovXG4gIEBJbnB1dCgncC1zdGVwcycpIHNldCBzdGVwcyhzdGVwczogQXJyYXk8UG9TdGVwcGVySXRlbT4pIHtcbiAgICB0aGlzLl9zdGVwcyA9IEFycmF5LmlzQXJyYXkoc3RlcHMpID8gc3RlcHMgOiBbXTtcbiAgICB0aGlzLl9zdGVwcy5mb3JFYWNoKHN0ZXAgPT4gKHN0ZXAuc3RhdHVzID0gc3RlcC5zdGF0dXMgPz8gUG9TdGVwcGVyU3RhdHVzLkRlZmF1bHQpKTtcbiAgICB0aGlzLmluaXRpYWxpemVTdGVwcygpO1xuICB9XG5cbiAgZ2V0IHN0ZXBzKCk6IEFycmF5PFBvU3RlcHBlckl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RlcHM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgc2UgbyBgcG8tc3RlcHBlcmAgc2Vyw6Egc2VxdWVuY2lhbCBvdSBhbGVhdMOzcmlvLlxuICAgKlxuICAgKiA+IEFvIHV0aWxpemFyIG8gY29tcG9uZW50ZSBbKipwby1zdGVwKipdKC9kb2N1bWVudGF0aW9uL3BvLXN0ZXApLCBvIHZhbG9yIGRlc3RhIHByb3ByaWVkYWRlIHNlbXByZSBzZXLDoSB2ZXJkYWRlaXJvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgdHJ1ZWBcbiAgICovXG4gIEBJbnB1dCgncC1zZXF1ZW50aWFsJykgc2V0IHNlcXVlbnRpYWwoc2VxdWVudGlhbDogYm9vbGVhbikge1xuICAgIHRoaXMuX3NlcXVlbnRpYWwgPSBjb252ZXJ0VG9Cb29sZWFuKHNlcXVlbnRpYWwpO1xuICB9XG5cbiAgZ2V0IHNlcXVlbnRpYWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlcXVlbnRpYWw7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQZXJtaXRlIGRlZmluaXIgbyDDrWNvbmUgZG8gc3RlcCBubyBzdGF0dXMgY29uY2x1w61kby5cbiAgICogRXN0YSBwcm9wcmllZGFkZSBwZXJtaXRlIHVzYXIgw61jb25lcyBkYSBbQmlibGlvdGVjYSBkZSDDrWNvbmVzXShodHRwczovL3BvLXVpLmlvL2ljb25zKSBvdSBkYSBiaWJsaW90ZWNhIFtQaG9zcGhvcl0oaHR0cHM6Ly9waG9zcGhvcmljb25zLmNvbS8pLlxuICAgKlxuICAgKiBFeGVtcGxvIHVzYW5kbyBhIGJpYmxpb3RlY2EgZGUgw61jb25lcyBwYWRyw6NvOlxuICAgKiBgYGBcbiAgICogPHBvLXN0ZXBwZXIgcC1zdGVwLWljb24tZG9uZT1cInBvLWljb24gcG8taWNvbi1leWVcIj5cbiAgICogICAgLi4uXG4gICAqIDwvcG8tc3RlcHBlcj5cbiAgICogYGBgXG4gICAqIEV4ZW1wbG8gdXNhbmRvIGEgYmlibGlvdGVjYSAqUGhvc3Bob3IqOlxuICAgKiBgYGBcbiAgICogPHBvLXN0ZXBwZXIgcC1zdGVwLWljb24tZG9uZT1cInBoIHBoLWNoZWNrLWNpcmNsZVwiPlxuICAgKiAgICAuLi5cbiAgICogPC9wby1zdGVwcGVyPlxuICAgKiBgYGBcbiAgICogT3V0cmEgb3DDp8OjbyBzZXJpYSBhIGN1c3RvbWl6YcOnw6NvIGRvIMOtY29uZSBhdHJhdsOpcyBkbyBgVGVtcGxhdGVSZWZgLCBjb25mb3JtZSBleGVtcGxvIGFiYWl4bzpcbiAgICogYGBgXG4gICAqIDxwby1zdGVwcGVyIFtwLXN0ZXAtaWNvbi1kb25lXT1cImRvbmVJY29uXCI+XG4gICAqICAgIC4uLlxuICAgKiA8L3BvLXN0ZXBwZXI+XG4gICAqXG4gICAqIDxuZy10ZW1wbGF0ZSAjZG9uZUljb24+XG4gICAqICAgIDxpIGNsYXNzPVwicGggcGgtY2hlY2stZmF0XCI+PC9pPlxuICAgKiA8L25nLXRlbXBsYXRlPlxuICAgKiBgYGBcbiAgICogPiBEZXZlLXNlIHVzYXIgYGZvbnQtc2l6ZTogaW5oZXJpdGAgcGFyYSBhanVzdGFyIMOtY29uZXMgcXVlIG7Do28gc2UgYWp1c3RhbSBhdXRvbWF0aWNhbWVudGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBwby1pY29uLW9rYFxuICAgKi9cbiAgQElucHV0KCdwLXN0ZXAtaWNvbi1kb25lJykgaWNvbkRvbmU/OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBQZXJtaXRlIGRlZmluaXIgbyDDrWNvbmUgZG8gc3RlcCBubyBzdGF0dXMgYXRpdm8uXG4gICAqIEVzdGEgcHJvcHJpZWRhZGUgcGVybWl0ZSB1c2FyIMOtY29uZXMgZGEgW0JpYmxpb3RlY2EgZGUgw61jb25lc10oaHR0cHM6Ly9wby11aS5pby9pY29ucykgb3UgZGEgYmlibGlvdGVjYSBbUGhvc3Bob3JdKGh0dHBzOi8vcGhvc3Bob3JpY29ucy5jb20vKS5cbiAgICpcbiAgICogRXhlbXBsbyB1c2FuZG8gYSBiaWJsaW90ZWNhIGRlIMOtY29uZXMgcGFkcsOjbzpcbiAgICogYGBgXG4gICAqIDxwby1zdGVwcGVyIHAtc3RlcC1pY29uLWFjdGl2ZT1cInBvLWljb24gcG8taWNvbi1zZXR0aW5nc1wiPlxuICAgKiAgICAuLi5cbiAgICogPC9wby1zdGVwcGVyPlxuICAgKiBgYGBcbiAgICogRXhlbXBsbyB1c2FuZG8gYSBiaWJsaW90ZWNhICpQaG9zcGhvcio6XG4gICAqIGBgYFxuICAgKiA8cG8tc3RlcHBlciBwLXN0ZXAtaWNvbi1hY3RpdmU9XCJwaCBwaC1wZW5jaWwtc2ltcGxlLWxpbmVcIj5cbiAgICogICAgLi4uXG4gICAqIDwvcG8tc3RlcHBlcj5cbiAgICogYGBgXG4gICAqIFBhcmEgY3VzdG9taXphciBvIMOtY29uZSBhdHJhdsOpcyBkbyBgVGVtcGxhdGVSZWZgLCB2ZWphIGEgZG9jdW1lbnRhw6fDo28gZGEgcHJvcHJpZWRhZGUgYHAtc3RlcC1pY29uLWRvbmVgLlxuICAgKlxuICAgKiA+IERldmUtc2UgdXNhciBgZm9udC1zaXplOiBpbmhlcml0YCBwYXJhIGFqdXN0YXIgw61jb25lcyBxdWUgbsOjbyBzZSBhanVzdGFtIGF1dG9tYXRpY2FtZW50ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYHBvLWljb24tZWRpdGBcbiAgICovXG4gIEBJbnB1dCgncC1zdGVwLWljb24tYWN0aXZlJykgaWNvbkFjdGl2ZT86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIERlc2FiaWxpdGEgbyBjbGlxdWUgbm9zIHN0ZXBzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtZGlzYWJsZS1jbGljaycpIGRpc2FibGVkQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIGluaXRpYWxpemVTdGVwcygpOiB2b2lkIHtcbiAgICBjb25zdCBoYXNTdGF0dXMgPSB0aGlzLl9zdGVwcy5zb21lKHN0ZXAgPT4gc3RlcC5zdGF0dXMgIT09IFBvU3RlcHBlclN0YXR1cy5EZWZhdWx0KTtcblxuICAgIGlmICghaGFzU3RhdHVzICYmIHRoaXMuc3RlcCA9PT0gMSkge1xuICAgICAgdGhpcy5zdGVwID0gMTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -21,6 +21,7 @@ export class PoStepperLabelComponent {
21
21
  // Informa se a orientação do stepper é vertical.
22
22
  isVerticalOrientation;
23
23
  labelElement;
24
+ disabledClick = false;
24
25
  displayedContent;
25
26
  tooltipContent;
26
27
  maxLabelLength = 100;
@@ -72,14 +73,14 @@ export class PoStepperLabelComponent {
72
73
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.labelElement = _t.first);
73
74
  } }, hostBindings: function PoStepperLabelComponent_HostBindings(rf, ctx) { if (rf & 1) {
74
75
  i0.ɵɵlistener("mouseover", function PoStepperLabelComponent_mouseover_HostBindingHandler() { return ctx.onMouseOver(); })("mouseout", function PoStepperLabelComponent_mouseout_HostBindingHandler() { return ctx.onMouseOut(); });
75
- } }, inputs: { alignCenter: [0, "p-align-center", "alignCenter"], content: [0, "p-content", "content"], status: [0, "p-status", "status"], isVerticalOrientation: [0, "p-vertical-orientation", "isVerticalOrientation"] }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 12, consts: [["labelElement", ""], ["aria-hidden", "true", 1, "po-stepper-label", 3, "mouseover", "mouseout", "p-tooltip"]], template: function PoStepperLabelComponent_Template(rf, ctx) { if (rf & 1) {
76
+ } }, inputs: { alignCenter: [0, "p-align-center", "alignCenter"], content: [0, "p-content", "content"], status: [0, "p-status", "status"], isVerticalOrientation: [0, "p-vertical-orientation", "isVerticalOrientation"], disabledClick: [0, "p-disable-click", "disabledClick"] }, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 14, consts: [["labelElement", ""], ["aria-hidden", "true", 1, "po-stepper-label", 3, "mouseover", "mouseout", "p-tooltip"]], template: function PoStepperLabelComponent_Template(rf, ctx) { if (rf & 1) {
76
77
  const _r1 = i0.ɵɵgetCurrentView();
77
78
  i0.ɵɵelementStart(0, "div", 1, 0);
78
79
  i0.ɵɵlistener("mouseover", function PoStepperLabelComponent_Template_div_mouseover_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onMouseOver()); })("mouseout", function PoStepperLabelComponent_Template_div_mouseout_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onMouseOut()); });
79
80
  i0.ɵɵtext(2);
80
81
  i0.ɵɵelementEnd();
81
82
  } if (rf & 2) {
82
- i0.ɵɵclassProp("po-link", ctx.status !== "disabled")("po-stepper-label-active", ctx.status === "active" || ctx.status === "error")("po-stepper-label-done", ctx.status === "done")("po-stepper-label-vertical", ctx.isVerticalOrientation)("po-stepper-label-center", ctx.alignCenter);
83
+ i0.ɵɵclassProp("po-link", ctx.status !== "disabled" && !ctx.disabledClick)("po-stepper-disabled-click", ctx.disabledClick)("po-stepper-label-active", ctx.status === "active" || ctx.status === "error")("po-stepper-label-done", ctx.status === "done")("po-stepper-label-vertical", ctx.isVerticalOrientation)("po-stepper-label-center", ctx.alignCenter);
83
84
  i0.ɵɵproperty("p-tooltip", ctx.tooltipContent);
84
85
  i0.ɵɵadvance(2);
85
86
  i0.ɵɵtextInterpolate1(" ", ctx.displayedContent, "\n");
@@ -87,7 +88,7 @@ export class PoStepperLabelComponent {
87
88
  }
88
89
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoStepperLabelComponent, [{
89
90
  type: Component,
90
- args: [{ selector: 'po-stepper-label', template: "<div\n #labelElement\n class=\"po-stepper-label\"\n [class.po-link]=\"status !== 'disabled'\"\n [class.po-stepper-label-active]=\"status === 'active' || status === 'error'\"\n [class.po-stepper-label-done]=\"status === 'done'\"\n [class.po-stepper-label-vertical]=\"isVerticalOrientation\"\n [class.po-stepper-label-center]=\"alignCenter\"\n [p-tooltip]=\"tooltipContent\"\n aria-hidden=\"true\"\n (mouseover)=\"onMouseOver()\"\n (mouseout)=\"onMouseOut()\"\n>\n {{ displayedContent }}\n</div>\n" }]
91
+ args: [{ selector: 'po-stepper-label', template: "<div\n #labelElement\n class=\"po-stepper-label\"\n [class.po-link]=\"status !== 'disabled' && !this.disabledClick\"\n [class.po-stepper-disabled-click]=\"this.disabledClick\"\n [class.po-stepper-label-active]=\"status === 'active' || status === 'error'\"\n [class.po-stepper-label-done]=\"status === 'done'\"\n [class.po-stepper-label-vertical]=\"isVerticalOrientation\"\n [class.po-stepper-label-center]=\"alignCenter\"\n [p-tooltip]=\"tooltipContent\"\n aria-hidden=\"true\"\n (mouseover)=\"onMouseOver()\"\n (mouseout)=\"onMouseOut()\"\n>\n {{ displayedContent }}\n</div>\n" }]
91
92
  }], () => [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }], { alignCenter: [{
92
93
  type: Input,
93
94
  args: ['p-align-center']
@@ -103,6 +104,9 @@ export class PoStepperLabelComponent {
103
104
  }], labelElement: [{
104
105
  type: ViewChild,
105
106
  args: ['labelElement']
107
+ }], disabledClick: [{
108
+ type: Input,
109
+ args: ['p-disable-click']
106
110
  }], onMouseOver: [{
107
111
  type: HostListener,
108
112
  args: ['mouseover']
@@ -111,4 +115,4 @@ export class PoStepperLabelComponent {
111
115
  args: ['mouseout']
112
116
  }] }); })();
113
117
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoStepperLabelComponent, { className: "PoStepperLabelComponent", filePath: "lib/components/po-stepper/po-stepper-label/po-stepper-label.component.ts", lineNumber: 25 }); })();
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc3RlcHBlci1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tc3RlcHBlci9wby1zdGVwcGVyLWxhYmVsL3BvLXN0ZXBwZXItbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXN0ZXBwZXIvcG8tc3RlcHBlci1sYWJlbC9wby1zdGVwcGVyLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7Ozs7QUFFdkI7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQXFCeEI7SUFDQTtJQXJCVix3QkFBd0I7SUFDQyxXQUFXLENBQVU7SUFFOUMscUJBQXFCO0lBQ0QsT0FBTyxDQUFTO0lBRXBDLDZCQUE2QjtJQUNWLE1BQU0sQ0FBUztJQUVsQyxpREFBaUQ7SUFDaEIscUJBQXFCLENBQVU7SUFFckMsWUFBWSxDQUFhO0lBRXBELGdCQUFnQixDQUFTO0lBQ3pCLGNBQWMsQ0FBUztJQUVmLGNBQWMsR0FBVyxHQUFHLENBQUM7SUFFckMsWUFDVSxRQUFtQixFQUNuQixpQkFBb0M7UUFEcEMsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBQzNDLENBQUM7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUdELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUdELFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVk7WUFBRSxPQUFPO1FBRS9CLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFFdkMsSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDL0UsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMvRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBRXpDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztZQUNoRCxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUNwRSxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUU5RixJQUFJLENBQUMsY0FBYyxHQUFHLGlCQUFpQixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2pGLENBQUM7SUFDSCxDQUFDO2lGQXZFVSx1QkFBdUI7NkRBQXZCLHVCQUF1Qjs7Ozs7O1lBQXZCLG9HQUFBLGlCQUFhLElBQVUscUZBQXZCLGdCQUFZLElBQVc7OztZQ3hCcEMsaUNBWUM7WUFEQyxBQURBLCtJQUFhLGlCQUFhLEtBQUMsZ0lBQ2YsZ0JBQVksS0FBQztZQUV6QixZQUNGO1lBQUEsaUJBQU07O1lBUEosQUFEQSxBQURBLEFBREEsQUFEQSxvREFBdUMsOEVBQ29DLGdEQUMxQix3REFDUSw0Q0FDWjtZQUM3Qyw4Q0FBNEI7WUFLNUIsZUFDRjtZQURFLHNEQUNGOzs7aUZEVWEsdUJBQXVCO2NBSm5DLFNBQVM7MkJBQ0Usa0JBQWtCOzBFQUtILFdBQVc7a0JBQW5DLEtBQUs7bUJBQUMsZ0JBQWdCO1lBR0gsT0FBTztrQkFBMUIsS0FBSzttQkFBQyxXQUFXO1lBR0MsTUFBTTtrQkFBeEIsS0FBSzttQkFBQyxVQUFVO1lBR2dCLHFCQUFxQjtrQkFBckQsS0FBSzttQkFBQyx3QkFBd0I7WUFFSixZQUFZO2tCQUF0QyxTQUFTO21CQUFDLGNBQWM7WUF5QnpCLFdBQVc7a0JBRFYsWUFBWTttQkFBQyxXQUFXO1lBT3pCLFVBQVU7a0JBRFQsWUFBWTttQkFBQyxVQUFVOztrRkEzQ2IsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBDb21wb25lbnRlIHJlc3BvbnPDoXZlbCBwb3IgZXhpYmlyIGFzIGxlZ2VuZGFzIGRvcyAqc3RlcHMqLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1zdGVwcGVyLWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXN0ZXBwZXItbGFiZWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvU3RlcHBlckxhYmVsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgLy8gQWxpbmhhbWVudG8gZGEgbGFiZWwuXG4gIEBJbnB1dCgncC1hbGlnbi1jZW50ZXInKSBhbGlnbkNlbnRlcjogYm9vbGVhbjtcblxuICAvLyBDb250ZcO6ZG8gZGEgbGFiZWwuXG4gIEBJbnB1dCgncC1jb250ZW50JykgY29udGVudDogc3RyaW5nO1xuXG4gIC8vIEluZm9ybWEgbyBzdGF0dXMgZGEgZXRhcGEuXG4gIEBJbnB1dCgncC1zdGF0dXMnKSBzdGF0dXM6IHN0cmluZztcblxuICAvLyBJbmZvcm1hIHNlIGEgb3JpZW50YcOnw6NvIGRvIHN0ZXBwZXIgw6kgdmVydGljYWwuXG4gIEBJbnB1dCgncC12ZXJ0aWNhbC1vcmllbnRhdGlvbicpIGlzVmVydGljYWxPcmllbnRhdGlvbjogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdsYWJlbEVsZW1lbnQnKSBsYWJlbEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgZGlzcGxheWVkQ29udGVudDogc3RyaW5nO1xuICB0b29sdGlwQ29udGVudDogc3RyaW5nO1xuXG4gIHByaXZhdGUgbWF4TGFiZWxMZW5ndGg6IG51bWJlciA9IDEwMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUxhYmVsKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbnRlbnQnXSB8fCBjaGFuZ2VzWydpc1ZlcnRpY2FsT3JpZW50YXRpb24nXSkge1xuICAgICAgdGhpcy51cGRhdGVMYWJlbCgpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJylcbiAgb25Nb3VzZU92ZXIoKSB7XG4gICAgdGhpcy51cGRhdGVUb29sdGlwKCk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmxhYmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnaG92ZXJlZCcpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdXQnKVxuICBvbk1vdXNlT3V0KCkge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5sYWJlbEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hvdmVyZWQnKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGFiZWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxhYmVsRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxDb250ZW50ID0gdGhpcy5jb250ZW50O1xuICAgIGxldCBkaXNwbGF5ZWRDb250ZW50ID0gb3JpZ2luYWxDb250ZW50O1xuXG4gICAgaWYgKHRoaXMuaXNWZXJ0aWNhbE9yaWVudGF0aW9uICYmIG9yaWdpbmFsQ29udGVudC5sZW5ndGggPiB0aGlzLm1heExhYmVsTGVuZ3RoKSB7XG4gICAgICBkaXNwbGF5ZWRDb250ZW50ID0gb3JpZ2luYWxDb250ZW50LnN1YnN0cmluZygwLCB0aGlzLm1heExhYmVsTGVuZ3RoKSArICcuLi4nO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheWVkQ29udGVudCA9IGRpc3BsYXllZENvbnRlbnQ7XG5cbiAgICB0aGlzLnVwZGF0ZVRvb2x0aXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYWJlbEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmxhYmVsRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgaXNUZXh0T3ZlcmZsb3dpbmcgPSBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgIGNvbnN0IGlzVGV4dFRvb0xvbmcgPSB0aGlzLmlzVmVydGljYWxPcmllbnRhdGlvbiAmJiB0aGlzLmNvbnRlbnQubGVuZ3RoID4gdGhpcy5tYXhMYWJlbExlbmd0aDtcblxuICAgICAgdGhpcy50b29sdGlwQ29udGVudCA9IGlzVGV4dE92ZXJmbG93aW5nIHx8IGlzVGV4dFRvb0xvbmcgPyB0aGlzLmNvbnRlbnQgOiBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICAjbGFiZWxFbGVtZW50XG4gIGNsYXNzPVwicG8tc3RlcHBlci1sYWJlbFwiXG4gIFtjbGFzcy5wby1saW5rXT1cInN0YXR1cyAhPT0gJ2Rpc2FibGVkJ1wiXG4gIFtjbGFzcy5wby1zdGVwcGVyLWxhYmVsLWFjdGl2ZV09XCJzdGF0dXMgPT09ICdhY3RpdmUnIHx8IHN0YXR1cyA9PT0gJ2Vycm9yJ1wiXG4gIFtjbGFzcy5wby1zdGVwcGVyLWxhYmVsLWRvbmVdPVwic3RhdHVzID09PSAnZG9uZSdcIlxuICBbY2xhc3MucG8tc3RlcHBlci1sYWJlbC12ZXJ0aWNhbF09XCJpc1ZlcnRpY2FsT3JpZW50YXRpb25cIlxuICBbY2xhc3MucG8tc3RlcHBlci1sYWJlbC1jZW50ZXJdPVwiYWxpZ25DZW50ZXJcIlxuICBbcC10b29sdGlwXT1cInRvb2x0aXBDb250ZW50XCJcbiAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgKG1vdXNlb3Zlcik9XCJvbk1vdXNlT3ZlcigpXCJcbiAgKG1vdXNlb3V0KT1cIm9uTW91c2VPdXQoKVwiXG4+XG4gIHt7IGRpc3BsYXllZENvbnRlbnQgfX1cbjwvZGl2PlxuIl19
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc3RlcHBlci1sYWJlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tc3RlcHBlci9wby1zdGVwcGVyLWxhYmVsL3BvLXN0ZXBwZXItbGFiZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jb21wb25lbnRzL3BvLXN0ZXBwZXIvcG8tc3RlcHBlci1sYWJlbC9wby1zdGVwcGVyLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFJTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7Ozs7QUFFdkI7Ozs7OztHQU1HO0FBS0gsTUFBTSxPQUFPLHVCQUF1QjtJQXVCeEI7SUFDQTtJQXZCVix3QkFBd0I7SUFDQyxXQUFXLENBQVU7SUFFOUMscUJBQXFCO0lBQ0QsT0FBTyxDQUFTO0lBRXBDLDZCQUE2QjtJQUNWLE1BQU0sQ0FBUztJQUVsQyxpREFBaUQ7SUFDaEIscUJBQXFCLENBQVU7SUFFckMsWUFBWSxDQUFhO0lBRTFCLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFFekQsZ0JBQWdCLENBQVM7SUFDekIsY0FBYyxDQUFTO0lBRWYsY0FBYyxHQUFXLEdBQUcsQ0FBQztJQUVyQyxZQUNVLFFBQW1CLEVBQ25CLGlCQUFvQztRQURwQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFDM0MsQ0FBQztJQUVKLGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQztZQUMzRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBR0QsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBR0QsVUFBVTtRQUNSLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFL0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztRQUV2QyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxlQUFlLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMvRSxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQy9FLENBQUM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFFekMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO1lBQ2hELE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ3BFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1lBRTlGLElBQUksQ0FBQyxjQUFjLEdBQUcsaUJBQWlCLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDakYsQ0FBQztJQUNILENBQUM7aUZBekVVLHVCQUF1Qjs2REFBdkIsdUJBQXVCOzs7Ozs7WUFBdkIsb0dBQUEsaUJBQWEsSUFBVSxxRkFBdkIsZ0JBQVksSUFBVzs7O1lDeEJwQyxpQ0FhQztZQURDLEFBREEsK0lBQWEsaUJBQWEsS0FBQyxnSUFDZixnQkFBWSxLQUFDO1lBRXpCLFlBQ0Y7WUFBQSxpQkFBTTs7WUFQSixBQURBLEFBREEsQUFEQSxBQURBLEFBREEsMEVBQThELGdEQUNSLDhFQUNxQixnREFDMUIsd0RBQ1EsNENBQ1o7WUFDN0MsOENBQTRCO1lBSzVCLGVBQ0Y7WUFERSxzREFDRjs7O2lGRFNhLHVCQUF1QjtjQUpuQyxTQUFTOzJCQUNFLGtCQUFrQjswRUFLSCxXQUFXO2tCQUFuQyxLQUFLO21CQUFDLGdCQUFnQjtZQUdILE9BQU87a0JBQTFCLEtBQUs7bUJBQUMsV0FBVztZQUdDLE1BQU07a0JBQXhCLEtBQUs7bUJBQUMsVUFBVTtZQUdnQixxQkFBcUI7a0JBQXJELEtBQUs7bUJBQUMsd0JBQXdCO1lBRUosWUFBWTtrQkFBdEMsU0FBUzttQkFBQyxjQUFjO1lBRUMsYUFBYTtrQkFBdEMsS0FBSzttQkFBQyxpQkFBaUI7WUF5QnhCLFdBQVc7a0JBRFYsWUFBWTttQkFBQyxXQUFXO1lBT3pCLFVBQVU7a0JBRFQsWUFBWTttQkFBQyxVQUFVOztrRkE3Q2IsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBDb21wb25lbnRlIHJlc3BvbnPDoXZlbCBwb3IgZXhpYmlyIGFzIGxlZ2VuZGFzIGRvcyAqc3RlcHMqLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1zdGVwcGVyLWxhYmVsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLXN0ZXBwZXItbGFiZWwuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvU3RlcHBlckxhYmVsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgLy8gQWxpbmhhbWVudG8gZGEgbGFiZWwuXG4gIEBJbnB1dCgncC1hbGlnbi1jZW50ZXInKSBhbGlnbkNlbnRlcjogYm9vbGVhbjtcblxuICAvLyBDb250ZcO6ZG8gZGEgbGFiZWwuXG4gIEBJbnB1dCgncC1jb250ZW50JykgY29udGVudDogc3RyaW5nO1xuXG4gIC8vIEluZm9ybWEgbyBzdGF0dXMgZGEgZXRhcGEuXG4gIEBJbnB1dCgncC1zdGF0dXMnKSBzdGF0dXM6IHN0cmluZztcblxuICAvLyBJbmZvcm1hIHNlIGEgb3JpZW50YcOnw6NvIGRvIHN0ZXBwZXIgw6kgdmVydGljYWwuXG4gIEBJbnB1dCgncC12ZXJ0aWNhbC1vcmllbnRhdGlvbicpIGlzVmVydGljYWxPcmllbnRhdGlvbjogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdsYWJlbEVsZW1lbnQnKSBsYWJlbEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCdwLWRpc2FibGUtY2xpY2snKSBkaXNhYmxlZENsaWNrOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZGlzcGxheWVkQ29udGVudDogc3RyaW5nO1xuICB0b29sdGlwQ29udGVudDogc3RyaW5nO1xuXG4gIHByaXZhdGUgbWF4TGFiZWxMZW5ndGg6IG51bWJlciA9IDEwMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnVwZGF0ZUxhYmVsKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbnRlbnQnXSB8fCBjaGFuZ2VzWydpc1ZlcnRpY2FsT3JpZW50YXRpb24nXSkge1xuICAgICAgdGhpcy51cGRhdGVMYWJlbCgpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJylcbiAgb25Nb3VzZU92ZXIoKSB7XG4gICAgdGhpcy51cGRhdGVUb29sdGlwKCk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmxhYmVsRWxlbWVudC5uYXRpdmVFbGVtZW50LCAnaG92ZXJlZCcpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdXQnKVxuICBvbk1vdXNlT3V0KCkge1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5sYWJlbEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2hvdmVyZWQnKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTGFiZWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxhYmVsRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb3JpZ2luYWxDb250ZW50ID0gdGhpcy5jb250ZW50O1xuICAgIGxldCBkaXNwbGF5ZWRDb250ZW50ID0gb3JpZ2luYWxDb250ZW50O1xuXG4gICAgaWYgKHRoaXMuaXNWZXJ0aWNhbE9yaWVudGF0aW9uICYmIG9yaWdpbmFsQ29udGVudC5sZW5ndGggPiB0aGlzLm1heExhYmVsTGVuZ3RoKSB7XG4gICAgICBkaXNwbGF5ZWRDb250ZW50ID0gb3JpZ2luYWxDb250ZW50LnN1YnN0cmluZygwLCB0aGlzLm1heExhYmVsTGVuZ3RoKSArICcuLi4nO1xuICAgIH1cblxuICAgIHRoaXMuZGlzcGxheWVkQ29udGVudCA9IGRpc3BsYXllZENvbnRlbnQ7XG5cbiAgICB0aGlzLnVwZGF0ZVRvb2x0aXAoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sYWJlbEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmxhYmVsRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgaXNUZXh0T3ZlcmZsb3dpbmcgPSBlbGVtZW50LnNjcm9sbFdpZHRoID4gZWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgIGNvbnN0IGlzVGV4dFRvb0xvbmcgPSB0aGlzLmlzVmVydGljYWxPcmllbnRhdGlvbiAmJiB0aGlzLmNvbnRlbnQubGVuZ3RoID4gdGhpcy5tYXhMYWJlbExlbmd0aDtcblxuICAgICAgdGhpcy50b29sdGlwQ29udGVudCA9IGlzVGV4dE92ZXJmbG93aW5nIHx8IGlzVGV4dFRvb0xvbmcgPyB0aGlzLmNvbnRlbnQgOiBudWxsO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICAjbGFiZWxFbGVtZW50XG4gIGNsYXNzPVwicG8tc3RlcHBlci1sYWJlbFwiXG4gIFtjbGFzcy5wby1saW5rXT1cInN0YXR1cyAhPT0gJ2Rpc2FibGVkJyAmJiAhdGhpcy5kaXNhYmxlZENsaWNrXCJcbiAgW2NsYXNzLnBvLXN0ZXBwZXItZGlzYWJsZWQtY2xpY2tdPVwidGhpcy5kaXNhYmxlZENsaWNrXCJcbiAgW2NsYXNzLnBvLXN0ZXBwZXItbGFiZWwtYWN0aXZlXT1cInN0YXR1cyA9PT0gJ2FjdGl2ZScgfHwgc3RhdHVzID09PSAnZXJyb3InXCJcbiAgW2NsYXNzLnBvLXN0ZXBwZXItbGFiZWwtZG9uZV09XCJzdGF0dXMgPT09ICdkb25lJ1wiXG4gIFtjbGFzcy5wby1zdGVwcGVyLWxhYmVsLXZlcnRpY2FsXT1cImlzVmVydGljYWxPcmllbnRhdGlvblwiXG4gIFtjbGFzcy5wby1zdGVwcGVyLWxhYmVsLWNlbnRlcl09XCJhbGlnbkNlbnRlclwiXG4gIFtwLXRvb2x0aXBdPVwidG9vbHRpcENvbnRlbnRcIlxuICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAobW91c2VvdmVyKT1cIm9uTW91c2VPdmVyKClcIlxuICAobW91c2VvdXQpPVwib25Nb3VzZU91dCgpXCJcbj5cbiAge3sgZGlzcGxheWVkQ29udGVudCB9fVxuPC9kaXY+XG4iXX0=