@dynamic-field-kit/angular 1.3.3 → 1.4.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 (43) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +50 -3
  3. package/dist/README.md +50 -3
  4. package/dist/components/BaseInput.d.ts +5 -11
  5. package/dist/components/DynamicInput.d.ts +6 -2
  6. package/dist/components/FieldInput.d.ts +6 -2
  7. package/dist/components/MultiFieldInput.d.ts +10 -1
  8. package/dist/esm2022/components/BaseInput.mjs +8 -17
  9. package/dist/esm2022/components/DynamicInput.mjs +67 -14
  10. package/dist/esm2022/components/FieldInput.mjs +39 -20
  11. package/dist/esm2022/components/MultiFieldInput.mjs +87 -13
  12. package/dist/esm2022/fieldRegistryToken.mjs +12 -0
  13. package/dist/esm2022/public-api.mjs +6 -2
  14. package/dist/esm2022/types/layout.mjs +1 -1
  15. package/dist/fesm2022/dynamic-field-kit-angular.mjs +208 -61
  16. package/dist/fesm2022/dynamic-field-kit-angular.mjs.map +1 -1
  17. package/dist/fieldRegistryToken.d.ts +3 -0
  18. package/dist/public-api.d.ts +4 -1
  19. package/dist/types/layout.d.ts +4 -25
  20. package/package.json +14 -16
  21. package/src/components/BaseInput.ts +7 -10
  22. package/src/components/DynamicInput.ts +67 -11
  23. package/src/components/FieldInput.ts +23 -16
  24. package/src/components/MultiFieldInput.ts +101 -8
  25. package/src/fieldRegistryToken.ts +15 -0
  26. package/src/public-api.ts +40 -24
  27. package/src/types/layout.ts +14 -36
  28. package/test/DynamicInput.spec.ts +217 -17
  29. package/test/FieldInput.spec.ts +131 -29
  30. package/test/MultiFieldInput.spec.ts +256 -0
  31. package/test/helpers/renderers.ts +89 -0
  32. package/test/layout.spec.ts +119 -0
  33. package/test/publicApi.spec.ts +64 -0
  34. package/{test.ts → test/setup.ts} +2 -2
  35. package/test/smoke.spec.ts +27 -0
  36. package/tsconfig.json +13 -13
  37. package/tsconfig.spec.json +4 -16
  38. package/vitest.config.ts +30 -0
  39. package/angular.json +0 -27
  40. package/karma.conf.js +0 -37
  41. package/test/angular.spec.ts +0 -102
  42. package/test/integration.spec.ts +0 -57
  43. package/test/layouts.spec.ts +0 -26
@@ -1,33 +1,43 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef, } from '@angular/core';
3
- import { fieldRegistry } from '@dynamic-field-kit/core';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output, ViewChild, ViewContainerRef, } from '@angular/core';
3
+ import { FIELD_REGISTRY } from '../fieldRegistryToken';
4
4
  import { BaseInputComponent } from './BaseInput';
5
5
  import * as i0 from "@angular/core";
6
+ // Only the framework-agnostic FieldRendererProps keys. Domain-specific props
7
+ // reach the renderer through `extraProps` (FieldDescription.props) instead.
6
8
  const KNOWN_PROPS = [
7
9
  'value',
8
10
  'label',
9
11
  'placeholder',
10
12
  'required',
11
13
  'disabled',
14
+ 'readOnly',
15
+ 'error',
12
16
  'options',
13
17
  'className',
14
18
  'description',
15
- 'errorMessage',
16
- 'acceptFile',
17
- 'maxLength',
18
- 'minNumber',
19
- 'maxNumber',
20
19
  ];
21
20
  export class DynamicInput extends BaseInputComponent {
22
21
  type;
22
+ // Extra, framework-agnostic props forwarded verbatim to the renderer.
23
+ extraProps;
23
24
  valueChange = new EventEmitter();
24
25
  onChange = new EventEmitter();
26
+ registry = inject(FIELD_REGISTRY);
25
27
  host;
26
28
  compRef;
27
29
  inputInstance;
28
30
  subscriptions = [];
31
+ // Tracks which KNOWN_PROPS were actually supplied to DynamicInput (via
32
+ // SimpleChanges), independent of TS class-field emit. See applyProps.
33
+ supplied = new Set();
29
34
  ngOnChanges(changes) {
30
35
  super.ngOnChanges(changes);
36
+ for (const prop of KNOWN_PROPS) {
37
+ if (changes[prop]) {
38
+ this.supplied.add(prop);
39
+ }
40
+ }
31
41
  if (this.inputInstance) {
32
42
  this.syncPropsToInstance(changes);
33
43
  }
@@ -53,6 +63,9 @@ export class DynamicInput extends BaseInputComponent {
53
63
  this.inputInstance[prop] = this[prop];
54
64
  }
55
65
  }
66
+ if (changes['extraProps']) {
67
+ this.applyExtraProps(this.inputInstance);
68
+ }
56
69
  this.compRef?.changeDetectorRef?.detectChanges();
57
70
  }
58
71
  cleanup() {
@@ -69,7 +82,7 @@ export class DynamicInput extends BaseInputComponent {
69
82
  this.inputInstance = undefined;
70
83
  }
71
84
  render() {
72
- const Renderer = fieldRegistry.get(this.type);
85
+ const Renderer = this.registry.get(this.type);
73
86
  this.cleanup();
74
87
  this.host.clear();
75
88
  if (!Renderer) {
@@ -86,8 +99,16 @@ export class DynamicInput extends BaseInputComponent {
86
99
  this.renderError(`Invalid renderer for type: ${this.type}`);
87
100
  }
88
101
  }
102
+ // Angular component classes carry a static ɵcmp. Checked instead of
103
+ // reflectComponentType() because the peer range starts at Angular 13 and
104
+ // reflectComponentType is v14+. Plain function renderers have no ɵcmp and
105
+ // fall through to renderFallback. Uses hasOwnProperty (not `in`) so a
106
+ // class that merely extends a component without its own @Component
107
+ // decorator - and would otherwise inherit the parent's static ɵcmp via the
108
+ // prototype chain - is not mistaken for a component in its own right.
89
109
  isComponentType(renderer) {
90
- return (typeof renderer === 'object' && renderer !== null && 'cmp' in renderer);
110
+ return (typeof renderer === 'function' &&
111
+ Object.prototype.hasOwnProperty.call(renderer, 'ɵcmp'));
91
112
  }
92
113
  renderComponent(compType) {
93
114
  try {
@@ -123,25 +144,55 @@ export class DynamicInput extends BaseInputComponent {
123
144
  }
124
145
  getFallbackProps() {
125
146
  return {
147
+ ...this.extraProps,
126
148
  value: this.value,
127
149
  onValueChange: (v) => this.emitValue(v),
128
150
  label: this.label ?? '',
129
151
  placeholder: this.placeholder ?? '',
130
152
  required: this.required ?? false,
153
+ disabled: this.disabled ?? false,
154
+ readOnly: this.readOnly ?? false,
155
+ error: this.error,
131
156
  options: this.options ?? [],
132
157
  className: this.className ?? '',
133
158
  description: this.description ?? '',
134
- disabled: this.disabled ?? false,
135
- errorMessage: this.errorMessage ?? '',
136
159
  };
137
160
  }
161
+ // Gates on `this.supplied` (populated from SimpleChanges in ngOnChanges),
162
+ // not on `prop in instanceObj` or `prop in this`. Both `in` checks test a
163
+ // TypeScript class-field emit artifact rather than intent: whether a
164
+ // property slot exists at runtime depends on the compile target
165
+ // (useDefineForClassFields is false below ES2022, true at ES2022+), so the
166
+ // same source can behave oppositely between this package's test build and
167
+ // its shipped ES2022 bundle, where every declared field is always an own
168
+ // property. `this.supplied` instead reflects only whether Angular ever
169
+ // fired a SimpleChange for that input, i.e. whether the prop was *bound*
170
+ // at all - it skips only props DynamicInput was never given a binding
171
+ // for. It is NOT a general "renderer defaults survive" guarantee: Angular
172
+ // fires a firstChange SimpleChange for every bound input even when the
173
+ // bound value is undefined, and FieldInput's template binds all
174
+ // KNOWN_PROPS unconditionally, so on the real
175
+ // MultiFieldInput -> FieldInput -> DynamicInput path every prop counts as
176
+ // supplied and renderer-side defaults (e.g. `@Input() label = 'None'`)
177
+ // are still overwritten with undefined. This only helps when DynamicInput
178
+ // is mounted directly with some inputs left unbound.
138
179
  applyProps(instance) {
139
180
  const instanceObj = instance;
140
181
  for (const prop of KNOWN_PROPS) {
141
- if (prop in this && prop in instanceObj) {
182
+ if (this.supplied.has(prop)) {
142
183
  instanceObj[prop] = this[prop];
143
184
  }
144
185
  }
186
+ this.applyExtraProps(instance);
187
+ }
188
+ applyExtraProps(instance) {
189
+ if (!instance || !this.extraProps) {
190
+ return;
191
+ }
192
+ const instanceObj = instance;
193
+ for (const [key, value] of Object.entries(this.extraProps)) {
194
+ instanceObj[key] = value;
195
+ }
145
196
  }
146
197
  bindOutputs(instance) {
147
198
  const outputNames = [
@@ -167,7 +218,7 @@ export class DynamicInput extends BaseInputComponent {
167
218
  this.host.element.nativeElement.appendChild(el);
168
219
  }
169
220
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DynamicInput, deps: null, target: i0.ɵɵFactoryTarget.Component });
170
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: DynamicInput, isStandalone: true, selector: "dfk-dynamic-input", inputs: { type: "type" }, outputs: { valueChange: "valueChange", onChange: "onChange" }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `<div #host style="display: contents;"></div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
221
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: DynamicInput, isStandalone: true, selector: "dfk-dynamic-input", inputs: { type: "type", extraProps: "extraProps" }, outputs: { valueChange: "valueChange", onChange: "onChange" }, viewQueries: [{ propertyName: "host", first: true, predicate: ["host"], descendants: true, read: ViewContainerRef }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `<div #host style="display: contents;"></div>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
171
222
  }
172
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DynamicInput, decorators: [{
173
224
  type: Component,
@@ -180,6 +231,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
180
231
  }]
181
232
  }], propDecorators: { type: [{
182
233
  type: Input
234
+ }], extraProps: [{
235
+ type: Input
183
236
  }], valueChange: [{
184
237
  type: Output
185
238
  }], onChange: [{
@@ -188,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
188
241
  type: ViewChild,
189
242
  args: ['host', { read: ViewContainerRef, static: false }]
190
243
  }] } });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY0lucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRHluYW1pY0lucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0seUJBQXlCLENBQUM7QUFFdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUVqRCxNQUFNLFdBQVcsR0FBRztJQUNsQixPQUFPO0lBQ1AsT0FBTztJQUNQLGFBQWE7SUFDYixVQUFVO0lBQ1YsVUFBVTtJQUNWLFNBQVM7SUFDVCxXQUFXO0lBQ1gsYUFBYTtJQUNiLGNBQWM7SUFDZCxZQUFZO0lBQ1osV0FBVztJQUNYLFdBQVc7SUFDWCxXQUFXO0NBQ0gsQ0FBQztBQVNYLE1BQU0sT0FBTyxZQUNYLFNBQVEsa0JBQWtCO0lBR2pCLElBQUksQ0FBZ0I7SUFDVixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUNuRCxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUdqRCxJQUFJLENBQW9CO0lBQ2hCLE9BQU8sQ0FBeUI7SUFDaEMsYUFBYSxDQUFXO0lBQ3hCLGFBQWEsR0FBbUIsRUFBRSxDQUFDO0lBRTNDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMs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Q2EsV0FBVztzQkFBN0IsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUdQLElBQUk7c0JBREgsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFR5cGUsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWVsZFJlZ2lzdHJ5LCBGaWVsZFR5cGVLZXkgfSBmcm9tICdAZHluYW1pYy1maWVsZC1raXQvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vQmFzZUlucHV0JztcblxuY29uc3QgS05PV05fUFJPUFMgPSBbXG4gICd2YWx1ZScsXG4gICdsYWJlbCcsXG4gICdwbGFjZWhvbGRlcicsXG4gICdyZXF1aXJlZCcsXG4gICdkaXNhYmxlZCcsXG4gICdvcHRpb25zJyxcbiAgJ2NsYXNzTmFtZScsXG4gICdkZXNjcmlwdGlvbicsXG4gICdlcnJvck1lc3NhZ2UnLFxuICAnYWNjZXB0RmlsZScsXG4gICdtYXhMZW5ndGgnLFxuICAnbWluTnVtYmVyJyxcbiAgJ21heE51bWJlcicsXG5dIGFzIGNvbnN0O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZmstZHluYW1pYy1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGA8ZGl2ICNob3N0IHN0eWxlPVwiZGlzcGxheTogY29udGVudHM7XCI+PC9kaXY+YCxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0lucHV0XG4gIGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCkgdHlwZSE6IEZpZWxkVHlwZUtleTtcbiAgQE91dHB1dCgpIG92ZXJyaWRlIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgQFZpZXdDaGlsZCgnaG9zdCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBob3N0ITogVmlld0NvbnRhaW5lclJlZjtcbiAgcHJpdmF0ZSBjb21wUmVmPzogQ29tcG9uZW50UmVmPHVua25vd24+O1xuICBwcml2YXRlIGlucHV0SW5zdGFuY2U/OiB1bmtub3duO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuXG4gICAgaWYgKHRoaXMuaW5wdXRJbnN0YW5jZSkge1xuICAgICAgdGhpcy5zeW5jUHJvcHNUb0luc3RhbmNlKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10gJiYgIWNoYW5nZXNbJ3R5cGUnXS5maXJzdENoYW5nZSAmJiB0aGlzLmhvc3QpIHtcbiAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5pbnB1dEluc3RhbmNlICYmIHRoaXMuaG9zdCkge1xuICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jUHJvcHNUb0luc3RhbmNlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5wdXRJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBLTk9XTl9QUk9QUykge1xuICAgICAgaWYgKGNoYW5nZXNbcHJvcF0gJiYgdGhpcy5pbnB1dEluc3RhbmNlKSB7XG4gICAgICAgICh0aGlzLmlucHV0SW5zdGFuY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW3Byb3BdID0gKFxuICAgICAgICAgIHRoaXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICAgKVtwcm9wXTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb21wUmVmPy5jaGFuZ2VEZXRlY3RvclJlZj8uZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cFN1YnNjcmlwdGlvbnMoKTtcbiAgICB0aGlzLmNsZWFudXBSZW5kZXJlZENvbXBvbmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cFJlbmRlcmVkQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcFJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY29tcFJlZiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmlucHV0SW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBSZW5kZXJlciA9IGZpZWxkUmVnaXN0cnkuZ2V0KHRoaXMudHlwZSk7XG4gICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgdGhpcy5ob3N0LmNsZWFyKCk7XG5cbiAgICBpZiAoIVJlbmRlcmVyKSB7XG4gICAgICB0aGlzLnJlbmRlckVycm9yKGBVbmtub3duIGZpZWxkIHR5cGU6ICR7dGhpcy50eXBlfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQ29tcG9uZW50VHlwZShSZW5kZXJlcikpIHtcbiAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50KFJlbmRlcmVyIGFzIHVua25vd24gYXMgVHlwZTx1bmtub3duPik7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgUmVuZGVyZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMucmVuZGVyRmFsbGJhY2soUmVuZGVyZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlckVycm9yKGBJbnZhbGlkIHJlbmRlcmVyIGZvciB0eXBlOiAke3RoaXMudHlwZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzQ29tcG9uZW50VHlwZShyZW5kZXJlcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0eXBlb2YgcmVuZGVyZXIgPT09ICdvYmplY3QnICYmIHJlbmRlcmVyICE9PSBudWxsICYmICdjbXAnIGluIHJlbmRlcmVyXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyQ29tcG9uZW50KGNvbXBUeXBlOiBUeXBlPHVua25vd24+KTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNvbXBSZWYgPSB0aGlzLmhvc3QuY3JlYXRlQ29tcG9uZW50KGNvbXBUeXBlKTtcbiAgICAgIGNvbnN0IGluc3RhbmNlID0gY29tcFJlZi5pbnN0YW5jZTtcblxuICAgICAgaWYgKCFpbnN0YW5jZSkge1xuICAgICAgICB0aGlzLnJlbmRlckVycm9yKGBGYWlsZWQgdG8gY3JlYXRlIGluc3RhbmNlIGZvciAke3RoaXMudHlwZX1gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFwcGx5UHJvcHMoaW5zdGFuY2UpO1xuICAgICAgdGhpcy5iaW5kT3V0cHV0cyhpbnN0YW5jZSk7XG5cbiAgICAgIHRoaXMuY29tcFJlZiA9IGNvbXBSZWY7XG4gICAgICB0aGlzLmlucHV0SW5zdGFuY2UgPSBpbnN0YW5jZTtcbiAgICAgIGNvbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5yZW5kZXJFcnJvcihgRmFpbGVkIHRvIHJlbmRlciBmaWVsZDogJHt0aGlzLnR5cGV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJGYWxsYmFjayhyZW5kZXJlcjogdW5rbm93bik6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwcm9wcyA9IHRoaXMuZ2V0RmFsbGJhY2tQcm9wcygpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gKHJlbmRlcmVyIGFzIChwcm9wczogdW5rbm93bikgPT4gc3RyaW5nKShwcm9wcyk7XG5cbiAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBlbC5pbm5lckhUTUwgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMuaG9zdC5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5yZW5kZXJFcnJvcihgRmFpbGVkIHRvIHJlbmRlciBmaWVsZDogJHt0aGlzLnR5cGV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRGYWxsYmFja1Byb3BzKCk6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICBvblZhbHVlQ2hhbmdlOiAodjogdW5rbm93bikgPT4gdGhpcy5lbWl0VmFsdWUodiksXG4gICAgICBsYWJlbDogdGhpcy5sYWJlbCA/PyAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyID8/ICcnLFxuICAgICAgcmVxdWlyZWQ6IHRoaXMucmVxdWlyZWQgPz8gZmFsc2UsXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMgPz8gW10sXG4gICAgICBjbGFzc05hbWU6IHRoaXMuY2xhc3NOYW1lID8/ICcnLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24gPz8gJycsXG4gICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCA/PyBmYWxzZSxcbiAgICAgIGVycm9yTWVzc2FnZTogdGhpcy5lcnJvck1lc3NhZ2UgPz8gJycsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlQcm9wcyhpbnN0YW5jZTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IGluc3RhbmNlT2JqID0gaW5zdGFuY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIEtOT1dOX1BST1BTKSB7XG4gICAgICBpZiAocHJvcCBpbiB0aGlzICYmIHByb3AgaW4gaW5zdGFuY2VPYmopIHtcbiAgICAgICAgaW5zdGFuY2VPYmpbcHJvcF0gPSAodGhpcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbcHJvcF07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBiaW5kT3V0cHV0cyhpbnN0YW5jZTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dE5hbWVzOiBBcnJheTwndmFsdWVDaGFuZ2UnIHwgJ29uVmFsdWVDaGFuZ2UnPiA9IFtcbiAgICAgICd2YWx1ZUNoYW5nZScsXG4gICAgICAnb25WYWx1ZUNoYW5nZScsXG4gICAgXTtcblxuICAgIGZvciAoY29uc3Qgb3V0cHV0TmFtZSBvZiBvdXRwdXROYW1lcykge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gKGluc3RhbmNlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtvdXRwdXROYW1lXTtcbiAgICAgIGlmIChvdXRwdXQgJiYgdHlwZW9mIG91dHB1dCA9PT0gJ29iamVjdCcgJiYgJ3N1YnNjcmliZScgaW4gb3V0cHV0KSB7XG4gICAgICAgIGNvbnN0IHN1YiA9IChcbiAgICAgICAgICBvdXRwdXQgYXMgeyBzdWJzY3JpYmU6IChjYjogKHY6IHVua25vd24pID0+IHZvaWQpID0+IFN1YnNjcmlwdGlvbiB9XG4gICAgICAgICkuc3Vic2NyaWJlKCh2YWx1ZTogdW5rbm93bikgPT4gdGhpcy5lbWl0VmFsdWUodmFsdWUpKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3ViKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVtaXRWYWx1ZSh2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyRXJyb3IobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBlbC50ZXh0Q29udGVudCA9IG1lc3NhZ2U7XG4gICAgZWwuc3R5bGUuY29sb3IgPSAncmVkJztcbiAgICB0aGlzLmhvc3QuZWxlbWVudC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGVsKTtcbiAgfVxufVxuIl19
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY0lucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvRHluYW1pY0lucHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxNQUFNLEVBR04sU0FBUyxFQUNULGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUVqRCw2RUFBNkU7QUFDN0UsNEVBQTRFO0FBQzVFLE1BQU0sV0FBVyxHQUFHO0lBQ2xCLE9BQU87SUFDUCxPQUFPO0lBQ1AsYUFBYTtJQUNiLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLE9BQU87SUFDUCxTQUFTO0lBQ1QsV0FBVztJQUNYLGFBQWE7Q0FDTCxDQUFDO0FBU1gsTUFBTSxPQUFPLFlBQ1gsU0FBUSxrQkFBa0I7SUFHakIsSUFBSSxDQUFnQjtJQUM3QixzRUFBc0U7SUFDN0QsVUFBVSxDQUFjO0lBQ2QsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFDbkQsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFFekMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUcxQyxJQUFJLENBQW9CO0lBQ2hCLE9BQU8sQ0FBeUI7SUFDaEMsYUFBYSxDQUFXO0lBQ3hCLGFBQWEsR0FBbUIsRUFBRSxDQUFDO0lBQzNDLHVFQUF1RTtJQUN2RSxzRUFBc0U7SUFDOUQsUUFBUSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFckMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0IsS0FBSyxNQUFNLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUMvQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQzthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxPQUFzQjtRQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxNQUFNLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUMvQixJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxhQUF5QyxDQUFDLElBQUksQ0FBQyxHQUNuRCxJQUNELENBQUMsSUFBSSxDQUFDLENBQUM7WUFDVixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVPLE9BQU87UUFDYixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDakMsQ0FBQztJQUVPLE1BQU07UUFDWixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNyRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBb0MsQ0FBQyxDQUFDO1FBQzdELENBQUM7YUFBTSxJQUFJLE9BQU8sUUFBUSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLDhCQUE4QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSx5RUFBeUU7SUFDekUsMEVBQTBFO0lBQzFFLHNFQUFzRTtJQUN0RSxtRUFBbUU7SUFDbkUsMkVBQTJFO0lBQzNFLHNFQUFzRTtJQUM5RCxlQUFlLENBQUMsUUFBaUI7UUFDdkMsT0FBTyxDQUNMLE9BQU8sUUFBUSxLQUFLLFVBQVU7WUFDOUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FDdkQsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlLENBQUMsUUFBdUI7UUFDN0MsSUFBSSxDQUFDO1lBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUVsQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQ0FBaUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQy9ELE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRTNCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM1QyxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQywyQkFBMkIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsUUFBaUI7UUFDdEMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEMsTUFBTSxNQUFNLEdBQUksUUFBdUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUMvQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxFQUFFLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztnQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLElBQUksQ0FBQyxXQUFXLENBQUMsMkJBQTJCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNELENBQUM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE9BQU87WUFDTCxHQUFHLElBQUksQ0FBQyxVQUFVO1lBQ2xCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixhQUFhLEVBQUUsQ0FBQyxDQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ2hELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRTtZQUNuQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLO1lBQ2hDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUs7WUFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSztZQUNoQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRTtZQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQy9CLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUU7U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsMEVBQTBFO0lBQzFFLHFFQUFxRTtJQUNyRSxnRUFBZ0U7SUFDaEUsMkVBQTJFO0lBQzNFLDBFQUEwRTtJQUMxRSx5RUFBeUU7SUFDekUsdUVBQXVFO0lBQ3ZFLHlFQUF5RTtJQUN6RSxzRUFBc0U7SUFDdEUsMEVBQTBFO0lBQzFFLHVFQUF1RTtJQUN2RSxnRUFBZ0U7SUFDaEUsOENBQThDO0lBQzlDLDBFQUEwRTtJQUMxRSx1RUFBdUU7SUFDdkUsMEVBQTBFO0lBQzFFLHFEQUFxRDtJQUM3QyxVQUFVLENBQUMsUUFBaUI7UUFDbEMsTUFBTSxXQUFXLEdBQUcsUUFBbUMsQ0FBQztRQUN4RCxLQUFLLE1BQU0sSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFJLElBQWdDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUQsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxlQUFlLENBQUMsUUFBaUI7UUFDdkMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLFFBQW1DLENBQUM7UUFDeEQsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDM0QsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVPLFdBQVcsQ0FBQyxRQUFpQjtRQUNuQyxNQUFNLFdBQVcsR0FBMkM7WUFDMUQsYUFBYTtZQUNiLGVBQWU7U0FDaEIsQ0FBQztRQUVGLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUksUUFBb0MsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqRSxJQUFJLE1BQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksV0FBVyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNsRSxNQUFNLEdBQUcsR0FDUCxNQUNELENBQUMsU0FBUyxDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTyxXQUFXLENBQUMsT0FBZTtRQUNqQyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLEVBQUUsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7d0dBMU9VLFlBQVk7NEZBQVosWUFBWSx5UUFZSSxnQkFBZ0IseUVBZGpDLDhDQUE4QywyREFGOUMsWUFBWTs7NEZBSVgsWUFBWTtrQkFQeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDhDQUE4QztpQkFDekQ7OEJBS1UsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ2EsV0FBVztzQkFBN0IsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUtQLElBQUk7c0JBREgsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVHlwZSxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZUtleSwgUHJvcGVydGllcyB9IGZyb20gJ0BkeW5hbWljLWZpZWxkLWtpdC9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRklFTERfUkVHSVNUUlkgfSBmcm9tICcuLi9maWVsZFJlZ2lzdHJ5VG9rZW4nO1xuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9CYXNlSW5wdXQnO1xuXG4vLyBPbmx5IHRoZSBmcmFtZXdvcmstYWdub3N0aWMgRmllbGRSZW5kZXJlclByb3BzIGtleXMuIERvbWFpbi1zcGVjaWZpYyBwcm9wc1xuLy8gcmVhY2ggdGhlIHJlbmRlcmVyIHRocm91Z2ggYGV4dHJhUHJvcHNgIChGaWVsZERlc2NyaXB0aW9uLnByb3BzKSBpbnN0ZWFkLlxuY29uc3QgS05PV05fUFJPUFMgPSBbXG4gICd2YWx1ZScsXG4gICdsYWJlbCcsXG4gICdwbGFjZWhvbGRlcicsXG4gICdyZXF1aXJlZCcsXG4gICdkaXNhYmxlZCcsXG4gICdyZWFkT25seScsXG4gICdlcnJvcicsXG4gICdvcHRpb25zJyxcbiAgJ2NsYXNzTmFtZScsXG4gICdkZXNjcmlwdGlvbicsXG5dIGFzIGNvbnN0O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZmstZHluYW1pYy1pbnB1dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGA8ZGl2ICNob3N0IHN0eWxlPVwiZGlzcGxheTogY29udGVudHM7XCI+PC9kaXY+YCxcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0lucHV0XG4gIGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50XG4gIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCkgdHlwZSE6IEZpZWxkVHlwZUtleTtcbiAgLy8gRXh0cmEsIGZyYW1ld29yay1hZ25vc3RpYyBwcm9wcyBmb3J3YXJkZWQgdmVyYmF0aW0gdG8gdGhlIHJlbmRlcmVyLlxuICBASW5wdXQoKSBleHRyYVByb3BzPzogUHJvcGVydGllcztcbiAgQE91dHB1dCgpIG92ZXJyaWRlIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHVua25vd24+KCk7XG5cbiAgcHJpdmF0ZSByZWdpc3RyeSA9IGluamVjdChGSUVMRF9SRUdJU1RSWSk7XG5cbiAgQFZpZXdDaGlsZCgnaG9zdCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBob3N0ITogVmlld0NvbnRhaW5lclJlZjtcbiAgcHJpdmF0ZSBjb21wUmVmPzogQ29tcG9uZW50UmVmPHVua25vd24+O1xuICBwcml2YXRlIGlucHV0SW5zdGFuY2U/OiB1bmtub3duO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG4gIC8vIFRyYWNrcyB3aGljaCBLTk9XTl9QUk9QUyB3ZXJlIGFjdHVhbGx5IHN1cHBsaWVkIHRvIER5bmFtaWNJbnB1dCAodmlhXG4gIC8vIFNpbXBsZUNoYW5nZXMpLCBpbmRlcGVuZGVudCBvZiBUUyBjbGFzcy1maWVsZCBlbWl0LiBTZWUgYXBwbHlQcm9wcy5cbiAgcHJpdmF0ZSBzdXBwbGllZCA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBLTk9XTl9QUk9QUykge1xuICAgICAgaWYgKGNoYW5nZXNbcHJvcF0pIHtcbiAgICAgICAgdGhpcy5zdXBwbGllZC5hZGQocHJvcCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5wdXRJbnN0YW5jZSkge1xuICAgICAgdGhpcy5zeW5jUHJvcHNUb0luc3RhbmNlKGNoYW5nZXMpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VzWyd0eXBlJ10gJiYgIWNoYW5nZXNbJ3R5cGUnXS5maXJzdENoYW5nZSAmJiB0aGlzLmhvc3QpIHtcbiAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5pbnB1dEluc3RhbmNlICYmIHRoaXMuaG9zdCkge1xuICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jUHJvcHNUb0luc3RhbmNlKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaW5wdXRJbnN0YW5jZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBLTk9XTl9QUk9QUykge1xuICAgICAgaWYgKGNoYW5nZXNbcHJvcF0gJiYgdGhpcy5pbnB1dEluc3RhbmNlKSB7XG4gICAgICAgICh0aGlzLmlucHV0SW5zdGFuY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW3Byb3BdID0gKFxuICAgICAgICAgIHRoaXMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICAgKVtwcm9wXTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2V4dHJhUHJvcHMnXSkge1xuICAgICAgdGhpcy5hcHBseUV4dHJhUHJvcHModGhpcy5pbnB1dEluc3RhbmNlKTtcbiAgICB9XG4gICAgdGhpcy5jb21wUmVmPy5jaGFuZ2VEZXRlY3RvclJlZj8uZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYW51cFN1YnNjcmlwdGlvbnMoKTtcbiAgICB0aGlzLmNsZWFudXBSZW5kZXJlZENvbXBvbmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbnVwU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW51cFJlbmRlcmVkQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcFJlZj8uZGVzdHJveSgpO1xuICAgIHRoaXMuY29tcFJlZiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmlucHV0SW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcigpOiB2b2lkIHtcbiAgICBjb25zdCBSZW5kZXJlciA9IHRoaXMucmVnaXN0cnkuZ2V0KHRoaXMudHlwZSk7XG4gICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgdGhpcy5ob3N0LmNsZWFyKCk7XG5cbiAgICBpZiAoIVJlbmRlcmVyKSB7XG4gICAgICB0aGlzLnJlbmRlckVycm9yKGBVbmtub3duIGZpZWxkIHR5cGU6ICR7dGhpcy50eXBlfWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQ29tcG9uZW50VHlwZShSZW5kZXJlcikpIHtcbiAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50KFJlbmRlcmVyIGFzIHVua25vd24gYXMgVHlwZTx1bmtub3duPik7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgUmVuZGVyZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMucmVuZGVyRmFsbGJhY2soUmVuZGVyZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlckVycm9yKGBJbnZhbGlkIHJlbmRlcmVyIGZvciB0eXBlOiAke3RoaXMudHlwZX1gKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbmd1bGFyIGNvbXBvbmVudCBjbGFzc2VzIGNhcnJ5IGEgc3RhdGljIMm1Y21wLiBDaGVja2VkIGluc3RlYWQgb2ZcbiAgLy8gcmVmbGVjdENvbXBvbmVudFR5cGUoKSBiZWNhdXNlIHRoZSBwZWVyIHJhbmdlIHN0YXJ0cyBhdCBBbmd1bGFyIDEzIGFuZFxuICAvLyByZWZsZWN0Q29tcG9uZW50VHlwZSBpcyB2MTQrLiBQbGFpbiBmdW5jdGlvbiByZW5kZXJlcnMgaGF2ZSBubyDJtWNtcCBhbmRcbiAgLy8gZmFsbCB0aHJvdWdoIHRvIHJlbmRlckZhbGxiYWNrLiBVc2VzIGhhc093blByb3BlcnR5IChub3QgYGluYCkgc28gYVxuICAvLyBjbGFzcyB0aGF0IG1lcmVseSBleHRlbmRzIGEgY29tcG9uZW50IHdpdGhvdXQgaXRzIG93biBAQ29tcG9uZW50XG4gIC8vIGRlY29yYXRvciAtIGFuZCB3b3VsZCBvdGhlcndpc2UgaW5oZXJpdCB0aGUgcGFyZW50J3Mgc3RhdGljIMm1Y21wIHZpYSB0aGVcbiAgLy8gcHJvdG90eXBlIGNoYWluIC0gaXMgbm90IG1pc3Rha2VuIGZvciBhIGNvbXBvbmVudCBpbiBpdHMgb3duIHJpZ2h0LlxuICBwcml2YXRlIGlzQ29tcG9uZW50VHlwZShyZW5kZXJlcjogdW5rbm93bik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0eXBlb2YgcmVuZGVyZXIgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZW5kZXJlciwgJ8m1Y21wJylcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJDb21wb25lbnQoY29tcFR5cGU6IFR5cGU8dW5rbm93bj4pOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29tcFJlZiA9IHRoaXMuaG9zdC5jcmVhdGVDb21wb25lbnQoY29tcFR5cGUpO1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSBjb21wUmVmLmluc3RhbmNlO1xuXG4gICAgICBpZiAoIWluc3RhbmNlKSB7XG4gICAgICAgIHRoaXMucmVuZGVyRXJyb3IoYEZhaWxlZCB0byBjcmVhdGUgaW5zdGFuY2UgZm9yICR7dGhpcy50eXBlfWApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuYXBwbHlQcm9wcyhpbnN0YW5jZSk7XG4gICAgICB0aGlzLmJpbmRPdXRwdXRzKGluc3RhbmNlKTtcblxuICAgICAgdGhpcy5jb21wUmVmID0gY29tcFJlZjtcbiAgICAgIHRoaXMuaW5wdXRJbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgICAgY29tcFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLnJlbmRlckVycm9yKGBGYWlsZWQgdG8gcmVuZGVyIGZpZWxkOiAke3RoaXMudHlwZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckZhbGxiYWNrKHJlbmRlcmVyOiB1bmtub3duKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByb3BzID0gdGhpcy5nZXRGYWxsYmFja1Byb3BzKCk7XG4gICAgICBjb25zdCByZXN1bHQgPSAocmVuZGVyZXIgYXMgKHByb3BzOiB1bmtub3duKSA9PiBzdHJpbmcpKHByb3BzKTtcblxuICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGVsLmlubmVySFRNTCA9IHJlc3VsdDtcbiAgICAgICAgdGhpcy5ob3N0LmVsZW1lbnQubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChlbCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLnJlbmRlckVycm9yKGBGYWlsZWQgdG8gcmVuZGVyIGZpZWxkOiAke3RoaXMudHlwZX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEZhbGxiYWNrUHJvcHMoKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICAuLi50aGlzLmV4dHJhUHJvcHMsXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgIG9uVmFsdWVDaGFuZ2U6ICh2OiB1bmtub3duKSA9PiB0aGlzLmVtaXRWYWx1ZSh2KSxcbiAgICAgIGxhYmVsOiB0aGlzLmxhYmVsID8/ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIgPz8gJycsXG4gICAgICByZXF1aXJlZDogdGhpcy5yZXF1aXJlZCA/PyBmYWxzZSxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkID8/IGZhbHNlLFxuICAgICAgcmVhZE9ubHk6IHRoaXMucmVhZE9ubHkgPz8gZmFsc2UsXG4gICAgICBlcnJvcjogdGhpcy5lcnJvcixcbiAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyA/PyBbXSxcbiAgICAgIGNsYXNzTmFtZTogdGhpcy5jbGFzc05hbWUgPz8gJycsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbiA/PyAnJyxcbiAgICB9O1xuICB9XG5cbiAgLy8gR2F0ZXMgb24gYHRoaXMuc3VwcGxpZWRgIChwb3B1bGF0ZWQgZnJvbSBTaW1wbGVDaGFuZ2VzIGluIG5nT25DaGFuZ2VzKSxcbiAgLy8gbm90IG9uIGBwcm9wIGluIGluc3RhbmNlT2JqYCBvciBgcHJvcCBpbiB0aGlzYC4gQm90aCBgaW5gIGNoZWNrcyB0ZXN0IGFcbiAgLy8gVHlwZVNjcmlwdCBjbGFzcy1maWVsZCBlbWl0IGFydGlmYWN0IHJhdGhlciB0aGFuIGludGVudDogd2hldGhlciBhXG4gIC8vIHByb3BlcnR5IHNsb3QgZXhpc3RzIGF0IHJ1bnRpbWUgZGVwZW5kcyBvbiB0aGUgY29tcGlsZSB0YXJnZXRcbiAgLy8gKHVzZURlZmluZUZvckNsYXNzRmllbGRzIGlzIGZhbHNlIGJlbG93IEVTMjAyMiwgdHJ1ZSBhdCBFUzIwMjIrKSwgc28gdGhlXG4gIC8vIHNhbWUgc291cmNlIGNhbiBiZWhhdmUgb3Bwb3NpdGVseSBiZXR3ZWVuIHRoaXMgcGFja2FnZSdzIHRlc3QgYnVpbGQgYW5kXG4gIC8vIGl0cyBzaGlwcGVkIEVTMjAyMiBidW5kbGUsIHdoZXJlIGV2ZXJ5IGRlY2xhcmVkIGZpZWxkIGlzIGFsd2F5cyBhbiBvd25cbiAgLy8gcHJvcGVydHkuIGB0aGlzLnN1cHBsaWVkYCBpbnN0ZWFkIHJlZmxlY3RzIG9ubHkgd2hldGhlciBBbmd1bGFyIGV2ZXJcbiAgLy8gZmlyZWQgYSBTaW1wbGVDaGFuZ2UgZm9yIHRoYXQgaW5wdXQsIGkuZS4gd2hldGhlciB0aGUgcHJvcCB3YXMgKmJvdW5kKlxuICAvLyBhdCBhbGwgLSBpdCBza2lwcyBvbmx5IHByb3BzIER5bmFtaWNJbnB1dCB3YXMgbmV2ZXIgZ2l2ZW4gYSBiaW5kaW5nXG4gIC8vIGZvci4gSXQgaXMgTk9UIGEgZ2VuZXJhbCBcInJlbmRlcmVyIGRlZmF1bHRzIHN1cnZpdmVcIiBndWFyYW50ZWU6IEFuZ3VsYXJcbiAgLy8gZmlyZXMgYSBmaXJzdENoYW5nZSBTaW1wbGVDaGFuZ2UgZm9yIGV2ZXJ5IGJvdW5kIGlucHV0IGV2ZW4gd2hlbiB0aGVcbiAgLy8gYm91bmQgdmFsdWUgaXMgdW5kZWZpbmVkLCBhbmQgRmllbGRJbnB1dCdzIHRlbXBsYXRlIGJpbmRzIGFsbFxuICAvLyBLTk9XTl9QUk9QUyB1bmNvbmRpdGlvbmFsbHksIHNvIG9uIHRoZSByZWFsXG4gIC8vIE11bHRpRmllbGRJbnB1dCAtPiBGaWVsZElucHV0IC0+IER5bmFtaWNJbnB1dCBwYXRoIGV2ZXJ5IHByb3AgY291bnRzIGFzXG4gIC8vIHN1cHBsaWVkIGFuZCByZW5kZXJlci1zaWRlIGRlZmF1bHRzIChlLmcuIGBASW5wdXQoKSBsYWJlbCA9ICdOb25lJ2ApXG4gIC8vIGFyZSBzdGlsbCBvdmVyd3JpdHRlbiB3aXRoIHVuZGVmaW5lZC4gVGhpcyBvbmx5IGhlbHBzIHdoZW4gRHluYW1pY0lucHV0XG4gIC8vIGlzIG1vdW50ZWQgZGlyZWN0bHkgd2l0aCBzb21lIGlucHV0cyBsZWZ0IHVuYm91bmQuXG4gIHByaXZhdGUgYXBwbHlQcm9wcyhpbnN0YW5jZTogdW5rbm93bik6IHZvaWQge1xuICAgIGNvbnN0IGluc3RhbmNlT2JqID0gaW5zdGFuY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIEtOT1dOX1BST1BTKSB7XG4gICAgICBpZiAodGhpcy5zdXBwbGllZC5oYXMocHJvcCkpIHtcbiAgICAgICAgaW5zdGFuY2VPYmpbcHJvcF0gPSAodGhpcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbcHJvcF07XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYXBwbHlFeHRyYVByb3BzKGluc3RhbmNlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlFeHRyYVByb3BzKGluc3RhbmNlOiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKCFpbnN0YW5jZSB8fCAhdGhpcy5leHRyYVByb3BzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGluc3RhbmNlT2JqID0gaW5zdGFuY2UgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5leHRyYVByb3BzKSkge1xuICAgICAgaW5zdGFuY2VPYmpba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYmluZE91dHB1dHMoaW5zdGFuY2U6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCBvdXRwdXROYW1lczogQXJyYXk8J3ZhbHVlQ2hhbmdlJyB8ICdvblZhbHVlQ2hhbmdlJz4gPSBbXG4gICAgICAndmFsdWVDaGFuZ2UnLFxuICAgICAgJ29uVmFsdWVDaGFuZ2UnLFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IG91dHB1dE5hbWUgb2Ygb3V0cHV0TmFtZXMpIHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IChpbnN0YW5jZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbb3V0cHV0TmFtZV07XG4gICAgICBpZiAob3V0cHV0ICYmIHR5cGVvZiBvdXRwdXQgPT09ICdvYmplY3QnICYmICdzdWJzY3JpYmUnIGluIG91dHB1dCkge1xuICAgICAgICBjb25zdCBzdWIgPSAoXG4gICAgICAgICAgb3V0cHV0IGFzIHsgc3Vic2NyaWJlOiAoY2I6ICh2OiB1bmtub3duKSA9PiB2b2lkKSA9PiBTdWJzY3JpcHRpb24gfVxuICAgICAgICApLnN1YnNjcmliZSgodmFsdWU6IHVua25vd24pID0+IHRoaXMuZW1pdFZhbHVlKHZhbHVlKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1Yik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0VmFsdWUodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckVycm9yKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZWwudGV4dENvbnRlbnQgPSBtZXNzYWdlO1xuICAgIGVsLnN0eWxlLmNvbG9yID0gJ3JlZCc7XG4gICAgdGhpcy5ob3N0LmVsZW1lbnQubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChlbCk7XG4gIH1cbn1cbiJdfQ==
@@ -6,8 +6,24 @@ export class FieldInput {
6
6
  cdr;
7
7
  fieldDescription;
8
8
  value;
9
+ options;
10
+ disabled;
11
+ readOnly;
12
+ error;
9
13
  onValueChangeField = new EventEmitter();
10
14
  shouldRender = false;
15
+ get resolvedOptions() {
16
+ if (this.options) {
17
+ return this.options;
18
+ }
19
+ if (!this.fieldDescription?.options) {
20
+ return undefined;
21
+ }
22
+ if (typeof this.fieldDescription.options === 'function') {
23
+ return undefined;
24
+ }
25
+ return this.fieldDescription.options;
26
+ }
11
27
  constructor(cdr) {
12
28
  this.cdr = cdr;
13
29
  }
@@ -15,34 +31,27 @@ export class FieldInput {
15
31
  this.shouldRender = !!this.fieldDescription;
16
32
  this.cdr.markForCheck();
17
33
  }
18
- getFieldValue() {
19
- if (!this.fieldDescription) {
20
- return undefined;
21
- }
22
- if (this.value === undefined && this.fieldDescription.type === 'text') {
23
- return '';
24
- }
25
- return this.value;
26
- }
27
34
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FieldInput, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: FieldInput, isStandalone: true, selector: "dfk-field-input", inputs: { fieldDescription: "fieldDescription", value: "value" }, outputs: { onValueChangeField: "onValueChangeField" }, usesOnChanges: true, ngImport: i0, template: `
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: FieldInput, isStandalone: true, selector: "dfk-field-input", inputs: { fieldDescription: "fieldDescription", value: "value", options: "options", disabled: "disabled", readOnly: "readOnly", error: "error" }, outputs: { onValueChangeField: "onValueChangeField" }, usesOnChanges: true, ngImport: i0, template: `
29
36
  <dfk-dynamic-input
30
37
  *ngIf="shouldRender"
31
38
  [type]="fieldDescription!.type"
32
- [value]="getFieldValue()"
39
+ [value]="value"
33
40
  [label]="fieldDescription!.label"
34
41
  [placeholder]="fieldDescription!.placeholder"
35
42
  [required]="fieldDescription!.required"
36
43
  [description]="$any(fieldDescription!.description)"
37
- [options]="fieldDescription!.options"
44
+ [options]="resolvedOptions"
38
45
  [className]="fieldDescription!.className"
39
46
  (valueChange)="
40
47
  onValueChangeField.emit({ value: $event, key: fieldDescription!.name })
41
48
  "
42
- [disabled]="false"
43
- [errorMessage]="''"
49
+ [disabled]="disabled"
50
+ [readOnly]="readOnly"
51
+ [error]="$any(error)"
52
+ [extraProps]="fieldDescription!.props"
44
53
  ></dfk-dynamic-input>
45
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicInput, selector: "dfk-dynamic-input", inputs: ["type"], outputs: ["valueChange", "onChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
54
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DynamicInput, selector: "dfk-dynamic-input", inputs: ["type", "extraProps"], outputs: ["valueChange", "onChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
55
  }
47
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: FieldInput, decorators: [{
48
57
  type: Component,
@@ -55,18 +64,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
55
64
  <dfk-dynamic-input
56
65
  *ngIf="shouldRender"
57
66
  [type]="fieldDescription!.type"
58
- [value]="getFieldValue()"
67
+ [value]="value"
59
68
  [label]="fieldDescription!.label"
60
69
  [placeholder]="fieldDescription!.placeholder"
61
70
  [required]="fieldDescription!.required"
62
71
  [description]="$any(fieldDescription!.description)"
63
- [options]="fieldDescription!.options"
72
+ [options]="resolvedOptions"
64
73
  [className]="fieldDescription!.className"
65
74
  (valueChange)="
66
75
  onValueChangeField.emit({ value: $event, key: fieldDescription!.name })
67
76
  "
68
- [disabled]="false"
69
- [errorMessage]="''"
77
+ [disabled]="disabled"
78
+ [readOnly]="readOnly"
79
+ [error]="$any(error)"
80
+ [extraProps]="fieldDescription!.props"
70
81
  ></dfk-dynamic-input>
71
82
  `,
72
83
  }]
@@ -74,7 +85,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
74
85
  type: Input
75
86
  }], value: [{
76
87
  type: Input
88
+ }], options: [{
89
+ type: Input
90
+ }], disabled: [{
91
+ type: Input
92
+ }], readOnly: [{
93
+ type: Input
94
+ }], error: [{
95
+ type: Input
77
96
  }], onValueChangeField: [{
78
97
  type: Output
79
98
  }] } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGRJbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0ZpZWxkSW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUEwQjlDLE1BQU0sT0FBTyxVQUFVO0lBVUQ7SUFUWCxnQkFBZ0IsQ0FBb0I7SUFDcEMsS0FBSyxDQUFXO0lBQ2Ysa0JBQWtCLEdBQUcsSUFBSSxZQUFZLEVBRzNDLENBQUM7SUFFTCxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRXJCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQztJQUU5QyxXQUFXLENBQUMsUUFBdUI7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN0RSxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQzt3R0EzQlUsVUFBVTs0RkFBVixVQUFVLHlOQW5CWDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQsNERBbkJTLElBQUksNkZBQUUsWUFBWTs7NEZBcUJqQixVQUFVO2tCQXhCdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQztvQkFDN0IsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQlQ7aUJBQ0Y7c0ZBRVUsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWVsZERlc2NyaXB0aW9uIH0gZnJvbSAnQGR5bmFtaWMtZmllbGQta2l0L2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0lucHV0IH0gZnJvbSAnLi9EeW5hbWljSW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZmstZmllbGQtaW5wdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgRHluYW1pY0lucHV0XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRmay1keW5hbWljLWlucHV0XG4gICAgICAqbmdJZj1cInNob3VsZFJlbmRlclwiXG4gICAgICBbdHlwZV09XCJmaWVsZERlc2NyaXB0aW9uIS50eXBlXCJcbiAgICAgIFt2YWx1ZV09XCJnZXRGaWVsZFZhbHVlKClcIlxuICAgICAgW2xhYmVsXT1cImZpZWxkRGVzY3JpcHRpb24hLmxhYmVsXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZERlc2NyaXB0aW9uIS5wbGFjZWhvbGRlclwiXG4gICAgICBbcmVxdWlyZWRdPVwiZmllbGREZXNjcmlwdGlvbiEucmVxdWlyZWRcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIiRhbnkoZmllbGREZXNjcmlwdGlvbiEuZGVzY3JpcHRpb24pXCJcbiAgICAgIFtvcHRpb25zXT1cImZpZWxkRGVzY3JpcHRpb24hLm9wdGlvbnNcIlxuICAgICAgW2NsYXNzTmFtZV09XCJmaWVsZERlc2NyaXB0aW9uIS5jbGFzc05hbWVcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cIlxuICAgICAgICBvblZhbHVlQ2hhbmdlRmllbGQuZW1pdCh7IHZhbHVlOiAkZXZlbnQsIGtleTogZmllbGREZXNjcmlwdGlvbiEubmFtZSB9KVxuICAgICAgXCJcbiAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXG4gICAgICBbZXJyb3JNZXNzYWdlXT1cIicnXCJcbiAgICA+PC9kZmstZHluYW1pYy1pbnB1dD5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgRmllbGRJbnB1dCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZpZWxkRGVzY3JpcHRpb24/OiBGaWVsZERlc2NyaXB0aW9uO1xuICBASW5wdXQoKSB2YWx1ZT86IHVua25vd247XG4gIEBPdXRwdXQoKSBvblZhbHVlQ2hhbmdlRmllbGQgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICB2YWx1ZTogdW5rbm93bjtcbiAgICBrZXk6IHN0cmluZztcbiAgfT4oKTtcblxuICBzaG91bGRSZW5kZXIgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnNob3VsZFJlbmRlciA9ICEhdGhpcy5maWVsZERlc2NyaXB0aW9uO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0RmllbGRWYWx1ZSgpOiB1bmtub3duIHtcbiAgICBpZiAoIXRoaXMuZmllbGREZXNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkICYmIHRoaXMuZmllbGREZXNjcmlwdGlvbi50eXBlID09PSAndGV4dCcpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxufVxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmllbGRJbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL0ZpZWxkSW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUE0QjlDLE1BQU0sT0FBTyxVQUFVO0lBMkJEO0lBMUJYLGdCQUFnQixDQUFvQjtJQUNwQyxLQUFLLENBQVc7SUFDaEIsT0FBTyxDQUE2QjtJQUNwQyxRQUFRLENBQVc7SUFDbkIsUUFBUSxDQUFXO0lBQ25CLEtBQUssQ0FBcUI7SUFDekIsa0JBQWtCLEdBQUcsSUFBSSxZQUFZLEVBRzNDLENBQUM7SUFFTCxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRXJCLElBQUksZUFBZTtRQUNqQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdEIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDcEMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3hELE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQUcsQ0FBQztJQUU5QyxXQUFXLENBQUMsUUFBdUI7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt3R0FoQ1UsVUFBVTs0RkFBVixVQUFVLHlTQXJCWDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CVCw0REFyQlMsSUFBSSw2RkFBRSxZQUFZOzs0RkF1QmpCLFVBQVU7a0JBMUJ0QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDO29CQUM3QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUO2lCQUNGO3NGQUVVLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGREZXNjcmlwdGlvbiB9IGZyb20gJ0BkeW5hbWljLWZpZWxkLWtpdC9jb3JlJztcbmltcG9ydCB7IER5bmFtaWNJbnB1dCB9IGZyb20gJy4vRHluYW1pY0lucHV0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGZrLWZpZWxkLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIER5bmFtaWNJbnB1dF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkZmstZHluYW1pYy1pbnB1dFxuICAgICAgKm5nSWY9XCJzaG91bGRSZW5kZXJcIlxuICAgICAgW3R5cGVdPVwiZmllbGREZXNjcmlwdGlvbiEudHlwZVwiXG4gICAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgICAgW2xhYmVsXT1cImZpZWxkRGVzY3JpcHRpb24hLmxhYmVsXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZERlc2NyaXB0aW9uIS5wbGFjZWhvbGRlclwiXG4gICAgICBbcmVxdWlyZWRdPVwiZmllbGREZXNjcmlwdGlvbiEucmVxdWlyZWRcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIiRhbnkoZmllbGREZXNjcmlwdGlvbiEuZGVzY3JpcHRpb24pXCJcbiAgICAgIFtvcHRpb25zXT1cInJlc29sdmVkT3B0aW9uc1wiXG4gICAgICBbY2xhc3NOYW1lXT1cImZpZWxkRGVzY3JpcHRpb24hLmNsYXNzTmFtZVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwiXG4gICAgICAgIG9uVmFsdWVDaGFuZ2VGaWVsZC5lbWl0KHsgdmFsdWU6ICRldmVudCwga2V5OiBmaWVsZERlc2NyaXB0aW9uIS5uYW1lIH0pXG4gICAgICBcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICBbZXJyb3JdPVwiJGFueShlcnJvcilcIlxuICAgICAgW2V4dHJhUHJvcHNdPVwiZmllbGREZXNjcmlwdGlvbiEucHJvcHNcIlxuICAgID48L2Rmay1keW5hbWljLWlucHV0PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBGaWVsZElucHV0IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZmllbGREZXNjcmlwdGlvbj86IEZpZWxkRGVzY3JpcHRpb247XG4gIEBJbnB1dCgpIHZhbHVlPzogdW5rbm93bjtcbiAgQElucHV0KCkgb3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+W107XG4gIEBJbnB1dCgpIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgQElucHV0KCkgcmVhZE9ubHk/OiBib29sZWFuO1xuICBASW5wdXQoKSBlcnJvcj86IHN0cmluZyB8IHN0cmluZ1tdO1xuICBAT3V0cHV0KCkgb25WYWx1ZUNoYW5nZUZpZWxkID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgdmFsdWU6IHVua25vd247XG4gICAga2V5OiBzdHJpbmc7XG4gIH0+KCk7XG5cbiAgc2hvdWxkUmVuZGVyID0gZmFsc2U7XG5cbiAgZ2V0IHJlc29sdmVkT3B0aW9ucygpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZmllbGREZXNjcmlwdGlvbj8ub3B0aW9ucykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB0aGlzLmZpZWxkRGVzY3JpcHRpb24ub3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmllbGREZXNjcmlwdGlvbi5vcHRpb25zO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25DaGFuZ2VzKF9jaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zaG91bGRSZW5kZXIgPSAhIXRoaXMuZmllbGREZXNjcmlwdGlvbjtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19