@smart-solutions-tech/smart-angular-calendar 0.0.16 → 0.0.17

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.
@@ -1,14 +1,16 @@
1
1
  import { Component, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../calendar/calendar.component";
5
- import * as i3 from "../month-selector/month-selector.component";
6
- import * as i4 from "../day/day.component";
7
- import * as i5 from "../week/week.component";
8
- import * as i6 from "../../pipes/translate.pipe";
9
- import * as i7 from "../../pipes/translate-month.pipe";
3
+ import * as i1 from "../../services/translation.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "../calendar/calendar.component";
6
+ import * as i4 from "../month-selector/month-selector.component";
7
+ import * as i5 from "../day/day.component";
8
+ import * as i6 from "../week/week.component";
9
+ import * as i7 from "../../pipes/translate.pipe";
10
+ import * as i8 from "../../pipes/translate-month.pipe";
10
11
  export class SmartCalendarComponent {
11
- constructor() {
12
+ constructor(translationService) {
13
+ this.translationService = translationService;
12
14
  this.mode = 'month';
13
15
  this.startAt = 'sunday';
14
16
  this.currentMonth = {
@@ -16,6 +18,7 @@ export class SmartCalendarComponent {
16
18
  month: new Date().getMonth() + 1
17
19
  };
18
20
  this.events = [];
21
+ this.lang = 'en';
19
22
  this.monthChange = new EventEmitter();
20
23
  this.dateChanged = new EventEmitter();
21
24
  this.eventClick = new EventEmitter();
@@ -36,6 +39,7 @@ export class SmartCalendarComponent {
36
39
  }
37
40
  }
38
41
  ngOnInit() {
42
+ this.translationService.setLanguage(this.lang);
39
43
  this.selectDate(new Date());
40
44
  }
41
45
  toggleDateSelector() {
@@ -259,12 +263,12 @@ export class SmartCalendarComponent {
259
263
  }
260
264
  }
261
265
  }
262
- SmartCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SmartCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
263
- SmartCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SmartCalendarComponent, selector: "smart-calendar", inputs: { mode: "mode", startAt: "startAt", currentMonth: "currentMonth", events: "events" }, outputs: { monthChange: "monthChange", dateChanged: "dateChanged", eventClick: "eventClick" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dateSelectorDropdown", first: true, predicate: ["dateSelectorDropdown"], descendants: true }], ngImport: i0, template: "<div class=\"smart-calendar-component\">\n <div class=\"header\">\n <div class=\"nav-controls\">\n <button class=\"btn-prev\" (click)=\"onPrev()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\n </svg>\n </button>\n\n <button class=\"btn-today\" (click)=\"goToToday()\">{{'today' | translate}}</button>\n\n <button class=\"btn-next\" (click)=\"onNext()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\n </svg>\n </button>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"date-selector-container\">\n <button class=\"btn-date-selector\" (click)=\"toggleDateSelector()\">\n <span *ngIf=\"mode === 'month'\">{{ currentMonth.month | translateMonth}} - {{ currentMonth.year }}</span>\n <span *ngIf=\"mode === 'week'\">\n {{ weekStartDate.toDateString() }} - {{ weekEndDate.toDateString() }}\n </span>\n <span *ngIf=\"mode === 'day'\">{{ selectedDate.toDateString() }}</span>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M480-360 280-560h400L480-360Z\" />\n </svg>\n </button>\n\n <div class=\"date-selector-dropdown\" *ngIf=\"showDateSelector\" #dateSelectorDropdown>\n <lib-month-selector [selectedMonth]=\"currentMonth\"\n (monthSelected)=\"onMonthSelected($event)\"></lib-month-selector>\n </div>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"view-selector\">\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'month'}\" (click)=\"setMode('month')\">\n <!-- month view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Zm280 240q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z\" />\n </svg>\n </button>\n\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'week'}\" (click)=\"setMode('week')\">\n <!-- week view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm360-80h100v-480H520v480Zm-180 0h100v-480H340v480Zm-180 0h100v-480H160v480Zm540 0h100v-480H700v480Z\" />\n </svg>\n </button>\n\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'day'}\" (click)=\"setMode('day')\">\n <!-- day view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M120-160v-80h720v80H120Zm0-560v-80h720v80H120Zm80 400q-33 0-56.5-23.5T120-400v-160q0-33 23.5-56.5T200-640h560q33 0 56.5 23.5T840-560v160q0 33-23.5 56.5T760-320H200Zm0-80h560v-160H200v160Zm0-160v160-160Z\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div class=\"view-container\">\n <lib-calendar [events]=\"events\" [currentMonth]=\"currentMonth\" *ngIf=\"mode === 'month'\" [startAt]=\"startAt\"\n (eventClick)=\"onEventClick($event)\"></lib-calendar>\n\n <lib-week *ngIf=\"mode === 'week'\" [startAt]=\"startAt\" [startDate]=\"weekStartDate\" [events]=\"weekEvents\"\n (eventClick)=\"onEventClick($event)\"></lib-week>\n\n <lib-day *ngIf=\"mode === 'day'\" [date]=\"selectedDate\" [events]=\"selectedDateEvents\"\n (eventClick)=\"onEventClick($event)\"></lib-day>\n </div>\n\n</div>", styles: ["*{box-sizing:border-box;margin:0;padding:0}.smart-calendar-component{display:flex;flex-direction:column;width:100%;height:100%;background-color:#fff}.header{flex-shrink:0;display:flex;align-items:center;gap:16px;padding:2px 16px}.header .spacer{flex:1 1 auto}.header .nav-controls{display:flex;align-items:center}.header .nav-controls .btn-prev,.header .nav-controls .btn-next{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;background:none;border-radius:50%;cursor:pointer;-webkit-user-select:none;user-select:none}.header .nav-controls .btn-prev:hover,.header .nav-controls .btn-next:hover{background-color:#eee}.header .nav-controls .btn-today{display:flex;align-items:center;height:30px;padding:0 12px;border:none;background:none;border-radius:50px;cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.header .nav-controls .btn-today:hover{background-color:#eee}.header .view-selector{display:flex;align-items:center}.header .view-selector .btn-view{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #cccccc;background:none;cursor:pointer;-webkit-user-select:none;user-select:none}.header .view-selector .btn-view:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-right:none}.header .view-selector .btn-view:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-left:none}.header .view-selector .btn-view:hover{background-color:#eee}.header .view-selector .btn-view svg{width:22px;height:22px}.header .view-selector .btn-view.active{background-color:#0000001a}.header .date-selector-container{position:relative}.header .date-selector-container .date-selector-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);background-color:#fff;border-radius:4px;box-shadow:0 2px 24px #0000004d;z-index:3}.header .date-selector-container .date-selector-dropdown:before{content:\"\";position:absolute;top:-6px;left:50%;transform:translate(-50%) rotate(45deg);width:12px;height:12px;background-color:#fff;border-radius:2px}.header .btn-date-selector{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px 0 12px;border:none;background:none;border-radius:50px;cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.header .btn-date-selector:hover{background-color:#eee}.view-container{flex:1 1 auto;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CalendarComponent, selector: "lib-calendar", inputs: ["currentMonth", "events", "startAt"], outputs: ["eventClick"] }, { kind: "component", type: i3.MonthSelectorComponent, selector: "lib-month-selector", inputs: ["selectedMonth"], outputs: ["monthSelected"] }, { kind: "component", type: i4.DayComponent, selector: "lib-day", inputs: ["events", "date"], outputs: ["eventClick"] }, { kind: "component", type: i5.WeekComponent, selector: "lib-week", inputs: ["startAt", "events", "startDate"], outputs: ["eventClick"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "pipe", type: i7.TranslateMonthPipe, name: "translateMonth" }] });
266
+ SmartCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SmartCalendarComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
267
+ SmartCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SmartCalendarComponent, selector: "smart-calendar", inputs: { mode: "mode", startAt: "startAt", currentMonth: "currentMonth", events: "events", lang: "lang" }, outputs: { monthChange: "monthChange", dateChanged: "dateChanged", eventClick: "eventClick" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dateSelectorDropdown", first: true, predicate: ["dateSelectorDropdown"], descendants: true }], ngImport: i0, template: "<div class=\"smart-calendar-component\">\n <div class=\"header\">\n <div class=\"nav-controls\">\n <button class=\"btn-today\" (click)=\"goToToday()\">{{'goToToday' | translate}}</button>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"date-selector-container\">\n <button class=\"btn-prev\" (click)=\"onPrev()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\n </svg>\n </button>\n\n <button class=\"btn-date-selector\" (click)=\"toggleDateSelector()\">\n <span *ngIf=\"mode === 'month'\">{{ currentMonth.month | translateMonth}} - {{ currentMonth.year }}</span>\n <span *ngIf=\"mode === 'week'\">\n {{ weekStartDate.toDateString() }} - {{ weekEndDate.toDateString() }}\n </span>\n <span *ngIf=\"mode === 'day'\">{{ selectedDate.toDateString() }}</span>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M480-360 280-560h400L480-360Z\" />\n </svg>\n </button>\n\n <button class=\"btn-next\" (click)=\"onNext()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\n </svg>\n </button>\n\n <div class=\"date-selector-dropdown\" *ngIf=\"showDateSelector\" #dateSelectorDropdown>\n <lib-month-selector [selectedMonth]=\"currentMonth\"\n (monthSelected)=\"onMonthSelected($event)\"></lib-month-selector>\n </div>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"view-selector\">\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'month'}\" (click)=\"setMode('month')\">\n <!-- month view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Zm280 240q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z\" />\n </svg>\n </button>\n\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'week'}\" (click)=\"setMode('week')\">\n <!-- week view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm360-80h100v-480H520v480Zm-180 0h100v-480H340v480Zm-180 0h100v-480H160v480Zm540 0h100v-480H700v480Z\" />\n </svg>\n </button>\n\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'day'}\" (click)=\"setMode('day')\">\n <!-- day view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M120-160v-80h720v80H120Zm0-560v-80h720v80H120Zm80 400q-33 0-56.5-23.5T120-400v-160q0-33 23.5-56.5T200-640h560q33 0 56.5 23.5T840-560v160q0 33-23.5 56.5T760-320H200Zm0-80h560v-160H200v160Zm0-160v160-160Z\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div class=\"view-container\">\n <lib-calendar [events]=\"events\" [currentMonth]=\"currentMonth\" *ngIf=\"mode === 'month'\" [startAt]=\"startAt\"\n (eventClick)=\"onEventClick($event)\"></lib-calendar>\n\n <lib-week *ngIf=\"mode === 'week'\" [startAt]=\"startAt\" [startDate]=\"weekStartDate\" [events]=\"weekEvents\"\n (eventClick)=\"onEventClick($event)\"></lib-week>\n\n <lib-day *ngIf=\"mode === 'day'\" [date]=\"selectedDate\" [events]=\"selectedDateEvents\"\n (eventClick)=\"onEventClick($event)\"></lib-day>\n </div>\n\n</div>", styles: ["*{box-sizing:border-box;margin:0;padding:0}.smart-calendar-component{display:flex;flex-direction:column;width:100%;height:100%;background-color:#fff}.header{flex-shrink:0;display:flex;align-items:center;gap:16px;padding:2px 16px}.header .spacer{flex:1 1 auto}.header .nav-controls{display:flex;align-items:center}.header .nav-controls .btn-today{display:flex;align-items:center;height:30px;padding:0 12px;border:none;background:none;border-radius:50px;cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.header .nav-controls .btn-today:hover{background-color:#eee}.header .view-selector{display:flex;align-items:center}.header .view-selector .btn-view{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #cccccc;background:none;cursor:pointer;-webkit-user-select:none;user-select:none}.header .view-selector .btn-view:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-right:none}.header .view-selector .btn-view:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-left:none}.header .view-selector .btn-view:hover{background-color:#eee}.header .view-selector .btn-view svg{width:22px;height:22px}.header .view-selector .btn-view.active{background-color:#0000001a}.header .date-selector-container{position:relative;display:flex;align-items:center}.header .date-selector-container .btn-prev,.header .date-selector-container .btn-next{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;background:none;border-radius:50%;cursor:pointer;-webkit-user-select:none;user-select:none}.header .date-selector-container .btn-prev:hover,.header .date-selector-container .btn-next:hover{background-color:#eee}.header .date-selector-container .date-selector-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);background-color:#fff;border-radius:4px;box-shadow:0 2px 24px #0000004d;z-index:3}.header .date-selector-container .date-selector-dropdown:before{content:\"\";position:absolute;top:-6px;left:50%;transform:translate(-50%) rotate(45deg);width:12px;height:12px;background-color:#fff;border-radius:2px}.header .btn-date-selector{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px 0 12px;border:none;background:none;border-radius:50px;cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.header .btn-date-selector:hover{background-color:#eee}.view-container{flex:1 1 auto;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CalendarComponent, selector: "lib-calendar", inputs: ["currentMonth", "events", "startAt"], outputs: ["eventClick"] }, { kind: "component", type: i4.MonthSelectorComponent, selector: "lib-month-selector", inputs: ["selectedMonth"], outputs: ["monthSelected"] }, { kind: "component", type: i5.DayComponent, selector: "lib-day", inputs: ["events", "date"], outputs: ["eventClick"] }, { kind: "component", type: i6.WeekComponent, selector: "lib-week", inputs: ["startAt", "events", "startDate"], outputs: ["eventClick"] }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.TranslateMonthPipe, name: "translateMonth" }] });
264
268
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SmartCalendarComponent, decorators: [{
265
269
  type: Component,
266
- args: [{ selector: 'smart-calendar', template: "<div class=\"smart-calendar-component\">\n <div class=\"header\">\n <div class=\"nav-controls\">\n <button class=\"btn-prev\" (click)=\"onPrev()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\n </svg>\n </button>\n\n <button class=\"btn-today\" (click)=\"goToToday()\">{{'today' | translate}}</button>\n\n <button class=\"btn-next\" (click)=\"onNext()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\n </svg>\n </button>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"date-selector-container\">\n <button class=\"btn-date-selector\" (click)=\"toggleDateSelector()\">\n <span *ngIf=\"mode === 'month'\">{{ currentMonth.month | translateMonth}} - {{ currentMonth.year }}</span>\n <span *ngIf=\"mode === 'week'\">\n {{ weekStartDate.toDateString() }} - {{ weekEndDate.toDateString() }}\n </span>\n <span *ngIf=\"mode === 'day'\">{{ selectedDate.toDateString() }}</span>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M480-360 280-560h400L480-360Z\" />\n </svg>\n </button>\n\n <div class=\"date-selector-dropdown\" *ngIf=\"showDateSelector\" #dateSelectorDropdown>\n <lib-month-selector [selectedMonth]=\"currentMonth\"\n (monthSelected)=\"onMonthSelected($event)\"></lib-month-selector>\n </div>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"view-selector\">\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'month'}\" (click)=\"setMode('month')\">\n <!-- month view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Zm280 240q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z\" />\n </svg>\n </button>\n\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'week'}\" (click)=\"setMode('week')\">\n <!-- week view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm360-80h100v-480H520v480Zm-180 0h100v-480H340v480Zm-180 0h100v-480H160v480Zm540 0h100v-480H700v480Z\" />\n </svg>\n </button>\n\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'day'}\" (click)=\"setMode('day')\">\n <!-- day view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M120-160v-80h720v80H120Zm0-560v-80h720v80H120Zm80 400q-33 0-56.5-23.5T120-400v-160q0-33 23.5-56.5T200-640h560q33 0 56.5 23.5T840-560v160q0 33-23.5 56.5T760-320H200Zm0-80h560v-160H200v160Zm0-160v160-160Z\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div class=\"view-container\">\n <lib-calendar [events]=\"events\" [currentMonth]=\"currentMonth\" *ngIf=\"mode === 'month'\" [startAt]=\"startAt\"\n (eventClick)=\"onEventClick($event)\"></lib-calendar>\n\n <lib-week *ngIf=\"mode === 'week'\" [startAt]=\"startAt\" [startDate]=\"weekStartDate\" [events]=\"weekEvents\"\n (eventClick)=\"onEventClick($event)\"></lib-week>\n\n <lib-day *ngIf=\"mode === 'day'\" [date]=\"selectedDate\" [events]=\"selectedDateEvents\"\n (eventClick)=\"onEventClick($event)\"></lib-day>\n </div>\n\n</div>", styles: ["*{box-sizing:border-box;margin:0;padding:0}.smart-calendar-component{display:flex;flex-direction:column;width:100%;height:100%;background-color:#fff}.header{flex-shrink:0;display:flex;align-items:center;gap:16px;padding:2px 16px}.header .spacer{flex:1 1 auto}.header .nav-controls{display:flex;align-items:center}.header .nav-controls .btn-prev,.header .nav-controls .btn-next{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;background:none;border-radius:50%;cursor:pointer;-webkit-user-select:none;user-select:none}.header .nav-controls .btn-prev:hover,.header .nav-controls .btn-next:hover{background-color:#eee}.header .nav-controls .btn-today{display:flex;align-items:center;height:30px;padding:0 12px;border:none;background:none;border-radius:50px;cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.header .nav-controls .btn-today:hover{background-color:#eee}.header .view-selector{display:flex;align-items:center}.header .view-selector .btn-view{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #cccccc;background:none;cursor:pointer;-webkit-user-select:none;user-select:none}.header .view-selector .btn-view:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-right:none}.header .view-selector .btn-view:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-left:none}.header .view-selector .btn-view:hover{background-color:#eee}.header .view-selector .btn-view svg{width:22px;height:22px}.header .view-selector .btn-view.active{background-color:#0000001a}.header .date-selector-container{position:relative}.header .date-selector-container .date-selector-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);background-color:#fff;border-radius:4px;box-shadow:0 2px 24px #0000004d;z-index:3}.header .date-selector-container .date-selector-dropdown:before{content:\"\";position:absolute;top:-6px;left:50%;transform:translate(-50%) rotate(45deg);width:12px;height:12px;background-color:#fff;border-radius:2px}.header .btn-date-selector{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px 0 12px;border:none;background:none;border-radius:50px;cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.header .btn-date-selector:hover{background-color:#eee}.view-container{flex:1 1 auto;overflow:hidden}\n"] }]
267
- }], ctorParameters: function () { return []; }, propDecorators: { mode: [{
270
+ args: [{ selector: 'smart-calendar', template: "<div class=\"smart-calendar-component\">\n <div class=\"header\">\n <div class=\"nav-controls\">\n <button class=\"btn-today\" (click)=\"goToToday()\">{{'goToToday' | translate}}</button>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"date-selector-container\">\n <button class=\"btn-prev\" (click)=\"onPrev()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\" />\n </svg>\n </button>\n\n <button class=\"btn-date-selector\" (click)=\"toggleDateSelector()\">\n <span *ngIf=\"mode === 'month'\">{{ currentMonth.month | translateMonth}} - {{ currentMonth.year }}</span>\n <span *ngIf=\"mode === 'week'\">\n {{ weekStartDate.toDateString() }} - {{ weekEndDate.toDateString() }}\n </span>\n <span *ngIf=\"mode === 'day'\">{{ selectedDate.toDateString() }}</span>\n\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M480-360 280-560h400L480-360Z\" />\n </svg>\n </button>\n\n <button class=\"btn-next\" (click)=\"onNext()\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\" />\n </svg>\n </button>\n\n <div class=\"date-selector-dropdown\" *ngIf=\"showDateSelector\" #dateSelectorDropdown>\n <lib-month-selector [selectedMonth]=\"currentMonth\"\n (monthSelected)=\"onMonthSelected($event)\"></lib-month-selector>\n </div>\n </div>\n\n <div class=\"spacer\"></div>\n\n <div class=\"view-selector\">\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'month'}\" (click)=\"setMode('month')\">\n <!-- month view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Zm280 240q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z\" />\n </svg>\n </button>\n\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'week'}\" (click)=\"setMode('week')\">\n <!-- week view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h640q33 0 56.5 23.5T880-720v480q0 33-23.5 56.5T800-160H160Zm360-80h100v-480H520v480Zm-180 0h100v-480H340v480Zm-180 0h100v-480H160v480Zm540 0h100v-480H700v480Z\" />\n </svg>\n </button>\n\n <button class=\"btn-view\" [ngClass]=\"{active: mode === 'day'}\" (click)=\"setMode('day')\">\n <!-- day view -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\"\n fill=\"currentColor\">\n <path\n d=\"M120-160v-80h720v80H120Zm0-560v-80h720v80H120Zm80 400q-33 0-56.5-23.5T120-400v-160q0-33 23.5-56.5T200-640h560q33 0 56.5 23.5T840-560v160q0 33-23.5 56.5T760-320H200Zm0-80h560v-160H200v160Zm0-160v160-160Z\" />\n </svg>\n </button>\n </div>\n </div>\n\n <div class=\"view-container\">\n <lib-calendar [events]=\"events\" [currentMonth]=\"currentMonth\" *ngIf=\"mode === 'month'\" [startAt]=\"startAt\"\n (eventClick)=\"onEventClick($event)\"></lib-calendar>\n\n <lib-week *ngIf=\"mode === 'week'\" [startAt]=\"startAt\" [startDate]=\"weekStartDate\" [events]=\"weekEvents\"\n (eventClick)=\"onEventClick($event)\"></lib-week>\n\n <lib-day *ngIf=\"mode === 'day'\" [date]=\"selectedDate\" [events]=\"selectedDateEvents\"\n (eventClick)=\"onEventClick($event)\"></lib-day>\n </div>\n\n</div>", styles: ["*{box-sizing:border-box;margin:0;padding:0}.smart-calendar-component{display:flex;flex-direction:column;width:100%;height:100%;background-color:#fff}.header{flex-shrink:0;display:flex;align-items:center;gap:16px;padding:2px 16px}.header .spacer{flex:1 1 auto}.header .nav-controls{display:flex;align-items:center}.header .nav-controls .btn-today{display:flex;align-items:center;height:30px;padding:0 12px;border:none;background:none;border-radius:50px;cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.header .nav-controls .btn-today:hover{background-color:#eee}.header .view-selector{display:flex;align-items:center}.header .view-selector .btn-view{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid #cccccc;background:none;cursor:pointer;-webkit-user-select:none;user-select:none}.header .view-selector .btn-view:first-child{border-top-left-radius:4px;border-bottom-left-radius:4px;border-right:none}.header .view-selector .btn-view:last-child{border-top-right-radius:4px;border-bottom-right-radius:4px;border-left:none}.header .view-selector .btn-view:hover{background-color:#eee}.header .view-selector .btn-view svg{width:22px;height:22px}.header .view-selector .btn-view.active{background-color:#0000001a}.header .date-selector-container{position:relative;display:flex;align-items:center}.header .date-selector-container .btn-prev,.header .date-selector-container .btn-next{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;background:none;border-radius:50%;cursor:pointer;-webkit-user-select:none;user-select:none}.header .date-selector-container .btn-prev:hover,.header .date-selector-container .btn-next:hover{background-color:#eee}.header .date-selector-container .date-selector-dropdown{position:absolute;top:100%;left:50%;transform:translate(-50%);background-color:#fff;border-radius:4px;box-shadow:0 2px 24px #0000004d;z-index:3}.header .date-selector-container .date-selector-dropdown:before{content:\"\";position:absolute;top:-6px;left:50%;transform:translate(-50%) rotate(45deg);width:12px;height:12px;background-color:#fff;border-radius:2px}.header .btn-date-selector{display:flex;align-items:center;gap:8px;height:30px;padding:0 8px 0 12px;border:none;background:none;border-radius:50px;cursor:pointer;font-weight:600;-webkit-user-select:none;user-select:none}.header .btn-date-selector:hover{background-color:#eee}.view-container{flex:1 1 auto;overflow:hidden}\n"] }]
271
+ }], ctorParameters: function () { return [{ type: i1.TranslationService }]; }, propDecorators: { mode: [{
268
272
  type: Input
269
273
  }], startAt: [{
270
274
  type: Input
@@ -272,6 +276,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
272
276
  type: Input
273
277
  }], events: [{
274
278
  type: Input
279
+ }], lang: [{
280
+ type: Input
275
281
  }], monthChange: [{
276
282
  type: Output
277
283
  }], dateChanged: [{
@@ -285,4 +291,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
285
291
  type: HostListener,
286
292
  args: ['document:click', ['$event']]
287
293
  }] } });
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvc21hcnQtY2FsZW5kYXIvc21hcnQtY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvc21hcnQtY2FsZW5kYXIvc21hcnQtY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBUW5JLE1BQU0sT0FBTyxzQkFBc0I7SUEyQ2pDO1FBekNTLFNBQUksR0FBNkIsT0FBTyxDQUFDO1FBRXpDLFlBQU8sR0FBd0IsUUFBUSxDQUFDO1FBRXhDLGlCQUFZLEdBQW9DO1lBQ3ZELElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtZQUM5QixLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDO1NBQ2pDLENBQUM7UUFFTyxXQUFNLEdBQW9CLEVBQUUsQ0FBQztRQUU1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUdwQyxDQUFDO1FBRUssZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQWN6RCxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFFbEMsaUJBQVksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2hDLHVCQUFrQixHQUFvQixFQUFFLENBQUM7UUFFekMsa0JBQWEsR0FBUyxJQUFJLElB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O1lBRUYsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJO2dCQUN4RixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztvQkFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZO29CQUMzQixRQUFRO2lCQUNULENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUF5QjtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNwQixJQUFJLE9BQU8sS0FBSyxLQUFLLEVBQUU7WUFDckIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7U0FDOUI7YUFBTSxJQUFJLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMxQztJQUNILENBQUM7O21IQTlUVSxzQkFBc0I7dUdBQXRCLHNCQUFzQix1YkNSbkMsc29LQXFGTTsyRkQ3RU8sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLGdCQUFnQjswRUFNakIsSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFFK0Msb0JBQW9CO3NCQUF6RSxTQUFTO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHcEQsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbGVuZGFyRXZlbnQgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWNhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTbWFydENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBtb2RlOiAnbW9udGgnIHwgJ3dlZWsnIHwgJ2RheScgPSAnbW9udGgnO1xuXG4gIEBJbnB1dCgpIHN0YXJ0QXQ6ICdtb25kYXknIHwgJ3N1bmRheScgPSAnc3VuZGF5JztcblxuICBASW5wdXQoKSBjdXJyZW50TW9udGg6IHsgeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyIH0gPSB7XG4gICAgeWVhcjogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLFxuICAgIG1vbnRoOiBuZXcgRGF0ZSgpLmdldE1vbnRoKCkgKyAxXG4gIH07XG5cbiAgQElucHV0KCkgZXZlbnRzOiBDYWxlbmRhckV2ZW50W10gPSBbXTtcblxuICBAT3V0cHV0KCkgbW9udGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBuZXdNb250aDogeyB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIgfSxcbiAgICBvbGRNb250aDogeyB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIgfVxuICB9PigpO1xuXG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICBAT3V0cHV0KCkgZXZlbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJFdmVudD4oKTtcblxuICBAVmlld0NoaWxkKCdkYXRlU2VsZWN0b3JEcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KSBkYXRlU2VsZWN0b3JEcm9wZG93biE6IEVsZW1lbnRSZWY7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuc2hvd0RhdGVTZWxlY3RvcikgcmV0dXJuO1xuICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5kYXRlU2VsZWN0b3JEcm9wZG93bj8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYnRuLWRhdGUtc2VsZWN0b3InKTtcbiAgICBpZiAoZHJvcGRvd24gJiYgIWRyb3Bkb3duLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgYnV0dG9uICYmICFidXR0b24uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICB0aGlzLnNob3dEYXRlU2VsZWN0b3IgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzaG93RGF0ZVNlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2VsZWN0ZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgc2VsZWN0ZWREYXRlRXZlbnRzOiBDYWxlbmRhckV2ZW50W10gPSBbXTtcblxuICB3ZWVrU3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgd2Vla0VuZERhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLndlZWtTdGFydERhdGUuZ2V0VGltZSgpICsgNiAqIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuICB3ZWVrRXZlbnRzOiBDYWxlbmRhckV2ZW50W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0RGF0ZShuZXcgRGF0ZSgpKTtcbiAgfVxuXG4gIHRvZ2dsZURhdGVTZWxlY3RvcigpIHtcbiAgICB0aGlzLnNob3dEYXRlU2VsZWN0b3IgPSAhdGhpcy5zaG93RGF0ZVNlbGVjdG9yO1xuICB9XG5cbiAgb25Nb250aFNlbGVjdGVkKG5ld01vbnRoOiB7IHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlciB9KSB7XG4gICAgY29uc3Qgb2xkTW9udGggPSB7IC4uLnRoaXMuY3VycmVudE1vbnRoIH07XG4gICAgdGhpcy5jdXJyZW50TW9udGggPSBuZXdNb250aDtcblxuICAgIHRoaXMuc2VsZWN0RGF0ZShuZXcgRGF0ZSh0aGlzLmN1cnJlbnRNb250aC55ZWFyLCB0aGlzLmN1cnJlbnRNb250aC5tb250aCAtIDEsIDEpKTtcblxuICAgIHRoaXMubW9udGhDaGFuZ2UuZW1pdCh7XG4gICAgICBuZXdNb250aDogdGhpcy5jdXJyZW50TW9udGgsXG4gICAgICBvbGRNb250aFxuICAgIH0pO1xuXG4gICAgdGhpcy5zaG93RGF0ZVNlbGVjdG9yID0gZmFsc2U7XG4gIH1cblxuICBvbkV2ZW50Q2xpY2soZXZlbnQ6IENhbGVuZGFyRXZlbnQpIHtcbiAgICB0aGlzLmV2ZW50Q2xpY2suZW1pdChldmVudCk7XG4gIH1cblxuICBuZXh0TW9udGgoKSB7XG4gICAgY29uc3Qgb2xkTW9udGggPSB7IC4uLnRoaXMuY3VycmVudE1vbnRoIH07XG5cbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGgubW9udGggPT09IDEyKSB7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IHtcbiAgICAgICAgeWVhcjogdGhpcy5jdXJyZW50TW9udGgueWVhciArIDEsXG4gICAgICAgIG1vbnRoOiAxXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IHtcbiAgICAgICAgeWVhcjogdGhpcy5jdXJyZW50TW9udGgueWVhcixcbiAgICAgICAgbW9udGg6IHRoaXMuY3VycmVudE1vbnRoLm1vbnRoICsgMVxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdERhdGUobmV3IERhdGUodGhpcy5jdXJyZW50TW9udGgueWVhciwgdGhpcy5jdXJyZW50TW9udGgubW9udGggLSAxLCAxKSk7XG5cbiAgICB0aGlzLm1vbnRoQ2hhbmdlLmVtaXQoe1xuICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgb2xkTW9udGhcbiAgICB9KTtcbiAgfVxuXG4gIHByZXZNb250aCgpIHtcbiAgICBjb25zdCBvbGRNb250aCA9IHsgLi4udGhpcy5jdXJyZW50TW9udGggfTtcbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGgubW9udGggPT09IDEpIHtcbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0ge1xuICAgICAgICB5ZWFyOiB0aGlzLmN1cnJlbnRNb250aC55ZWFyIC0gMSxcbiAgICAgICAgbW9udGg6IDEyXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IHtcbiAgICAgICAgeWVhcjogdGhpcy5jdXJyZW50TW9udGgueWVhcixcbiAgICAgICAgbW9udGg6IHRoaXMuY3VycmVudE1vbnRoLm1vbnRoIC0gMVxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdERhdGUobmV3IERhdGUodGhpcy5jdXJyZW50TW9udGgueWVhciwgdGhpcy5jdXJyZW50TW9udGgubW9udGggLSAxLCAxKSk7XG5cbiAgICB0aGlzLm1vbnRoQ2hhbmdlLmVtaXQoe1xuICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgb2xkTW9udGhcbiAgICB9KTtcbiAgfVxuXG4gIG5leHREYXkoKSB7XG4gICAgY29uc3Qgb2xkTW9udGggPSB7IC4uLnRoaXMuY3VycmVudE1vbnRoIH07XG5cbiAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUpO1xuICAgIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUoKSArIDEpO1xuXG4gICAgdGhpcy5zZWxlY3REYXRlKG5ld0RhdGUpO1xuXG4gICAgdGhpcy5jdXJyZW50TW9udGggPSB7XG4gICAgICB5ZWFyOiBuZXdEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBtb250aDogbmV3RGF0ZS5nZXRNb250aCgpICsgMVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGgubW9udGggIT09IG9sZE1vbnRoLm1vbnRoIHx8IHRoaXMuY3VycmVudE1vbnRoLnllYXIgIT09IG9sZE1vbnRoLnllYXIpXG4gICAgICB0aGlzLm1vbnRoQ2hhbmdlLmVtaXQoe1xuICAgICAgICBuZXdNb250aDogdGhpcy5jdXJyZW50TW9udGgsXG4gICAgICAgIG9sZE1vbnRoXG4gICAgICB9KTtcbiAgfVxuXG4gIHByZXZEYXkoKSB7XG4gICAgY29uc3Qgb2xkTW9udGggPSB7IC4uLnRoaXMuY3VycmVudE1vbnRoIH07XG5cbiAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUpO1xuICAgIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUoKSAtIDEpO1xuXG4gICAgdGhpcy5zZWxlY3REYXRlKG5ld0RhdGUpO1xuXG4gICAgdGhpcy5jdXJyZW50TW9udGggPSB7XG4gICAgICB5ZWFyOiBuZXdEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBtb250aDogbmV3RGF0ZS5nZXRNb250aCgpICsgMVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGgubW9udGggIT09IG9sZE1vbnRoLm1vbnRoIHx8IHRoaXMuY3VycmVudE1vbnRoLnllYXIgIT09IG9sZE1vbnRoLnllYXIpXG4gICAgICB0aGlzLm1vbnRoQ2hhbmdlLmVtaXQoe1xuICAgICAgICBuZXdNb250aDogdGhpcy5jdXJyZW50TW9udGgsXG4gICAgICAgIG9sZE1vbnRoXG4gICAgICB9KTtcbiAgfVxuXG4gIG5leHRXZWVrKCkge1xuICAgIGNvbnN0IG9sZE1vbnRoID0geyAuLi50aGlzLmN1cnJlbnRNb250aCB9O1xuXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMud2Vla1N0YXJ0RGF0ZSk7XG4gICAgbmV3RGF0ZS5zZXREYXRlKG5ld0RhdGUuZ2V0RGF0ZSgpICsgNyk7XG4gICAgdGhpcy5zZWxlY3RXZWVrQnlEYXRlKG5ld0RhdGUpO1xuXG4gICAgdGhpcy5jdXJyZW50TW9udGggPSB7XG4gICAgICB5ZWFyOiBuZXdEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBtb250aDogbmV3RGF0ZS5nZXRNb250aCgpICsgMVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGgubW9udGggIT09IG9sZE1vbnRoLm1vbnRoIHx8IHRoaXMuY3VycmVudE1vbnRoLnllYXIgIT09IG9sZE1vbnRoLnllYXIpXG4gICAgICB0aGlzLm1vbnRoQ2hhbmdlLmVtaXQoe1xuICAgICAgICBuZXdNb250aDogdGhpcy5jdXJyZW50TW9udGgsXG4gICAgICAgIG9sZE1vbnRoXG4gICAgICB9KTtcbiAgfVxuXG4gIHByZXZXZWVrKCkge1xuICAgIGNvbnN0IG9sZE1vbnRoID0geyAuLi50aGlzLmN1cnJlbnRNb250aCB9O1xuXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMud2Vla1N0YXJ0RGF0ZSk7XG4gICAgbmV3RGF0ZS5zZXREYXRlKG5ld0RhdGUuZ2V0RGF0ZSgpIC0gNyk7XG4gICAgdGhpcy5zZWxlY3RXZWVrQnlEYXRlKG5ld0RhdGUpO1xuXG4gICAgdGhpcy5jdXJyZW50TW9udGggPSB7XG4gICAgICB5ZWFyOiBuZXdEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBtb250aDogbmV3RGF0ZS5nZXRNb250aCgpICsgMVxuICAgIH07XG5cbiAgICBpZiAodGhpcy5jdXJyZW50TW9udGgubW9udGggIT09IG9sZE1vbnRoLm1vbnRoIHx8IHRoaXMuY3VycmVudE1vbnRoLnllYXIgIT09IG9sZE1vbnRoLnllYXIpXG4gICAgICB0aGlzLm1vbnRoQ2hhbmdlLmVtaXQoe1xuICAgICAgICBuZXdNb250aDogdGhpcy5jdXJyZW50TW9udGgsXG4gICAgICAgIG9sZE1vbnRoXG4gICAgICB9KTtcbiAgfVxuXG4gIG9uTmV4dCgpIHtcbiAgICBpZiAodGhpcy5tb2RlID09PSAnbW9udGgnKVxuICAgICAgdGhpcy5uZXh0TW9udGgoKTtcbiAgICBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICd3ZWVrJylcbiAgICAgIHRoaXMubmV4dFdlZWsoKTtcbiAgICBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdkYXknKVxuICAgICAgdGhpcy5uZXh0RGF5KCk7XG4gIH1cblxuICBvblByZXYoKSB7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ21vbnRoJylcbiAgICAgIHRoaXMucHJldk1vbnRoKCk7XG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSAnd2VlaycpXG4gICAgICB0aGlzLnByZXZXZWVrKCk7XG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSAnZGF5JylcbiAgICAgIHRoaXMucHJldkRheSgpO1xuICB9XG5cbiAgZ29Ub1RvZGF5KCkge1xuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBvbGRNb250aCA9IHsgLi4udGhpcy5jdXJyZW50TW9udGggfTtcblxuICAgIHRoaXMuY3VycmVudE1vbnRoID0ge1xuICAgICAgeWVhcjogdG9kYXkuZ2V0RnVsbFllYXIoKSxcbiAgICAgIG1vbnRoOiB0b2RheS5nZXRNb250aCgpICsgMVxuICAgIH07XG5cbiAgICB0aGlzLnNlbGVjdERhdGUodG9kYXkpO1xuICAgIHRoaXMuc2VsZWN0V2Vla0J5RGF0ZSh0b2RheSwgZmFsc2UpO1xuXG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoLm1vbnRoICE9PSBvbGRNb250aC5tb250aCB8fCB0aGlzLmN1cnJlbnRNb250aC55ZWFyICE9PSBvbGRNb250aC55ZWFyKVxuICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KHtcbiAgICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgICBvbGRNb250aFxuICAgICAgfSk7XG4gIH1cblxuICBzZXRTZWxlY3RlZERhdGVFdmVudHMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGVFdmVudHMgPSB0aGlzLmV2ZW50cy5maWx0ZXIoZXZlbnQgPT4ge1xuICAgICAgY29uc3QgZXZlbnREYXRlID0gbmV3IERhdGUoZXZlbnQuc3RhcnQpO1xuXG4gICAgICAvLyByZXR1cm4gZXZlbnRzIHRoYXQgc3RhcnRzLCBlbmRzIG9yIHNwYW5zIHRoZSBzZWxlY3RlZCBkYXRlXG4gICAgICByZXR1cm4gKGV2ZW50RGF0ZS5nZXREYXRlKCkgPT09IHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSAmJlxuICAgICAgICBldmVudERhdGUuZ2V0TW9udGgoKSA9PT0gdGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSAmJlxuICAgICAgICBldmVudERhdGUuZ2V0RnVsbFllYXIoKSA9PT0gdGhpcy5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSkgfHxcbiAgICAgICAgKGV2ZW50LmVuZCAmJlxuICAgICAgICAgIGV2ZW50LmVuZC5nZXREYXRlKCkgPT09IHRoaXMuc2VsZWN0ZWREYXRlLmdldERhdGUoKSAmJlxuICAgICAgICAgIGV2ZW50LmVuZC5nZXRNb250aCgpID09PSB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpICYmXG4gICAgICAgICAgZXZlbnQuZW5kLmdldEZ1bGxZZWFyKCkgPT09IHRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCkpIHx8XG4gICAgICAgIChldmVudC5zdGFydCA8IHRoaXMuc2VsZWN0ZWREYXRlICYmIGV2ZW50LmVuZCAmJiBldmVudC5lbmQgPiB0aGlzLnNlbGVjdGVkRGF0ZSk7XG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3REYXRlKGRhdGU6IERhdGUpIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRhdGU7XG5cbiAgICB0aGlzLnNldFNlbGVjdGVkRGF0ZUV2ZW50cygpO1xuXG4gICAgY29uc3Qgb2xkTW9udGggPSB0aGlzLmN1cnJlbnRNb250aDtcblxuICAgIHRoaXMuY3VycmVudE1vbnRoID0ge1xuICAgICAgeWVhcjogZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgbW9udGg6IGRhdGUuZ2V0TW9udGgoKSArIDFcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoLm1vbnRoICE9PSBvbGRNb250aC5tb250aCB8fCB0aGlzLmN1cnJlbnRNb250aC55ZWFyICE9PSBvbGRNb250aC55ZWFyKVxuICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KHtcbiAgICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgICBvbGRNb250aFxuICAgICAgfSk7XG5cbiAgICB0aGlzLmRhdGVDaGFuZ2VkLmVtaXQodGhpcy5zZWxlY3RlZERhdGUpO1xuICB9XG5cbiAgc2VsZWN0V2Vla0J5RGF0ZShkYXRlOiBEYXRlLCBlbWl0Q2hhbmdlOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIC8vIENhbGN1bGF0ZSB0aGUgc3RhcnQgZGF0ZSBvZiB0aGUgd2VlayBiYXNlZCBvbiBzdGFydEF0XG4gICAgY29uc3QgZGF5T2ZXZWVrID0gZGF0ZS5nZXREYXkoKTsgLy8gMCAoU3VuKSB0byA2IChTYXQpXG4gICAgbGV0IGRpZmZUb1N0YXJ0OiBudW1iZXI7XG5cbiAgICBpZiAodGhpcy5zdGFydEF0ID09PSAnbW9uZGF5Jykge1xuICAgICAgZGlmZlRvU3RhcnQgPSAoZGF5T2ZXZWVrID09PSAwKSA/IC02IDogMSAtIGRheU9mV2VlazsgLy8gSWYgU3VuZGF5LCBnbyBiYWNrIDYgZGF5c1xuICAgIH0gZWxzZSB7XG4gICAgICBkaWZmVG9TdGFydCA9IC1kYXlPZldlZWs7IC8vIFN1bmRheSBzdGFydFxuICAgIH1cblxuICAgIHRoaXMud2Vla1N0YXJ0RGF0ZSA9IG5ldyBEYXRlKGRhdGUpO1xuICAgIHRoaXMud2Vla1N0YXJ0RGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgZGlmZlRvU3RhcnQpO1xuXG4gICAgdGhpcy53ZWVrRW5kRGF0ZSA9IG5ldyBEYXRlKHRoaXMud2Vla1N0YXJ0RGF0ZSk7XG4gICAgdGhpcy53ZWVrRW5kRGF0ZS5zZXREYXRlKHRoaXMud2Vla1N0YXJ0RGF0ZS5nZXREYXRlKCkgKyA2KTtcblxuICAgIC8vIEZpbHRlciBldmVudHMgZm9yIHRoZSB3ZWVrLCBpbmNsdWRpbmcgbXVsdGktZGF5IGV2ZW50cyB0aGF0IG92ZXJsYXAgYW55IHBhcnQgb2YgdGhlIHdlZWtcbiAgICB0aGlzLndlZWtFdmVudHMgPSB0aGlzLmV2ZW50cy5maWx0ZXIoZXZlbnQgPT4ge1xuICAgICAgY29uc3QgZXZlbnRTdGFydCA9IG5ldyBEYXRlKGV2ZW50LnN0YXJ0KTtcbiAgICAgIGNvbnN0IGV2ZW50RW5kID0gZXZlbnQuZW5kID8gbmV3IERhdGUoZXZlbnQuZW5kKSA6IGV2ZW50U3RhcnQ7XG4gICAgICAvLyBVbiBldmVudG8gc2UgaW5jbHV5ZSBzaSBjdWFscXVpZXIgcGFydGUgZGUgw6lsIGNhZSBkZW50cm8gZGUgbGEgc2VtYW5hXG4gICAgICByZXR1cm4gZXZlbnRTdGFydCA8PSB0aGlzLndlZWtFbmREYXRlICYmIGV2ZW50RW5kID49IHRoaXMud2Vla1N0YXJ0RGF0ZTtcbiAgICB9KTtcblxuICAgIGlmIChlbWl0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmRhdGVDaGFuZ2VkLmVtaXQodGhpcy53ZWVrU3RhcnREYXRlKTtcbiAgICAgIFxuICAgICAgY29uc3Qgb2xkTW9udGggPSB0aGlzLmN1cnJlbnRNb250aDtcblxuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSB7XG4gICAgICAgIHllYXI6IHRoaXMud2Vla1N0YXJ0RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICBtb250aDogdGhpcy53ZWVrU3RhcnREYXRlLmdldE1vbnRoKCkgKyAxXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5jdXJyZW50TW9udGgubW9udGggIT09IG9sZE1vbnRoLm1vbnRoIHx8IHRoaXMuY3VycmVudE1vbnRoLnllYXIgIT09IG9sZE1vbnRoLnllYXIpXG4gICAgICAgIHRoaXMubW9udGhDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgICAgIG9sZE1vbnRoXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldE1vZGUobmV3TW9kZTogdHlwZW9mIHRoaXMubW9kZSkge1xuICAgIHRoaXMubW9kZSA9IG5ld01vZGU7XG4gICAgaWYgKG5ld01vZGUgPT09ICdkYXknKSB7XG4gICAgICB0aGlzLnNldFNlbGVjdGVkRGF0ZUV2ZW50cygpO1xuICAgIH0gZWxzZSBpZiAobmV3TW9kZSA9PT0gJ3dlZWsnKSB7XG4gICAgICB0aGlzLnNlbGVjdFdlZWtCeURhdGUodGhpcy5zZWxlY3RlZERhdGUpO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwic21hcnQtY2FsZW5kYXItY29tcG9uZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWNvbnRyb2xzXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXByZXZcIiAoY2xpY2spPVwib25QcmV2KClcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCIyNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTU2MC0yNDAgMzIwLTQ4MGwyNDAtMjQwIDU2IDU2LTE4NCAxODQgMTg0IDE4NC01NiA1NlpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tdG9kYXlcIiAoY2xpY2spPVwiZ29Ub1RvZGF5KClcIj57eyd0b2RheScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLW5leHRcIiAoY2xpY2spPVwib25OZXh0KClcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCIyNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUwNC00ODAgMzIwLTY2NGw1Ni01NiAyNDAgMjQwLTI0MCAyNDAtNTYtNTYgMTg0LTE4NFpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZXJcIj48L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZWxlY3Rvci1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tZGF0ZS1zZWxlY3RvclwiIChjbGljayk9XCJ0b2dnbGVEYXRlU2VsZWN0b3IoKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibW9kZSA9PT0gJ21vbnRoJ1wiPnt7IGN1cnJlbnRNb250aC5tb250aCB8IHRyYW5zbGF0ZU1vbnRofX0gLSB7eyBjdXJyZW50TW9udGgueWVhciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1vZGUgPT09ICd3ZWVrJ1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyB3ZWVrU3RhcnREYXRlLnRvRGF0ZVN0cmluZygpIH19IC0ge3sgd2Vla0VuZERhdGUudG9EYXRlU3RyaW5nKCkgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtb2RlID09PSAnZGF5J1wiPnt7IHNlbGVjdGVkRGF0ZS50b0RhdGVTdHJpbmcoKSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjI0cHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNDgwLTM2MCAyODAtNTYwaDQwMEw0ODAtMzYwWlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtc2VsZWN0b3ItZHJvcGRvd25cIiAqbmdJZj1cInNob3dEYXRlU2VsZWN0b3JcIiAjZGF0ZVNlbGVjdG9yRHJvcGRvd24+XG4gICAgICAgICAgICAgICAgPGxpYi1tb250aC1zZWxlY3RvciBbc2VsZWN0ZWRNb250aF09XCJjdXJyZW50TW9udGhcIlxuICAgICAgICAgICAgICAgICAgICAobW9udGhTZWxlY3RlZCk9XCJvbk1vbnRoU2VsZWN0ZWQoJGV2ZW50KVwiPjwvbGliLW1vbnRoLXNlbGVjdG9yPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZXJcIj48L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidmlldy1zZWxlY3RvclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi12aWV3XCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogbW9kZSA9PT0gJ21vbnRoJ31cIiAoY2xpY2spPVwic2V0TW9kZSgnbW9udGgnKVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gbW9udGggdmlldyAtLT5cbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCIyNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0yMDAtODBxLTMzIDAtNTYuNS0yMy41VDEyMC0xNjB2LTU2MHEwLTMzIDIzLjUtNTYuNVQyMDAtODAwaDQwdi04MGg4MHY4MGgzMjB2LTgwaDgwdjgwaDQwcTMzIDAgNTYuNSAyMy41VDg0MC03MjB2NTYwcTAgMzMtMjMuNSA1Ni41VDc2MC04MEgyMDBabTAtODBoNTYwdi00MDBIMjAwdjQwMFptMC00ODBoNTYwdi04MEgyMDB2ODBabTAgMHYtODAgODBabTI4MCAyNDBxLTE3IDAtMjguNS0xMS41VDQ0MC00NDBxMC0xNyAxMS41LTI4LjVUNDgwLTQ4MHExNyAwIDI4LjUgMTEuNVQ1MjAtNDQwcTAgMTctMTEuNSAyOC41VDQ4MC00MDBabS0xNjAgMHEtMTcgMC0yOC41LTExLjVUMjgwLTQ0MHEwLTE3IDExLjUtMjguNVQzMjAtNDgwcTE3IDAgMjguNSAxMS41VDM2MC00NDBxMCAxNy0xMS41IDI4LjVUMzIwLTQwMFptMzIwIDBxLTE3IDAtMjguNS0xMS41VDYwMC00NDBxMC0xNyAxMS41LTI4LjVUNjQwLTQ4MHExNyAwIDI4LjUgMTEuNVQ2ODAtNDQwcTAgMTctMTEuNSAyOC41VDY0MC00MDBaTTQ4MC0yNDBxLTE3IDAtMjguNS0xMS41VDQ0MC0yODBxMC0xNyAxMS41LTI4LjVUNDgwLTMyMHExNyAwIDI4LjUgMTEuNVQ1MjAtMjgwcTAgMTctMTEuNSAyOC41VDQ4MC0yNDBabS0xNjAgMHEtMTcgMC0yOC41LTExLjVUMjgwLTI4MHEwLTE3IDExLjUtMjguNVQzMjAtMzIwcTE3IDAgMjguNSAxMS41VDM2MC0yODBxMCAxNy0xMS41IDI4LjVUMzIwLTI0MFptMzIwIDBxLTE3IDAtMjguNS0xMS41VDYwMC0yODBxMC0xNyAxMS41LTI4LjVUNjQwLTMyMHExNyAwIDI4LjUgMTEuNVQ2ODAtMjgwcTAgMTctMTEuNSAyOC41VDY0MC0yNDBaXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXZpZXdcIiBbbmdDbGFzc109XCJ7YWN0aXZlOiBtb2RlID09PSAnd2Vlayd9XCIgKGNsaWNrKT1cInNldE1vZGUoJ3dlZWsnKVwiPlxuICAgICAgICAgICAgICAgIDwhLS0gd2VlayB2aWV3IC0tPlxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjI0cHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE2MC0xNjBxLTMzIDAtNTYuNS0yMy41VDgwLTI0MHYtNDgwcTAtMzMgMjMuNS01Ni41VDE2MC04MDBoNjQwcTMzIDAgNTYuNSAyMy41VDg4MC03MjB2NDgwcTAgMzMtMjMuNSA1Ni41VDgwMC0xNjBIMTYwWm0zNjAtODBoMTAwdi00ODBINTIwdjQ4MFptLTE4MCAwaDEwMHYtNDgwSDM0MHY0ODBabS0xODAgMGgxMDB2LTQ4MEgxNjB2NDgwWm01NDAgMGgxMDB2LTQ4MEg3MDB2NDgwWlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi12aWV3XCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogbW9kZSA9PT0gJ2RheSd9XCIgKGNsaWNrKT1cInNldE1vZGUoJ2RheScpXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBkYXkgdmlldyAtLT5cbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCIyNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMjAtMTYwdi04MGg3MjB2ODBIMTIwWm0wLTU2MHYtODBoNzIwdjgwSDEyMFptODAgNDAwcS0zMyAwLTU2LjUtMjMuNVQxMjAtNDAwdi0xNjBxMC0zMyAyMy41LTU2LjVUMjAwLTY0MGg1NjBxMzMgMCA1Ni41IDIzLjVUODQwLTU2MHYxNjBxMCAzMy0yMy41IDU2LjVUNzYwLTMyMEgyMDBabTAtODBoNTYwdi0xNjBIMjAwdjE2MFptMC0xNjB2MTYwLTE2MFpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInZpZXctY29udGFpbmVyXCI+XG4gICAgICAgIDxsaWItY2FsZW5kYXIgW2V2ZW50c109XCJldmVudHNcIiBbY3VycmVudE1vbnRoXT1cImN1cnJlbnRNb250aFwiICpuZ0lmPVwibW9kZSA9PT0gJ21vbnRoJ1wiIFtzdGFydEF0XT1cInN0YXJ0QXRcIlxuICAgICAgICAgICAgKGV2ZW50Q2xpY2spPVwib25FdmVudENsaWNrKCRldmVudClcIj48L2xpYi1jYWxlbmRhcj5cblxuICAgICAgICA8bGliLXdlZWsgKm5nSWY9XCJtb2RlID09PSAnd2VlaydcIiBbc3RhcnRBdF09XCJzdGFydEF0XCIgW3N0YXJ0RGF0ZV09XCJ3ZWVrU3RhcnREYXRlXCIgW2V2ZW50c109XCJ3ZWVrRXZlbnRzXCJcbiAgICAgICAgICAgIChldmVudENsaWNrKT1cIm9uRXZlbnRDbGljaygkZXZlbnQpXCI+PC9saWItd2Vlaz5cblxuICAgICAgICA8bGliLWRheSAqbmdJZj1cIm1vZGUgPT09ICdkYXknXCIgW2RhdGVdPVwic2VsZWN0ZWREYXRlXCIgW2V2ZW50c109XCJzZWxlY3RlZERhdGVFdmVudHNcIlxuICAgICAgICAgICAgKGV2ZW50Q2xpY2spPVwib25FdmVudENsaWNrKCRldmVudClcIj48L2xpYi1kYXk+XG4gICAgPC9kaXY+XG5cbjwvZGl2PiJdfQ==
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvc21hcnQtY2FsZW5kYXIvc21hcnQtY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL2NvbXBvbmVudHMvc21hcnQtY2FsZW5kYXIvc21hcnQtY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVVuSSxNQUFNLE9BQU8sc0JBQXNCO0lBNkNqQyxZQUNVLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBNUN2QyxTQUFJLEdBQTZCLE9BQU8sQ0FBQztRQUV6QyxZQUFPLEdBQXdCLFFBQVEsQ0FBQztRQUV4QyxpQkFBWSxHQUFvQztZQUN2RCxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7WUFDOUIsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztTQUNqQyxDQUFDO1FBRU8sV0FBTSxHQUFvQixFQUFFLENBQUM7UUFFN0IsU0FBSSxHQUE4QixJQUFJLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFHcEMsQ0FBQztRQUVLLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV2QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7UUFjekQscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWxDLGlCQUFZLEdBQVMs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RSxLQUFLLEVBQUU7Z0JBR3BELGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWxlbmRhckV2ZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IFRSQU5TTEFUSU9OUyBmcm9tICcuLi8uLi90cmFuc2xhdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWNhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc21hcnQtY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTbWFydENhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBtb2RlOiAnbW9udGgnIHwgJ3dlZWsnIHwgJ2RheScgPSAnbW9udGgnO1xuXG4gIEBJbnB1dCgpIHN0YXJ0QXQ6ICdtb25kYXknIHwgJ3N1bmRheScgPSAnc3VuZGF5JztcblxuICBASW5wdXQoKSBjdXJyZW50TW9udGg6IHsgeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyIH0gPSB7XG4gICAgeWVhcjogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLFxuICAgIG1vbnRoOiBuZXcgRGF0ZSgpLmdldE1vbnRoKCkgKyAxXG4gIH07XG5cbiAgQElucHV0KCkgZXZlbnRzOiBDYWxlbmRhckV2ZW50W10gPSBbXTtcblxuICBASW5wdXQoKSBsYW5nOiBrZXlvZiB0eXBlb2YgVFJBTlNMQVRJT05TID0gJ2VuJztcblxuICBAT3V0cHV0KCkgbW9udGhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHtcbiAgICBuZXdNb250aDogeyB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIgfSxcbiAgICBvbGRNb250aDogeyB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIgfVxuICB9PigpO1xuXG4gIEBPdXRwdXQoKSBkYXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICBAT3V0cHV0KCkgZXZlbnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FsZW5kYXJFdmVudD4oKTtcblxuICBAVmlld0NoaWxkKCdkYXRlU2VsZWN0b3JEcm9wZG93bicsIHsgc3RhdGljOiBmYWxzZSB9KSBkYXRlU2VsZWN0b3JEcm9wZG93biE6IEVsZW1lbnRSZWY7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuc2hvd0RhdGVTZWxlY3RvcikgcmV0dXJuO1xuICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5kYXRlU2VsZWN0b3JEcm9wZG93bj8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYnRuLWRhdGUtc2VsZWN0b3InKTtcbiAgICBpZiAoZHJvcGRvd24gJiYgIWRyb3Bkb3duLmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgYnV0dG9uICYmICFidXR0b24uY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICB0aGlzLnNob3dEYXRlU2VsZWN0b3IgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBzaG93RGF0ZVNlbGVjdG9yOiBib29sZWFuID0gZmFsc2U7XG5cbiAgc2VsZWN0ZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgc2VsZWN0ZWREYXRlRXZlbnRzOiBDYWxlbmRhckV2ZW50W10gPSBbXTtcblxuICB3ZWVrU3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgd2Vla0VuZERhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLndlZWtTdGFydERhdGUuZ2V0VGltZSgpICsgNiAqIDI0ICogNjAgKiA2MCAqIDEwMDApO1xuICB3ZWVrRXZlbnRzOiBDYWxlbmRhckV2ZW50W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2Uuc2V0TGFuZ3VhZ2UodGhpcy5sYW5nKTtcbiAgICB0aGlzLnNlbGVjdERhdGUobmV3IERhdGUoKSk7XG4gIH1cblxuICB0b2dnbGVEYXRlU2VsZWN0b3IoKSB7XG4gICAgdGhpcy5zaG93RGF0ZVNlbGVjdG9yID0gIXRoaXMuc2hvd0RhdGVTZWxlY3RvcjtcbiAgfVxuXG4gIG9uTW9udGhTZWxlY3RlZChuZXdNb250aDogeyB5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIgfSkge1xuICAgIGNvbnN0IG9sZE1vbnRoID0geyAuLi50aGlzLmN1cnJlbnRNb250aCB9O1xuICAgIHRoaXMuY3VycmVudE1vbnRoID0gbmV3TW9udGg7XG5cbiAgICB0aGlzLnNlbGVjdERhdGUobmV3IERhdGUodGhpcy5jdXJyZW50TW9udGgueWVhciwgdGhpcy5jdXJyZW50TW9udGgubW9udGggLSAxLCAxKSk7XG5cbiAgICB0aGlzLm1vbnRoQ2hhbmdlLmVtaXQoe1xuICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgb2xkTW9udGhcbiAgICB9KTtcblxuICAgIHRoaXMuc2hvd0RhdGVTZWxlY3RvciA9IGZhbHNlO1xuICB9XG5cbiAgb25FdmVudENsaWNrKGV2ZW50OiBDYWxlbmRhckV2ZW50KSB7XG4gICAgdGhpcy5ldmVudENsaWNrLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgbmV4dE1vbnRoKCkge1xuICAgIGNvbnN0IG9sZE1vbnRoID0geyAuLi50aGlzLmN1cnJlbnRNb250aCB9O1xuXG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoLm1vbnRoID09PSAxMikge1xuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSB7XG4gICAgICAgIHllYXI6IHRoaXMuY3VycmVudE1vbnRoLnllYXIgKyAxLFxuICAgICAgICBtb250aDogMVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSB7XG4gICAgICAgIHllYXI6IHRoaXMuY3VycmVudE1vbnRoLnllYXIsXG4gICAgICAgIG1vbnRoOiB0aGlzLmN1cnJlbnRNb250aC5tb250aCArIDFcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3REYXRlKG5ldyBEYXRlKHRoaXMuY3VycmVudE1vbnRoLnllYXIsIHRoaXMuY3VycmVudE1vbnRoLm1vbnRoIC0gMSwgMSkpO1xuXG4gICAgdGhpcy5tb250aENoYW5nZS5lbWl0KHtcbiAgICAgIG5ld01vbnRoOiB0aGlzLmN1cnJlbnRNb250aCxcbiAgICAgIG9sZE1vbnRoXG4gICAgfSk7XG4gIH1cblxuICBwcmV2TW9udGgoKSB7XG4gICAgY29uc3Qgb2xkTW9udGggPSB7IC4uLnRoaXMuY3VycmVudE1vbnRoIH07XG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoLm1vbnRoID09PSAxKSB7XG4gICAgICB0aGlzLmN1cnJlbnRNb250aCA9IHtcbiAgICAgICAgeWVhcjogdGhpcy5jdXJyZW50TW9udGgueWVhciAtIDEsXG4gICAgICAgIG1vbnRoOiAxMlxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJyZW50TW9udGggPSB7XG4gICAgICAgIHllYXI6IHRoaXMuY3VycmVudE1vbnRoLnllYXIsXG4gICAgICAgIG1vbnRoOiB0aGlzLmN1cnJlbnRNb250aC5tb250aCAtIDFcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3REYXRlKG5ldyBEYXRlKHRoaXMuY3VycmVudE1vbnRoLnllYXIsIHRoaXMuY3VycmVudE1vbnRoLm1vbnRoIC0gMSwgMSkpO1xuXG4gICAgdGhpcy5tb250aENoYW5nZS5lbWl0KHtcbiAgICAgIG5ld01vbnRoOiB0aGlzLmN1cnJlbnRNb250aCxcbiAgICAgIG9sZE1vbnRoXG4gICAgfSk7XG4gIH1cblxuICBuZXh0RGF5KCkge1xuICAgIGNvbnN0IG9sZE1vbnRoID0geyAuLi50aGlzLmN1cnJlbnRNb250aCB9O1xuXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICBuZXdEYXRlLnNldERhdGUobmV3RGF0ZS5nZXREYXRlKCkgKyAxKTtcblxuICAgIHRoaXMuc2VsZWN0RGF0ZShuZXdEYXRlKTtcblxuICAgIHRoaXMuY3VycmVudE1vbnRoID0ge1xuICAgICAgeWVhcjogbmV3RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgbW9udGg6IG5ld0RhdGUuZ2V0TW9udGgoKSArIDFcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoLm1vbnRoICE9PSBvbGRNb250aC5tb250aCB8fCB0aGlzLmN1cnJlbnRNb250aC55ZWFyICE9PSBvbGRNb250aC55ZWFyKVxuICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KHtcbiAgICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgICBvbGRNb250aFxuICAgICAgfSk7XG4gIH1cblxuICBwcmV2RGF5KCkge1xuICAgIGNvbnN0IG9sZE1vbnRoID0geyAuLi50aGlzLmN1cnJlbnRNb250aCB9O1xuXG4gICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICBuZXdEYXRlLnNldERhdGUobmV3RGF0ZS5nZXREYXRlKCkgLSAxKTtcblxuICAgIHRoaXMuc2VsZWN0RGF0ZShuZXdEYXRlKTtcblxuICAgIHRoaXMuY3VycmVudE1vbnRoID0ge1xuICAgICAgeWVhcjogbmV3RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgbW9udGg6IG5ld0RhdGUuZ2V0TW9udGgoKSArIDFcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoLm1vbnRoICE9PSBvbGRNb250aC5tb250aCB8fCB0aGlzLmN1cnJlbnRNb250aC55ZWFyICE9PSBvbGRNb250aC55ZWFyKVxuICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KHtcbiAgICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgICBvbGRNb250aFxuICAgICAgfSk7XG4gIH1cblxuICBuZXh0V2VlaygpIHtcbiAgICBjb25zdCBvbGRNb250aCA9IHsgLi4udGhpcy5jdXJyZW50TW9udGggfTtcblxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLndlZWtTdGFydERhdGUpO1xuICAgIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUoKSArIDcpO1xuICAgIHRoaXMuc2VsZWN0V2Vla0J5RGF0ZShuZXdEYXRlKTtcblxuICAgIHRoaXMuY3VycmVudE1vbnRoID0ge1xuICAgICAgeWVhcjogbmV3RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgbW9udGg6IG5ld0RhdGUuZ2V0TW9udGgoKSArIDFcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoLm1vbnRoICE9PSBvbGRNb250aC5tb250aCB8fCB0aGlzLmN1cnJlbnRNb250aC55ZWFyICE9PSBvbGRNb250aC55ZWFyKVxuICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KHtcbiAgICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgICBvbGRNb250aFxuICAgICAgfSk7XG4gIH1cblxuICBwcmV2V2VlaygpIHtcbiAgICBjb25zdCBvbGRNb250aCA9IHsgLi4udGhpcy5jdXJyZW50TW9udGggfTtcblxuICAgIGNvbnN0IG5ld0RhdGUgPSBuZXcgRGF0ZSh0aGlzLndlZWtTdGFydERhdGUpO1xuICAgIG5ld0RhdGUuc2V0RGF0ZShuZXdEYXRlLmdldERhdGUoKSAtIDcpO1xuICAgIHRoaXMuc2VsZWN0V2Vla0J5RGF0ZShuZXdEYXRlKTtcblxuICAgIHRoaXMuY3VycmVudE1vbnRoID0ge1xuICAgICAgeWVhcjogbmV3RGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgbW9udGg6IG5ld0RhdGUuZ2V0TW9udGgoKSArIDFcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY3VycmVudE1vbnRoLm1vbnRoICE9PSBvbGRNb250aC5tb250aCB8fCB0aGlzLmN1cnJlbnRNb250aC55ZWFyICE9PSBvbGRNb250aC55ZWFyKVxuICAgICAgdGhpcy5tb250aENoYW5nZS5lbWl0KHtcbiAgICAgICAgbmV3TW9udGg6IHRoaXMuY3VycmVudE1vbnRoLFxuICAgICAgICBvbGRNb250aFxuICAgICAgfSk7XG4gIH1cblxuICBvbk5leHQoKSB7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ21vbnRoJylcbiAgICAgIHRoaXMubmV4dE1vbnRoKCk7XG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSAnd2VlaycpXG4gICAgICB0aGlzLm5leHRXZWVrKCk7XG4gICAgZWxzZSBpZiAodGhpcy5tb2RlID09PSAnZGF5JylcbiAgICAgIHRoaXMubmV4dERheSgpO1xuICB9XG5cbiAgb25QcmV2KCkge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdtb250aCcpXG4gICAgICB0aGlzLnByZXZNb250aCgpO1xuICAgIGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ3dlZWsnKVxuICAgICAgdGhpcy5wcmV2V2VlaygpO1xuICAgIGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ2RheScpXG4gICAgICB0aGlzLnByZXZEYXkoKTtcbiAgfVxuXG4gIGdvVG9Ub2RheSgpIHtcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3Qgb2xkTW9udGggPSB7IC4uLnRoaXMuY3VycmVudE1vbnRoIH07XG5cbiAgICB0aGlzLmN1cnJlbnRNb250aCA9IHtcbiAgICAgIHllYXI6IHRvZGF5LmdldEZ1bGxZZWFyKCksXG4gICAgICBtb250aDogdG9kYXkuZ2V0TW9udGgoKSArIDFcbiAgICB9O1xuXG4gICAgdGhpcy5zZWxlY3REYXRlKHRvZGF5KTtcbiAgICB0aGlzLnNlbGVjdFdlZWtCeURhdGUodG9kYXksIGZhbHNlKTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRNb250aC5tb250aCAhPT0gb2xkTW9udGgubW9udGggfHwgdGhpcy5jdXJyZW50TW9udGgueWVhciAhPT0gb2xkTW9udGgueWVhcilcbiAgICAgIHRoaXMubW9udGhDaGFuZ2UuZW1pdCh7XG4gICAgICAgIG5ld01vbnRoOiB0aGlzLmN1cnJlbnRNb250aCxcbiAgICAgICAgb2xkTW9udGhcbiAgICAgIH0pO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWREYXRlRXZlbnRzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlRXZlbnRzID0gdGhpcy5ldmVudHMuZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50RGF0ZSA9IG5ldyBEYXRlKGV2ZW50LnN0YXJ0KTtcblxuICAgICAgLy8gcmV0dXJuIGV2ZW50cyB0aGF0IHN0YXJ0cywgZW5kcyBvciBzcGFucyB0aGUgc2VsZWN0ZWQgZGF0ZVxuICAgICAgcmV0dXJuIChldmVudERhdGUuZ2V0RGF0ZSgpID09PSB0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCkgJiZcbiAgICAgICAgZXZlbnREYXRlLmdldE1vbnRoKCkgPT09IHRoaXMuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkgJiZcbiAgICAgICAgZXZlbnREYXRlLmdldEZ1bGxZZWFyKCkgPT09IHRoaXMuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCkpIHx8XG4gICAgICAgIChldmVudC5lbmQgJiZcbiAgICAgICAgICBldmVudC5lbmQuZ2V0RGF0ZSgpID09PSB0aGlzLnNlbGVjdGVkRGF0ZS5nZXREYXRlKCkgJiZcbiAgICAgICAgICBldmVudC5lbmQuZ2V0TW9udGgoKSA9PT0gdGhpcy5zZWxlY3RlZERhdGUuZ2V0TW9udGgoKSAmJlxuICAgICAgICAgIGV2ZW50LmVuZC5nZXRGdWxsWWVhcigpID09PSB0aGlzLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpKSB8fFxuICAgICAgICAoZXZlbnQuc3RhcnQgPCB0aGlzLnNlbGVjdGVkRGF0ZSAmJiBldmVudC5lbmQgJiYgZXZlbnQuZW5kID4gdGhpcy5zZWxlY3RlZERhdGUpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VsZWN0RGF0ZShkYXRlOiBEYXRlKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuXG4gICAgdGhpcy5zZXRTZWxlY3RlZERhdGVFdmVudHMoKTtcblxuICAgIGNvbnN0IG9sZE1vbnRoID0gdGhpcy5jdXJyZW50TW9udGg7XG5cbiAgICB0aGlzLmN1cnJlbnRNb250aCA9IHtcbiAgICAgIHllYXI6IGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIG1vbnRoOiBkYXRlLmdldE1vbnRoKCkgKyAxXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRNb250aC5tb250aCAhPT0gb2xkTW9udGgubW9udGggfHwgdGhpcy5jdXJyZW50TW9udGgueWVhciAhPT0gb2xkTW9udGgueWVhcilcbiAgICAgIHRoaXMubW9udGhDaGFuZ2UuZW1pdCh7XG4gICAgICAgIG5ld01vbnRoOiB0aGlzLmN1cnJlbnRNb250aCxcbiAgICAgICAgb2xkTW9udGhcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5kYXRlQ2hhbmdlZC5lbWl0KHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgfVxuXG4gIHNlbGVjdFdlZWtCeURhdGUoZGF0ZTogRGF0ZSwgZW1pdENoYW5nZTogYm9vbGVhbiA9IHRydWUpIHtcbiAgICAvLyBDYWxjdWxhdGUgdGhlIHN0YXJ0IGRhdGUgb2YgdGhlIHdlZWsgYmFzZWQgb24gc3RhcnRBdFxuICAgIGNvbnN0IGRheU9mV2VlayA9IGRhdGUuZ2V0RGF5KCk7IC8vIDAgKFN1bikgdG8gNiAoU2F0KVxuICAgIGxldCBkaWZmVG9TdGFydDogbnVtYmVyO1xuXG4gICAgaWYgKHRoaXMuc3RhcnRBdCA9PT0gJ21vbmRheScpIHtcbiAgICAgIGRpZmZUb1N0YXJ0ID0gKGRheU9mV2VlayA9PT0gMCkgPyAtNiA6IDEgLSBkYXlPZldlZWs7IC8vIElmIFN1bmRheSwgZ28gYmFjayA2IGRheXNcbiAgICB9IGVsc2Uge1xuICAgICAgZGlmZlRvU3RhcnQgPSAtZGF5T2ZXZWVrOyAvLyBTdW5kYXkgc3RhcnRcbiAgICB9XG5cbiAgICB0aGlzLndlZWtTdGFydERhdGUgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICB0aGlzLndlZWtTdGFydERhdGUuc2V0RGF0ZShkYXRlLmdldERhdGUoKSArIGRpZmZUb1N0YXJ0KTtcblxuICAgIHRoaXMud2Vla0VuZERhdGUgPSBuZXcgRGF0ZSh0aGlzLndlZWtTdGFydERhdGUpO1xuICAgIHRoaXMud2Vla0VuZERhdGUuc2V0RGF0ZSh0aGlzLndlZWtTdGFydERhdGUuZ2V0RGF0ZSgpICsgNik7XG5cbiAgICAvLyBGaWx0ZXIgZXZlbnRzIGZvciB0aGUgd2VlaywgaW5jbHVkaW5nIG11bHRpLWRheSBldmVudHMgdGhhdCBvdmVybGFwIGFueSBwYXJ0IG9mIHRoZSB3ZWVrXG4gICAgdGhpcy53ZWVrRXZlbnRzID0gdGhpcy5ldmVudHMuZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgIGNvbnN0IGV2ZW50U3RhcnQgPSBuZXcgRGF0ZShldmVudC5zdGFydCk7XG4gICAgICBjb25zdCBldmVudEVuZCA9IGV2ZW50LmVuZCA/IG5ldyBEYXRlKGV2ZW50LmVuZCkgOiBldmVudFN0YXJ0O1xuICAgICAgLy8gVW4gZXZlbnRvIHNlIGluY2x1eWUgc2kgY3VhbHF1aWVyIHBhcnRlIGRlIMOpbCBjYWUgZGVudHJvIGRlIGxhIHNlbWFuYVxuICAgICAgcmV0dXJuIGV2ZW50U3RhcnQgPD0gdGhpcy53ZWVrRW5kRGF0ZSAmJiBldmVudEVuZCA+PSB0aGlzLndlZWtTdGFydERhdGU7XG4gICAgfSk7XG5cbiAgICBpZiAoZW1pdENoYW5nZSkge1xuICAgICAgdGhpcy5kYXRlQ2hhbmdlZC5lbWl0KHRoaXMud2Vla1N0YXJ0RGF0ZSk7XG4gICAgICBcbiAgICAgIGNvbnN0IG9sZE1vbnRoID0gdGhpcy5jdXJyZW50TW9udGg7XG5cbiAgICAgIHRoaXMuY3VycmVudE1vbnRoID0ge1xuICAgICAgICB5ZWFyOiB0aGlzLndlZWtTdGFydERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgbW9udGg6IHRoaXMud2Vla1N0YXJ0RGF0ZS5nZXRNb250aCgpICsgMVxuICAgICAgfTtcblxuICAgICAgaWYgKHRoaXMuY3VycmVudE1vbnRoLm1vbnRoICE9PSBvbGRNb250aC5tb250aCB8fCB0aGlzLmN1cnJlbnRNb250aC55ZWFyICE9PSBvbGRNb250aC55ZWFyKVxuICAgICAgICB0aGlzLm1vbnRoQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgIG5ld01vbnRoOiB0aGlzLmN1cnJlbnRNb250aCxcbiAgICAgICAgICBvbGRNb250aFxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRNb2RlKG5ld01vZGU6IHR5cGVvZiB0aGlzLm1vZGUpIHtcbiAgICB0aGlzLm1vZGUgPSBuZXdNb2RlO1xuICAgIGlmIChuZXdNb2RlID09PSAnZGF5Jykge1xuICAgICAgdGhpcy5zZXRTZWxlY3RlZERhdGVFdmVudHMoKTtcbiAgICB9IGVsc2UgaWYgKG5ld01vZGUgPT09ICd3ZWVrJykge1xuICAgICAgdGhpcy5zZWxlY3RXZWVrQnlEYXRlKHRoaXMuc2VsZWN0ZWREYXRlKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInNtYXJ0LWNhbGVuZGFyLWNvbXBvbmVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1jb250cm9sc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi10b2RheVwiIChjbGljayk9XCJnb1RvVG9kYXkoKVwiPnt7J2dvVG9Ub2RheScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic3BhY2VyXCI+PC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtc2VsZWN0b3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXByZXZcIiAoY2xpY2spPVwib25QcmV2KClcIj5cbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyNHB4XCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCIyNHB4XCJcbiAgICAgICAgICAgICAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTU2MC0yNDAgMzIwLTQ4MGwyNDAtMjQwIDU2IDU2LTE4NCAxODQgMTg0IDE4NC01NiA1NlpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tZGF0ZS1zZWxlY3RvclwiIChjbGljayk9XCJ0b2dnbGVEYXRlU2VsZWN0b3IoKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibW9kZSA9PT0gJ21vbnRoJ1wiPnt7IGN1cnJlbnRNb250aC5tb250aCB8IHRyYW5zbGF0ZU1vbnRofX0gLSB7eyBjdXJyZW50TW9udGgueWVhciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm1vZGUgPT09ICd3ZWVrJ1wiPlxuICAgICAgICAgICAgICAgICAgICB7eyB3ZWVrU3RhcnREYXRlLnRvRGF0ZVN0cmluZygpIH19IC0ge3sgd2Vla0VuZERhdGUudG9EYXRlU3RyaW5nKCkgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJtb2RlID09PSAnZGF5J1wiPnt7IHNlbGVjdGVkRGF0ZS50b0RhdGVTdHJpbmcoKSB9fTwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjI0cHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNDgwLTM2MCAyODAtNTYwaDQwMEw0ODAtMzYwWlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1uZXh0XCIgKGNsaWNrKT1cIm9uTmV4dCgpXCI+XG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRweFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiMjRweFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01MDQtNDgwIDMyMC02NjRsNTYtNTYgMjQwIDI0MC0yNDAgMjQwLTU2LTU2IDE4NC0xODRaXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZS1zZWxlY3Rvci1kcm9wZG93blwiICpuZ0lmPVwic2hvd0RhdGVTZWxlY3RvclwiICNkYXRlU2VsZWN0b3JEcm9wZG93bj5cbiAgICAgICAgICAgICAgICA8bGliLW1vbnRoLXNlbGVjdG9yIFtzZWxlY3RlZE1vbnRoXT1cImN1cnJlbnRNb250aFwiXG4gICAgICAgICAgICAgICAgICAgIChtb250aFNlbGVjdGVkKT1cIm9uTW9udGhTZWxlY3RlZCgkZXZlbnQpXCI+PC9saWItbW9udGgtc2VsZWN0b3I+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlclwiPjwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2aWV3LXNlbGVjdG9yXCI+XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXZpZXdcIiBbbmdDbGFzc109XCJ7YWN0aXZlOiBtb2RlID09PSAnbW9udGgnfVwiIChjbGljayk9XCJzZXRNb2RlKCdtb250aCcpXCI+XG4gICAgICAgICAgICAgICAgPCEtLSBtb250aCB2aWV3IC0tPlxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjI0cHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTIwMC04MHEtMzMgMC01Ni41LTIzLjVUMTIwLTE2MHYtNTYwcTAtMzMgMjMuNS01Ni41VDIwMC04MDBoNDB2LTgwaDgwdjgwaDMyMHYtODBoODB2ODBoNDBxMzMgMCA1Ni41IDIzLjVUODQwLTcyMHY1NjBxMCAzMy0yMy41IDU2LjVUNzYwLTgwSDIwMFptMC04MGg1NjB2LTQwMEgyMDB2NDAwWm0wLTQ4MGg1NjB2LTgwSDIwMHY4MFptMCAwdi04MCA4MFptMjgwIDI0MHEtMTcgMC0yOC41LTExLjVUNDQwLTQ0MHEwLTE3IDExLjUtMjguNVQ0ODAtNDgwcTE3IDAgMjguNSAxMS41VDUyMC00NDBxMCAxNy0xMS41IDI4LjVUNDgwLTQwMFptLTE2MCAwcS0xNyAwLTI4LjUtMTEuNVQyODAtNDQwcTAtMTcgMTEuNS0yOC41VDMyMC00ODBxMTcgMCAyOC41IDExLjVUMzYwLTQ0MHEwIDE3LTExLjUgMjguNVQzMjAtNDAwWm0zMjAgMHEtMTcgMC0yOC41LTExLjVUNjAwLTQ0MHEwLTE3IDExLjUtMjguNVQ2NDAtNDgwcTE3IDAgMjguNSAxMS41VDY4MC00NDBxMCAxNy0xMS41IDI4LjVUNjQwLTQwMFpNNDgwLTI0MHEtMTcgMC0yOC41LTExLjVUNDQwLTI4MHEwLTE3IDExLjUtMjguNVQ0ODAtMzIwcTE3IDAgMjguNSAxMS41VDUyMC0yODBxMCAxNy0xMS41IDI4LjVUNDgwLTI0MFptLTE2MCAwcS0xNyAwLTI4LjUtMTEuNVQyODAtMjgwcTAtMTcgMTEuNS0yOC41VDMyMC0zMjBxMTcgMCAyOC41IDExLjVUMzYwLTI4MHEwIDE3LTExLjUgMjguNVQzMjAtMjQwWm0zMjAgMHEtMTcgMC0yOC41LTExLjVUNjAwLTI4MHEwLTE3IDExLjUtMjguNVQ2NDAtMzIwcTE3IDAgMjguNSAxMS41VDY4MC0yODBxMCAxNy0xMS41IDI4LjVUNjQwLTI0MFpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4tdmlld1wiIFtuZ0NsYXNzXT1cInthY3RpdmU6IG1vZGUgPT09ICd3ZWVrJ31cIiAoY2xpY2spPVwic2V0TW9kZSgnd2VlaycpXCI+XG4gICAgICAgICAgICAgICAgPCEtLSB3ZWVrIHZpZXcgLS0+XG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjRweFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiMjRweFwiXG4gICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTYwLTE2MHEtMzMgMC01Ni41LTIzLjVUODAtMjQwdi00ODBxMC0zMyAyMy41LTU2LjVUMTYwLTgwMGg2NDBxMzMgMCA1Ni41IDIzLjVUODgwLTcyMHY0ODBxMCAzMy0yMy41IDU2LjVUODAwLTE2MEgxNjBabTM2MC04MGgxMDB2LTQ4MEg1MjB2NDgwWm0tMTgwIDBoMTAwdi00ODBIMzQwdjQ4MFptLTE4MCAwaDEwMHYtNDgwSDE2MHY0ODBabTU0MCAwaDEwMHYtNDgwSDcwMHY0ODBaXCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXZpZXdcIiBbbmdDbGFzc109XCJ7YWN0aXZlOiBtb2RlID09PSAnZGF5J31cIiAoY2xpY2spPVwic2V0TW9kZSgnZGF5JylcIj5cbiAgICAgICAgICAgICAgICA8IS0tIGRheSB2aWV3IC0tPlxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjI0cHhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjI0cHhcIlxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyMC0xNjB2LTgwaDcyMHY4MEgxMjBabTAtNTYwdi04MGg3MjB2ODBIMTIwWm04MCA0MDBxLTMzIDAtNTYuNS0yMy41VDEyMC00MDB2LTE2MHEwLTMzIDIzLjUtNTYuNVQyMDAtNjQwaDU2MHEzMyAwIDU2LjUgMjMuNVQ4NDAtNTYwdjE2MHEwIDMzLTIzLjUgNTYuNVQ3NjAtMzIwSDIwMFptMC04MGg1NjB2LTE2MEgyMDB2MTYwWm0wLTE2MHYxNjAtMTYwWlwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwidmlldy1jb250YWluZXJcIj5cbiAgICAgICAgPGxpYi1jYWxlbmRhciBbZXZlbnRzXT1cImV2ZW50c1wiIFtjdXJyZW50TW9udGhdPVwiY3VycmVudE1vbnRoXCIgKm5nSWY9XCJtb2RlID09PSAnbW9udGgnXCIgW3N0YXJ0QXRdPVwic3RhcnRBdFwiXG4gICAgICAgICAgICAoZXZlbnRDbGljayk9XCJvbkV2ZW50Q2xpY2soJGV2ZW50KVwiPjwvbGliLWNhbGVuZGFyPlxuXG4gICAgICAgIDxsaWItd2VlayAqbmdJZj1cIm1vZGUgPT09ICd3ZWVrJ1wiIFtzdGFydEF0XT1cInN0YXJ0QXRcIiBbc3RhcnREYXRlXT1cIndlZWtTdGFydERhdGVcIiBbZXZlbnRzXT1cIndlZWtFdmVudHNcIlxuICAgICAgICAgICAgKGV2ZW50Q2xpY2spPVwib25FdmVudENsaWNrKCRldmVudClcIj48L2xpYi13ZWVrPlxuXG4gICAgICAgIDxsaWItZGF5ICpuZ0lmPVwibW9kZSA9PT0gJ2RheSdcIiBbZGF0ZV09XCJzZWxlY3RlZERhdGVcIiBbZXZlbnRzXT1cInNlbGVjdGVkRGF0ZUV2ZW50c1wiXG4gICAgICAgICAgICAoZXZlbnRDbGljayk9XCJvbkV2ZW50Q2xpY2soJGV2ZW50KVwiPjwvbGliLWRheT5cbiAgICA8L2Rpdj5cblxuPC9kaXY+Il19
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
26
26
  providedIn: 'root'
27
27
  }]
28
28
  }], ctorParameters: function () { return []; } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWFuZ3VsYXItY2FsZW5kYXIvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxZQUFZLE1BQU0saUJBQWlCLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0I7UUFGUSxvQkFBZSxHQUFHLElBQUksQ0FBQztJQUVmLENBQUM7SUFFakIsU0FBUyxDQUFDLEdBQXNCLEVBQUUsSUFBNkI7UUFDN0QsSUFBSSxHQUFHLEtBQUssYUFBYSxJQUFJLElBQUksRUFBRTtZQUNqQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDcEU7UUFFRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7K0dBbEJVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBUUkFOU0xBVElPTlMgZnJvbSAnLi4vdHJhbnNsYXRpb25zJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblNlcnZpY2Uge1xuICBwcml2YXRlIGN1cnJlbnRMYW5ndWFnZSA9ICdlbic7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICB0cmFuc2xhdGUodGFnOiBrZXlvZiBUcmFuc2xhdGlvbiwgYXJncz86IHsgW2tleTogc3RyaW5nXTogYW55IH0pOiBzdHJpbmcge1xuICAgIGlmICh0YWcgPT09ICduTW9yZUV2ZW50cycgJiYgYXJncykge1xuICAgICAgY29uc3QgbiA9IGFyZ3NbJ24nXTtcbiAgICAgIHJldHVybiBUUkFOU0xBVElPTlNbdGhpcy5jdXJyZW50TGFuZ3VhZ2VdW3RhZ10ucmVwbGFjZSgne3tufX0nLCBuKTtcbiAgICB9XG5cbiAgICByZXR1cm4gVFJBTlNMQVRJT05TW3RoaXMuY3VycmVudExhbmd1YWdlXVt0YWddO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKFRSQU5TTEFUSU9OU1tsYW5nXSkge1xuICAgICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UgPSBsYW5nO1xuICAgIH1cbiAgfVxufVxuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LWFuZ3VsYXItY2FsZW5kYXIvc3JjL2xpYi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxZQUFZLE1BQU0saUJBQWlCLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0I7UUFGUSxvQkFBZSxHQUFHLElBQUksQ0FBQztJQUVmLENBQUM7SUFFakIsU0FBUyxDQUFDLEdBQXNCLEVBQUUsSUFBNkI7UUFDN0QsSUFBSSxHQUFHLEtBQUssYUFBYSxJQUFJLElBQUksRUFBRTtZQUNqQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDcEU7UUFFRCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUErQjtRQUN6QyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUM3QjtJQUNILENBQUM7OytHQWxCVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzJGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgVFJBTlNMQVRJT05TIGZyb20gJy4uL3RyYW5zbGF0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjdXJyZW50TGFuZ3VhZ2UgPSAnZW4nO1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgdHJhbnNsYXRlKHRhZzoga2V5b2YgVHJhbnNsYXRpb24sIGFyZ3M/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogc3RyaW5nIHtcbiAgICBpZiAodGFnID09PSAnbk1vcmVFdmVudHMnICYmIGFyZ3MpIHtcbiAgICAgIGNvbnN0IG4gPSBhcmdzWyduJ107XG4gICAgICByZXR1cm4gVFJBTlNMQVRJT05TW3RoaXMuY3VycmVudExhbmd1YWdlXVt0YWddLnJlcGxhY2UoJ3t7bn19Jywgbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIFRSQU5TTEFUSU9OU1t0aGlzLmN1cnJlbnRMYW5ndWFnZV1bdGFnXTtcbiAgfVxuXG4gIHNldExhbmd1YWdlKGxhbmc6IGtleW9mIHR5cGVvZiBUUkFOU0xBVElPTlMpOiB2b2lkIHtcbiAgICBpZiAoVFJBTlNMQVRJT05TW2xhbmddKSB7XG4gICAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZSA9IGxhbmc7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -8,6 +8,7 @@ const TRANSLATIONS = {
8
8
  fri: 'Friday',
9
9
  sat: 'Saturday',
10
10
  today: 'Today',
11
+ goToToday: 'Go to Today',
11
12
  allDayEvents: 'All-day events',
12
13
  january: 'January',
13
14
  february: 'February',
@@ -33,6 +34,7 @@ const TRANSLATIONS = {
33
34
  fri: 'Viernes',
34
35
  sat: 'Sábado',
35
36
  today: 'Hoy',
37
+ goToToday: 'Ir a Hoy',
36
38
  allDayEvents: 'Eventos de todo el día',
37
39
  january: 'Enero',
38
40
  february: 'Febrero',
@@ -65,4 +67,4 @@ export const MONTHS = {
65
67
  12: 'december'
66
68
  };
67
69
  export default TRANSLATIONS;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL3RyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFlBQVksR0FBZ0M7SUFDOUMsRUFBRSxFQUFFO1FBQ0EsR0FBRyxFQUFFLFFBQVE7UUFDYixHQUFHLEVBQUUsUUFBUTtRQUNiLEdBQUcsRUFBRSxTQUFTO1FBQ2QsR0FBRyxFQUFFLFdBQVc7UUFDaEIsR0FBRyxFQUFFLFVBQVU7UUFDZixHQUFHLEVBQUUsUUFBUTtRQUNiLEdBQUcsRUFBRSxVQUFVO1FBQ2YsS0FBSyxFQUFFLE9BQU87UUFDZCxZQUFZLEVBQUUsZ0JBQWdCO1FBQzlCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLEtBQUssRUFBRSxPQUFPO1FBQ2QsS0FBSyxFQUFFLE9BQU87UUFDZCxHQUFHLEVBQUUsS0FBSztRQUNWLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsUUFBUTtRQUNoQixTQUFTLEVBQUUsV0FBVztRQUN0QixPQUFPLEVBQUUsU0FBUztRQUNsQixRQUFRLEVBQUUsVUFBVTtRQUNwQixRQUFRLEVBQUUsVUFBVTtRQUNwQixVQUFVLEVBQUUsYUFBYTtRQUN6QixXQUFXLEVBQUUsbUJBQW1CO0tBQ25DO0lBQ0QsRUFBRSxFQUFFO1FBQ0EsR0FBRyxFQUFFLFNBQVM7UUFDZCxHQUFHLEVBQUUsT0FBTztRQUNaLEdBQUcsRUFBRSxRQUFRO1FBQ2IsR0FBRyxFQUFFLFdBQVc7UUFDaEIsR0FBRyxFQUFFLFFBQVE7UUFDYixHQUFHLEVBQUUsU0FBUztRQUNkLEdBQUcsRUFBRSxRQUFRO1FBQ2IsS0FBSyxFQUFFLEtBQUs7UUFDWixZQUFZLEVBQUUsd0JBQXdCO1FBQ3RDLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLEtBQUssRUFBRSxPQUFPO1FBQ2QsS0FBSyxFQUFFLE9BQU87UUFDZCxHQUFHLEVBQUUsTUFBTTtRQUNYLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLE9BQU87UUFDYixNQUFNLEVBQUUsUUFBUTtRQUNoQixTQUFTLEVBQUUsWUFBWTtRQUN2QixPQUFPLEVBQUUsU0FBUztRQUNsQixRQUFRLEVBQUUsV0FBVztRQUNyQixRQUFRLEVBQUUsV0FBVztRQUNyQixVQUFVLEVBQUUsYUFBYTtRQUN6QixXQUFXLEVBQUUsbUJBQW1CO0tBQ25DO0NBQ0osQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNsQixDQUFDLEVBQUUsU0FBUztJQUNaLENBQUMsRUFBRSxVQUFVO0lBQ2IsQ0FBQyxFQUFFLE9BQU87SUFDVixDQUFDLEVBQUUsT0FBTztJQUNWLENBQUMsRUFBRSxLQUFLO0lBQ1IsQ0FBQyxFQUFFLE1BQU07SUFDVCxDQUFDLEVBQUUsTUFBTTtJQUNULENBQUMsRUFBRSxRQUFRO0lBQ1gsQ0FBQyxFQUFFLFdBQVc7SUFDZCxFQUFFLEVBQUUsU0FBUztJQUNiLEVBQUUsRUFBRSxVQUFVO0lBQ2QsRUFBRSxFQUFFLFVBQVU7Q0FDakIsQ0FBQztBQUVGLGVBQWUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuY29uc3QgVFJBTlNMQVRJT05TOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2xhdGlvbj4gPSB7XHJcbiAgICBlbjoge1xyXG4gICAgICAgIHN1bjogJ1N1bmRheScsXHJcbiAgICAgICAgbW9uOiAnTW9uZGF5JyxcclxuICAgICAgICB0dWU6ICdUdWVzZGF5JyxcclxuICAgICAgICB3ZWQ6ICdXZWRuZXNkYXknLFxyXG4gICAgICAgIHRodTogJ1RodXJzZGF5JyxcclxuICAgICAgICBmcmk6ICdGcmlkYXknLFxyXG4gICAgICAgIHNhdDogJ1NhdHVyZGF5JyxcclxuICAgICAgICB0b2RheTogJ1RvZGF5JyxcclxuICAgICAgICBhbGxEYXlFdmVudHM6ICdBbGwtZGF5IGV2ZW50cycsXHJcbiAgICAgICAgamFudWFyeTogJ0phbnVhcnknLFxyXG4gICAgICAgIGZlYnJ1YXJ5OiAnRmVicnVhcnknLFxyXG4gICAgICAgIG1hcmNoOiAnTWFyY2gnLFxyXG4gICAgICAgIGFwcmlsOiAnQXByaWwnLFxyXG4gICAgICAgIG1heTogJ01heScsXHJcbiAgICAgICAganVuZTogJ0p1bmUnLFxyXG4gICAgICAgIGp1bHk6ICdKdWx5JyxcclxuICAgICAgICBhdWd1c3Q6ICdBdWd1c3QnLFxyXG4gICAgICAgIHNlcHRlbWJlcjogJ1NlcHRlbWJlcicsXHJcbiAgICAgICAgb2N0b2JlcjogJ09jdG9iZXInLFxyXG4gICAgICAgIG5vdmVtYmVyOiAnTm92ZW1iZXInLFxyXG4gICAgICAgIGRlY2VtYmVyOiAnRGVjZW1iZXInLFxyXG4gICAgICAgIG1vcmVFdmVudHM6ICdNb3JlIGV2ZW50cycsXHJcbiAgICAgICAgbk1vcmVFdmVudHM6ICd7e259fSBNb3JlIGV2ZW50cydcclxuICAgIH0sXHJcbiAgICBlczoge1xyXG4gICAgICAgIHN1bjogJ0RvbWluZ28nLFxyXG4gICAgICAgIG1vbjogJ0x1bmVzJyxcclxuICAgICAgICB0dWU6ICdNYXJ0ZXMnLFxyXG4gICAgICAgIHdlZDogJ01pw6lyY29sZXMnLFxyXG4gICAgICAgIHRodTogJ0p1ZXZlcycsXHJcbiAgICAgICAgZnJpOiAnVmllcm5lcycsXHJcbiAgICAgICAgc2F0OiAnU8OhYmFkbycsXHJcbiAgICAgICAgdG9kYXk6ICdIb3knLFxyXG4gICAgICAgIGFsbERheUV2ZW50czogJ0V2ZW50b3MgZGUgdG9kbyBlbCBkw61hJyxcclxuICAgICAgICBqYW51YXJ5OiAnRW5lcm8nLFxyXG4gICAgICAgIGZlYnJ1YXJ5OiAnRmVicmVybycsXHJcbiAgICAgICAgbWFyY2g6ICdNYXJ6bycsXHJcbiAgICAgICAgYXByaWw6ICdBYnJpbCcsXHJcbiAgICAgICAgbWF5OiAnTWF5bycsXHJcbiAgICAgICAganVuZTogJ0p1bmlvJyxcclxuICAgICAgICBqdWx5OiAnSnVsaW8nLFxyXG4gICAgICAgIGF1Z3VzdDogJ0Fnb3N0bycsXHJcbiAgICAgICAgc2VwdGVtYmVyOiAnU2VwdGllbWJyZScsXHJcbiAgICAgICAgb2N0b2JlcjogJ09jdHVicmUnLFxyXG4gICAgICAgIG5vdmVtYmVyOiAnTm92aWVtYnJlJyxcclxuICAgICAgICBkZWNlbWJlcjogJ0RpY2llbWJyZScsXHJcbiAgICAgICAgbW9yZUV2ZW50czogJ03DoXMgZXZlbnRvcycsXHJcbiAgICAgICAgbk1vcmVFdmVudHM6ICd7e259fSBFdmVudG9zIG3DoXMnXHJcbiAgICB9LFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgTU9OVEhTID0ge1xyXG4gICAgMTogJ2phbnVhcnknLFxyXG4gICAgMjogJ2ZlYnJ1YXJ5JyxcclxuICAgIDM6ICdtYXJjaCcsXHJcbiAgICA0OiAnYXByaWwnLFxyXG4gICAgNTogJ21heScsXHJcbiAgICA2OiAnanVuZScsXHJcbiAgICA3OiAnanVseScsXHJcbiAgICA4OiAnYXVndXN0JyxcclxuICAgIDk6ICdzZXB0ZW1iZXInLFxyXG4gICAgMTA6ICdvY3RvYmVyJyxcclxuICAgIDExOiAnbm92ZW1iZXInLFxyXG4gICAgMTI6ICdkZWNlbWJlcidcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRSQU5TTEFUSU9OUzsiXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtYW5ndWxhci1jYWxlbmRhci9zcmMvbGliL3RyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFlBQVksR0FBZ0M7SUFDOUMsRUFBRSxFQUFFO1FBQ0EsR0FBRyxFQUFFLFFBQVE7UUFDYixHQUFHLEVBQUUsUUFBUTtRQUNiLEdBQUcsRUFBRSxTQUFTO1FBQ2QsR0FBRyxFQUFFLFdBQVc7UUFDaEIsR0FBRyxFQUFFLFVBQVU7UUFDZixHQUFHLEVBQUUsUUFBUTtRQUNiLEdBQUcsRUFBRSxVQUFVO1FBQ2YsS0FBSyxFQUFFLE9BQU87UUFDZCxTQUFTLEVBQUUsYUFBYTtRQUN4QixZQUFZLEVBQUUsZ0JBQWdCO1FBQzlCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLEtBQUssRUFBRSxPQUFPO1FBQ2QsS0FBSyxFQUFFLE9BQU87UUFDZCxHQUFHLEVBQUUsS0FBSztRQUNWLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsUUFBUTtRQUNoQixTQUFTLEVBQUUsV0FBVztRQUN0QixPQUFPLEVBQUUsU0FBUztRQUNsQixRQUFRLEVBQUUsVUFBVTtRQUNwQixRQUFRLEVBQUUsVUFBVTtRQUNwQixVQUFVLEVBQUUsYUFBYTtRQUN6QixXQUFXLEVBQUUsbUJBQW1CO0tBQ25DO0lBQ0QsRUFBRSxFQUFFO1FBQ0EsR0FBRyxFQUFFLFNBQVM7UUFDZCxHQUFHLEVBQUUsT0FBTztRQUNaLEdBQUcsRUFBRSxRQUFRO1FBQ2IsR0FBRyxFQUFFLFdBQVc7UUFDaEIsR0FBRyxFQUFFLFFBQVE7UUFDYixHQUFHLEVBQUUsU0FBUztRQUNkLEdBQUcsRUFBRSxRQUFRO1FBQ2IsS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsVUFBVTtRQUNyQixZQUFZLEVBQUUsd0JBQXdCO1FBQ3RDLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLEtBQUssRUFBRSxPQUFPO1FBQ2QsS0FBSyxFQUFFLE9BQU87UUFDZCxHQUFHLEVBQUUsTUFBTTtRQUNYLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLE9BQU87UUFDYixNQUFNLEVBQUUsUUFBUTtRQUNoQixTQUFTLEVBQUUsWUFBWTtRQUN2QixPQUFPLEVBQUUsU0FBUztRQUNsQixRQUFRLEVBQUUsV0FBVztRQUNyQixRQUFRLEVBQUUsV0FBVztRQUNyQixVQUFVLEVBQUUsYUFBYTtRQUN6QixXQUFXLEVBQUUsbUJBQW1CO0tBQ25DO0NBQ0osQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRztJQUNsQixDQUFDLEVBQUUsU0FBUztJQUNaLENBQUMsRUFBRSxVQUFVO0lBQ2IsQ0FBQyxFQUFFLE9BQU87SUFDVixDQUFDLEVBQUUsT0FBTztJQUNWLENBQUMsRUFBRSxLQUFLO0lBQ1IsQ0FBQyxFQUFFLE1BQU07SUFDVCxDQUFDLEVBQUUsTUFBTTtJQUNULENBQUMsRUFBRSxRQUFRO0lBQ1gsQ0FBQyxFQUFFLFdBQVc7SUFDZCxFQUFFLEVBQUUsU0FBUztJQUNiLEVBQUUsRUFBRSxVQUFVO0lBQ2QsRUFBRSxFQUFFLFVBQVU7Q0FDakIsQ0FBQztBQUVGLGVBQWUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuY29uc3QgVFJBTlNMQVRJT05TOiBSZWNvcmQ8c3RyaW5nLCBUcmFuc2xhdGlvbj4gPSB7XHJcbiAgICBlbjoge1xyXG4gICAgICAgIHN1bjogJ1N1bmRheScsXHJcbiAgICAgICAgbW9uOiAnTW9uZGF5JyxcclxuICAgICAgICB0dWU6ICdUdWVzZGF5JyxcclxuICAgICAgICB3ZWQ6ICdXZWRuZXNkYXknLFxyXG4gICAgICAgIHRodTogJ1RodXJzZGF5JyxcclxuICAgICAgICBmcmk6ICdGcmlkYXknLFxyXG4gICAgICAgIHNhdDogJ1NhdHVyZGF5JyxcclxuICAgICAgICB0b2RheTogJ1RvZGF5JyxcclxuICAgICAgICBnb1RvVG9kYXk6ICdHbyB0byBUb2RheScsXHJcbiAgICAgICAgYWxsRGF5RXZlbnRzOiAnQWxsLWRheSBldmVudHMnLFxyXG4gICAgICAgIGphbnVhcnk6ICdKYW51YXJ5JyxcclxuICAgICAgICBmZWJydWFyeTogJ0ZlYnJ1YXJ5JyxcclxuICAgICAgICBtYXJjaDogJ01hcmNoJyxcclxuICAgICAgICBhcHJpbDogJ0FwcmlsJyxcclxuICAgICAgICBtYXk6ICdNYXknLFxyXG4gICAgICAgIGp1bmU6ICdKdW5lJyxcclxuICAgICAgICBqdWx5OiAnSnVseScsXHJcbiAgICAgICAgYXVndXN0OiAnQXVndXN0JyxcclxuICAgICAgICBzZXB0ZW1iZXI6ICdTZXB0ZW1iZXInLFxyXG4gICAgICAgIG9jdG9iZXI6ICdPY3RvYmVyJyxcclxuICAgICAgICBub3ZlbWJlcjogJ05vdmVtYmVyJyxcclxuICAgICAgICBkZWNlbWJlcjogJ0RlY2VtYmVyJyxcclxuICAgICAgICBtb3JlRXZlbnRzOiAnTW9yZSBldmVudHMnLFxyXG4gICAgICAgIG5Nb3JlRXZlbnRzOiAne3tufX0gTW9yZSBldmVudHMnXHJcbiAgICB9LFxyXG4gICAgZXM6IHtcclxuICAgICAgICBzdW46ICdEb21pbmdvJyxcclxuICAgICAgICBtb246ICdMdW5lcycsXHJcbiAgICAgICAgdHVlOiAnTWFydGVzJyxcclxuICAgICAgICB3ZWQ6ICdNacOpcmNvbGVzJyxcclxuICAgICAgICB0aHU6ICdKdWV2ZXMnLFxyXG4gICAgICAgIGZyaTogJ1ZpZXJuZXMnLFxyXG4gICAgICAgIHNhdDogJ1PDoWJhZG8nLFxyXG4gICAgICAgIHRvZGF5OiAnSG95JyxcclxuICAgICAgICBnb1RvVG9kYXk6ICdJciBhIEhveScsXHJcbiAgICAgICAgYWxsRGF5RXZlbnRzOiAnRXZlbnRvcyBkZSB0b2RvIGVsIGTDrWEnLFxyXG4gICAgICAgIGphbnVhcnk6ICdFbmVybycsXHJcbiAgICAgICAgZmVicnVhcnk6ICdGZWJyZXJvJyxcclxuICAgICAgICBtYXJjaDogJ01hcnpvJyxcclxuICAgICAgICBhcHJpbDogJ0FicmlsJyxcclxuICAgICAgICBtYXk6ICdNYXlvJyxcclxuICAgICAgICBqdW5lOiAnSnVuaW8nLFxyXG4gICAgICAgIGp1bHk6ICdKdWxpbycsXHJcbiAgICAgICAgYXVndXN0OiAnQWdvc3RvJyxcclxuICAgICAgICBzZXB0ZW1iZXI6ICdTZXB0aWVtYnJlJyxcclxuICAgICAgICBvY3RvYmVyOiAnT2N0dWJyZScsXHJcbiAgICAgICAgbm92ZW1iZXI6ICdOb3ZpZW1icmUnLFxyXG4gICAgICAgIGRlY2VtYmVyOiAnRGljaWVtYnJlJyxcclxuICAgICAgICBtb3JlRXZlbnRzOiAnTcOhcyBldmVudG9zJyxcclxuICAgICAgICBuTW9yZUV2ZW50czogJ3t7bn19IEV2ZW50b3MgbcOhcydcclxuICAgIH0sXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBNT05USFMgPSB7XHJcbiAgICAxOiAnamFudWFyeScsXHJcbiAgICAyOiAnZmVicnVhcnknLFxyXG4gICAgMzogJ21hcmNoJyxcclxuICAgIDQ6ICdhcHJpbCcsXHJcbiAgICA1OiAnbWF5JyxcclxuICAgIDY6ICdqdW5lJyxcclxuICAgIDc6ICdqdWx5JyxcclxuICAgIDg6ICdhdWd1c3QnLFxyXG4gICAgOTogJ3NlcHRlbWJlcicsXHJcbiAgICAxMDogJ29jdG9iZXInLFxyXG4gICAgMTE6ICdub3ZlbWJlcicsXHJcbiAgICAxMjogJ2RlY2VtYmVyJ1xyXG59O1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgVFJBTlNMQVRJT05TOyJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1hbmd1bGFyLWNhbGVuZGFyL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRpb24ge1xyXG4gICAgc3VuOiBzdHJpbmc7XHJcbiAgICBtb246IHN0cmluZztcclxuICAgIHR1ZTogc3RyaW5nO1xyXG4gICAgd2VkOiBzdHJpbmc7XHJcbiAgICB0aHU6IHN0cmluZztcclxuICAgIGZyaTogc3RyaW5nO1xyXG4gICAgc2F0OiBzdHJpbmc7XHJcblxyXG4gICAgdG9kYXk6IHN0cmluZztcclxuICAgIGFsbERheUV2ZW50czogc3RyaW5nO1xyXG5cclxuICAgIGphbnVhcnk6IHN0cmluZztcclxuICAgIGZlYnJ1YXJ5OiBzdHJpbmc7XHJcbiAgICBtYXJjaDogc3RyaW5nO1xyXG4gICAgYXByaWw6IHN0cmluZztcclxuICAgIG1heTogc3RyaW5nO1xyXG4gICAganVuZTogc3RyaW5nO1xyXG4gICAganVseTogc3RyaW5nO1xyXG4gICAgYXVndXN0OiBzdHJpbmc7XHJcbiAgICBzZXB0ZW1iZXI6IHN0cmluZztcclxuICAgIG9jdG9iZXI6IHN0cmluZztcclxuICAgIG5vdmVtYmVyOiBzdHJpbmc7XHJcbiAgICBkZWNlbWJlcjogc3RyaW5nO1xyXG5cclxuICAgIG1vcmVFdmVudHM6IHN0cmluZztcclxuICAgIG5Nb3JlRXZlbnRzOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgV2Vla0RheSB7XHJcbiAgICB0YWc6ICdzdW4nIHwgJ21vbicgfCAndHVlJyB8ICd3ZWQnIHwgJ3RodScgfCAnZnJpJyB8ICdzYXQnO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyRXZlbnQge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICBzdGFydDogRGF0ZTtcclxuICAgIGVuZD86IERhdGU7XHJcbiAgICBhbGxEYXk/OiBib29sZWFuO1xyXG4gICAgY29sb3I/OiBzdHJpbmc7XHJcbiAgICBtZXRhPzogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERheUNlbGwge1xyXG4gICAgZGF0ZTogRGF0ZTtcclxuICAgIGV2ZW50czogQ2FsZW5kYXJFdmVudFtdO1xyXG4gICAgaXNPdXRzaWRlTW9udGg/OiBib29sZWFuO1xyXG4gICAgaXNUb2RheT86IGJvb2xlYW47XHJcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1hbmd1bGFyLWNhbGVuZGFyL3NyYy9saWIvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVHJhbnNsYXRpb24ge1xyXG4gICAgc3VuOiBzdHJpbmc7XHJcbiAgICBtb246IHN0cmluZztcclxuICAgIHR1ZTogc3RyaW5nO1xyXG4gICAgd2VkOiBzdHJpbmc7XHJcbiAgICB0aHU6IHN0cmluZztcclxuICAgIGZyaTogc3RyaW5nO1xyXG4gICAgc2F0OiBzdHJpbmc7XHJcblxyXG4gICAgdG9kYXk6IHN0cmluZztcclxuICAgIGdvVG9Ub2RheTogc3RyaW5nO1xyXG4gICAgYWxsRGF5RXZlbnRzOiBzdHJpbmc7XHJcblxyXG4gICAgamFudWFyeTogc3RyaW5nO1xyXG4gICAgZmVicnVhcnk6IHN0cmluZztcclxuICAgIG1hcmNoOiBzdHJpbmc7XHJcbiAgICBhcHJpbDogc3RyaW5nO1xyXG4gICAgbWF5OiBzdHJpbmc7XHJcbiAgICBqdW5lOiBzdHJpbmc7XHJcbiAgICBqdWx5OiBzdHJpbmc7XHJcbiAgICBhdWd1c3Q6IHN0cmluZztcclxuICAgIHNlcHRlbWJlcjogc3RyaW5nO1xyXG4gICAgb2N0b2Jlcjogc3RyaW5nO1xyXG4gICAgbm92ZW1iZXI6IHN0cmluZztcclxuICAgIGRlY2VtYmVyOiBzdHJpbmc7XHJcblxyXG4gICAgbW9yZUV2ZW50czogc3RyaW5nO1xyXG4gICAgbk1vcmVFdmVudHM6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBXZWVrRGF5IHtcclxuICAgIHRhZzogJ3N1bicgfCAnbW9uJyB8ICd0dWUnIHwgJ3dlZCcgfCAndGh1JyB8ICdmcmknIHwgJ3NhdCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJFdmVudCB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIHN0YXJ0OiBEYXRlO1xyXG4gICAgZW5kPzogRGF0ZTtcclxuICAgIGFsbERheT86IGJvb2xlYW47XHJcbiAgICBjb2xvcj86IHN0cmluZztcclxuICAgIG1ldGE/OiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF5Q2VsbCB7XHJcbiAgICBkYXRlOiBEYXRlO1xyXG4gICAgZXZlbnRzOiBDYWxlbmRhckV2ZW50W107XHJcbiAgICBpc091dHNpZGVNb250aD86IGJvb2xlYW47XHJcbiAgICBpc1RvZGF5PzogYm9vbGVhbjtcclxufSJdfQ==