@metadev/lux 0.15.0 → 0.16.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.
@@ -3,9 +3,12 @@ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { of } from 'rxjs';
4
4
  import { debounceTime, first, map } from 'rxjs/operators';
5
5
  import { isInitialAndEmpty } from '../helperFns';
6
+ export const LOST_FOCUS_TIME_WINDOW_MS = 200; // ms
6
7
  export class AutocompleteComponent {
7
8
  constructor(cd) {
8
9
  this.cd = cd;
10
+ this.lostFocusHandled = false;
11
+ this.t0 = 0;
9
12
  this.showSpinner = false;
10
13
  this.touched = false;
11
14
  this.completionList = [];
@@ -191,14 +194,33 @@ export class AutocompleteComponent {
191
194
  this.ensureItemVisible(index);
192
195
  }
193
196
  onLostFocus(label) {
194
- if (label) {
195
- this.pickSelectionOrFirstMatch(label);
196
- }
197
+ this.lostFocusHandled = false;
198
+ this.t0 = performance.now();
199
+ console.log('Init LostFocus');
197
200
  setTimeout(() => {
198
- this.toggleCompletion(false, label);
199
- }, 200);
201
+ // needs to postpone actions some milliseconds to verify if
202
+ // lost focus was followed by a list selection -> then cancel
203
+ // if not -> make side effect
204
+ if (!this.lostFocusHandled) {
205
+ console.log('Lost focus 2', this.lostFocusHandled, 'SIDE EFFECT', performance.now() - this.t0, 'label:', label);
206
+ if (label) {
207
+ this.pickSelectionOrFirstMatch(label);
208
+ }
209
+ this.toggleCompletion(false, label);
210
+ }
211
+ else {
212
+ // do nothing (list selection took place)
213
+ console.log('onlost focus 2', this.lostFocusHandled, 'nothing', performance.now() - this.t0);
214
+ }
215
+ }, LOST_FOCUS_TIME_WINDOW_MS);
200
216
  }
201
217
  complete(item) {
218
+ this.lostFocusHandled = true; // prevent a previous lostFocus to trigger a side effect
219
+ const ellapsed = performance.now() - this.t0;
220
+ if (ellapsed > LOST_FOCUS_TIME_WINDOW_MS) {
221
+ console.warn('complete. lostfocus->click timeout of ', LOST_FOCUS_TIME_WINDOW_MS, 'ms exceed: ', performance.now() - this.t0, ' ms');
222
+ }
223
+ console.log('complete. set to true. CANCELED side effect', performance.now() - this.t0);
202
224
  if (item !== null) {
203
225
  this.value = item.key;
204
226
  this.label = item.label;
@@ -326,7 +348,7 @@ AutocompleteComponent.decorators = [
326
348
  useExisting: forwardRef(() => AutocompleteComponent)
327
349
  }
328
350
  ],
329
- styles: ["input,select,textarea{border:solid 1px #495057;border:solid 1px var(--lux-input-border-color, #495057);margin:0;margin:var(--lux-input-margin, 0rem);padding:0 .5rem;padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:#fe2e2e;background:var(--lux-alert-background, #fe2e2e);color:#fff;color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0 .5rem;margin-bottom:0;font-weight:400;color:#495057;color:var(--lux-symbol-color, #495057);text-align:center;white-space:nowrap;background:#e9ecef;background:var(--lux-symbol-background, #e9ecef);border:1px solid #495057;border:1px solid var(--lux-input-border-color, #495057);font-size:1rem;font-size:var(--lux-symbol-font-size, 1rem)}.rounded,.postfix,.infix,.prefix{border-radius:.25rem;border:1px solid;border:var(--lux-input-border, 1px solid)}.prefix{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.infix{border-radius:0}.postfix{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.lux-autocomplete .lux-autocomplete-box{display:grid;grid-template-columns:1fr -webkit-max-content;grid-template-columns:1fr max-content}.lux-autocomplete input{padding:.1rem 1.5rem .1rem .5rem;padding:var(--lux-autocomplete-input-padding, .1rem 1.5rem .1rem .5rem);text-overflow:ellipsis;grid-row:1;grid-column-start:1;grid-column-end:3}.lux-autocomplete .icon-suggestions{grid-row:1;grid-column:2;width:1.5rem;border:none;background-color:transparent;background:url(/assets/img/suggestions.svg) no-repeat center;background-size:.5rem .5rem;z-index:1;position:relative;left:-1rem}.lux-autocomplete .icon-clear{grid-row:1;grid-column:2;width:1.5rem;width:var(--lux-autocomplete-icon-width, 1.5rem);border:none;background-color:transparent;background:url(/assets/img/filter-clear.png) no-repeat center;background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:.5rem .5rem;background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-autocomplete .icon-dropdown{grid-row:1;grid-column:2;width:1.5rem;width:var(--lux-autocomplete-icon-width, 1.5rem);height:1.3rem;height:var(--lux-autocomplete-icon-height, 1.3rem);border:none;background-color:transparent;background:url(/assets/img/drop-down-arrow.svg) no-repeat center;background:var(--lux-autocomplete-icon-dropdown, url(/assets/img/drop-down-arrow.svg) no-repeat center);background-size:.5rem .5rem;background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-autocomplete .icon-spinner{grid-row:1;grid-column:2;width:1.5rem;border:none;background-color:transparent;background:url(/assets/img/spinner.svg) no-repeat center;background-size:1.2rem 1.2rem;z-index:1}.lux-completion-list{visibility:collapse;position:absolute;border:1px solid #ccc;margin:0;padding:0;max-height:10rem;overflow:auto;z-index:2}.lux-completion-list ul{list-style:none;margin:0;padding:0}.showCompletion{visibility:visible}.lux-completion-item{background-color:#fff;color:#000;padding:.1rem .5rem;cursor:pointer}.selected{background-color:#2e2eac;color:#fff}.disabled{background-color:#f0f0f0;color:#444}.disabled .selected{background-color:#9898ec;color:#fff}.bold{font-weight:bold}\n"]
351
+ styles: [":focus{z-index:1}input,select,textarea{border:solid 1px #495057;border:solid 1px var(--lux-input-border-color, #495057);margin:0;margin:var(--lux-input-margin, 0rem);padding:0 .5rem;padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:#fe2e2e;background:var(--lux-alert-background, #fe2e2e);color:#fff;color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0 .5rem;margin-bottom:0;font-weight:400;color:default;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:default;background:var(--lux-symbol-background, default);border:1px solid #495057;border:1px solid var(--lux-input-border-color, #495057);font-size:1rem;font-size:var(--lux-symbol-font-size, 1rem)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:.25rem;border:1px solid;border:var(--lux-input-border, 1px solid)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none}.lux-autocomplete .lux-autocomplete-box{display:grid;grid-template-columns:1fr -webkit-max-content;grid-template-columns:1fr max-content}.lux-autocomplete input{padding:.1rem 1.5rem .1rem .5rem;padding:var(--lux-autocomplete-input-padding, .1rem 1.5rem .1rem .5rem);text-overflow:ellipsis;grid-row:1;grid-column-start:1;grid-column-end:3}.lux-autocomplete .icon-suggestions{grid-row:1;grid-column:2;width:1.5rem;border:none;background-color:transparent;background:url(/assets/img/suggestions.svg) no-repeat center;background-size:.5rem .5rem;z-index:1;position:relative;left:-1rem}.lux-autocomplete .icon-clear{grid-row:1;grid-column:2;width:1.5rem;width:var(--lux-autocomplete-icon-width, 1.5rem);border:none;background-color:transparent;background:url(/assets/img/filter-clear.png) no-repeat center;background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:.5rem .5rem;background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-autocomplete .icon-dropdown{grid-row:1;grid-column:2;width:1.5rem;width:var(--lux-autocomplete-icon-width, 1.5rem);height:1.3rem;height:var(--lux-autocomplete-icon-height, 1.3rem);border:none;background-color:transparent;background:url(/assets/img/drop-down-arrow.svg) no-repeat center;background:var(--lux-autocomplete-icon-dropdown, url(/assets/img/drop-down-arrow.svg) no-repeat center);background-size:.5rem .5rem;background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}.lux-autocomplete .icon-spinner{grid-row:1;grid-column:2;width:1.5rem;border:none;background-color:transparent;background:url(/assets/img/spinner.svg) no-repeat center;background-size:1.2rem 1.2rem;z-index:1}.lux-completion-list{visibility:collapse;position:absolute;border:1px solid #ccc;margin:0;padding:0;max-height:10rem;overflow:auto;z-index:2}.lux-completion-list ul{list-style:none;margin:0;padding:0}.showCompletion{visibility:visible}.lux-completion-item{background-color:#fff;color:#000;padding:.1rem .5rem;cursor:pointer}.selected{background-color:#2e2eac;color:#fff}.disabled{background-color:#f0f0f0;color:#444}.disabled .selected{background-color:#9898ec;color:#fff}.bold{font-weight:bold}\n"]
330
352
  },] }
331
353
  ];
332
354
  AutocompleteComponent.ctorParameters = () => [
@@ -382,4 +404,4 @@ const findLabelForId = (data, id) => {
382
404
  };
383
405
  const ɵ4 = findLabelForId;
384
406
  export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4 };
385
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2x1eC9zcmMvbGliL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEVBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU8xRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFtQmpELE1BQU0sT0FBTyxxQkFBcUI7SUEwRWhDLFlBQW9CLEVBQXFCO1FBQXJCLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBOUR6QyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztRQUN6QyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUdiLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUd6RCxhQUFRLEdBQW1CLElBQUksQ0FBQztRQUNoQyxhQUFRLEdBQW1CLElBQUksQ0FBQztRQUN2QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLDhFQUE4RTtRQUNyRSxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUNqQzs7O1dBR0c7UUFDTSx3QkFBbUIsR0FBRyxLQUFL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QUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUUsTUFBTSxPQUFPLG1DQUNSLElBQUksS0FDUCxXQUFXO1FBQ1gsVUFBVTtRQUNWLFlBQVksR0FDYixDQUFDO0lBQ0YsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDOztBQUVGLE1BQU0sY0FBYyxHQUFHLENBQUMsSUFBNkIsRUFBRSxFQUFPLEVBQVUsRUFBRTtJQUN4RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDcEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3Jcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlyc3QsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIERhdGFTb3VyY2UsXG4gIERhdGFTb3VyY2VJdGVtLFxuICBEZWNvcmF0ZWREYXRhU291cmNlLFxuICBEZWNvcmF0ZWREYXRhU291cmNlSXRlbVxufSBmcm9tICcuLi9kYXRhc291cmNlJztcbmltcG9ydCB7IGlzSW5pdGlhbEFuZEVtcHR5IH0gZnJvbSAnLi4vaGVscGVyRm5zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHV4LWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF1dG9jb21wbGV0ZUNvbXBvbmVudClcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEF1dG9jb21wbGV0ZUNvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25Jbml0LCBBZnRlclZpZXdJbml0XG57XG4gIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ2kwJywgeyBzdGF0aWM6IHRydWUgfSkgaTA6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2NvbXBsZXRlRGl2JywgeyBzdGF0aWM6IHRydWUgfSkgY29tcGxldGVEaXY6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogRGF0YVNvdXJjZTxhbnksIHN0cmluZz47XG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIHByaXZhdGUgX3ZhbHVlOiBhbnk7XG5cbiAgc2hvd1NwaW5uZXIgPSBmYWxzZTtcbiAgdG91Y2hlZCA9IGZhbHNlO1xuICBjb21wbGV0aW9uTGlzdDogRGVjb3JhdGVkRGF0YVNvdXJjZSA9IFtdO1xuICBzaG93Q29tcGxldGlvbiA9IGZhbHNlO1xuICBmb2N1c0l0ZW06IERhdGFTb3VyY2VJdGVtPGFueSwgc3RyaW5nPjtcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRhdGFTb3VyY2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFTb3VyY2U8YW55LCBzdHJpbmc+PigpO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnB1dElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgLyoqIElmIGNhbkFkZE5ld1ZhbHVlcywgdXNlciBjYW4gdHlwZSBpdGVtcyBub3QgcHJlc2VudCBpbiB0aGUgZGF0YS1zb3VyY2UuICovXG4gIEBJbnB1dCgpIGNhbkFkZE5ld1ZhbHVlcyA9IGZhbHNlO1xuICAvKiogQWZ0ZXIgY2xlYW5pbmcgdGhlIHNlbGVjdGlvbiBzaG91bGQgdGhlIGNvbXBsZXRpb24gbGlzdCByZW1haW4gb3BlbiBvciBjbG9zZWQ6XG4gICAqICBmYWxzZTogKGRlZmF1bHQpIGNsb3NlIG9uIGZpbHRlcnMsIHRvIGNsZWFuIGEgZmlsdGVyIGFuZCBzZWxlY3QgYWxsLlxuICAgKiAgdHJ1ZToga2VlcCBvcGVuICh3aGVuIHRoZSBhY3Rpb24gbW9zdCBsaWtlbHkgaXMgdG8gcGljayBhbm90aGVyIG9uZSkuXG4gICAqL1xuICBASW5wdXQoKSBrZWVwT3BlbkFmdGVyRGVsZXRlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcbiAgICBjb25zdCBpbml0aWFsQW5kRW1wdHkgPSBpc0luaXRpYWxBbmRFbXB0eSh0aGlzLl92YWx1ZSwgdik7XG4gICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgdGhpcy5jb21wbGV0ZUxhYmVsKCk7XG4gICAgaWYgKCFpbml0aWFsQW5kRW1wdHkpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgICB9XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGRhdGFTb3VyY2UoKTogRGF0YVNvdXJjZTxhbnksIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG4gIHNldCBkYXRhU291cmNlKHY6IERhdGFTb3VyY2U8YW55LCBzdHJpbmc+KSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHY7XG4gICAgdGhpcy5kYXRhU291cmNlQ2hhbmdlLmVtaXQodik7XG4gIH1cbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgcGxhY2Vob2xkZXIodjogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2O1xuICB9XG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlciA/IHRoaXMuX3BsYWNlaG9sZGVyIDogJyc7XG4gIH1cblxuICBASW5wdXQoKSByZXNvbHZlTGFiZWxzRnVuY3Rpb24/OiAoXG4gICAgaW5zdGFuY2U6IGFueSxcbiAgICBrZXlzOiBhbnlbXVxuICApID0+IE9ic2VydmFibGU8RGF0YVNvdXJjZTxhbnksIHN0cmluZz4+ID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwb3B1bGF0ZUZ1bmN0aW9uPzogKFxuICAgIGluc3RhbmNlOiBhbnksXG4gICAgc2VhcmNoOiBzdHJpbmdcbiAgKSA9PiBPYnNlcnZhYmxlPERhdGFTb3VyY2U8YW55LCBzdHJpbmc+PiA9IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaW5zdGFuY2U6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBJbnRlcmZhY2VcbiAgb25DaGFuZ2UgPSAodmFsdWUpOiB2b2lkID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50b3VjaGVkICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG4gIC8vIEVuZCBDb250cm9sVmFsdWVBY2Nlc3NvciBJbnRlcmZhY2VcblxuICAvLyBWYWxpZGF0b3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoKTogdm9pZCB7fVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKFxuICAgICAgdGhpcy5yZXF1aXJlZCAmJlxuICAgICAgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICkge1xuICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHsgdmFsdWUsIHJlYXNvbjogJ1JlcXVpcmVkIGZpZWxkLicgfSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBFbmQgb2YgVmFsaWRhdG9yIGludGVyZmFjZVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgIHRoaXMudG9nZ2xlQ29tcGxldGlvbih0aGlzLmtlZXBPcGVuQWZ0ZXJEZWxldGUsICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGxldGVMYWJlbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLmxhYmVsID0gZmluZExhYmVsRm9ySWQodGhpcy5kYXRhU291cmNlLCB0aGlzLnZhbHVlKSB8fCAnJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnN0YW5jZSAmJiB0aGlzLnJlc29sdmVMYWJlbHNGdW5jdGlvbikge1xuICAgICAgICB0aGlzLnJlc29sdmVMYWJlbHNGdW5jdGlvbih0aGlzLmluc3RhbmNlLCBbdGhpcy52YWx1ZV0pXG4gICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEpLCBmaXJzdCgpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSBmaW5kTGFiZWxGb3JJZChkYXRhLCB0aGlzLnZhbHVlKSB8fCAnJztcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sYWJlbCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRJZCA9IHRoaXMuaW5wdXRJZFxuICAgICAgPyB0aGlzLmlucHV0SWRcbiAgICAgIDogYGF1dG9jb21wbGV0ZWxpc3Qke0F1dG9jb21wbGV0ZUNvbXBvbmVudC5pZENvdW50ZXIrK31gO1xuICAgIHRoaXMuY29tcGxldGVMYWJlbCgpO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNhbWVXaWR0aCgpO1xuICB9XG4gIG9uSW5wdXRSZXNpemVkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U2FtZVdpZHRoKCk7XG4gIH1cbiAgcHJpdmF0ZSBzZXRTYW1lV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmkwLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgdGhpcy5jb21wbGV0ZURpdi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICB9XG5cbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBsYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIGlmIChsYWJlbCkge1xuICAgICAgICAgIHRoaXMucGlja1NlbGVjdGlvbk9yRmlyc3RNYXRjaChsYWJlbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93Q29tcGxldGlvbiA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbiAgb25LZXlwcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCwgbGFiZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdJbnRybyc6XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMucGlja1NlbGVjdGlvbk9yRmlyc3RNYXRjaChsYWJlbCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuICBvbktleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBsYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgdGhpcy5mb2N1c09uTmV4dCg1KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzT25OZXh0KDEpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1BhZ2VVcCc6XG4gICAgICAgIHRoaXMuZm9jdXNPblByZXZpb3VzKDUpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLmZvY3VzT25QcmV2aW91cygxKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLmNvbXBsZXRlKG51bGwpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0ludHJvJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnNob3dDb21wbGV0aW9uTGlzdChsYWJlbCk7XG4gICAgICAvLyBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuICBwcml2YXRlIGZvY3VzT25OZXh0KG9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuY29tcGxldGlvbkxpc3QgfHwgW107XG4gICAgY29uc3QgaW5kZXggPSBsaXN0LmZpbmRJbmRleChcbiAgICAgIChpdCkgPT4gdGhpcy5mb2N1c0l0ZW0gJiYgaXQua2V5ID09PSB0aGlzLmZvY3VzSXRlbS5rZXlcbiAgICApO1xuICAgIGNvbnN0IG5leHQgPVxuICAgICAgaW5kZXggIT09IC0xICYmIGxpc3QubGVuZ3RoID4gaW5kZXggKyBvZmZzZXRcbiAgICAgICAgPyBsaXN0W2luZGV4ICsgb2Zmc2V0XVxuICAgICAgICA6IGxpc3RbbGlzdC5sZW5ndGggLSAxXTtcbiAgICB0aGlzLmZvY3VzSXRlbSA9IG5leHQ7XG4gICAgdGhpcy5lbnN1cmVJdGVtVmlzaWJsZShpbmRleCk7XG4gIH1cbiAgcHJpdmF0ZSBmb2N1c09uUHJldmlvdXMob2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5jb21wbGV0aW9uTGlzdCB8fCBbXTtcbiAgICBjb25zdCBpbmRleCA9IGxpc3QuZmluZEluZGV4KFxuICAgICAgKGl0KSA9PiB0aGlzLmZvY3VzSXRlbSAmJiBpdC5rZXkgPT09IHRoaXMuZm9jdXNJdGVtLmtleVxuICAgICk7XG4gICAgY29uc3QgbmV4dCA9XG4gICAgICBpbmRleCAhPT0gLTEgJiYgaW5kZXggPiBvZmZzZXQgPyBsaXN0W2luZGV4IC0gb2Zmc2V0XSA6IGxpc3RbMF07XG4gICAgdGhpcy5mb2N1c0l0ZW0gPSBuZXh0O1xuICAgIHRoaXMuZW5zdXJlSXRlbVZpc2libGUoaW5kZXgpO1xuICB9XG4gIG9uTG9zdEZvY3VzKGxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAobGFiZWwpIHtcbiAgICAgIHRoaXMucGlja1NlbGVjdGlvbk9yRmlyc3RNYXRjaChsYWJlbCk7XG4gICAgfVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy50b2dnbGVDb21wbGV0aW9uKGZhbHNlLCBsYWJlbCk7XG4gICAgfSwgMjAwKTtcbiAgfVxuICBjb21wbGV0ZShpdGVtOiBEYXRhU291cmNlSXRlbTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgc3RyaW5nPik6IHZvaWQge1xuICAgIGlmIChpdGVtICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gaXRlbS5rZXk7XG4gICAgICB0aGlzLmxhYmVsID0gaXRlbS5sYWJlbDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLmxhYmVsID0gJyc7XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlQ29tcGxldGlvbihmYWxzZSwgbnVsbCk7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbiAgdG9nZ2xlQ29tcGxldGlvbihzaG93OiBib29sZWFuLCBsYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHNob3cgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2hvd0NvbXBsZXRpb25MaXN0KGxhYmVsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93Q29tcGxldGlvbiA9IGZhbHNlO1xuICAgICAgaWYgKHRoaXMuY2FuQWRkTmV3VmFsdWVzKSB7XG4gICAgICAgIHRoaXMuc3luY0N1c3RvbVZhbHVlKHRoaXMubGFiZWwpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRPcHRpb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY29tcGxldGlvbkxpc3QuZmluZEluZGV4KFxuICAgICAgKGkpID0+IGkua2V5ID09PSB0aGlzLmZvY3VzSXRlbS5rZXlcbiAgICApO1xuICAgIGlmIChpbmRleCA9PT0gLTEgfHwgIXRoaXMuZm9jdXNJdGVtKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMuaW5wdXRJZH1fJHtpbmRleH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnN1cmVJdGVtVmlzaWJsZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gdGhpcy5jb21wbGV0ZURpdi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpJylbaW5kZXhdO1xuICAgIGlmICh0YXJnZXQpIHtcbiAgICAgIHRhcmdldC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJyB9KTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBzeW5jQ3VzdG9tVmFsdWUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRleHQ7XG4gICAgdGhpcy5sYWJlbCA9IHRleHQ7XG4gIH1cbiAgcHJpdmF0ZSBwaWNrU2VsZWN0aW9uT3JGaXJzdE1hdGNoKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbkFkZE5ld1ZhbHVlcykge1xuICAgICAgdGhpcy5zeW5jQ3VzdG9tVmFsdWUodGV4dCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmZvY3VzSXRlbSAmJiB0aGlzLmZvY3VzSXRlbS5sYWJlbCkge1xuICAgICAgdGhpcy5jb21wbGV0ZSh0aGlzLmZvY3VzSXRlbSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNvdXJjZSA9ICh0ZXh0IHx8ICcnKS50cmltKCk7XG4gICAgaWYgKHNvdXJjZSA9PT0gJycpIHtcbiAgICAgIHRoaXMuc2hvd0NvbXBsZXRpb24gPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb21wbGV0aW9uTGlzdCA9IFtdO1xuICAgIHRoaXMuY29tcHV0ZUNvbXBsZXRpb25MaXN0KHNvdXJjZSkuc3Vic2NyaWJlKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgdGhpcy5jb21wbGV0ZShcbiAgICAgICAgc3VnZ2VzdGlvbnMgJiYgc3VnZ2VzdGlvbnMubGVuZ3RoID4gMCA/IHN1Z2dlc3Rpb25zWzBdIDogbnVsbFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIHNob3dDb21wbGV0aW9uTGlzdCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNhbWVXaWR0aCgpO1xuICAgIGNvbnN0IHVzZVNwaW5uZXIgPSB0aGlzLmhhc0V4dGVybmFsRGF0YVNvdXJjZSgpO1xuICAgIHRoaXMuc3Bpbm5lclZpc2liaWxpdHkodXNlU3Bpbm5lciwgdHJ1ZSk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBmb3Igc3Bpbm5lciB0byBiZSBzaG93blxuICAgICAgdGhpcy5jb21wdXRlQ29tcGxldGlvbkxpc3QodGV4dCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGNsKSA9PiB7XG4gICAgICAgICAgdGhpcy5jb21wbGV0aW9uTGlzdCA9IGNsO1xuICAgICAgICAgIHRoaXMuZm9jdXNJdGVtID1cbiAgICAgICAgICAgIHRoaXMuY29tcGxldGlvbkxpc3QubGVuZ3RoID4gMCA/IHRoaXMuY29tcGxldGlvbkxpc3RbMF0gOiBudWxsO1xuICAgICAgICAgIHRoaXMuc2hvd0NvbXBsZXRpb24gPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc3Bpbm5lclZpc2liaWxpdHkodXNlU3Bpbm5lciwgZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3Bpbm5lclZpc2liaWxpdHkodXNlU3Bpbm5lciwgZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc3Bpbm5lclZpc2liaWxpdHkodXNlU3Bpbm5lciwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LCAxKTtcbiAgfVxuICBwcml2YXRlIHNwaW5uZXJWaXNpYmlsaXR5KHVzZVNwaW5uZXI6IGJvb2xlYW4sIHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHVzZVNwaW5uZXIpIHtcbiAgICAgIHRoaXMuc2hvd1NwaW5uZXIgPSB2YWx1ZTtcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBoYXNFeHRlcm5hbERhdGFTb3VyY2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmRhdGFTb3VyY2UgJiYgISF0aGlzLmluc3RhbmNlICYmICEhdGhpcy5wb3B1bGF0ZUZ1bmN0aW9uO1xuICB9XG4gIHByaXZhdGUgY29tcHV0ZUNvbXBsZXRpb25MaXN0KHRleHQ6IHN0cmluZyk6IE9ic2VydmFibGU8RGVjb3JhdGVkRGF0YVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlYXJjaFRleHQgPSAodGV4dCB8fCAnJykudG9Mb3dlckNhc2UoKTtcbiAgICBpZiAodGhpcy5kYXRhU291cmNlKSB7XG4gICAgICBjb25zdCBkcyA9ICh0aGlzLmRhdGFTb3VyY2UgfHwgW10pXG4gICAgICAgIC5maWx0ZXIoKGl0KSA9PiBpZ25vcmVBY2NlbnRzSW5jbHVkZShpdC5sYWJlbCwgc2VhcmNoVGV4dCkpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpO1xuICAgICAgcmV0dXJuIG9mKGRlY29yYXRlRGF0YVNvdXJjZShkcywgc2VhcmNoVGV4dCkpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pbnN0YW5jZSAmJiB0aGlzLnBvcHVsYXRlRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnBvcHVsYXRlRnVuY3Rpb24odGhpcy5pbnN0YW5jZSwgc2VhcmNoVGV4dCkucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDEpLFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICBtYXAoKGRzKSA9PiB7XG4gICAgICAgICAgZHMuZmlsdGVyKChpdCkgPT4gaWdub3JlQWNjZW50c0luY2x1ZGUoaXQubGFiZWwsIHNlYXJjaFRleHQpKS5zb3J0KFxuICAgICAgICAgICAgKGEsIGIpID0+IGEubGFiZWwubG9jYWxlQ29tcGFyZShiLmxhYmVsKVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIGRlY29yYXRlRGF0YVNvdXJjZShkcywgc2VhcmNoVGV4dCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgfVxufVxuXG4vKiogUmV0dXJucyB0cnVlIGlmIHRleHQgaW5jbHVkZXMgc3Vic3RyaW5nLiBObyBhY2NlbnRzIGNvbnNpZGVyZWQuIElnbm9yZWNhc2UgKi9cbmNvbnN0IGlnbm9yZUFjY2VudHNJbmNsdWRlID0gKHRleHQ6IHN0cmluZywgc3Vic3RyaW5nOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgdGV4dCA9IG5vcm1hbGl6ZWRTdHJpbmcodGV4dCkudG9Mb3dlckNhc2UoKTtcbiAgc3Vic3RyaW5nID0gbm9ybWFsaXplZFN0cmluZyhzdWJzdHJpbmcpLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiB0ZXh0LmluY2x1ZGVzKHN1YnN0cmluZyk7XG59O1xuXG4vKiogUmV0dXJucyBhIG5vcm1hbGl6ZWQgc3RyaW5nIHdpdGggbm8gYWNjZW50czogdXNlZCBmb3IgY29tcGFyaXNvbiAqL1xuY29uc3Qgbm9ybWFsaXplZFN0cmluZyA9IChhOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgKGEgfHwgJycpLm5vcm1hbGl6ZSgnTkZEJykucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xuXG5jb25zdCBkZWNvcmF0ZURhdGFTb3VyY2UgPSAoXG4gIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U8YW55LCBzdHJpbmc+LFxuICBzdWJTdHJpbmc6IHN0cmluZ1xuKTogRGVjb3JhdGVkRGF0YVNvdXJjZSA9PiBkYXRhU291cmNlLm1hcCgoaXQpID0+IGRlY29yYXRlSXRlbShpdCwgc3ViU3RyaW5nKSk7XG5cbmNvbnN0IGRlY29yYXRlSXRlbSA9IChcbiAgaXRlbTogRGF0YVNvdXJjZUl0ZW08YW55LCBzdHJpbmc+LFxuICB0eDogc3RyaW5nXG4pOiBEZWNvcmF0ZWREYXRhU291cmNlSXRlbSA9PiB7XG4gIGNvbnN0IGluZGV4ID0gbm9ybWFsaXplZFN0cmluZyhpdGVtLmxhYmVsKVxuICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgLmluZGV4T2Yobm9ybWFsaXplZFN0cmluZyh0eCkudG9Mb3dlckNhc2UoKSk7XG4gIGNvbnN0IGxhYmVsUHJlZml4ID0gaW5kZXggPT09IC0xID8gaXRlbS5sYWJlbCA6IGl0ZW0ubGFiZWwuc3Vic3RyKDAsIGluZGV4KTtcbiAgY29uc3QgbGFiZWxNYXRjaCA9IGluZGV4ID09PSAtMSA/ICcnIDogaXRlbS5sYWJlbC5zdWJzdHIoaW5kZXgsIHR4Lmxlbmd0aCk7XG4gIGNvbnN0IGxhYmVsUG9zdGZpeCA9IGluZGV4ID09PSAtMSA/ICcnIDogaXRlbS5sYWJlbC5zdWJzdHIoaW5kZXggKyB0eC5sZW5ndGgpO1xuICBjb25zdCBuZXdJdGVtOiBEZWNvcmF0ZWREYXRhU291cmNlSXRlbSA9IHtcbiAgICAuLi5pdGVtLFxuICAgIGxhYmVsUHJlZml4LFxuICAgIGxhYmVsTWF0Y2gsXG4gICAgbGFiZWxQb3N0Zml4XG4gIH07XG4gIHJldHVybiBuZXdJdGVtO1xufTtcblxuY29uc3QgZmluZExhYmVsRm9ySWQgPSAoZGF0YTogRGF0YVNvdXJjZTxhbnksIHN0cmluZz4sIGlkOiBhbnkpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBmb3VuZCA9IGRhdGEuZmluZCgoaXQpID0+IGl0LmtleSA9PT0gaWQpO1xuICByZXR1cm4gZm91bmQgPyBmb3VuZC5sYWJlbCA6IG51bGw7XG59O1xuIl19
407
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2x1eC9zcmMvbGliL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEVBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU8xRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSztBQWtCbkQsTUFBTSxPQUFPLHFCQUFxQjtJQTRFaEMsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFqRWpDLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6QixPQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWYsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYyxHQUF3QixFQUFFLENBQUM7UUFDekMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHYixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdEMscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFHekQsYUFBUSxHQUFtQixJQUFJLENBQUM7UUFDaEMsYUFBUSxHQUFtQixJQUFJ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QUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzRSxNQUFNLFlBQVksR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5RSxNQUFNLE9BQU8sbUNBQ1IsSUFBSSxLQUNQLFdBQVc7UUFDWCxVQUFVO1FBQ1YsWUFBWSxHQUNiLENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7O0FBRUYsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUE2QixFQUFFLEVBQU8sRUFBVSxFQUFFO0lBQ3hFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDL0MsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNwQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgRGF0YVNvdXJjZSxcbiAgRGF0YVNvdXJjZUl0ZW0sXG4gIERlY29yYXRlZERhdGFTb3VyY2UsXG4gIERlY29yYXRlZERhdGFTb3VyY2VJdGVtXG59IGZyb20gJy4uL2RhdGFzb3VyY2UnO1xuaW1wb3J0IHsgaXNJbml0aWFsQW5kRW1wdHkgfSBmcm9tICcuLi9oZWxwZXJGbnMnO1xuXG5leHBvcnQgY29uc3QgTE9TVF9GT0NVU19USU1FX1dJTkRPV19NUyA9IDIwMDsgLy8gbXNcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x1eC1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3IsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxue1xuICBzdGF0aWMgaWRDb3VudGVyID0gMDtcblxuICBAVmlld0NoaWxkKCdpMCcsIHsgc3RhdGljOiB0cnVlIH0pIGkwOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdjb21wbGV0ZURpdicsIHsgc3RhdGljOiB0cnVlIH0pIGNvbXBsZXRlRGl2OiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgX2RhdGFTb3VyY2U6IERhdGFTb3VyY2U8YW55LCBzdHJpbmc+O1xuICBwcml2YXRlIF9wbGFjZWhvbGRlcjogc3RyaW5nO1xuICBwcml2YXRlIF92YWx1ZTogYW55O1xuICBwcml2YXRlIGxvc3RGb2N1c0hhbmRsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSB0MCA9IDA7XG5cbiAgc2hvd1NwaW5uZXIgPSBmYWxzZTtcbiAgdG91Y2hlZCA9IGZhbHNlO1xuICBjb21wbGV0aW9uTGlzdDogRGVjb3JhdGVkRGF0YVNvdXJjZSA9IFtdO1xuICBzaG93Q29tcGxldGlvbiA9IGZhbHNlO1xuICBmb2N1c0l0ZW06IERhdGFTb3VyY2VJdGVtPGFueSwgc3RyaW5nPjtcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGRhdGFTb3VyY2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFTb3VyY2U8YW55LCBzdHJpbmc+PigpO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnB1dElkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgLyoqIElmIGNhbkFkZE5ld1ZhbHVlcywgdXNlciBjYW4gdHlwZSBpdGVtcyBub3QgcHJlc2VudCBpbiB0aGUgZGF0YS1zb3VyY2UuICovXG4gIEBJbnB1dCgpIGNhbkFkZE5ld1ZhbHVlcyA9IGZhbHNlO1xuICAvKiogQWZ0ZXIgY2xlYW5pbmcgdGhlIHNlbGVjdGlvbiBzaG91bGQgdGhlIGNvbXBsZXRpb24gbGlzdCByZW1haW4gb3BlbiBvciBjbG9zZWQ6XG4gICAqICBmYWxzZTogKGRlZmF1bHQpIGNsb3NlIG9uIGZpbHRlcnMsIHRvIGNsZWFuIGEgZmlsdGVyIGFuZCBzZWxlY3QgYWxsLlxuICAgKiAgdHJ1ZToga2VlcCBvcGVuICh3aGVuIHRoZSBhY3Rpb24gbW9zdCBsaWtlbHkgaXMgdG8gcGljayBhbm90aGVyIG9uZSkuXG4gICAqL1xuICBASW5wdXQoKSBrZWVwT3BlbkFmdGVyRGVsZXRlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHNldCB2YWx1ZSh2OiBhbnkpIHtcbiAgICBjb25zdCBpbml0aWFsQW5kRW1wdHkgPSBpc0luaXRpYWxBbmRFbXB0eSh0aGlzLl92YWx1ZSwgdik7XG4gICAgdGhpcy5fdmFsdWUgPSB2O1xuICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgdGhpcy5jb21wbGV0ZUxhYmVsKCk7XG4gICAgaWYgKCFpbml0aWFsQW5kRW1wdHkpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgICB9XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGRhdGFTb3VyY2UoKTogRGF0YVNvdXJjZTxhbnksIHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG4gIHNldCBkYXRhU291cmNlKHY6IERhdGFTb3VyY2U8YW55LCBzdHJpbmc+KSB7XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHY7XG4gICAgdGhpcy5kYXRhU291cmNlQ2hhbmdlLmVtaXQodik7XG4gIH1cbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzZXQgcGxhY2Vob2xkZXIodjogc3RyaW5nKSB7XG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2O1xuICB9XG4gIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlciA/IHRoaXMuX3BsYWNlaG9sZGVyIDogJyc7XG4gIH1cblxuICBASW5wdXQoKSByZXNvbHZlTGFiZWxzRnVuY3Rpb24/OiAoXG4gICAgaW5zdGFuY2U6IGFueSxcbiAgICBrZXlzOiBhbnlbXVxuICApID0+IE9ic2VydmFibGU8RGF0YVNvdXJjZTxhbnksIHN0cmluZz4+ID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKSBwb3B1bGF0ZUZ1bmN0aW9uPzogKFxuICAgIGluc3RhbmNlOiBhbnksXG4gICAgc2VhcmNoOiBzdHJpbmdcbiAgKSA9PiBPYnNlcnZhYmxlPERhdGFTb3VyY2U8YW55LCBzdHJpbmc+PiA9IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaW5zdGFuY2U6IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBJbnRlcmZhY2VcbiAgb25DaGFuZ2UgPSAodmFsdWUpOiB2b2lkID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50b3VjaGVkICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG4gIC8vIEVuZCBDb250cm9sVmFsdWVBY2Nlc3NvciBJbnRlcmZhY2VcblxuICAvLyBWYWxpZGF0b3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoKTogdm9pZCB7fVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgaWYgKFxuICAgICAgdGhpcy5yZXF1aXJlZCAmJlxuICAgICAgKHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICkge1xuICAgICAgcmV0dXJuIHsgcmVxdWlyZWQ6IHsgdmFsdWUsIHJlYXNvbjogJ1JlcXVpcmVkIGZpZWxkLicgfSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICAvLyBFbmQgb2YgVmFsaWRhdG9yIGludGVyZmFjZVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgIHRoaXMudG9nZ2xlQ29tcGxldGlvbih0aGlzLmtlZXBPcGVuQWZ0ZXJEZWxldGUsICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGxldGVMYWJlbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgICB0aGlzLmxhYmVsID0gZmluZExhYmVsRm9ySWQodGhpcy5kYXRhU291cmNlLCB0aGlzLnZhbHVlKSB8fCAnJztcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnN0YW5jZSAmJiB0aGlzLnJlc29sdmVMYWJlbHNGdW5jdGlvbikge1xuICAgICAgICB0aGlzLnJlc29sdmVMYWJlbHNGdW5jdGlvbih0aGlzLmluc3RhbmNlLCBbdGhpcy52YWx1ZV0pXG4gICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEpLCBmaXJzdCgpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGFiZWwgPSBmaW5kTGFiZWxGb3JJZChkYXRhLCB0aGlzLnZhbHVlKSB8fCAnJztcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sYWJlbCA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRJZCA9IHRoaXMuaW5wdXRJZFxuICAgICAgPyB0aGlzLmlucHV0SWRcbiAgICAgIDogYGF1dG9jb21wbGV0ZWxpc3Qke0F1dG9jb21wbGV0ZUNvbXBvbmVudC5pZENvdW50ZXIrK31gO1xuICAgIHRoaXMuY29tcGxldGVMYWJlbCgpO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNhbWVXaWR0aCgpO1xuICB9XG4gIG9uSW5wdXRSZXNpemVkKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U2FtZVdpZHRoKCk7XG4gIH1cbiAgcHJpdmF0ZSBzZXRTYW1lV2lkdGgoKTogdm9pZCB7XG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLmkwLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgdGhpcy5jb21wbGV0ZURpdi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xuICB9XG5cbiAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBsYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIGlmIChsYWJlbCkge1xuICAgICAgICAgIHRoaXMucGlja1NlbGVjdGlvbk9yRmlyc3RNYXRjaChsYWJlbCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93Q29tcGxldGlvbiA9IGZhbHNlO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbiAgb25LZXlwcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCwgbGFiZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdJbnRybyc6XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMucGlja1NlbGVjdGlvbk9yRmlyc3RNYXRjaChsYWJlbCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuICBvbktleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBsYWJlbDogc3RyaW5nKTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ1BhZ2VEb3duJzpcbiAgICAgICAgdGhpcy5mb2N1c09uTmV4dCg1KTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzT25OZXh0KDEpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1BhZ2VVcCc6XG4gICAgICAgIHRoaXMuZm9jdXNPblByZXZpb3VzKDUpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLmZvY3VzT25QcmV2aW91cygxKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLmNvbXBsZXRlKG51bGwpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0ludHJvJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnNob3dDb21wbGV0aW9uTGlzdChsYWJlbCk7XG4gICAgICAvLyBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuICBwcml2YXRlIGZvY3VzT25OZXh0KG9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuY29tcGxldGlvbkxpc3QgfHwgW107XG4gICAgY29uc3QgaW5kZXggPSBsaXN0LmZpbmRJbmRleChcbiAgICAgIChpdCkgPT4gdGhpcy5mb2N1c0l0ZW0gJiYgaXQua2V5ID09PSB0aGlzLmZvY3VzSXRlbS5rZXlcbiAgICApO1xuICAgIGNvbnN0IG5leHQgPVxuICAgICAgaW5kZXggIT09IC0xICYmIGxpc3QubGVuZ3RoID4gaW5kZXggKyBvZmZzZXRcbiAgICAgICAgPyBsaXN0W2luZGV4ICsgb2Zmc2V0XVxuICAgICAgICA6IGxpc3RbbGlzdC5sZW5ndGggLSAxXTtcbiAgICB0aGlzLmZvY3VzSXRlbSA9IG5leHQ7XG4gICAgdGhpcy5lbnN1cmVJdGVtVmlzaWJsZShpbmRleCk7XG4gIH1cbiAgcHJpdmF0ZSBmb2N1c09uUHJldmlvdXMob2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5jb21wbGV0aW9uTGlzdCB8fCBbXTtcbiAgICBjb25zdCBpbmRleCA9IGxpc3QuZmluZEluZGV4KFxuICAgICAgKGl0KSA9PiB0aGlzLmZvY3VzSXRlbSAmJiBpdC5rZXkgPT09IHRoaXMuZm9jdXNJdGVtLmtleVxuICAgICk7XG4gICAgY29uc3QgbmV4dCA9XG4gICAgICBpbmRleCAhPT0gLTEgJiYgaW5kZXggPiBvZmZzZXQgPyBsaXN0W2luZGV4IC0gb2Zmc2V0XSA6IGxpc3RbMF07XG4gICAgdGhpcy5mb2N1c0l0ZW0gPSBuZXh0O1xuICAgIHRoaXMuZW5zdXJlSXRlbVZpc2libGUoaW5kZXgpO1xuICB9XG4gIG9uTG9zdEZvY3VzKGxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvc3RGb2N1c0hhbmRsZWQgPSBmYWxzZTtcbiAgICB0aGlzLnQwID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgY29uc29sZS5sb2coJ0luaXQgTG9zdEZvY3VzJyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBuZWVkcyB0byBwb3N0cG9uZSBhY3Rpb25zIHNvbWUgbWlsbGlzZWNvbmRzIHRvIHZlcmlmeSBpZlxuICAgICAgLy8gbG9zdCBmb2N1cyB3YXMgZm9sbG93ZWQgYnkgYSBsaXN0IHNlbGVjdGlvbiAtPiB0aGVuIGNhbmNlbFxuICAgICAgLy8gaWYgbm90IC0+IG1ha2Ugc2lkZSBlZmZlY3RcbiAgICAgIGlmICghdGhpcy5sb3N0Rm9jdXNIYW5kbGVkKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICdMb3N0IGZvY3VzIDInLFxuICAgICAgICAgIHRoaXMubG9zdEZvY3VzSGFuZGxlZCxcbiAgICAgICAgICAnU0lERSBFRkZFQ1QnLFxuICAgICAgICAgIHBlcmZvcm1hbmNlLm5vdygpIC0gdGhpcy50MCxcbiAgICAgICAgICAnbGFiZWw6JyxcbiAgICAgICAgICBsYWJlbFxuICAgICAgICApO1xuICAgICAgICBpZiAobGFiZWwpIHtcbiAgICAgICAgICB0aGlzLnBpY2tTZWxlY3Rpb25PckZpcnN0TWF0Y2gobGFiZWwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9nZ2xlQ29tcGxldGlvbihmYWxzZSwgbGFiZWwpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZG8gbm90aGluZyAobGlzdCBzZWxlY3Rpb24gdG9vayBwbGFjZSlcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgJ29ubG9zdCBmb2N1cyAyJyxcbiAgICAgICAgICB0aGlzLmxvc3RGb2N1c0hhbmRsZWQsXG4gICAgICAgICAgJ25vdGhpbmcnLFxuICAgICAgICAgIHBlcmZvcm1hbmNlLm5vdygpIC0gdGhpcy50MFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIExPU1RfRk9DVVNfVElNRV9XSU5ET1dfTVMpO1xuICB9XG4gIGNvbXBsZXRlKGl0ZW06IERhdGFTb3VyY2VJdGVtPFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBzdHJpbmc+KTogdm9pZCB7XG4gICAgdGhpcy5sb3N0Rm9jdXNIYW5kbGVkID0gdHJ1ZTsgLy8gcHJldmVudCBhIHByZXZpb3VzIGxvc3RGb2N1cyB0byB0cmlnZ2VyIGEgc2lkZSBlZmZlY3RcbiAgICBjb25zdCBlbGxhcHNlZCA9IHBlcmZvcm1hbmNlLm5vdygpIC0gdGhpcy50MDtcbiAgICBpZiAoZWxsYXBzZWQgPiBMT1NUX0ZPQ1VTX1RJTUVfV0lORE9XX01TKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdjb21wbGV0ZS4gbG9zdGZvY3VzLT5jbGljayB0aW1lb3V0IG9mICcsXG4gICAgICAgIExPU1RfRk9DVVNfVElNRV9XSU5ET1dfTVMsXG4gICAgICAgICdtcyBleGNlZWQ6ICcsXG4gICAgICAgIHBlcmZvcm1hbmNlLm5vdygpIC0gdGhpcy50MCxcbiAgICAgICAgJyBtcydcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnNvbGUubG9nKFxuICAgICAgJ2NvbXBsZXRlLiBzZXQgdG8gdHJ1ZS4gQ0FOQ0VMRUQgc2lkZSBlZmZlY3QnLFxuICAgICAgcGVyZm9ybWFuY2Uubm93KCkgLSB0aGlzLnQwXG4gICAgKTtcbiAgICBpZiAoaXRlbSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy52YWx1ZSA9IGl0ZW0ua2V5O1xuICAgICAgdGhpcy5sYWJlbCA9IGl0ZW0ubGFiZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy5sYWJlbCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZUNvbXBsZXRpb24oZmFsc2UsIG51bGwpO1xuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICB9XG4gIHRvZ2dsZUNvbXBsZXRpb24oc2hvdzogYm9vbGVhbiwgbGFiZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChzaG93ICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnNob3dDb21wbGV0aW9uTGlzdChsYWJlbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2hvd0NvbXBsZXRpb24gPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLmNhbkFkZE5ld1ZhbHVlcykge1xuICAgICAgICB0aGlzLnN5bmNDdXN0b21WYWx1ZSh0aGlzLmxhYmVsKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uKCk6IHN0cmluZyB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNvbXBsZXRpb25MaXN0LmZpbmRJbmRleChcbiAgICAgIChpKSA9PiBpLmtleSA9PT0gdGhpcy5mb2N1c0l0ZW0ua2V5XG4gICAgKTtcbiAgICBpZiAoaW5kZXggPT09IC0xIHx8ICF0aGlzLmZvY3VzSXRlbSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLmlucHV0SWR9XyR7aW5kZXh9YDtcbiAgfVxuXG4gIHByaXZhdGUgZW5zdXJlSXRlbVZpc2libGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuY29tcGxldGVEaXYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaScpW2luZGV4XTtcbiAgICBpZiAodGFyZ2V0KSB7XG4gICAgICB0YXJnZXQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ2NlbnRlcicgfSk7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgc3luY0N1c3RvbVZhbHVlKHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0ZXh0O1xuICAgIHRoaXMubGFiZWwgPSB0ZXh0O1xuICB9XG4gIHByaXZhdGUgcGlja1NlbGVjdGlvbk9yRmlyc3RNYXRjaCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jYW5BZGROZXdWYWx1ZXMpIHtcbiAgICAgIHRoaXMuc3luY0N1c3RvbVZhbHVlKHRleHQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb2N1c0l0ZW0gJiYgdGhpcy5mb2N1c0l0ZW0ubGFiZWwpIHtcbiAgICAgIHRoaXMuY29tcGxldGUodGhpcy5mb2N1c0l0ZW0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzb3VyY2UgPSAodGV4dCB8fCAnJykudHJpbSgpO1xuICAgIGlmIChzb3VyY2UgPT09ICcnKSB7XG4gICAgICB0aGlzLnNob3dDb21wbGV0aW9uID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29tcGxldGlvbkxpc3QgPSBbXTtcbiAgICB0aGlzLmNvbXB1dGVDb21wbGV0aW9uTGlzdChzb3VyY2UpLnN1YnNjcmliZSgoc3VnZ2VzdGlvbnMpID0+IHtcbiAgICAgIHRoaXMuY29tcGxldGUoXG4gICAgICAgIHN1Z2dlc3Rpb25zICYmIHN1Z2dlc3Rpb25zLmxlbmd0aCA+IDAgPyBzdWdnZXN0aW9uc1swXSA6IG51bGxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbiAgcHJpdmF0ZSBzaG93Q29tcGxldGlvbkxpc3QodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTYW1lV2lkdGgoKTtcbiAgICBjb25zdCB1c2VTcGlubmVyID0gdGhpcy5oYXNFeHRlcm5hbERhdGFTb3VyY2UoKTtcbiAgICB0aGlzLnNwaW5uZXJWaXNpYmlsaXR5KHVzZVNwaW5uZXIsIHRydWUpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy8gZm9yIHNwaW5uZXIgdG8gYmUgc2hvd25cbiAgICAgIHRoaXMuY29tcHV0ZUNvbXBsZXRpb25MaXN0KHRleHQpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChjbCkgPT4ge1xuICAgICAgICAgIHRoaXMuY29tcGxldGlvbkxpc3QgPSBjbDtcbiAgICAgICAgICB0aGlzLmZvY3VzSXRlbSA9XG4gICAgICAgICAgICB0aGlzLmNvbXBsZXRpb25MaXN0Lmxlbmd0aCA+IDAgPyB0aGlzLmNvbXBsZXRpb25MaXN0WzBdIDogbnVsbDtcbiAgICAgICAgICB0aGlzLnNob3dDb21wbGV0aW9uID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLnNwaW5uZXJWaXNpYmlsaXR5KHVzZVNwaW5uZXIsIGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNwaW5uZXJWaXNpYmlsaXR5KHVzZVNwaW5uZXIsIGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNwaW5uZXJWaXNpYmlsaXR5KHVzZVNwaW5uZXIsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgMSk7XG4gIH1cbiAgcHJpdmF0ZSBzcGlubmVyVmlzaWJpbGl0eSh1c2VTcGlubmVyOiBib29sZWFuLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh1c2VTcGlubmVyKSB7XG4gICAgICB0aGlzLnNob3dTcGlubmVyID0gdmFsdWU7XG4gICAgfVxuICB9XG4gIHByaXZhdGUgaGFzRXh0ZXJuYWxEYXRhU291cmNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5kYXRhU291cmNlICYmICEhdGhpcy5pbnN0YW5jZSAmJiAhIXRoaXMucG9wdWxhdGVGdW5jdGlvbjtcbiAgfVxuICBwcml2YXRlIGNvbXB1dGVDb21wbGV0aW9uTGlzdCh0ZXh0OiBzdHJpbmcpOiBPYnNlcnZhYmxlPERlY29yYXRlZERhdGFTb3VyY2U+IHtcbiAgICBjb25zdCBzZWFyY2hUZXh0ID0gKHRleHQgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSkge1xuICAgICAgY29uc3QgZHMgPSAodGhpcy5kYXRhU291cmNlIHx8IFtdKVxuICAgICAgICAuZmlsdGVyKChpdCkgPT4gaWdub3JlQWNjZW50c0luY2x1ZGUoaXQubGFiZWwsIHNlYXJjaFRleHQpKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5sYWJlbC5sb2NhbGVDb21wYXJlKGIubGFiZWwpKTtcbiAgICAgIHJldHVybiBvZihkZWNvcmF0ZURhdGFTb3VyY2UoZHMsIHNlYXJjaFRleHQpKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuaW5zdGFuY2UgJiYgdGhpcy5wb3B1bGF0ZUZ1bmN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5wb3B1bGF0ZUZ1bmN0aW9uKHRoaXMuaW5zdGFuY2UsIHNlYXJjaFRleHQpLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgxKSxcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgbWFwKChkcykgPT4ge1xuICAgICAgICAgIGRzLmZpbHRlcigoaXQpID0+IGlnbm9yZUFjY2VudHNJbmNsdWRlKGl0LmxhYmVsLCBzZWFyY2hUZXh0KSkuc29ydChcbiAgICAgICAgICAgIChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbClcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiBkZWNvcmF0ZURhdGFTb3VyY2UoZHMsIHNlYXJjaFRleHQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqIFJldHVybnMgdHJ1ZSBpZiB0ZXh0IGluY2x1ZGVzIHN1YnN0cmluZy4gTm8gYWNjZW50cyBjb25zaWRlcmVkLiBJZ25vcmVjYXNlICovXG5jb25zdCBpZ25vcmVBY2NlbnRzSW5jbHVkZSA9ICh0ZXh0OiBzdHJpbmcsIHN1YnN0cmluZzogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIHRleHQgPSBub3JtYWxpemVkU3RyaW5nKHRleHQpLnRvTG93ZXJDYXNlKCk7XG4gIHN1YnN0cmluZyA9IG5vcm1hbGl6ZWRTdHJpbmcoc3Vic3RyaW5nKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gdGV4dC5pbmNsdWRlcyhzdWJzdHJpbmcpO1xufTtcblxuLyoqIFJldHVybnMgYSBub3JtYWxpemVkIHN0cmluZyB3aXRoIG5vIGFjY2VudHM6IHVzZWQgZm9yIGNvbXBhcmlzb24gKi9cbmNvbnN0IG5vcm1hbGl6ZWRTdHJpbmcgPSAoYTogc3RyaW5nKTogc3RyaW5nID0+XG4gIChhIHx8ICcnKS5ub3JtYWxpemUoJ05GRCcpLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcblxuY29uc3QgZGVjb3JhdGVEYXRhU291cmNlID0gKFxuICBkYXRhU291cmNlOiBEYXRhU291cmNlPGFueSwgc3RyaW5nPixcbiAgc3ViU3RyaW5nOiBzdHJpbmdcbik6IERlY29yYXRlZERhdGFTb3VyY2UgPT4gZGF0YVNvdXJjZS5tYXAoKGl0KSA9PiBkZWNvcmF0ZUl0ZW0oaXQsIHN1YlN0cmluZykpO1xuXG5jb25zdCBkZWNvcmF0ZUl0ZW0gPSAoXG4gIGl0ZW06IERhdGFTb3VyY2VJdGVtPGFueSwgc3RyaW5nPixcbiAgdHg6IHN0cmluZ1xuKTogRGVjb3JhdGVkRGF0YVNvdXJjZUl0ZW0gPT4ge1xuICBjb25zdCBpbmRleCA9IG5vcm1hbGl6ZWRTdHJpbmcoaXRlbS5sYWJlbClcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC5pbmRleE9mKG5vcm1hbGl6ZWRTdHJpbmcodHgpLnRvTG93ZXJDYXNlKCkpO1xuICBjb25zdCBsYWJlbFByZWZpeCA9IGluZGV4ID09PSAtMSA/IGl0ZW0ubGFiZWwgOiBpdGVtLmxhYmVsLnN1YnN0cigwLCBpbmRleCk7XG4gIGNvbnN0IGxhYmVsTWF0Y2ggPSBpbmRleCA9PT0gLTEgPyAnJyA6IGl0ZW0ubGFiZWwuc3Vic3RyKGluZGV4LCB0eC5sZW5ndGgpO1xuICBjb25zdCBsYWJlbFBvc3RmaXggPSBpbmRleCA9PT0gLTEgPyAnJyA6IGl0ZW0ubGFiZWwuc3Vic3RyKGluZGV4ICsgdHgubGVuZ3RoKTtcbiAgY29uc3QgbmV3SXRlbTogRGVjb3JhdGVkRGF0YVNvdXJjZUl0ZW0gPSB7XG4gICAgLi4uaXRlbSxcbiAgICBsYWJlbFByZWZpeCxcbiAgICBsYWJlbE1hdGNoLFxuICAgIGxhYmVsUG9zdGZpeFxuICB9O1xuICByZXR1cm4gbmV3SXRlbTtcbn07XG5cbmNvbnN0IGZpbmRMYWJlbEZvcklkID0gKGRhdGE6IERhdGFTb3VyY2U8YW55LCBzdHJpbmc+LCBpZDogYW55KTogc3RyaW5nID0+IHtcbiAgY29uc3QgZm91bmQgPSBkYXRhLmZpbmQoKGl0KSA9PiBpdC5rZXkgPT09IGlkKTtcbiAgcmV0dXJuIGZvdW5kID8gZm91bmQubGFiZWwgOiBudWxsO1xufTtcbiJdfQ==
@@ -207,7 +207,7 @@ DatetimeComponent.idCounter = 0;
207
207
  DatetimeComponent.decorators = [
208
208
  { type: Component, args: [{
209
209
  selector: 'lux-datetime',
210
- template: "<input\n #dateInput\n class=\"prefix\"\n type=\"date\"\n [id]=\"inputId + '$date'\"\n [(ngModel)]=\"dateValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [placeholder]=\"\"\n [ngClass]=\"className\"\n (keyup)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (change)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<input\n #timeInput\n class=\"infix\"\n type=\"time\"\n [id]=\"inputId + '$time'\"\n [(ngModel)]=\"timeValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [placeholder]=\"\"\n [step]=\"includeSeconds ? 1 : 60\"\n [ngClass]=\"className\"\n (keyup)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (change)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<ng-container *ngIf=\"!localTime\">\n <div [class]=\"disabled || readonly ? 'postfix symbol' : 'infix symbol'\">\n <span>{{ localTime ? '' : 'UTC' }}</span>\n </div>\n</ng-container>\n<button\n #clearButton\n *ngIf=\"!(disabled || readonly)\"\n class=\"postfix icon-clear\"\n [id]=\"inputId + '$clear'\"\n [ngClass]=\"className\"\n (click)=\"updateDatetime(undefined)\"\n aria-label=\"clear\"\n></button>\n\n<div *ngIf=\"inlineErrors && lastErrors && (dirty || touched)\" class=\"alert\">\n <div *ngIf=\"lastErrors.required\">\n {{ userErrors[this.lang].required }}\n </div>\n <div *ngIf=\"lastErrors.min\">\n {{ userErrors[this.lang].min.replace('$min', lastErrors.min.min) }}\n </div>\n <div *ngIf=\"lastErrors.max\">\n {{ userErrors[this.lang].max.replace('$max', lastErrors.max.max) }}\n </div>\n</div>\n",
210
+ template: "<input\n #dateInput\n class=\"rounded-left prefix\"\n type=\"date\"\n [id]=\"inputId + '$date'\"\n [(ngModel)]=\"dateValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [placeholder]=\"\"\n [ngClass]=\"className\"\n (keyup)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (change)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<input\n #timeInput\n class=\"\"\n type=\"time\"\n [id]=\"inputId + '$time'\"\n [(ngModel)]=\"timeValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.disabled]=\"disabled === true ? 'true' : undefined\"\n [attr.readonly]=\"readonly === true ? 'true' : undefined\"\n [placeholder]=\"\"\n [step]=\"includeSeconds ? 1 : 60\"\n [ngClass]=\"className\"\n (keyup)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (change)=\"onEventDatetime(dateInput.value, timeInput.value)\"\n (keypress)=\"onKeyPress($event)\"\n (blur)=\"onLostFocus()\"\n/>\n<ng-container *ngIf=\"!localTime\">\n <div [class]=\"disabled || readonly ? 'rounded-right postfix symbol' : 'postfix symbol'\">\n <span>{{ localTime ? '' : 'UTC' }}</span>\n </div>\n</ng-container>\n<button\n #clearButton\n *ngIf=\"!(disabled || readonly)\"\n class=\"rounded-right postfix icon-clear\"\n [id]=\"inputId + '$clear'\"\n [ngClass]=\"className\"\n (click)=\"updateDatetime(undefined)\"\n aria-label=\"clear\"\n></button>\n\n<div *ngIf=\"inlineErrors && lastErrors && (dirty || touched)\" class=\"alert\">\n <div *ngIf=\"lastErrors.required\">\n {{ userErrors[this.lang].required }}\n </div>\n <div *ngIf=\"lastErrors.min\">\n {{ userErrors[this.lang].min.replace('$min', lastErrors.min.min) }}\n </div>\n <div *ngIf=\"lastErrors.max\">\n {{ userErrors[this.lang].max.replace('$max', lastErrors.max.max) }}\n </div>\n</div>\n",
211
211
  providers: [
212
212
  {
213
213
  provide: NG_VALUE_ACCESSOR,
@@ -220,7 +220,7 @@ DatetimeComponent.decorators = [
220
220
  useExisting: forwardRef(() => DatetimeComponent)
221
221
  }
222
222
  ],
223
- styles: ["input,select,textarea{border:solid 1px #495057;border:solid 1px var(--lux-input-border-color, #495057);margin:0;margin:var(--lux-input-margin, 0rem);padding:0 .5rem;padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:#fe2e2e;background:var(--lux-alert-background, #fe2e2e);color:#fff;color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0 .5rem;margin-bottom:0;font-weight:400;color:#495057;color:var(--lux-symbol-color, #495057);text-align:center;white-space:nowrap;background:#e9ecef;background:var(--lux-symbol-background, #e9ecef);border:1px solid #495057;border:1px solid var(--lux-input-border-color, #495057);font-size:1rem;font-size:var(--lux-symbol-font-size, 1rem)}.rounded,.postfix,.infix,.prefix{border-radius:.25rem;border:1px solid;border:var(--lux-input-border, 1px solid)}.prefix{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.infix{border-radius:0}.postfix{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}:host{position:relative;display:flex;align-items:stretch}.readonly{border:none}.readonly:focus{border:none;outline:none}.icon-clear{grid-row:1;grid-column:2;width:1.5rem;width:var(--lux-autocomplete-icon-width, 1.5rem);background:url(/assets/img/filter-clear.png) no-repeat center;background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:.5rem .5rem;background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}\n"]
223
+ styles: [":focus{z-index:1}input,select,textarea{border:solid 1px #495057;border:solid 1px var(--lux-input-border-color, #495057);margin:0;margin:var(--lux-input-margin, 0rem);padding:0 .5rem;padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:#fe2e2e;background:var(--lux-alert-background, #fe2e2e);color:#fff;color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0 .5rem;margin-bottom:0;font-weight:400;color:default;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:default;background:var(--lux-symbol-background, default);border:1px solid #495057;border:1px solid var(--lux-input-border-color, #495057);font-size:1rem;font-size:var(--lux-symbol-font-size, 1rem)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:.25rem;border:1px solid;border:var(--lux-input-border, 1px solid)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none}:host{position:relative;display:flex;align-items:stretch}.readonly{border:none}.readonly:focus{border:none;outline:none}.icon-clear{grid-row:1;grid-column:2;width:1.5rem;width:var(--lux-autocomplete-icon-width, 1.5rem);background:url(/assets/img/filter-clear.png) no-repeat center;background:var(--lux-autocomplete-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:.5rem .5rem;background-size:var(--lux-autocomplete-icon-bg-size, .5rem .5rem);z-index:1}\n"]
224
224
  },] }
225
225
  ];
226
226
  DatetimeComponent.ctorParameters = () => [];
@@ -242,4 +242,4 @@ DatetimeComponent.propDecorators = {
242
242
  valueChange: [{ type: Output }],
243
243
  keyPress: [{ type: Output }]
244
244
  };
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvZGF0ZXRpbWUvZGF0ZXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGlCQUFpQixFQUtqQixhQUFhLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsV0FBVyxFQUNaLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQWtCM0MsTUFBTSxPQUFPLGlCQUFpQjtJQWtHNUI7UUExRkEsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsZUFBVSxHQUE0QixJQUFJLENBQUM7UUFNcEMsY0FBUyxHQUFZLFNBQVMsQ0FBQztRQUMvQixjQUFTLEdBQVksU0FBUyxDQUFDO1FBRS9CLGVBQVUsR0FBRztZQUNsQixFQUFFLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsR0FBRyxFQUFFLHdCQUF3QjtnQkFDN0IsR0FBRyxFQUFFLHdCQUF3QjthQUM5QjtZQUNELEVBQUUsRUFBRTtnQkFDRixRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxHQUFHLEVBQUUsMEJBQTBCO2dCQUMvQixHQUFHLEVBQUUsMEJBQTBCO2FBQ2hDO1NBQ0YsQ0FBQztRQUdLLFFBQUcsR0FBWSxzQkFBc0IsQ0FBQztRQUV0QyxRQUFHLEdBQVksc0JBQXNCLENBQUM7UUFFdEMsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFL0Is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OzZCQUVMLEtBQUs7d0JBRUwsS0FBSzttQkFPTCxLQUFLOzJCQUNMLEtBQUs7c0JBQ0wsS0FBSzt3QkFDTCxLQUFLLFNBQUMsWUFBWTt1QkFDbEIsS0FBSzt1QkFFTCxLQUFLO3VCQVNMLEtBQUs7b0JBUUwsS0FBSzswQkF3QkwsTUFBTTt1QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBBYnN0cmFjdENvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgTkdfVkFMSURBVE9SU1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBhZGRUaW1lem9uZU9mZnNldCxcbiAgaGFzVmFsdWUsXG4gIGlzSW5pdGlhbEFuZEVtcHR5LFxuICBpc1ZhbGlkRGF0ZVxufSBmcm9tICcuLi9oZWxwZXJGbnMnO1xuaW1wb3J0IHsgbGFuZ3VhZ2VEZXRlY3RvciB9IGZyb20gJy4uL2xhbmcnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHV4LWRhdGV0aW1lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXRpbWUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGV0aW1lQ29tcG9uZW50KVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXRpbWVDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGVJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGRhdGVJbnB1dDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgndGltZUlucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgdGltZUlucHV0OiBFbGVtZW50UmVmO1xuXG4gIHRvdWNoZWQgPSBmYWxzZTtcbiAgZGlydHkgPSBmYWxzZTtcbiAgbGFzdEVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBzdHJpbmcgfCBib29sZWFuO1xuICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcblxuICBwdWJsaWMgZGF0ZVZhbHVlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgdGltZVZhbHVlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB1c2VyRXJyb3JzID0ge1xuICAgIGVuOiB7XG4gICAgICByZXF1aXJlZDogJ1JlcXVpcmVkIGZpZWxkLicsXG4gICAgICBtaW46ICdNaW5pbXVtIHZhbHVlIGlzICRtaW4uJyxcbiAgICAgIG1heDogJ01heGltdW0gdmFsdWUgaXMgJG1heC4nXG4gICAgfSxcbiAgICBlczoge1xuICAgICAgcmVxdWlyZWQ6ICdFbCBjYW1wbyBlcyBvYmxpZ2F0b3Jpby4nLFxuICAgICAgbWluOiAnRWwgdmFsb3IgbcOtbmltbyBlcyAkbWluLicsXG4gICAgICBtYXg6ICdFbCB2YWxvciBtw6F4aW1vIGVzICRtYXguJ1xuICAgIH1cbiAgfTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWluPzogc3RyaW5nID0gJzE5MDAtMDEtMDFUMDA6MDA6MDBaJztcbiAgQElucHV0KClcbiAgcHVibGljIG1heD86IHN0cmluZyA9ICcyMTAwLTAxLTAxVDAwOjAwOjAwWic7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmNsdWRlU2Vjb25kczogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2NhbFRpbWU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGdldCBjbGFzc05hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0NsYXNzTmFtZSgpO1xuICB9XG5cbiAgQElucHV0KCkgbGFuZyA9IGxhbmd1YWdlRGV0ZWN0b3IoKTtcbiAgQElucHV0KCkgcHVibGljIGlubGluZUVycm9ycyA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRJZDogc3RyaW5nO1xuICBASW5wdXQoJ2FyaWEtbGFiZWwnKSBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZCh2OiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgdiA9IHR5cGVvZiB2ID09PSAnc3RyaW5nJyA/IHRydWUgOiB2O1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdjtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogc3RyaW5nIHwgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHJlcXVpcmVkKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IHY7XG4gIH1cbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcbiAgICBpZiAodiA9PT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIHJldHVybjsgLy8gcHJldmVudCBldmVudHMgd2hlbiB0aGVyZSBpcyBubyBjaGFuZ2VzXG4gICAgfVxuICAgIGNvbnN0IGluaXRpYWxBbmRFbXB0eSA9IGlzSW5pdGlhbEFuZEVtcHR5KHRoaXMuX3ZhbHVlLCB2KTtcbiAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKHYpO1xuICAgIGlmICghdiB8fCAhaXNWYWxpZERhdGUoZGF0ZXRpbWUpKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLmRhdGVWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudGltZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IGRhdGV0aW1lLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgICAgdGhpcy5zZXRWYWx1ZUluQ29udHJvbChkYXRldGltZSk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgaWYgKCFpbml0aWFsQW5kRW1wdHkpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgICB9XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBrZXlQcmVzcyA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcblxuICBvbkNoYW5nZSA9IChfdmFsdWUpOiB2b2lkID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgSW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50b3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG4gIC8vIEVuZCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciBJbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cblxuICBzZXRWYWx1ZUluQ29udHJvbChkYXRldGltZTogRGF0ZSk6IHZvaWQge1xuICAgIGxldCBvZmZzZXREYXRldGltZVN0cmluZztcbiAgICBpZiAodGhpcy5sb2NhbFRpbWUpIHtcbiAgICAgIG9mZnNldERhdGV0aW1lU3RyaW5nID0gYWRkVGltZXpvbmVPZmZzZXQoZGF0ZXRpbWUpLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgIH0gZWxzZSB7XG4gICAgICBvZmZzZXREYXRldGltZVN0cmluZyA9IGRhdGV0aW1lLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgIH1cbiAgICB0aGlzLmRhdGVWYWx1ZSA9IG9mZnNldERhdGV0aW1lU3RyaW5nLnNsaWNlKDAsIDEwKTsgLy8gWVlZWS1NTS1ERFxuICAgIGlmICh0aGlzLmluY2x1ZGVTZWNvbmRzKSB7XG4gICAgICB0aGlzLnRpbWVWYWx1ZSA9IG9mZnNldERhdGV0aW1lU3RyaW5nLnNsaWNlKDExLCAxOSk7IC8vIGhoOm1tOnNzXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGltZVZhbHVlID0gb2Zmc2V0RGF0ZXRpbWVTdHJpbmcuc2xpY2UoMTEsIDE2KTsgLy8gaGg6bW1cbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0b3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoKTogdm9pZCB7fVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgbGV0IHJlc3VsdDogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIWhhc1ZhbHVlKHZhbHVlKSkge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0IHx8IHt9O1xuICAgICAgcmVzdWx0LnJlcXVpcmVkID0geyB2YWx1ZSwgcmVhc29uOiAnUmVxdWlyZWQgZmllbGQuJyB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdGhpcy5taW4gPT09ICdzdHJpbmcnICYmXG4gICAgICBoYXNWYWx1ZSh2YWx1ZSkgJiZcbiAgICAgIFN0cmluZyh2YWx1ZSkubG9jYWxlQ29tcGFyZSh0aGlzLm1pbikgPT09IC0xXG4gICAgKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQgfHwge307XG4gICAgICByZXN1bHQubWluID0ge1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgbWluOiB0aGlzLm1pbixcbiAgICAgICAgcmVhc29uOiBgVmFsdWUgaXMgbG93ZXIgdGhhbiBtaW5pbXVtIHZhbHVlOiAke3RoaXMubWlufS5gXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdGhpcy5tYXggPT09ICdzdHJpbmcnICYmXG4gICAgICBoYXNWYWx1ZSh2YWx1ZSkgJiZcbiAgICAgIFN0cmluZyh2YWx1ZSkubG9jYWxlQ29tcGFyZSh0aGlzLm1heCkgIT09IC0xXG4gICAgKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQgfHwge307XG4gICAgICByZXN1bHQubWF4ID0ge1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgbWF4OiB0aGlzLm1heCxcbiAgICAgICAgcmVhc29uOiBgVmFsdWUgaXMgZ3JlYXRlciB0aGFuIHRoYW4gbWF4aW11bSB2YWx1ZTogJHt0aGlzLm1heH0uYFxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy5sYXN0RXJyb3JzID0gcmVzdWx0O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLy8gRW5kIG9mIFZhbGlkYXRvciBpbnRlcmZhY2VcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0SWQgPSB0aGlzLmlucHV0SWRcbiAgICAgID8gdGhpcy5pbnB1dElkXG4gICAgICA6IGBkYXRldGltZSQke0RhdGV0aW1lQ29tcG9uZW50LmlkQ291bnRlcisrfWA7XG4gICAgdGhpcy5zZXRQYXR0ZXJucygpO1xuICB9XG5cbiAgdXBkYXRlRGF0ZXRpbWUobmV3VmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKG5ld1ZhbHVlKTtcbiAgICAgIGlmIChpc1ZhbGlkRGF0ZShkYXRldGltZSkpIHtcbiAgICAgICAgbGV0IGRhdGV0aW1lU3RyaW5nO1xuICAgICAgICBpZiAodGhpcy5sb2NhbFRpbWUpIHtcbiAgICAgICAgICBkYXRldGltZVN0cmluZyA9IGRhdGV0aW1lLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGV0aW1lU3RyaW5nID0gYWRkVGltZXpvbmVPZmZzZXQoZGF0ZXRpbWUpLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluY2x1ZGVTZWNvbmRzKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGV0aW1lU3RyaW5nLnNsaWNlKDAsIDE5KSArICdaJzsgLy8gWVlZWS1NTS1ERFRoaDptbTpzc1pcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZXRpbWVTdHJpbmcuc2xpY2UoMCwgMTYpICsgJ1onOyAvLyBZWVlZLU1NLUREVGhoOm1tWlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Mb3N0Rm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbiAgb25LZXlVcChuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEYXRldGltZShuZXdWYWx1ZSk7XG4gIH1cbiAgb25DaGFuZ2VWYWx1ZShuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEYXRldGltZShuZXdWYWx1ZSk7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbiAgb25LZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5UHJlc3MuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkV2ZW50RGF0ZXRpbWUobmV3RGF0ZTogc3RyaW5nLCBuZXdUaW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIW5ld0RhdGUgJiYgIW5ld1RpbWUpIHtcbiAgICAgIHRoaXMudXBkYXRlRGF0ZXRpbWUobnVsbCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlRGF0ZXRpbWUobmV3RGF0ZSArICcgJyArIG5ld1RpbWUpO1xuICB9XG5cbiAgY2hlY2tDbGFzc05hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuICdyZWFkb25seSc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHNldFBhdHRlcm5zKCk6IHZvaWQge1xuICAgIHRoaXMubWluID0gdGhpcy5taW4gfHwgJzE5MDAtMDEtMDEnO1xuICAgIHRoaXMubWF4ID0gdGhpcy5tYXggfHwgJzIxMDAtMDEtMDEnO1xuICB9XG59XG4iXX0=
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbHV4L3NyYy9saWIvZGF0ZXRpbWUvZGF0ZXRpbWUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLGlCQUFpQixFQUtqQixhQUFhLEVBQ2QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixpQkFBaUIsRUFDakIsV0FBVyxFQUNaLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQWtCM0MsTUFBTSxPQUFPLGlCQUFpQjtJQWtHNUI7UUExRkEsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixVQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2QsZUFBVSxHQUE0QixJQUFJLENBQUM7UUFNcEMsY0FBUyxHQUFZLFNBQVMsQ0FBQztRQUMvQixjQUFTLEdBQVksU0FBUyxDQUFDO1FBRS9CLGVBQVUsR0FBRztZQUNsQixFQUFFLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsR0FBRyxFQUFFLHdCQUF3QjtnQkFDN0IsR0FBRyxFQUFFLHdCQUF3QjthQUM5QjtZQUNELEVBQUUsRUFBRTtnQkFDRixRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxHQUFHLEVBQUUsMEJBQTBCO2dCQUMvQixHQUFHLEVBQUUsMEJBQTBCO2FBQ2hDO1NBQ0YsQ0FBQztRQUdLLFFBQUcsR0FBWSxzQkFBc0IsQ0FBQztRQUV0QyxRQUFHLEdBQVksc0JBQXNCLENBQUM7UUFFdEMsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFFL0Is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OzZCQUVMLEtBQUs7d0JBRUwsS0FBSzttQkFPTCxLQUFLOzJCQUNMLEtBQUs7c0JBQ0wsS0FBSzt3QkFDTCxLQUFLLFNBQUMsWUFBWTt1QkFDbEIsS0FBSzt1QkFFTCxLQUFLO3VCQVNMLEtBQUs7b0JBUUwsS0FBSzswQkF3QkwsTUFBTTt1QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uSW5pdCxcbiAgRWxlbWVudFJlZixcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBBYnN0cmFjdENvbnRyb2wsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgTkdfVkFMSURBVE9SU1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBhZGRUaW1lem9uZU9mZnNldCxcbiAgaGFzVmFsdWUsXG4gIGlzSW5pdGlhbEFuZEVtcHR5LFxuICBpc1ZhbGlkRGF0ZVxufSBmcm9tICcuLi9oZWxwZXJGbnMnO1xuaW1wb3J0IHsgbGFuZ3VhZ2VEZXRlY3RvciB9IGZyb20gJy4uL2xhbmcnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHV4LWRhdGV0aW1lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGV0aW1lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZXRpbWUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGV0aW1lQ29tcG9uZW50KVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXRpbWVDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERhdGV0aW1lQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ2RhdGVJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGRhdGVJbnB1dDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgndGltZUlucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgdGltZUlucHV0OiBFbGVtZW50UmVmO1xuXG4gIHRvdWNoZWQgPSBmYWxzZTtcbiAgZGlydHkgPSBmYWxzZTtcbiAgbGFzdEVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2Rpc2FibGVkOiBzdHJpbmcgfCBib29sZWFuO1xuICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcblxuICBwdWJsaWMgZGF0ZVZhbHVlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgdGltZVZhbHVlPzogc3RyaW5nID0gdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyB1c2VyRXJyb3JzID0ge1xuICAgIGVuOiB7XG4gICAgICByZXF1aXJlZDogJ1JlcXVpcmVkIGZpZWxkLicsXG4gICAgICBtaW46ICdNaW5pbXVtIHZhbHVlIGlzICRtaW4uJyxcbiAgICAgIG1heDogJ01heGltdW0gdmFsdWUgaXMgJG1heC4nXG4gICAgfSxcbiAgICBlczoge1xuICAgICAgcmVxdWlyZWQ6ICdFbCBjYW1wbyBlcyBvYmxpZ2F0b3Jpby4nLFxuICAgICAgbWluOiAnRWwgdmFsb3IgbcOtbmltbyBlcyAkbWluLicsXG4gICAgICBtYXg6ICdFbCB2YWxvciBtw6F4aW1vIGVzICRtYXguJ1xuICAgIH1cbiAgfTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbWluPzogc3RyaW5nID0gJzE5MDAtMDEtMDFUMDA6MDA6MDBaJztcbiAgQElucHV0KClcbiAgcHVibGljIG1heD86IHN0cmluZyA9ICcyMTAwLTAxLTAxVDAwOjAwOjAwWic7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpbmNsdWRlU2Vjb25kczogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2NhbFRpbWU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIGdldCBjbGFzc05hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0NsYXNzTmFtZSgpO1xuICB9XG5cbiAgQElucHV0KCkgbGFuZyA9IGxhbmd1YWdlRGV0ZWN0b3IoKTtcbiAgQElucHV0KCkgcHVibGljIGlubGluZUVycm9ycyA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRJZDogc3RyaW5nO1xuICBASW5wdXQoJ2FyaWEtbGFiZWwnKSBwdWJsaWMgYXJpYUxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkaXNhYmxlZCh2OiBzdHJpbmcgfCBib29sZWFuKSB7XG4gICAgdiA9IHR5cGVvZiB2ID09PSAnc3RyaW5nJyA/IHRydWUgOiB2O1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdjtcbiAgfVxuICBnZXQgZGlzYWJsZWQoKTogc3RyaW5nIHwgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHJlcXVpcmVkKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IHY7XG4gIH1cbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcbiAgICBpZiAodiA9PT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIHJldHVybjsgLy8gcHJldmVudCBldmVudHMgd2hlbiB0aGVyZSBpcyBubyBjaGFuZ2VzXG4gICAgfVxuICAgIGNvbnN0IGluaXRpYWxBbmRFbXB0eSA9IGlzSW5pdGlhbEFuZEVtcHR5KHRoaXMuX3ZhbHVlLCB2KTtcbiAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKHYpO1xuICAgIGlmICghdiB8fCAhaXNWYWxpZERhdGUoZGF0ZXRpbWUpKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLmRhdGVWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudGltZVZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IGRhdGV0aW1lLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgICAgdGhpcy5zZXRWYWx1ZUluQ29udHJvbChkYXRldGltZSk7XG4gICAgfVxuICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgaWYgKCFpbml0aWFsQW5kRW1wdHkpIHtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2KTtcbiAgICB9XG4gIH1cbiAgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBrZXlQcmVzcyA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcblxuICBvbkNoYW5nZSA9IChfdmFsdWUpOiB2b2lkID0+IHt9O1xuICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgSW50ZXJmYWNlIGltcGxlbWVudGF0aW9uXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50b3VjaGVkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG4gIC8vIEVuZCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciBJbnRlcmZhY2UgaW1wbGVtZW50YXRpb25cblxuICBzZXRWYWx1ZUluQ29udHJvbChkYXRldGltZTogRGF0ZSk6IHZvaWQge1xuICAgIGxldCBvZmZzZXREYXRldGltZVN0cmluZztcbiAgICBpZiAodGhpcy5sb2NhbFRpbWUpIHtcbiAgICAgIG9mZnNldERhdGV0aW1lU3RyaW5nID0gYWRkVGltZXpvbmVPZmZzZXQoZGF0ZXRpbWUpLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgIH0gZWxzZSB7XG4gICAgICBvZmZzZXREYXRldGltZVN0cmluZyA9IGRhdGV0aW1lLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgIH1cbiAgICB0aGlzLmRhdGVWYWx1ZSA9IG9mZnNldERhdGV0aW1lU3RyaW5nLnNsaWNlKDAsIDEwKTsgLy8gWVlZWS1NTS1ERFxuICAgIGlmICh0aGlzLmluY2x1ZGVTZWNvbmRzKSB7XG4gICAgICB0aGlzLnRpbWVWYWx1ZSA9IG9mZnNldERhdGV0aW1lU3RyaW5nLnNsaWNlKDExLCAxOSk7IC8vIGhoOm1tOnNzXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGltZVZhbHVlID0gb2Zmc2V0RGF0ZXRpbWVTdHJpbmcuc2xpY2UoMTEsIDE2KTsgLy8gaGg6bW1cbiAgICB9XG4gIH1cblxuICAvLyBWYWxpZGF0b3IgaW50ZXJmYWNlXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoKTogdm9pZCB7fVxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XG4gICAgbGV0IHJlc3VsdDogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgIWhhc1ZhbHVlKHZhbHVlKSkge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0IHx8IHt9O1xuICAgICAgcmVzdWx0LnJlcXVpcmVkID0geyB2YWx1ZSwgcmVhc29uOiAnUmVxdWlyZWQgZmllbGQuJyB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdGhpcy5taW4gPT09ICdzdHJpbmcnICYmXG4gICAgICBoYXNWYWx1ZSh2YWx1ZSkgJiZcbiAgICAgIFN0cmluZyh2YWx1ZSkubG9jYWxlQ29tcGFyZSh0aGlzLm1pbikgPT09IC0xXG4gICAgKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQgfHwge307XG4gICAgICByZXN1bHQubWluID0ge1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgbWluOiB0aGlzLm1pbixcbiAgICAgICAgcmVhc29uOiBgVmFsdWUgaXMgbG93ZXIgdGhhbiBtaW5pbXVtIHZhbHVlOiAke3RoaXMubWlufS5gXG4gICAgICB9O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdGhpcy5tYXggPT09ICdzdHJpbmcnICYmXG4gICAgICBoYXNWYWx1ZSh2YWx1ZSkgJiZcbiAgICAgIFN0cmluZyh2YWx1ZSkubG9jYWxlQ29tcGFyZSh0aGlzLm1heCkgIT09IC0xXG4gICAgKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQgfHwge307XG4gICAgICByZXN1bHQubWF4ID0ge1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgbWF4OiB0aGlzLm1heCxcbiAgICAgICAgcmVhc29uOiBgVmFsdWUgaXMgZ3JlYXRlciB0aGFuIHRoYW4gbWF4aW11bSB2YWx1ZTogJHt0aGlzLm1heH0uYFxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy5sYXN0RXJyb3JzID0gcmVzdWx0O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLy8gRW5kIG9mIFZhbGlkYXRvciBpbnRlcmZhY2VcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0SWQgPSB0aGlzLmlucHV0SWRcbiAgICAgID8gdGhpcy5pbnB1dElkXG4gICAgICA6IGBkYXRldGltZSQke0RhdGV0aW1lQ29tcG9uZW50LmlkQ291bnRlcisrfWA7XG4gICAgdGhpcy5zZXRQYXR0ZXJucygpO1xuICB9XG5cbiAgdXBkYXRlRGF0ZXRpbWUobmV3VmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnJlYWRvbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghbmV3VmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYXRldGltZSA9IG5ldyBEYXRlKG5ld1ZhbHVlKTtcbiAgICAgIGlmIChpc1ZhbGlkRGF0ZShkYXRldGltZSkpIHtcbiAgICAgICAgbGV0IGRhdGV0aW1lU3RyaW5nO1xuICAgICAgICBpZiAodGhpcy5sb2NhbFRpbWUpIHtcbiAgICAgICAgICBkYXRldGltZVN0cmluZyA9IGRhdGV0aW1lLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGV0aW1lU3RyaW5nID0gYWRkVGltZXpvbmVPZmZzZXQoZGF0ZXRpbWUpLnRvSVNPU3RyaW5nKCk7IC8vIFlZWVktTU0tRERUaGg6bW06c3MuU1NTWlxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluY2x1ZGVTZWNvbmRzKSB7XG4gICAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGV0aW1lU3RyaW5nLnNsaWNlKDAsIDE5KSArICdaJzsgLy8gWVlZWS1NTS1ERFRoaDptbTpzc1pcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnZhbHVlID0gZGF0ZXRpbWVTdHJpbmcuc2xpY2UoMCwgMTYpICsgJ1onOyAvLyBZWVlZLU1NLUREVGhoOm1tWlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Mb3N0Rm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbiAgb25LZXlVcChuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEYXRldGltZShuZXdWYWx1ZSk7XG4gIH1cbiAgb25DaGFuZ2VWYWx1ZShuZXdWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVEYXRldGltZShuZXdWYWx1ZSk7XG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbiAgb25LZXlQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5UHJlc3MuZW1pdChldmVudCk7XG4gIH1cblxuICBvbkV2ZW50RGF0ZXRpbWUobmV3RGF0ZTogc3RyaW5nLCBuZXdUaW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIW5ld0RhdGUgJiYgIW5ld1RpbWUpIHtcbiAgICAgIHRoaXMudXBkYXRlRGF0ZXRpbWUobnVsbCk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlRGF0ZXRpbWUobmV3RGF0ZSArICcgJyArIG5ld1RpbWUpO1xuICB9XG5cbiAgY2hlY2tDbGFzc05hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSA9PT0gdHJ1ZSkge1xuICAgICAgcmV0dXJuICdyZWFkb25seSc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHNldFBhdHRlcm5zKCk6IHZvaWQge1xuICAgIHRoaXMubWluID0gdGhpcy5taW4gfHwgJzE5MDAtMDEtMDEnO1xuICAgIHRoaXMubWF4ID0gdGhpcy5tYXggfHwgJzIxMDAtMDEtMDEnO1xuICB9XG59XG4iXX0=
@@ -123,7 +123,7 @@ FilterComponent.decorators = [
123
123
  useExisting: forwardRef(() => FilterComponent)
124
124
  }
125
125
  ],
126
- styles: ["input,select,textarea{border:solid 1px #495057;border:solid 1px var(--lux-input-border-color, #495057);margin:0;margin:var(--lux-input-margin, 0rem);padding:0 .5rem;padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:#fe2e2e;background:var(--lux-alert-background, #fe2e2e);color:#fff;color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0 .5rem;margin-bottom:0;font-weight:400;color:#495057;color:var(--lux-symbol-color, #495057);text-align:center;white-space:nowrap;background:#e9ecef;background:var(--lux-symbol-background, #e9ecef);border:1px solid #495057;border:1px solid var(--lux-input-border-color, #495057);font-size:1rem;font-size:var(--lux-symbol-font-size, 1rem)}.rounded,.postfix,.infix,.prefix{border-radius:.25rem;border:1px solid;border:var(--lux-input-border, 1px solid)}.prefix{border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.infix{border-radius:0}.postfix{border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.filter{display:grid;grid-template-columns:auto 1.5rem 1.5rem .5rem auto}.filter input{grid-row:1;grid-column-start:1;grid-column-end:4}.filter .hide{visibility:collapse}.filter .clear-indicator{grid-row:1;grid-column:2;border:none}.filter .search-indicator{grid-row:1;grid-column:3}.filter .btn-search{grid-row:1;grid-column:5}.filter .icon-search{background:url(/assets/img/filter-search.png) no-repeat center;background:var(--lux-filter-icon-search, url(/assets/img/filter-search.png) no-repeat center);background-size:1rem;background-size:var(--lux-filter-icon-bg-size, 1rem);background-position:center;width:1rem;width:var(--lux-filter-icon-width, 1rem)}.filter .icon-clear{background:url(/assets/img/filter-clear.png) no-repeat center;background:var(--lux-filter-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:1rem;background-size:var(--lux-filter-icon-bg-size, 1rem);background-position:center}\n"]
126
+ styles: [":focus{z-index:1}input,select,textarea{border:solid 1px #495057;border:solid 1px var(--lux-input-border-color, #495057);margin:0;margin:var(--lux-input-margin, 0rem);padding:0 .5rem;padding:var(--lux-input-padding, 0rem .5rem)}.alert{padding:.2rem 2rem;background:#fe2e2e;background:var(--lux-alert-background, #fe2e2e);color:#fff;color:var(--lux-alert-color, white);font-family:Consolas,monospace;width:45%;margin-right:1rem;display:inline-block}.symbol{display:inline-block;align-items:baseline;padding:0 .5rem;margin-bottom:0;font-weight:400;color:default;color:var(--lux-symbol-color, default);text-align:center;white-space:nowrap;background:default;background:var(--lux-symbol-background, default);border:1px solid #495057;border:1px solid var(--lux-input-border-color, #495057);font-size:1rem;font-size:var(--lux-symbol-font-size, 1rem)}.rounded,.rounded-right,.rounded-middle,.rounded-left{border-radius:.25rem;border:1px solid;border:var(--lux-input-border, 1px solid)}.rounded-left{border-top-right-radius:0;border-bottom-right-radius:0}.rounded-middle{border-radius:0}.rounded-right{border-top-left-radius:0;border-bottom-left-radius:0}.prefix{border-right:none}.infix{border-left:none;border-right:none}.postfix{border-left:none}.filter{display:grid;grid-template-columns:auto 1.5rem 1.5rem .5rem auto}.filter input{grid-row:1;grid-column-start:1;grid-column-end:4}.filter .hide{visibility:collapse}.filter .clear-indicator{grid-row:1;grid-column:2;border:none}.filter .search-indicator{grid-row:1;grid-column:3}.filter .btn-search{grid-row:1;grid-column:5}.filter .icon-search{background:url(/assets/img/filter-search.png) no-repeat center;background:var(--lux-filter-icon-search, url(/assets/img/filter-search.png) no-repeat center);background-size:1rem;background-size:var(--lux-filter-icon-bg-size, 1rem);background-position:center;width:1rem;width:var(--lux-filter-icon-width, 1rem)}.filter .icon-clear{background:url(/assets/img/filter-clear.png) no-repeat center;background:var(--lux-filter-icon-clear, url(/assets/img/filter-clear.png) no-repeat center);background-size:1rem;background-size:var(--lux-filter-icon-bg-size, 1rem);background-position:center}\n"]
127
127
  },] }
128
128
  ];
129
129
  FilterComponent.ctorParameters = () => [];