@acorex/components 16.18.48 → 16.18.49

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.
@@ -359,6 +359,9 @@ export class AXCalendarBoxComponent {
359
359
  }
360
360
  }
361
361
  matrixify(arr, cols) {
362
+ if (arr.length === 13 && this.view === 'month') {
363
+ arr.pop();
364
+ }
362
365
  const rows = Math.ceil(arr.length / cols);
363
366
  const matrix = [];
364
367
  if (rows * cols === arr.length) {
@@ -466,4 +469,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
466
469
  }], value: [{
467
470
  type: Input
468
471
  }] } });
469
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLWJveC9jYWxlbmRhci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItYm94L2NhbGVuZGFyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsUUFBUSxFQUNSLFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7OztBQXNDdkIsTUFBTSxPQUFPLHNCQUFzQjtJQW1LYjtJQUFnQztJQWxLcEQsUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUVoQixDQUFDLEdBQUc7UUFDVixNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLElBQUk7WUFDdEQsR0FBRyxFQUFFLEtBQUs7WUFDVixNQUFNLEVBQUUsQ0FBQztTQUNWO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSxJQUFJO1lBQ3pELEdBQUcsRUFBRSxLQUFLO1lBQ1YsTUFBTSxFQUFFLENBQUM7U0FDVjtLQUNGLENBQUM7SUFFRixTQUFTLENBQVM7SUFHbEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsSUFBSSxDQUFpQjtJQUdyQixNQUFNLENBQVM7SUFHZixHQUFHLENBQVM7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ZW5kYXJUeXBlLFxuICBBWENvbmZpZyxcbiAgQVhEYXRlVGltZSxcbiAgQVhEYXRlVGltZVJhbmdlLFxuICBBWFRyYW5zbGF0b3IsXG59IGZyb20gJ0BhY29yZXgvY29yZSc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWEJhc2VTaXphYmxlQ29tcG9uZW50LFxuICBBWEVsZW1lbnRTaXplLFxufSBmcm9tICcuLi8uLi9iYXNlL2VsZW1lbnQuY2xhc3MnO1xuaW1wb3J0IHsgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9ldmVudHMuY2xhc3MnO1xuXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyVmlld1R5cGUgPSAneWVhcicgfCAnbW9udGgnIHwgJ2RheSc7XG5cbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJIb2xpZGF5cyA9IEFYQ2FsZW5kYXJIb2xpZGF5W107XG5leHBvcnQgdHlwZSBBWENhbGVuZGFySG9saWRheXNGdW5jID0gKFxuICBzdGFydDogRGF0ZSxcbiAgZW5kOiBEYXRlLFxuICB0eXBlOiBBWENhbGVuZGFyVHlwZVxuKSA9PiBBWENhbGVuZGFySG9saWRheVtdO1xuZXhwb3J0IGludGVyZmFjZSBBWENhbGVuZGFySG9saWRheSB7XG4gIGRhdGU6IERhdGU7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyV2Vla2VuZHMgPSBBWENhbGVuZGFyV2Vla2VuZFtdO1xuZXhwb3J0IHR5cGUgQVhDYWxlbmRhcldlZWtlbmRzRnVuYyA9IChcbiAgc3RhcnQ6IERhdGUsXG4gIGVuZDogRGF0ZSxcbiAgdHlwZTogQVhDYWxlbmRhclR5cGVcbikgPT4gQVhDYWxlbmRhcldlZWtlbmRbXTtcblxuZXhwb3J0IGludGVyZmFjZSBBWENhbGVuZGFyV2Vla2VuZCB7XG4gIGluZGV4RGF5OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNhbGVuZGFyLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhckJveENvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xuICB3ZWVrZGF5czogc3RyaW5nW10gPSBbXTtcblxuICBwcml2YXRlIGQgPSB7XG4gICAgamFsYWxpOiB7XG4gICAgICBsb2NhbGU6IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUuamFsYWxpLmxvY2FsZScpIHx8ICdmYScsXG4gICAgICBkaXI6ICdydGwnLFxuICAgICAgbnVtYmVyOiAxLFxuICAgIH0sXG4gICAgZ3JlZ29yaWFuOiB7XG4gICAgICBsb2NhbGU6IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUuZ3JlZ29yaWFuLmxvY2FsZScpIHx8ICdlbicsXG4gICAgICBkaXI6ICdsdHInLFxuICAgICAgbnVtYmVyOiAwLFxuICAgIH0sXG4gIH07XG5cbiAgbnVtUm90YXRlOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XG5cbiAgQElucHV0KClcbiAgdHlwZTogQVhDYWxlbmRhclR5cGU7XG5cbiAgQElucHV0KClcbiAgbG9jYWxlOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgZGlyOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfbWluOiBEYXRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWluKHYpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fbWluID0gdjtcbiAgICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gdGhpcy50b2RheTtcbiAgICAgIHRoaXMudmlld1JhbmdlID0gdGhpcy50b2RheS5tb250aC5yYW5nZTtcbiAgICAgIHRoaXMubmF2aWdhdGUoMCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBtaW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgfVxuXG4gIHByaXZhdGUgX21heDogRGF0ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG1heCh2KSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuX21heCA9IHY7XG4gICAgICB0aGlzLmZvY3VzZWRWYWx1ZSA9IHRoaXMudG9kYXk7XG4gICAgICB0aGlzLnZpZXdSYW5nZSA9IHRoaXMudG9kYXkubW9udGgucmFuZ2U7XG4gICAgICB0aGlzLm5hdmlnYXRlKDApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgbWF4KCkge1xuICAgIHJldHVybiB0aGlzLl9tYXg7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZWxlY3RhYmxlSG9saWRheTogYm9vbGVhbiA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZGF5U3R5bGUgPSBbXTtcblxuICBASW5wdXQoKVxuICBkYXlNaW5NYXhSZXNvYW4gPSAnJztcblxuICBwcml2YXRlIGdldEhvbGlkYXk6IEFYQ2FsZW5kYXJIb2xpZGF5cyB8IEFYQ2FsZW5kYXJIb2xpZGF5c0Z1bmM7XG5cbiAgcHJpdmF0ZSBnZXRXZWVrZW5kOiBBWENhbGVuZGFyV2Vla2VuZHMgfCBBWENhbGVuZGFyV2Vla2VuZHNGdW5jO1xuXG4gIEBJbnB1dCgnc2hvd1RvZGF5QnV0dG9uJylcbiAgcHVibGljIHNob3dUb2RheUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1hdHJpeDogYW55W10gPSBbXTtcbiAgcm90YXRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF92aWV3OiBBWENhbGVuZGFyVmlld1R5cGUgPSAnZGF5JztcbiAgQElucHV0KClcbiAgcHVibGljIGdldCB2aWV3KCk6IEFYQ2FsZW5kYXJWaWV3VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZpZXc7XG4gIH1cbiAgcHVibGljIHNldCB2aWV3KHY6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xuICAgIHRoaXMuX3ZpZXcgPSB2O1xuICAgIHRoaXMubmF2aWdhdGUoMCk7XG4gIH1cblxuICBwcml2YXRlIF9kZXB0aDogQVhDYWxlbmRhclZpZXdUeXBlID0gJ2RheSc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBkZXB0aCgpOiBBWENhbGVuZGFyVmlld1R5cGUge1xuICAgIHJldHVybiB0aGlzLl9kZXB0aDtcbiAgfVxuICBwdWJsaWMgc2V0IGRlcHRoKHY6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xuICAgIHRoaXMuX2RlcHRoID0gdjtcbiAgICB0aGlzLnZpZXcgPSB2O1xuICB9XG5cbiAgdmlld1JhbmdlOiBBWERhdGVUaW1lUmFuZ2U7XG4gIHByaXZhdGUgaG9saWRheXM6IEFYQ2FsZW5kYXJIb2xpZGF5W10gPSBbXTtcbiAgcHJpdmF0ZSB3ZWVrZW5kczogQVhDYWxlbmRhcldlZWtlbmRbXSA9IFtdO1xuXG4gIEBPdXRwdXQoKVxuICBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxEYXRlPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFYVmFsdWVFdmVudDxEYXRlPlxuICA+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8RGF0ZT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBBWFZhbHVlRXZlbnQ8RGF0ZT5cbiAgPigpO1xuXG4gIEBPdXRwdXQoKVxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBBWERhdGVUaW1lO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IERhdGUge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZT8uZGF0ZTtcbiAgfVxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IERhdGUpIHtcbiAgICBsZXQgdnY6IEFYRGF0ZVRpbWU7XG4gICAgaWYgKHYpIHtcbiAgICAgIHZ2ID0gQVhEYXRlVGltZS5jb252ZXJ0KHYpO1xuICAgIH1cbiAgICBsZXQgdW5WYWxpZERhdGUgPSBmYWxzZTtcbiAgICBpZiAodGhpcy5fbWF4IHx8IHRoaXMuX21pbikge1xuICAgICAgdW5WYWxpZERhdGUgPSB0aGlzLmlzSW5NSW5NYXhSYW5nZSh2dik7XG4gICAgfVxuICAgIGlmICghdW5WYWxpZERhdGUpIHtcbiAgICAgIGlmICh2diAmJiAhdnYuZXF1YWwodGhpcy5fdmFsdWUpKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdnY7XG4gICAgICAgIHRoaXMuX3ZhbHVlLnR5cGUgPSB0aGlzLnR5cGU7XG4gICAgICAgIHRoaXMuc2V0Rm9jdXModGhpcy5fdmFsdWUuY2xvbmUoKSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2di5kYXRlKTtcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcbiAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlPy5kYXRlLFxuICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh2ID09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gdGhpcy50b2RheTtcbiAgICAgICAgdGhpcy52aWV3UmFuZ2UgPSB0aGlzLnRvZGF5Lm1vbnRoLnJhbmdlO1xuICAgICAgICB0aGlzLm5hdmlnYXRlKDApO1xuICAgICAgfVxuICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIHZhbHVlOiB0aGlzLl92YWx1ZT8uZGF0ZSxcbiAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBmb2N1c2VkVmFsdWU6IEFYRGF0ZVRpbWU7XG4gIGdldCB0b2RheSgpOiBBWERhdGVUaW1lIHtcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgdGhpcy50eXBlKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAvLyBzZXQgZGVmYXVsdHNcbiAgICB0aGlzLmdldEhvbGlkYXkgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLmhvbGlkYXlzJyk7XG4gICAgdGhpcy5nZXRXZWVrZW5kID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS53ZWVrZW5kcycpO1xuICB9XG4gIGZpbmREYXkoZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZGF5U3R5bGUuZmluZChcbiAgICAgICAgKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuICBnZXRTdHlsZShkYXRlOiBBWERhdGVUaW1lKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5kYXlTdHlsZS5maW5kKFxuICAgICAgICAoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF1cbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmRheVN0eWxlLmZpbmQoXG4gICAgICAgIChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXVxuICAgICAgKS5zdHlsZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIGdldFRpdGxlKGRhdGU6IEFYRGF0ZVRpbWUpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmRheVN0eWxlLmZpbmQoXG4gICAgICAgIChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXVxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF5U3R5bGUuZmluZChcbiAgICAgICAgKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdXG4gICAgICApLnRleHQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChcbiAgICAgICAgKHRoaXMuX21pbiAmJlxuICAgICAgICAgIHRoaXMuX21heCAmJlxuICAgICAgICAgIGRhdGUuY29tcGFpcmVOZXcoXG4gICAgICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLl9taW4sIHRoaXMudHlwZSksXG4gICAgICAgICAgICAnWU1EJyxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgPT09IC0xKSB8fFxuICAgICAgICBkYXRlLmNvbXBhaXJlTmV3KFxuICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21heCwgdGhpcy50eXBlKSxcbiAgICAgICAgICAnWU1EJyxcbiAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgKSA9PT0gMVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRheU1pbk1heFJlc29hbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvY3VzZWRWYWx1ZSA9IG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCksIHRoaXMudHlwZSk7XG4gICAgLy9cbiAgICB0aGlzLmluaXRMYXlvdXQoKTtcbiAgICAvL1xuICAgIHRoaXMudmlld1JhbmdlID0gdGhpcy50b2RheS5tb250aC5yYW5nZTtcbiAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5zZXRGb2N1cyhuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRGb2N1cyh0aGlzLnRvZGF5KTtcbiAgICB9XG5cbiAgICB0aGlzLnZpZXcgPSAnZGF5JztcbiAgfVxuXG4gIGdldFZpZXdDb21wYWlyZSh2aWV3OiBBWENhbGVuZGFyVmlld1R5cGUpIHtcbiAgICBzd2l0Y2ggKHZpZXcpIHtcbiAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgIHJldHVybiAnWU1EJztcbiAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgcmV0dXJuICdZTSc7XG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgcmV0dXJuICdZJztcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5uYXZpZ2F0ZSgwKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdExheW91dCgpIHtcbiAgICBpZiAoIXRoaXMudHlwZSkge1xuICAgICAgdGhpcy50eXBlID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS50eXBlJykgfHwgJ2dyZWdvcmlhbic7XG4gICAgfVxuICAgIGlmICghdGhpcy5sb2NhbGUpIHtcbiAgICAgIHRoaXMubG9jYWxlID0gdGhpcy5kW3RoaXMudHlwZV0/LmxvY2FsZSB8fCB0aGlzLmxvY2FsZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmRpcikge1xuICAgICAgdGhpcy5kaXIgPSB0aGlzLmRbdGhpcy50eXBlXT8uZGlyIHx8ICdsdHInO1xuICAgIH1cbiAgICB0aGlzLm51bVJvdGF0ZSA9IHRoaXMuZFt0aGlzLnR5cGVdPy5udW1iZXIgfHwgMDtcbiAgICBjb25zdCBwYXRoID0gJ2RhdGVUaW1lLndlZWtkYXlzU2hvcnQnO1xuICAgIHRoaXMud2Vla2RheXMgPSBbXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnN1bmAsIHRoaXMubG9jYWxlKSxcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0ubW9uYCwgdGhpcy5sb2NhbGUpLFxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS50dWVgLCB0aGlzLmxvY2FsZSksXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LndlZGAsIHRoaXMubG9jYWxlKSxcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0udGh1YCwgdGhpcy5sb2NhbGUpLFxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5mcmlgLCB0aGlzLmxvY2FsZSksXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnNhdGAsIHRoaXMubG9jYWxlKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0VG9kYXlOYW1lKCkge1xuICAgIHJldHVybiBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS50b2RheScsIHRoaXMubG9jYWxlKTtcbiAgfVxuXG4gIHByZXYoKSB7XG4gICAgdGhpcy5uYXZpZ2F0ZSgtMSk7XG4gIH1cblxuICBuZXh0KCkge1xuICAgIHRoaXMubmF2aWdhdGUoMSk7XG4gIH1cblxuICByb3RhdGUoYXJyYXksIG4pIHtcbiAgICBjb25zdCBsZW4gPSBhcnJheS5sZW5ndGg7XG4gICAgcmV0dXJuICEobiAlIGxlbilcbiAgICAgID8gYXJyYXlcbiAgICAgIDogbiA+IDBcbiAgICAgID8gYXJyYXkubWFwKChlLCBpLCBhKSA9PiBhWyhpICsgbikgJSBsZW5dKVxuICAgICAgOiBhcnJheS5tYXAoKGUsIGksIGEpID0+IGFbKGxlbiAtICgobGVuIC0gaSAtIG4pICUgbGVuKSkgJSBsZW5dKTtcbiAgfVxuXG4gIG5hdmlnYXRlKHZhbHVlOiBudW1iZXIgfCBBWERhdGVUaW1lKSB7XG4gICAgbGV0IHN0YXJ0OiBBWERhdGVUaW1lO1xuICAgIGxldCBlbmQ6IEFYRGF0ZVRpbWU7XG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcbiAgICAgIGxldCBmZDogQVhEYXRlVGltZTtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUpIHtcbiAgICAgICAgZmQgPSB2YWx1ZS5zdGFydE9mKCdtb250aCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmQgPSB0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWVcbiAgICAgICAgICAuYWRkKCdkYXknLCAxNSlcbiAgICAgICAgICAuYWRkKCdtb250aCcsIHZhbHVlKVxuICAgICAgICAgIC5zdGFydE9mKCdtb250aCcpO1xuICAgICAgfVxuXG4gICAgICBzdGFydCA9IGZkLmZpcnN0RGF5T2ZXZWVrO1xuICAgICAgZW5kID0gZmQuZW5kT2YoJ21vbnRoJykuZW5kRGF5T2ZXZWVrO1xuXG4gICAgICBzdGFydCA9IHN0YXJ0LmFkZCgnZGF5JywgLXRoaXMubnVtUm90YXRlKTtcbiAgICAgIGVuZCA9IGVuZC5hZGQoJ2RheScsIDcpLmFkZCgnZGF5JywgLXRoaXMubnVtUm90YXRlKTtcblxuICAgICAgLy8gVE9ETzogYXBwbHkgc3RhcnQgb2Ygd2Vla1xuICAgICAgaWYgKCF0aGlzLnJvdGF0ZWQgJiYgdGhpcy53ZWVrZGF5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdqYWxhbGknKSB7XG4gICAgICAgICAgdGhpcy53ZWVrZGF5cyA9IHRoaXMucm90YXRlKHRoaXMud2Vla2RheXMsIC10aGlzLm51bVJvdGF0ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy53ZWVrZGF5cyA9IHRoaXMucm90YXRlKHRoaXMud2Vla2RheXMsIHRoaXMubnVtUm90YXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucm90YXRlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICdtb250aCcpIHtcbiAgICAgIGxldCBmZDogQVhEYXRlVGltZTtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUpIHtcbiAgICAgICAgZmQgPSB2YWx1ZS5zdGFydE9mKCd5ZWFyJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmZCA9IHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZVxuICAgICAgICAgIC5hZGQoJ2RheScsIDE1KVxuICAgICAgICAgIC5hZGQoJ3llYXInLCB2YWx1ZSlcbiAgICAgICAgICAuc3RhcnRPZigneWVhcicpO1xuICAgICAgfVxuICAgICAgc3RhcnQgPSBmZDtcbiAgICAgIGVuZCA9IGZkLmVuZE9mKCd5ZWFyJyk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICd5ZWFyJykge1xuICAgICAgbGV0IGZkOiBBWERhdGVUaW1lO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ3llYXInKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZkID0gdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lXG4gICAgICAgICAgLmFkZCgnZGF5JywgMTUpXG4gICAgICAgICAgLmFkZCgneWVhcicsIHZhbHVlICogMTApXG4gICAgICAgICAgLnN0YXJ0T2YoJ3llYXInKTtcbiAgICAgIH1cbiAgICAgIHN0YXJ0ID0gZmQuYWRkKCd5ZWFyJywgLTQpO1xuICAgICAgZW5kID0gc3RhcnQuYWRkKCd5ZWFyJywgOCkuZW5kT2YoJ3llYXInKTtcbiAgICB9XG4gICAgdGhpcy52aWV3UmFuZ2UgPSBuZXcgQVhEYXRlVGltZVJhbmdlKHN0YXJ0LCBlbmQpO1xuICAgIC8vXG4gICAgaWYgKHRoaXMuZ2V0SG9saWRheSAmJiB0eXBlb2YgdGhpcy5nZXRIb2xpZGF5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLmhvbGlkYXlzID0gdGhpcy5nZXRIb2xpZGF5KHN0YXJ0LmRhdGUsIGVuZC5kYXRlLCB0aGlzLnR5cGUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmdldFdlZWtlbmQgJiYgdHlwZW9mIHRoaXMuZ2V0V2Vla2VuZCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy53ZWVrZW5kcyA9IHRoaXMuZ2V0V2Vla2VuZChzdGFydC5kYXRlLCBlbmQuZGF0ZSwgdGhpcy50eXBlKTtcbiAgICB9XG5cbiAgICAvL1xuICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLm1hdHJpeCA9IHRoaXMubWF0cml4aWZ5KFxuICAgICAgICB0aGlzLmFwcGx5U3R5bGUodGhpcy52aWV3UmFuZ2UuZW51bXVyYXRlKCdkYXknLCB0aGlzLnR5cGUpKSxcbiAgICAgICAgN1xuICAgICAgKTtcbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5tYXRyaXgubGVuZ3RoID4gMCAmJlxuICAgICAgICB0aGlzLm1hdHJpeFswXS5maW5kKChjKSA9PiBjLm5leHRNb250aCA9PT0gZmFsc2UpID09PSB1bmRlZmluZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLm1hdHJpeC5zcGxpY2UoMCwgMSk7XG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubWF0cml4W3RoaXMubWF0cml4Lmxlbmd0aCAtIDFdLmZpbmQoXG4gICAgICAgICAgKGMpID0+IGMubmV4dE1vbnRoID09PSBmYWxzZVxuICAgICAgICApID09PSB1bmRlZmluZWRcbiAgICAgICkge1xuICAgICAgICB0aGlzLm1hdHJpeC5zcGxpY2UodGhpcy5tYXRyaXgubGVuZ3RoIC0gMSwgMSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICdtb250aCcpIHtcbiAgICAgIHRoaXMubWF0cml4ID0gdGhpcy5tYXRyaXhpZnkoXG4gICAgICAgIHRoaXMuYXBwbHlTdHlsZSh0aGlzLnZpZXdSYW5nZS5lbnVtdXJhdGUoJ21vbnRoJywgdGhpcy50eXBlKSksXG4gICAgICAgIDNcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICd5ZWFyJykge1xuICAgICAgdGhpcy5tYXRyaXggPSB0aGlzLm1hdHJpeGlmeShcbiAgICAgICAgdGhpcy5hcHBseVN0eWxlKHRoaXMudmlld1JhbmdlLmVudW11cmF0ZSgneWVhcicsIHRoaXMudHlwZSkpLFxuICAgICAgICAzXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5U3R5bGUoZGF0ZXM6IEFYRGF0ZVRpbWVbXSk6IGFueVtdIHtcbiAgICBjb25zdCBpdGVtczogYW55W10gPSBbXTtcbiAgICBkYXRlcy5mb3JFYWNoKChkLCBpLCBqKSA9PiB7XG4gICAgICBjb25zdCBpdGVtOiBhbnkgPSB7fTtcbiAgICAgIGl0ZW0uZGF0ZSA9IGQ7XG5cbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPVxuICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSksXG4gICAgICAgICAgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSxcbiAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgKSA9PT0gMDtcbiAgICAgIGl0ZW0uZm9jdXNlZCA9XG4gICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgdGhpcy5mb2N1c2VkVmFsdWUsXG4gICAgICAgICAgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSxcbiAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgKSA9PT0gMDtcbiAgICAgIGl0ZW0udG9kYXkgPVxuICAgICAgICB0aGlzLnRvZGF5ICYmXG4gICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgdGhpcy50b2RheSxcbiAgICAgICAgICB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLFxuICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICApID09PSAwO1xuICAgICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcbiAgICAgICAgLy8gIGl0ZW0ubmV4dE1vbnRoID0gZC5jb21wYWlyZU5ldyh0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWUuYWRkKCdkYXknLCAxMCksICdZTScpICE9PSAwO1xuICAgICAgICBpdGVtLm5leHRNb250aCA9XG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDEwKSxcbiAgICAgICAgICAgICdZTScsXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApICE9PSAwO1xuXG4gICAgICAgIGl0ZW0udW5zZWxlY3QgPSB0aGlzLmlzSW5NSW5NYXhSYW5nZShkKTtcbiAgICAgICAgdGhpcy5ob2xpZGF5cy5mb3JFYWNoKChoKSA9PiB7XG4gICAgICAgICAgY29uc3QgY29tcCA9IGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgICBuZXcgQVhEYXRlVGltZShoLmRhdGUsIHRoaXMudHlwZSksXG4gICAgICAgICAgICAnWU1EJyxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGNvbXAgPT09IDApIHtcbiAgICAgICAgICAgIGl0ZW0uaG9saWRheSA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RhYmxlSG9saWRheSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgaXRlbS51bnNlbGVjdCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBpbmRleERheSA9IGkgLSBNYXRoLmZsb29yKGkgLyA3KSAqIDc7XG4gICAgICAgIHRoaXMud2Vla2VuZHMuZm9yRWFjaCgoY2MpID0+IHtcbiAgICAgICAgICBpZiAoTnVtYmVyKGNjKSA9PT0gaW5kZXhEYXkpIHtcbiAgICAgICAgICAgIGl0ZW0uaG9saWRheSA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RhYmxlSG9saWRheSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgaXRlbS51bnNlbGVjdCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGl0ZW1zO1xuICB9XG5cbiAgY2hhbmdlVmlldygpIHtcbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xuICAgICAgdGhpcy52aWV3ID0gJ21vbnRoJztcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy52aWV3ID0gJ3llYXInO1xuICAgIH1cbiAgfVxuXG4gIG1hdHJpeGlmeShhcnI6IGFueVtdLCBjb2xzKSB7XG4gICAgY29uc3Qgcm93cyA9IE1hdGguY2VpbChhcnIubGVuZ3RoIC8gY29scyk7XG4gICAgY29uc3QgbWF0cml4ID0gW107XG4gICAgaWYgKHJvd3MgKiBjb2xzID09PSBhcnIubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkgKz0gY29scykge1xuICAgICAgICBtYXRyaXgucHVzaChhcnIuc2xpY2UoaSwgY29scyArIGkpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbiAgfVxuXG4gIHNldERheUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtKSB7XG4gICAgaWYgKGl0ZW0udW5zZWxlY3QgIT09IHRydWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBpdGVtLmRhdGUuZGF0ZTtcbiAgICB9XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGlzSW5NSW5NYXhSYW5nZShkKSB7XG4gICAgbGV0IHIgPSBmYWxzZTtcbiAgICBpZiAoZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5fbWluICYmICF0aGlzLl9tYXgpIHtcbiAgICAgICAgciA9XG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21pbiwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApID09PSAtMTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9tYXggJiYgIXRoaXMuX21pbikge1xuICAgICAgICByID1cbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbWF4LCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgPT09IDE7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fbWluICYmIHRoaXMuX21heCkge1xuICAgICAgICByID1cbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbWluLCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgPT09IC0xIHx8XG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21heCwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApID09PSAxO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfVxuXG4gIHNldE1vbnRoQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGRhdGU6IEFYRGF0ZVRpbWUpIHtcbiAgICBpZiAodGhpcy5kZXB0aCA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy52YWx1ZSA9IGRhdGUuZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3ID0gJ2RheSc7XG4gICAgICB0aGlzLnNldEZvY3VzKFxuICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpXG4gICAgICAgICAgLnNldCgneWVhcicsIGRhdGUueWVhcilcbiAgICAgICAgICAuc2V0KCdtb250aCcsIGRhdGUubW9udGhPZlllYXIpXG4gICAgICApO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHNldFllYXJDbGljayhldmVudDogTW91c2VFdmVudCwgZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIGlmICh0aGlzLmRlcHRoID09PSAneWVhcicpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLmRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlldyA9ICdtb250aCc7XG4gICAgICB0aGlzLnNldEZvY3VzKFxuICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpLnNldCgneWVhcicsIGRhdGUueWVhcilcbiAgICAgICk7XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgc2V0Rm9jdXMoZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gZGF0ZTtcbiAgICB0aGlzLm5hdmlnYXRlKHRoaXMuZm9jdXNlZFZhbHVlKTtcbiAgfVxuXG4gIHNldFRvZGF5KCkge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRvZGF5LmRhdGU7XG4gICAgdGhpcy52aWV3ID0gJ2RheSc7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW06IGFueSkge1xuICAgIHJldHVybiBpdGVtLmRhdGUuZGF0ZS5nZXRUaW1lKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1jb250YWluZXIge3tzaXplfX1cIiBbbmdDbGFzc109XCJ0eXBlXCI+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29udHJvbGwtYnV0dG9uXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJsaWdodCBibGFua1wiIChjbGljayk9XCJuZXh0KClcIj5cbiAgICAgICAgICAgICAgICB7eydjb21tb24ubmV4dCcgfCB0cmFuc319XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1uYXYtYnV0dG9uXCIgW25nU3dpdGNoXT1cInZpZXdcIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gdHlwZT1cImxpZ2h0IGJsYW5rXCIgKGNsaWNrKT1cImNoYW5nZVZpZXcoKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXknXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7dmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsMTApIHwgZHQ6XCJNTU0gWVlZWVwifX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7dmlld1JhbmdlLnN0YXJ0VGltZSB8IGR0OlwiWVlZWVwifX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgIHt7dmlld1JhbmdlLnN0YXJ0VGltZSB8IGR0OlwiWVlZWVwifX0gLSB7e3ZpZXdSYW5nZS5lbmRUaW1lIHwgZHQ6XCJZWVlZXCJ9fVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29udHJvbGwtYnV0dG9uXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJsaWdodCBibGFua1wiIChjbGljayk9XCJwcmV2KClcIj5cbiAgICAgICAgICAgICAgICB7eydjb21tb24ucHJldicgfCB0cmFuc319XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidmlld1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RheSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbW9udGgtaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9J2xldCB3IG9mIHdlZWtkYXlzJz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tb250aC1pdGVtXCI+e3t3fX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWRheS1pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByIG9mIG1hdHJpeFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWRheS1pdGVtIGF4LXN0YXRlLWV2ZW50XCIgKm5nRm9yPVwibGV0IGQgb2Ygcjt0cmFja0J5OnRyYWNrQnlGblwiIFt0aXRsZV09XCJnZXRUaXRsZShkLmRhdGUpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCc6IGQuc2VsZWN0ZWQsJ2ZvY3VzZWQnOmQuZm9jdXNlZCwndG9kYXknOmQudG9kYXksJ25leHQtbW9udGgnOmQubmV4dE1vbnRoICwgJ2hvbGlkYXknOmQuaG9saWRheSAsICd1bnNlbGVjdCc6ZC51bnNlbGVjdH1cIiBbbmdTdHlsZV09XCIoZmluZERheShkLmRhdGUpKSA/IGdldFN0eWxlKGQuZGF0ZSk6JydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXREYXlDbGljaygkZXZlbnQsZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2QuZGF0ZS5kYXlJbk1vbnRofX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1vbnRoLWNvbnRhaW5lclwiICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgciBvZiBtYXRyaXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1vbnRoLWl0ZW1cIiAqbmdGb3I9XCJsZXQgZCBvZiByO3RyYWNrQnk6dHJhY2tCeUZuXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCc6IGQuc2VsZWN0ZWQsJ2ZvY3VzZWQnOmQuZm9jdXNlZCwndG9kYXknOmQudG9kYXl9XCIgKGNsaWNrKT1cInNldE1vbnRoQ2xpY2soJGV2ZW50LGQuZGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkLmRhdGV8IGR0OlwiTU1NXCJ9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgteWVhci1jb250YWluZXJcIiAqbmdTd2l0Y2hDYXNlPVwiJ3llYXInXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cImNhbGVuZGFyLXJvd1wiICpuZ0Zvcj1cImxldCByIG9mIG1hdHJpeFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgteWVhci1pdGVtXCIgKm5nRm9yPVwibGV0IGQgb2Ygcjt0cmFja0J5OnRyYWNrQnlGblwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnOiBkLnNlbGVjdGVkLCdmb2N1c2VkJzpkLmZvY3VzZWQsJ3RvZGF5JzpkLnRvZGF5fVwiIChjbGljayk9XCJzZXRZZWFyQ2xpY2soJGV2ZW50LGQuZGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3tkLmRhdGUgfCBkdDpcIllZWVlcIn19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWZvb3RlclwiPlxuICAgICAgICA8YXgtYnV0dG9uIChjbGljayk9XCJzZXRUb2RheSgpXCIgKm5nSWY9XCJzaG93VG9kYXlCdXR0b25cIiB0eXBlPVwiZGFya1wiPlxuICAgICAgICAgICAge3tnZXRUb2RheU5hbWUoKX19XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
472
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLWJveC9jYWxlbmRhci1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItYm94L2NhbGVuZGFyLWJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsUUFBUSxFQUNSLFVBQVUsRUFDVixlQUFlLEVBQ2YsWUFBWSxHQUNiLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDOzs7OztBQXNDdkIsTUFBTSxPQUFPLHNCQUFzQjtJQW1LYjtJQUFnQztJQWxLcEQsUUFBUSxHQUFhLEVBQUUsQ0FBQztJQUVoQixDQUFDLEdBQUc7UUFDVixNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLElBQUk7WUFDdEQsR0FBRyxFQUFFLEtBQUs7WUFDVixNQUFNLEVBQUUsQ0FBQztTQUNWO1FBQ0QsU0FBUyxFQUFFO1lBQ1QsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsSUFBSSxJQUFJO1lBQ3pELEdBQUcsRUFBRSxLQUFLO1lBQ1YsTUFBTSxFQUFFLENBQUM7U0FDVjtLQUNGLENBQUM7SUFFRixTQUFTLENBQVM7SUFHbEIsSUFBSSxHQUFrQixJQUFJLENBQUM7SUFHM0IsSUFBSSxDQUFpQjtJQUdyQixNQUFNLENBQVM7SUFHZixHQUFHLENBQVM7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YztzQkFEYixNQUFNO2dCQU1QLE9BQU87c0JBRE4sTUFBTTtnQkFNUCxXQUFXO3NCQURWLE1BQU07Z0JBS0ksS0FBSztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDYWxlbmRhclR5cGUsXG4gIEFYQ29uZmlnLFxuICBBWERhdGVUaW1lLFxuICBBWERhdGVUaW1lUmFuZ2UsXG4gIEFYVHJhbnNsYXRvcixcbn0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYQmFzZVNpemFibGVDb21wb25lbnQsXG4gIEFYRWxlbWVudFNpemUsXG59IGZyb20gJy4uLy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XG5pbXBvcnQgeyBBWFZhbHVlRXZlbnQgfSBmcm9tICcuLi8uLi9iYXNlL2V2ZW50cy5jbGFzcyc7XG5cbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICd5ZWFyJyB8ICdtb250aCcgfCAnZGF5JztcblxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhckhvbGlkYXlzID0gQVhDYWxlbmRhckhvbGlkYXlbXTtcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJIb2xpZGF5c0Z1bmMgPSAoXG4gIHN0YXJ0OiBEYXRlLFxuICBlbmQ6IERhdGUsXG4gIHR5cGU6IEFYQ2FsZW5kYXJUeXBlXG4pID0+IEFYQ2FsZW5kYXJIb2xpZGF5W107XG5leHBvcnQgaW50ZXJmYWNlIEFYQ2FsZW5kYXJIb2xpZGF5IHtcbiAgZGF0ZTogRGF0ZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJXZWVrZW5kcyA9IEFYQ2FsZW5kYXJXZWVrZW5kW107XG5leHBvcnQgdHlwZSBBWENhbGVuZGFyV2Vla2VuZHNGdW5jID0gKFxuICBzdGFydDogRGF0ZSxcbiAgZW5kOiBEYXRlLFxuICB0eXBlOiBBWENhbGVuZGFyVHlwZVxuKSA9PiBBWENhbGVuZGFyV2Vla2VuZFtdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYQ2FsZW5kYXJXZWVrZW5kIHtcbiAgaW5kZXhEYXk6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY2FsZW5kYXItYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBWENhbGVuZGFyQm94Q29tcG9uZW50IGltcGxlbWVudHMgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCB7XG4gIHdlZWtkYXlzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHByaXZhdGUgZCA9IHtcbiAgICBqYWxhbGk6IHtcbiAgICAgIGxvY2FsZTogQVhDb25maWcuZ2V0KCdkYXRlVGltZS5qYWxhbGkubG9jYWxlJykgfHwgJ2ZhJyxcbiAgICAgIGRpcjogJ3J0bCcsXG4gICAgICBudW1iZXI6IDEsXG4gICAgfSxcbiAgICBncmVnb3JpYW46IHtcbiAgICAgIGxvY2FsZTogQVhDb25maWcuZ2V0KCdkYXRlVGltZS5ncmVnb3JpYW4ubG9jYWxlJykgfHwgJ2VuJyxcbiAgICAgIGRpcjogJ2x0cicsXG4gICAgICBudW1iZXI6IDAsXG4gICAgfSxcbiAgfTtcblxuICBudW1Sb3RhdGU6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcblxuICBASW5wdXQoKVxuICB0eXBlOiBBWENhbGVuZGFyVHlwZTtcblxuICBASW5wdXQoKVxuICBsb2NhbGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBkaXI6IHN0cmluZztcblxuICBwcml2YXRlIF9taW46IERhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtaW4odikge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9taW4gPSB2O1xuICAgICAgdGhpcy5mb2N1c2VkVmFsdWUgPSB0aGlzLnRvZGF5O1xuICAgICAgdGhpcy52aWV3UmFuZ2UgPSB0aGlzLnRvZGF5Lm1vbnRoLnJhbmdlO1xuICAgICAgdGhpcy5uYXZpZ2F0ZSgwKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1pbigpIHtcbiAgICByZXR1cm4gdGhpcy5fbWluO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWF4OiBEYXRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbWF4KHYpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fbWF4ID0gdjtcbiAgICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gdGhpcy50b2RheTtcbiAgICAgIHRoaXMudmlld1JhbmdlID0gdGhpcy50b2RheS5tb250aC5yYW5nZTtcbiAgICAgIHRoaXMubmF2aWdhdGUoMCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBtYXgoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNlbGVjdGFibGVIb2xpZGF5OiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBkYXlTdHlsZSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGRheU1pbk1heFJlc29hbiA9ICcnO1xuXG4gIHByaXZhdGUgZ2V0SG9saWRheTogQVhDYWxlbmRhckhvbGlkYXlzIHwgQVhDYWxlbmRhckhvbGlkYXlzRnVuYztcblxuICBwcml2YXRlIGdldFdlZWtlbmQ6IEFYQ2FsZW5kYXJXZWVrZW5kcyB8IEFYQ2FsZW5kYXJXZWVrZW5kc0Z1bmM7XG5cbiAgQElucHV0KCdzaG93VG9kYXlCdXR0b24nKVxuICBwdWJsaWMgc2hvd1RvZGF5QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgbWF0cml4OiBhbnlbXSA9IFtdO1xuICByb3RhdGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3ZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSA9ICdkYXknO1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHZpZXcoKTogQVhDYWxlbmRhclZpZXdUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fdmlldztcbiAgfVxuICBwdWJsaWMgc2V0IHZpZXcodjogQVhDYWxlbmRhclZpZXdUeXBlKSB7XG4gICAgdGhpcy5fdmlldyA9IHY7XG4gICAgdGhpcy5uYXZpZ2F0ZSgwKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlcHRoOiBBWENhbGVuZGFyVmlld1R5cGUgPSAnZGF5JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGRlcHRoKCk6IEFYQ2FsZW5kYXJWaWV3VHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX2RlcHRoO1xuICB9XG4gIHB1YmxpYyBzZXQgZGVwdGgodjogQVhDYWxlbmRhclZpZXdUeXBlKSB7XG4gICAgdGhpcy5fZGVwdGggPSB2O1xuICAgIHRoaXMudmlldyA9IHY7XG4gIH1cblxuICB2aWV3UmFuZ2U6IEFYRGF0ZVRpbWVSYW5nZTtcbiAgcHJpdmF0ZSBob2xpZGF5czogQVhDYWxlbmRhckhvbGlkYXlbXSA9IFtdO1xuICBwcml2YXRlIHdlZWtlbmRzOiBBWENhbGVuZGFyV2Vla2VuZFtdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgQVhWYWx1ZUV2ZW50PERhdGU+XG4gID4oKTtcblxuICBAT3V0cHV0KClcbiAgb25DbGljazogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxEYXRlPj4gPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIEFYVmFsdWVFdmVudDxEYXRlPlxuICA+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IEFYRGF0ZVRpbWU7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlPy5kYXRlO1xuICB9XG4gIHB1YmxpYyBzZXQgdmFsdWUodjogRGF0ZSkge1xuICAgIGxldCB2djogQVhEYXRlVGltZTtcbiAgICBpZiAodikge1xuICAgICAgdnYgPSBBWERhdGVUaW1lLmNvbnZlcnQodik7XG4gICAgfVxuICAgIGxldCB1blZhbGlkRGF0ZSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLl9tYXggfHwgdGhpcy5fbWluKSB7XG4gICAgICB1blZhbGlkRGF0ZSA9IHRoaXMuaXNJbk1Jbk1heFJhbmdlKHZ2KTtcbiAgICB9XG4gICAgaWYgKCF1blZhbGlkRGF0ZSkge1xuICAgICAgaWYgKHZ2ICYmICF2di5lcXVhbCh0aGlzLl92YWx1ZSkpIHtcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2djtcbiAgICAgICAgdGhpcy5fdmFsdWUudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgICAgdGhpcy5zZXRGb2N1cyh0aGlzLl92YWx1ZS5jbG9uZSgpKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZ2LmRhdGUpO1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICB2YWx1ZTogdGhpcy5fdmFsdWU/LmRhdGUsXG4gICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHYgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5mb2N1c2VkVmFsdWUgPSB0aGlzLnRvZGF5O1xuICAgICAgICB0aGlzLnZpZXdSYW5nZSA9IHRoaXMudG9kYXkubW9udGgucmFuZ2U7XG4gICAgICAgIHRoaXMubmF2aWdhdGUoMCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9uQ2xpY2suZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlPy5kYXRlLFxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGZvY3VzZWRWYWx1ZTogQVhEYXRlVGltZTtcbiAgZ2V0IHRvZGF5KCk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSgpLCB0aGlzLnR5cGUpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xuICAgIC8vIHNldCBkZWZhdWx0c1xuICAgIHRoaXMuZ2V0SG9saWRheSA9IEFYQ29uZmlnLmdldCgnZGF0ZVRpbWUuaG9saWRheXMnKTtcbiAgICB0aGlzLmdldFdlZWtlbmQgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLndlZWtlbmRzJyk7XG4gIH1cbiAgZmluZERheShkYXRlOiBBWERhdGVUaW1lKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5kYXlTdHlsZS5maW5kKFxuICAgICAgICAoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF1cbiAgICAgIClcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG4gIGdldFN0eWxlKGRhdGU6IEFYRGF0ZVRpbWUpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmRheVN0eWxlLmZpbmQoXG4gICAgICAgIChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXVxuICAgICAgKVxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuZGF5U3R5bGUuZmluZChcbiAgICAgICAgKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdXG4gICAgICApLnN0eWxlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgZ2V0VGl0bGUoZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZGF5U3R5bGUuZmluZChcbiAgICAgICAgKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4gdGhpcy5kYXlTdHlsZS5maW5kKFxuICAgICAgICAoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF1cbiAgICAgICkudGV4dDtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKFxuICAgICAgICAodGhpcy5fbWluICYmXG4gICAgICAgICAgdGhpcy5fbWF4ICYmXG4gICAgICAgICAgZGF0ZS5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21pbiwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgICdZTUQnLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKSA9PT0gLTEpIHx8XG4gICAgICAgIGRhdGUuY29tcGFpcmVOZXcoXG4gICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbWF4LCB0aGlzLnR5cGUpLFxuICAgICAgICAgICdZTUQnLFxuICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICApID09PSAxXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF5TWluTWF4UmVzb2FuO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgdGhpcy50eXBlKTtcbiAgICAvL1xuICAgIHRoaXMuaW5pdExheW91dCgpO1xuICAgIC8vXG4gICAgdGhpcy52aWV3UmFuZ2UgPSB0aGlzLnRvZGF5Lm1vbnRoLnJhbmdlO1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICB0aGlzLnNldEZvY3VzKG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEZvY3VzKHRoaXMudG9kYXkpO1xuICAgIH1cblxuICAgIHRoaXMudmlldyA9ICdkYXknO1xuICB9XG5cbiAgZ2V0Vmlld0NvbXBhaXJlKHZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xuICAgIHN3aXRjaCAodmlldykge1xuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgcmV0dXJuICdZTUQnO1xuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICByZXR1cm4gJ1lNJztcbiAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICByZXR1cm4gJ1knO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm5hdmlnYXRlKDApO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0TGF5b3V0KCkge1xuICAgIGlmICghdGhpcy50eXBlKSB7XG4gICAgICB0aGlzLnR5cGUgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLnR5cGUnKSB8fCAnZ3JlZ29yaWFuJztcbiAgICB9XG4gICAgaWYgKCF0aGlzLmxvY2FsZSkge1xuICAgICAgdGhpcy5sb2NhbGUgPSB0aGlzLmRbdGhpcy50eXBlXT8ubG9jYWxlIHx8IHRoaXMubG9jYWxlO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZGlyKSB7XG4gICAgICB0aGlzLmRpciA9IHRoaXMuZFt0aGlzLnR5cGVdPy5kaXIgfHwgJ2x0cic7XG4gICAgfVxuICAgIHRoaXMubnVtUm90YXRlID0gdGhpcy5kW3RoaXMudHlwZV0/Lm51bWJlciB8fCAwO1xuICAgIGNvbnN0IHBhdGggPSAnZGF0ZVRpbWUud2Vla2RheXNTaG9ydCc7XG4gICAgdGhpcy53ZWVrZGF5cyA9IFtcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0uc3VuYCwgdGhpcy5sb2NhbGUpLFxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5tb25gLCB0aGlzLmxvY2FsZSksXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnR1ZWAsIHRoaXMubG9jYWxlKSxcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0ud2VkYCwgdGhpcy5sb2NhbGUpLFxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS50aHVgLCB0aGlzLmxvY2FsZSksXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LmZyaWAsIHRoaXMubG9jYWxlKSxcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0uc2F0YCwgdGhpcy5sb2NhbGUpLFxuICAgIF07XG4gIH1cblxuICBnZXRUb2RheU5hbWUoKSB7XG4gICAgcmV0dXJuIEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLnRvZGF5JywgdGhpcy5sb2NhbGUpO1xuICB9XG5cbiAgcHJldigpIHtcbiAgICB0aGlzLm5hdmlnYXRlKC0xKTtcbiAgfVxuXG4gIG5leHQoKSB7XG4gICAgdGhpcy5uYXZpZ2F0ZSgxKTtcbiAgfVxuXG4gIHJvdGF0ZShhcnJheSwgbikge1xuICAgIGNvbnN0IGxlbiA9IGFycmF5Lmxlbmd0aDtcbiAgICByZXR1cm4gIShuICUgbGVuKVxuICAgICAgPyBhcnJheVxuICAgICAgOiBuID4gMFxuICAgICAgPyBhcnJheS5tYXAoKGUsIGksIGEpID0+IGFbKGkgKyBuKSAlIGxlbl0pXG4gICAgICA6IGFycmF5Lm1hcCgoZSwgaSwgYSkgPT4gYVsobGVuIC0gKChsZW4gLSBpIC0gbikgJSBsZW4pKSAlIGxlbl0pO1xuICB9XG5cbiAgbmF2aWdhdGUodmFsdWU6IG51bWJlciB8IEFYRGF0ZVRpbWUpIHtcbiAgICBsZXQgc3RhcnQ6IEFYRGF0ZVRpbWU7XG4gICAgbGV0IGVuZDogQVhEYXRlVGltZTtcbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xuICAgICAgbGV0IGZkOiBBWERhdGVUaW1lO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ21vbnRoJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmZCA9IHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZVxuICAgICAgICAgIC5hZGQoJ2RheScsIDE1KVxuICAgICAgICAgIC5hZGQoJ21vbnRoJywgdmFsdWUpXG4gICAgICAgICAgLnN0YXJ0T2YoJ21vbnRoJyk7XG4gICAgICB9XG5cbiAgICAgIHN0YXJ0ID0gZmQuZmlyc3REYXlPZldlZWs7XG4gICAgICBlbmQgPSBmZC5lbmRPZignbW9udGgnKS5lbmREYXlPZldlZWs7XG5cbiAgICAgIHN0YXJ0ID0gc3RhcnQuYWRkKCdkYXknLCAtdGhpcy5udW1Sb3RhdGUpO1xuICAgICAgZW5kID0gZW5kLmFkZCgnZGF5JywgNykuYWRkKCdkYXknLCAtdGhpcy5udW1Sb3RhdGUpO1xuXG4gICAgICAvLyBUT0RPOiBhcHBseSBzdGFydCBvZiB3ZWVrXG4gICAgICBpZiAoIXRoaXMucm90YXRlZCAmJiB0aGlzLndlZWtkYXlzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2phbGFsaScpIHtcbiAgICAgICAgICB0aGlzLndlZWtkYXlzID0gdGhpcy5yb3RhdGUodGhpcy53ZWVrZGF5cywgLXRoaXMubnVtUm90YXRlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLndlZWtkYXlzID0gdGhpcy5yb3RhdGUodGhpcy53ZWVrZGF5cywgdGhpcy5udW1Sb3RhdGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5yb3RhdGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xuICAgICAgbGV0IGZkOiBBWERhdGVUaW1lO1xuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ3llYXInKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZkID0gdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lXG4gICAgICAgICAgLmFkZCgnZGF5JywgMTUpXG4gICAgICAgICAgLmFkZCgneWVhcicsIHZhbHVlKVxuICAgICAgICAgIC5zdGFydE9mKCd5ZWFyJyk7XG4gICAgICB9XG4gICAgICBzdGFydCA9IGZkO1xuICAgICAgZW5kID0gZmQuZW5kT2YoJ3llYXInKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ3llYXInKSB7XG4gICAgICBsZXQgZmQ6IEFYRGF0ZVRpbWU7XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBWERhdGVUaW1lKSB7XG4gICAgICAgIGZkID0gdmFsdWUuc3RhcnRPZigneWVhcicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmQgPSB0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWVcbiAgICAgICAgICAuYWRkKCdkYXknLCAxNSlcbiAgICAgICAgICAuYWRkKCd5ZWFyJywgdmFsdWUgKiAxMClcbiAgICAgICAgICAuc3RhcnRPZigneWVhcicpO1xuICAgICAgfVxuICAgICAgc3RhcnQgPSBmZC5hZGQoJ3llYXInLCAtNCk7XG4gICAgICBlbmQgPSBzdGFydC5hZGQoJ3llYXInLCA4KS5lbmRPZigneWVhcicpO1xuICAgIH1cbiAgICB0aGlzLnZpZXdSYW5nZSA9IG5ldyBBWERhdGVUaW1lUmFuZ2Uoc3RhcnQsIGVuZCk7XG4gICAgLy9cbiAgICBpZiAodGhpcy5nZXRIb2xpZGF5ICYmIHR5cGVvZiB0aGlzLmdldEhvbGlkYXkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRoaXMuaG9saWRheXMgPSB0aGlzLmdldEhvbGlkYXkoc3RhcnQuZGF0ZSwgZW5kLmRhdGUsIHRoaXMudHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZ2V0V2Vla2VuZCAmJiB0eXBlb2YgdGhpcy5nZXRXZWVrZW5kID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aGlzLndlZWtlbmRzID0gdGhpcy5nZXRXZWVrZW5kKHN0YXJ0LmRhdGUsIGVuZC5kYXRlLCB0aGlzLnR5cGUpO1xuICAgIH1cblxuICAgIC8vXG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcbiAgICAgIHRoaXMubWF0cml4ID0gdGhpcy5tYXRyaXhpZnkoXG4gICAgICAgIHRoaXMuYXBwbHlTdHlsZSh0aGlzLnZpZXdSYW5nZS5lbnVtdXJhdGUoJ2RheScsIHRoaXMudHlwZSkpLFxuICAgICAgICA3XG4gICAgICApO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLm1hdHJpeC5sZW5ndGggPiAwICYmXG4gICAgICAgIHRoaXMubWF0cml4WzBdLmZpbmQoKGMpID0+IGMubmV4dE1vbnRoID09PSBmYWxzZSkgPT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubWF0cml4LnNwbGljZSgwLCAxKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgdGhpcy5tYXRyaXhbdGhpcy5tYXRyaXgubGVuZ3RoIC0gMV0uZmluZChcbiAgICAgICAgICAoYykgPT4gYy5uZXh0TW9udGggPT09IGZhbHNlXG4gICAgICAgICkgPT09IHVuZGVmaW5lZFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubWF0cml4LnNwbGljZSh0aGlzLm1hdHJpeC5sZW5ndGggLSAxLCAxKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy5tYXRyaXggPSB0aGlzLm1hdHJpeGlmeShcbiAgICAgICAgdGhpcy5hcHBseVN0eWxlKHRoaXMudmlld1JhbmdlLmVudW11cmF0ZSgnbW9udGgnLCB0aGlzLnR5cGUpKSxcbiAgICAgICAgM1xuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ3llYXInKSB7XG4gICAgICB0aGlzLm1hdHJpeCA9IHRoaXMubWF0cml4aWZ5KFxuICAgICAgICB0aGlzLmFwcGx5U3R5bGUodGhpcy52aWV3UmFuZ2UuZW51bXVyYXRlKCd5ZWFyJywgdGhpcy50eXBlKSksXG4gICAgICAgIDNcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTdHlsZShkYXRlczogQVhEYXRlVGltZVtdKTogYW55W10ge1xuICAgIGNvbnN0IGl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgIGRhdGVzLmZvckVhY2goKGQsIGksIGopID0+IHtcbiAgICAgIGNvbnN0IGl0ZW06IGFueSA9IHt9O1xuICAgICAgaXRlbS5kYXRlID0gZDtcblxuICAgICAgaXRlbS5zZWxlY3RlZCA9XG4gICAgICAgIGQuY29tcGFpcmVOZXcoXG4gICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKSxcbiAgICAgICAgICB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLFxuICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICApID09PSAwO1xuICAgICAgaXRlbS5mb2N1c2VkID1cbiAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICB0aGlzLmZvY3VzZWRWYWx1ZSxcbiAgICAgICAgICB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLFxuICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICApID09PSAwO1xuICAgICAgaXRlbS50b2RheSA9XG4gICAgICAgIHRoaXMudG9kYXkgJiZcbiAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICB0aGlzLnRvZGF5LFxuICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICkgPT09IDA7XG4gICAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xuICAgICAgICAvLyAgaXRlbS5uZXh0TW9udGggPSBkLmNvbXBhaXJlTmV3KHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDEwKSwgJ1lNJykgIT09IDA7XG4gICAgICAgIGl0ZW0ubmV4dE1vbnRoID1cbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lLmFkZCgnZGF5JywgMTApLFxuICAgICAgICAgICAgJ1lNJyxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgIT09IDA7XG5cbiAgICAgICAgaXRlbS51bnNlbGVjdCA9IHRoaXMuaXNJbk1Jbk1heFJhbmdlKGQpO1xuICAgICAgICB0aGlzLmhvbGlkYXlzLmZvckVhY2goKGgpID0+IHtcbiAgICAgICAgICBjb25zdCBjb21wID0gZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKGguZGF0ZSwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgICdZTUQnLFxuICAgICAgICAgICAgdGhpcy50eXBlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoY29tcCA9PT0gMCkge1xuICAgICAgICAgICAgaXRlbS5ob2xpZGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGVIb2xpZGF5ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICBpdGVtLnVuc2VsZWN0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGluZGV4RGF5ID0gaSAtIE1hdGguZmxvb3IoaSAvIDcpICogNztcbiAgICAgICAgdGhpcy53ZWVrZW5kcy5mb3JFYWNoKChjYykgPT4ge1xuICAgICAgICAgIGlmIChOdW1iZXIoY2MpID09PSBpbmRleERheSkge1xuICAgICAgICAgICAgaXRlbS5ob2xpZGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGVIb2xpZGF5ID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICBpdGVtLnVuc2VsZWN0ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICB9KTtcbiAgICByZXR1cm4gaXRlbXM7XG4gIH1cblxuICBjaGFuZ2VWaWV3KCkge1xuICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLnZpZXcgPSAnbW9udGgnO1xuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICB0aGlzLnZpZXcgPSAneWVhcic7XG4gICAgfVxuICB9XG5cbiAgbWF0cml4aWZ5KGFycjogYW55W10sIGNvbHMpIHtcbiAgICBpZiAoYXJyLmxlbmd0aCA9PT0gMTMgJiYgdGhpcy52aWV3ID09PSAnbW9udGgnKSB7XG4gICAgICBhcnIucG9wKCk7XG4gICAgfVxuICAgIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwoYXJyLmxlbmd0aCAvIGNvbHMpO1xuXG4gICAgY29uc3QgbWF0cml4ID0gW107XG4gICAgaWYgKHJvd3MgKiBjb2xzID09PSBhcnIubGVuZ3RoKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkgKz0gY29scykge1xuICAgICAgICBtYXRyaXgucHVzaChhcnIuc2xpY2UoaSwgY29scyArIGkpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1hdHJpeDtcbiAgfVxuXG4gIHNldERheUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtKSB7XG4gICAgaWYgKGl0ZW0udW5zZWxlY3QgIT09IHRydWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBpdGVtLmRhdGUuZGF0ZTtcbiAgICB9XG5cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIGlzSW5NSW5NYXhSYW5nZShkKSB7XG4gICAgbGV0IHIgPSBmYWxzZTtcbiAgICBpZiAoZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy5fbWluICYmICF0aGlzLl9tYXgpIHtcbiAgICAgICAgciA9XG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21pbiwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApID09PSAtMTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9tYXggJiYgIXRoaXMuX21pbikge1xuICAgICAgICByID1cbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbWF4LCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgPT09IDE7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fbWluICYmIHRoaXMuX21heCkge1xuICAgICAgICByID1cbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KFxuICAgICAgICAgICAgbmV3IEFYRGF0ZVRpbWUodGhpcy5fbWluLCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSxcbiAgICAgICAgICAgIHRoaXMudHlwZVxuICAgICAgICAgICkgPT09IC0xIHx8XG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhcbiAgICAgICAgICAgIG5ldyBBWERhdGVUaW1lKHRoaXMuX21heCwgdGhpcy50eXBlKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksXG4gICAgICAgICAgICB0aGlzLnR5cGVcbiAgICAgICAgICApID09PSAxO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcjtcbiAgfVxuXG4gIHNldE1vbnRoQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGRhdGU6IEFYRGF0ZVRpbWUpIHtcbiAgICBpZiAodGhpcy5kZXB0aCA9PT0gJ21vbnRoJykge1xuICAgICAgdGhpcy52YWx1ZSA9IGRhdGUuZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3ID0gJ2RheSc7XG4gICAgICB0aGlzLnNldEZvY3VzKFxuICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpXG4gICAgICAgICAgLnNldCgneWVhcicsIGRhdGUueWVhcilcbiAgICAgICAgICAuc2V0KCdtb250aCcsIGRhdGUubW9udGhPZlllYXIpXG4gICAgICApO1xuICAgIH1cbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHNldFllYXJDbGljayhldmVudDogTW91c2VFdmVudCwgZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIGlmICh0aGlzLmRlcHRoID09PSAneWVhcicpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRlLmRhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlldyA9ICdtb250aCc7XG4gICAgICB0aGlzLnNldEZvY3VzKFxuICAgICAgICBuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpLnNldCgneWVhcicsIGRhdGUueWVhcilcbiAgICAgICk7XG4gICAgfVxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgc2V0Rm9jdXMoZGF0ZTogQVhEYXRlVGltZSkge1xuICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gZGF0ZTtcbiAgICB0aGlzLm5hdmlnYXRlKHRoaXMuZm9jdXNlZFZhbHVlKTtcbiAgfVxuXG4gIHNldFRvZGF5KCkge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRvZGF5LmRhdGU7XG4gICAgdGhpcy52aWV3ID0gJ2RheSc7XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXgsIGl0ZW06IGFueSkge1xuICAgIHJldHVybiBpdGVtLmRhdGUuZGF0ZS5nZXRUaW1lKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1jb250YWluZXIge3tzaXplfX1cIiBbbmdDbGFzc109XCJ0eXBlXCI+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29udHJvbGwtYnV0dG9uXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJsaWdodCBibGFua1wiIChjbGljayk9XCJuZXh0KClcIj5cbiAgICAgICAgICAgICAgICB7eydjb21tb24ubmV4dCcgfCB0cmFuc319XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJheC1uYXYtYnV0dG9uXCIgW25nU3dpdGNoXT1cInZpZXdcIj5cbiAgICAgICAgICAgIDxheC1idXR0b24gdHlwZT1cImxpZ2h0IGJsYW5rXCIgKGNsaWNrKT1cImNoYW5nZVZpZXcoKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXknXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7dmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsMTApIHwgZHQ6XCJNTU0gWVlZWVwifX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7dmlld1JhbmdlLnN0YXJ0VGltZSB8IGR0OlwiWVlZWVwifX1cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgIHt7dmlld1JhbmdlLnN0YXJ0VGltZSB8IGR0OlwiWVlZWVwifX0gLSB7e3ZpZXdSYW5nZS5lbmRUaW1lIHwgZHQ6XCJZWVlZXCJ9fVxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9heC1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29udHJvbGwtYnV0dG9uXCI+XG4gICAgICAgICAgICA8YXgtYnV0dG9uIHR5cGU9XCJsaWdodCBibGFua1wiIChjbGljayk9XCJwcmV2KClcIj5cbiAgICAgICAgICAgICAgICB7eydjb21tb24ucHJldicgfCB0cmFuc319XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWJvZHlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidmlld1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RheSdcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbW9udGgtaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9J2xldCB3IG9mIHdlZWtkYXlzJz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tb250aC1pdGVtXCI+e3t3fX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWRheS1pdGVtc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByIG9mIG1hdHJpeFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWRheS1pdGVtIGF4LXN0YXRlLWV2ZW50XCIgKm5nRm9yPVwibGV0IGQgb2Ygcjt0cmFja0J5OnRyYWNrQnlGblwiIFt0aXRsZV09XCJnZXRUaXRsZShkLmRhdGUpXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCc6IGQuc2VsZWN0ZWQsJ2ZvY3VzZWQnOmQuZm9jdXNlZCwndG9kYXknOmQudG9kYXksJ25leHQtbW9udGgnOmQubmV4dE1vbnRoICwgJ2hvbGlkYXknOmQuaG9saWRheSAsICd1bnNlbGVjdCc6ZC51bnNlbGVjdH1cIiBbbmdTdHlsZV09XCIoZmluZERheShkLmRhdGUpKSA/IGdldFN0eWxlKGQuZGF0ZSk6JydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZXREYXlDbGljaygkZXZlbnQsZClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2QuZGF0ZS5kYXlJbk1vbnRofX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1vbnRoLWNvbnRhaW5lclwiICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgciBvZiBtYXRyaXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1vbnRoLWl0ZW1cIiAqbmdGb3I9XCJsZXQgZCBvZiByO3RyYWNrQnk6dHJhY2tCeUZuXCIgW25nQ2xhc3NdPVwieydzZWxlY3RlZCc6IGQuc2VsZWN0ZWQsJ2ZvY3VzZWQnOmQuZm9jdXNlZCwndG9kYXknOmQudG9kYXl9XCIgKGNsaWNrKT1cInNldE1vbnRoQ2xpY2soJGV2ZW50LGQuZGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkLmRhdGV8IGR0OlwiTU1NXCJ9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgteWVhci1jb250YWluZXJcIiAqbmdTd2l0Y2hDYXNlPVwiJ3llYXInXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cImNhbGVuZGFyLXJvd1wiICpuZ0Zvcj1cImxldCByIG9mIG1hdHJpeFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgteWVhci1pdGVtXCIgKm5nRm9yPVwibGV0IGQgb2Ygcjt0cmFja0J5OnRyYWNrQnlGblwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnOiBkLnNlbGVjdGVkLCdmb2N1c2VkJzpkLmZvY3VzZWQsJ3RvZGF5JzpkLnRvZGF5fVwiIChjbGljayk9XCJzZXRZZWFyQ2xpY2soJGV2ZW50LGQuZGF0ZSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3tkLmRhdGUgfCBkdDpcIllZWVlcIn19PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWZvb3RlclwiPlxuICAgICAgICA8YXgtYnV0dG9uIChjbGljayk9XCJzZXRUb2RheSgpXCIgKm5nSWY9XCJzaG93VG9kYXlCdXR0b25cIiB0eXBlPVwiZGFya1wiPlxuICAgICAgICAgICAge3tnZXRUb2RheU5hbWUoKX19XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -1331,6 +1331,9 @@ class AXCalendarBoxComponent {
1331
1331
  }
1332
1332
  }
1333
1333
  matrixify(arr, cols) {
1334
+ if (arr.length === 13 && this.view === 'month') {
1335
+ arr.pop();
1336
+ }
1334
1337
  const rows = Math.ceil(arr.length / cols);
1335
1338
  const matrix = [];
1336
1339
  if (rows * cols === arr.length) {