@bizdoc/core 1.9.14 → 1.10.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/dayjs/locale/af.js +1 -0
- package/assets/dayjs/locale/am.js +1 -0
- package/assets/dayjs/locale/ar-dz.js +1 -0
- package/assets/dayjs/locale/ar-iq.js +1 -0
- package/assets/dayjs/locale/ar-kw.js +1 -0
- package/assets/dayjs/locale/ar-ly.js +1 -0
- package/assets/dayjs/locale/ar-ma.js +1 -0
- package/assets/dayjs/locale/ar-sa.js +1 -0
- package/assets/dayjs/locale/ar-tn.js +1 -0
- package/assets/dayjs/locale/ar.js +1 -0
- package/assets/dayjs/locale/az.js +1 -0
- package/assets/dayjs/locale/be.js +1 -0
- package/assets/dayjs/locale/bg.js +1 -0
- package/assets/dayjs/locale/bi.js +1 -0
- package/assets/dayjs/locale/bm.js +1 -0
- package/assets/dayjs/locale/bn.js +1 -0
- package/assets/dayjs/locale/bo.js +1 -0
- package/assets/dayjs/locale/br.js +1 -0
- package/assets/dayjs/locale/bs.js +1 -0
- package/assets/dayjs/locale/ca.js +1 -0
- package/assets/dayjs/locale/cs.js +1 -0
- package/assets/dayjs/locale/cv.js +1 -0
- package/assets/dayjs/locale/cy.js +1 -0
- package/assets/dayjs/locale/da.js +1 -0
- package/assets/dayjs/locale/de-at.js +1 -0
- package/assets/dayjs/locale/de-ch.js +1 -0
- package/assets/dayjs/locale/de.js +1 -0
- package/assets/dayjs/locale/dv.js +1 -0
- package/assets/dayjs/locale/el.js +1 -0
- package/assets/dayjs/locale/en-au.js +1 -0
- package/assets/dayjs/locale/en-ca.js +1 -0
- package/assets/dayjs/locale/en-gb.js +1 -0
- package/assets/dayjs/locale/en-ie.js +1 -0
- package/assets/dayjs/locale/en-il.js +1 -0
- package/assets/dayjs/locale/en-in.js +1 -0
- package/assets/dayjs/locale/en-nz.js +1 -0
- package/assets/dayjs/locale/en-sg.js +1 -0
- package/assets/dayjs/locale/en-tt.js +1 -0
- package/assets/dayjs/locale/en.js +1 -0
- package/assets/dayjs/locale/eo.js +1 -0
- package/assets/dayjs/locale/es-do.js +1 -0
- package/assets/dayjs/locale/es-mx.js +1 -0
- package/assets/dayjs/locale/es-pr.js +1 -0
- package/assets/dayjs/locale/es-us.js +1 -0
- package/assets/dayjs/locale/es.js +1 -0
- package/assets/dayjs/locale/et.js +1 -0
- package/assets/dayjs/locale/eu.js +1 -0
- package/assets/dayjs/locale/fa.js +1 -0
- package/assets/dayjs/locale/fi.js +1 -0
- package/assets/dayjs/locale/fo.js +1 -0
- package/assets/dayjs/locale/fr-ca.js +1 -0
- package/assets/dayjs/locale/fr-ch.js +1 -0
- package/assets/dayjs/locale/fr.js +1 -0
- package/assets/dayjs/locale/fy.js +1 -0
- package/assets/dayjs/locale/ga.js +1 -0
- package/assets/dayjs/locale/gd.js +1 -0
- package/assets/dayjs/locale/gl.js +1 -0
- package/assets/dayjs/locale/gom-latn.js +1 -0
- package/assets/dayjs/locale/gu.js +1 -0
- package/assets/dayjs/locale/he.js +1 -0
- package/assets/dayjs/locale/hi.js +1 -0
- package/assets/dayjs/locale/hr.js +1 -0
- package/assets/dayjs/locale/ht.js +1 -0
- package/assets/dayjs/locale/hu.js +1 -0
- package/assets/dayjs/locale/hy-am.js +1 -0
- package/assets/dayjs/locale/id.js +1 -0
- package/assets/dayjs/locale/index.d.ts +11 -0
- package/assets/dayjs/locale/is.js +1 -0
- package/assets/dayjs/locale/it-ch.js +1 -0
- package/assets/dayjs/locale/it.js +1 -0
- package/assets/dayjs/locale/ja.js +1 -0
- package/assets/dayjs/locale/jv.js +1 -0
- package/assets/dayjs/locale/ka.js +1 -0
- package/assets/dayjs/locale/kk.js +1 -0
- package/assets/dayjs/locale/km.js +1 -0
- package/assets/dayjs/locale/kn.js +1 -0
- package/assets/dayjs/locale/ko.js +1 -0
- package/assets/dayjs/locale/ku.js +1 -0
- package/assets/dayjs/locale/ky.js +1 -0
- package/assets/dayjs/locale/lb.js +1 -0
- package/assets/dayjs/locale/lo.js +1 -0
- package/assets/dayjs/locale/lt.js +1 -0
- package/assets/dayjs/locale/lv.js +1 -0
- package/assets/dayjs/locale/me.js +1 -0
- package/assets/dayjs/locale/mi.js +1 -0
- package/assets/dayjs/locale/mk.js +1 -0
- package/assets/dayjs/locale/ml.js +1 -0
- package/assets/dayjs/locale/mn.js +1 -0
- package/assets/dayjs/locale/mr.js +1 -0
- package/assets/dayjs/locale/ms-my.js +1 -0
- package/assets/dayjs/locale/ms.js +1 -0
- package/assets/dayjs/locale/mt.js +1 -0
- package/assets/dayjs/locale/my.js +1 -0
- package/assets/dayjs/locale/nb.js +1 -0
- package/assets/dayjs/locale/ne.js +1 -0
- package/assets/dayjs/locale/nl-be.js +1 -0
- package/assets/dayjs/locale/nl.js +1 -0
- package/assets/dayjs/locale/nn.js +1 -0
- package/assets/dayjs/locale/oc-lnc.js +1 -0
- package/assets/dayjs/locale/pa-in.js +1 -0
- package/assets/dayjs/locale/pl.js +1 -0
- package/assets/dayjs/locale/pt-br.js +1 -0
- package/assets/dayjs/locale/pt.js +1 -0
- package/assets/dayjs/locale/ro.js +1 -0
- package/assets/dayjs/locale/ru.js +1 -0
- package/assets/dayjs/locale/rw.js +1 -0
- package/assets/dayjs/locale/sd.js +1 -0
- package/assets/dayjs/locale/se.js +1 -0
- package/assets/dayjs/locale/si.js +1 -0
- package/assets/dayjs/locale/sk.js +1 -0
- package/assets/dayjs/locale/sl.js +1 -0
- package/assets/dayjs/locale/sq.js +1 -0
- package/assets/dayjs/locale/sr-cyrl.js +1 -0
- package/assets/dayjs/locale/sr.js +1 -0
- package/assets/dayjs/locale/ss.js +1 -0
- package/assets/dayjs/locale/sv-fi.js +1 -0
- package/assets/dayjs/locale/sv.js +1 -0
- package/assets/dayjs/locale/sw.js +1 -0
- package/assets/dayjs/locale/ta.js +1 -0
- package/assets/dayjs/locale/te.js +1 -0
- package/assets/dayjs/locale/tet.js +1 -0
- package/assets/dayjs/locale/tg.js +1 -0
- package/assets/dayjs/locale/th.js +1 -0
- package/assets/dayjs/locale/tk.js +1 -0
- package/assets/dayjs/locale/tl-ph.js +1 -0
- package/assets/dayjs/locale/tlh.js +1 -0
- package/assets/dayjs/locale/tr.js +1 -0
- package/assets/dayjs/locale/types.d.ts +33 -0
- package/assets/dayjs/locale/tzl.js +1 -0
- package/assets/dayjs/locale/tzm-latn.js +1 -0
- package/assets/dayjs/locale/tzm.js +1 -0
- package/assets/dayjs/locale/ug-cn.js +1 -0
- package/assets/dayjs/locale/uk.js +1 -0
- package/assets/dayjs/locale/ur.js +1 -0
- package/assets/dayjs/locale/uz-latn.js +1 -0
- package/assets/dayjs/locale/uz.js +1 -0
- package/assets/dayjs/locale/vi.js +1 -0
- package/assets/dayjs/locale/x-pseudo.js +1 -0
- package/assets/dayjs/locale/yo.js +1 -0
- package/assets/dayjs/locale/zh-cn.js +1 -0
- package/assets/dayjs/locale/zh-hk.js +1 -0
- package/assets/dayjs/locale/zh-tw.js +1 -0
- package/assets/dayjs/locale/zh.js +1 -0
- package/esm2020/lib/admin/diff/configuration-diff.component.mjs +2 -2
- package/esm2020/lib/admin/document-trace/document-trace.component.mjs +6 -7
- package/esm2020/lib/admin/document-trace/trace-element.component.mjs +1 -1
- package/esm2020/lib/admin/profiler/profiler.component.mjs +8 -8
- package/esm2020/lib/bizdoc.module.mjs +5 -17
- package/esm2020/lib/browse/browse-items.component.mjs +4 -3
- package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +10 -10
- package/esm2020/lib/chat/contacts.component.mjs +4 -3
- package/esm2020/lib/chat/conversation.component.mjs +6 -4
- package/esm2020/lib/compose/attachments/attachments.component.mjs +1 -1
- package/esm2020/lib/compose/comments/comment.component.mjs +4 -3
- package/esm2020/lib/compose/comments/edits.component.mjs +1 -1
- package/esm2020/lib/compose/comments/votes.component.mjs +4 -3
- package/esm2020/lib/compose/compose.pane.component.mjs +3 -1
- package/esm2020/lib/compose/events/events.component.mjs +1 -1
- package/esm2020/lib/compose/trace/flow.component.mjs +9 -10
- package/esm2020/lib/compose/trace/trace.base.mjs +3 -4
- package/esm2020/lib/compose/trace/trace.component.mjs +8 -8
- package/esm2020/lib/compose/version-compare/version.pane.component.mjs +2 -2
- package/esm2020/lib/core/pipes/calendar.pipe.mjs +74 -0
- package/esm2020/lib/core/pipes/date-format.pipe.mjs +19 -0
- package/esm2020/lib/core/pipes/daterange.pipe.mjs +7 -8
- package/esm2020/lib/core/pipes/difference.pipe.mjs +15 -0
- package/esm2020/lib/core/pipes/duration-format.pipe.mjs +50 -0
- package/esm2020/lib/core/pipes/duration.pipe.mjs +17 -42
- package/esm2020/lib/core/pipes/time-ago.pipe.mjs +68 -0
- package/esm2020/lib/core/session.service.mjs +6 -6
- package/esm2020/lib/core/slots/slots.component.mjs +8 -7
- package/esm2020/lib/core/tagging/edit-input.component.mjs +7 -6
- package/esm2020/lib/core/translate.service.mjs +26 -101
- package/esm2020/lib/cube/cube-view.component.mjs +13 -2
- package/esm2020/lib/cube/cube.service.mjs +2 -2
- package/esm2020/lib/cube/explore/explore-items.component.mjs +1 -1
- package/esm2020/lib/cube/grid/spreadsheet.component.mjs +2 -3
- package/esm2020/lib/cube/matrix/table.component.mjs +4 -4
- package/esm2020/lib/cube/pivot/pivot.component.mjs +12 -10
- package/esm2020/lib/cube/view-base.mjs +1 -1
- package/esm2020/lib/cube/view.pane.component.mjs +7 -4
- package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -4
- package/esm2020/lib/dashboard/score/compare-departments.widget.mjs +4 -5
- package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +5 -5
- package/esm2020/lib/dashboard/score/pending-results.widget.mjs +6 -5
- package/esm2020/lib/dashboard/score/personal-score.widget.mjs +2 -2
- package/esm2020/lib/desktop.module.mjs +1 -5
- package/esm2020/lib/home/about/about.dialog.mjs +4 -5
- package/esm2020/lib/home/notifications/notifications.component.mjs +5 -4
- package/esm2020/lib/mobile.module.mjs +1 -5
- package/esm2020/lib/modules/date.adapter.mjs +30 -0
- package/esm2020/lib/modules/datepicker.intl.mjs +39 -0
- package/esm2020/lib/modules/material.module.mjs +11 -5
- package/esm2020/lib/modules/paginator.intl.mjs +21 -0
- package/esm2020/lib/modules/stepper.intl.mjs +17 -0
- package/esm2020/lib/modules/texteditor.module.mjs +27 -0
- package/esm2020/lib/notifications/notifications-table.component.mjs +4 -3
- package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -4
- package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +4 -5
- package/esm2020/lib/reports/cube/grid-documents.component.mjs +1 -1
- package/esm2020/lib/reports/substitution/substitution.component.mjs +1 -1
- package/esm2020/lib/scheduler/schedule.component.mjs +5 -6
- package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +4 -5
- package/esm2020/lib/scheduler/scheduler.pane.component.mjs +4 -5
- package/esm2020/lib/shared.module.mjs +20 -16
- package/esm2020/lib/system.module.mjs +1 -5
- package/esm2020/lib/views/cube/matrix.component.mjs +1 -1
- package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -4
- package/esm2020/public-api.mjs +7 -2
- package/fesm2015/bizdoc-core.mjs +511 -305
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +511 -303
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/diff/configuration-diff.component.d.ts +1 -1
- package/lib/bizdoc.module.d.ts +6 -7
- package/lib/chat/conversation.component.d.ts +1 -1
- package/lib/compose/trace/flow.component.d.ts +1 -1
- package/lib/compose/trace/trace.component.d.ts +1 -1
- package/lib/compose/version-compare/version.pane.component.d.ts +1 -1
- package/lib/core/pipes/calendar.pipe.d.ts +27 -0
- package/lib/core/pipes/date-format.pipe.d.ts +8 -0
- package/lib/core/pipes/daterange.pipe.d.ts +1 -1
- package/lib/core/pipes/difference.pipe.d.ts +7 -0
- package/lib/core/pipes/duration-format.pipe.d.ts +11 -0
- package/lib/core/pipes/duration.pipe.d.ts +5 -8
- package/lib/core/pipes/time-ago.pipe.d.ts +16 -0
- package/lib/core/session.service.d.ts +2 -1
- package/lib/core/translate.service.d.ts +2 -56
- package/lib/cube/pivot/pivot.component.d.ts +3 -5
- package/lib/dashboard/score/peers-performance.widget.d.ts +1 -1
- package/lib/dashboard/score/personal-score.widget.d.ts +1 -1
- package/lib/desktop.module.d.ts +2 -3
- package/lib/home/about/about.dialog.d.ts +2 -1
- package/lib/mobile.module.d.ts +2 -3
- package/lib/modules/date.adapter.d.ts +13 -0
- package/lib/modules/datepicker.intl.d.ts +30 -0
- package/lib/modules/paginator.intl.d.ts +14 -0
- package/lib/modules/stepper.intl.d.ts +10 -0
- package/lib/modules/texteditor.module.d.ts +8 -0
- package/lib/notifications/types/nudge.notification.d.ts +2 -1
- package/lib/notifications/types/upcoming-event.notification.d.ts +2 -1
- package/lib/shared.module.d.ts +175 -171
- package/lib/system.module.d.ts +4 -5
- package/lib/views/cube/matrix.component.d.ts +2 -2
- package/package.json +3 -5
- package/public-api.d.ts +6 -1
@@ -3,7 +3,7 @@ import { Component, ViewChild, ElementRef, HostListener } from '@angular/core';
|
|
3
3
|
import { Validators } from '@angular/forms';
|
4
4
|
import { Subject } from 'rxjs';
|
5
5
|
import { takeUntil, debounceTime, switchMap, filter, map } from 'rxjs/operators';
|
6
|
-
import * as
|
6
|
+
import * as dayjs from 'dayjs';
|
7
7
|
import { isObject } from '../../core/functions';
|
8
8
|
import { BizDoc } from '../../core/decorators';
|
9
9
|
import { FONT_FAMILY } from '../../core/colors';
|
@@ -37,9 +37,9 @@ import * as i25 from "@angular/common";
|
|
37
37
|
import * as i26 from "../../core/popup/tooltip.directive";
|
38
38
|
import * as i27 from "@angular/flex-layout/flex";
|
39
39
|
import * as i28 from "../../core/pipes/translate.pipe";
|
40
|
-
import * as i29 from "
|
41
|
-
import * as i30 from "../../core/pipes/
|
42
|
-
|
40
|
+
import * as i29 from "../../core/pipes/duration.pipe";
|
41
|
+
import * as i30 from "../../core/pipes/difference.pipe";
|
42
|
+
import * as i31 from "../../core/pipes/role.pipe";
|
43
43
|
let ProfilerComponent = class ProfilerComponent {
|
44
44
|
/** ctor */
|
45
45
|
constructor(_sb, _utilityRef, _session, _dialog, _documentInfo, media, _chat, _guide, _router, _slot, _translate, _accounts, _fb) {
|
@@ -106,7 +106,7 @@ let ProfilerComponent = class ProfilerComponent {
|
|
106
106
|
});
|
107
107
|
}
|
108
108
|
ngOnInit() {
|
109
|
-
this._slot.queryParamsChange.
|
109
|
+
this._slot.queryParamsChange.subscribe(p => {
|
110
110
|
const { id } = p;
|
111
111
|
id && this._open(id);
|
112
112
|
});
|
@@ -222,7 +222,7 @@ let ProfilerComponent = class ProfilerComponent {
|
|
222
222
|
}, () => this._sb.error());
|
223
223
|
}
|
224
224
|
tooltipRender(e) {
|
225
|
-
e.text = `${
|
225
|
+
e.text = `${dayjs.duration(e.point.y, 's').humanize()}`;
|
226
226
|
}
|
227
227
|
ngOnDestroy() {
|
228
228
|
this._destroy.next();
|
@@ -230,7 +230,7 @@ let ProfilerComponent = class ProfilerComponent {
|
|
230
230
|
}
|
231
231
|
};
|
232
232
|
ProfilerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ProfilerComponent, deps: [{ token: i1.PromptService }, { token: i2.UtilityRef }, { token: i3.SessionService }, { token: i4.MatDialog }, { token: i5.DocumentInfo }, { token: i6.MediaObserver }, { token: i7.ChatInfo }, { token: i8.GuideService }, { token: i9.PanesRouter }, { token: i10.PaneRef }, { token: i11.TranslateService }, { token: i12.AccountService }, { token: i13.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
233
|
-
ProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)", "window:resize": "resize()" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assign", first: true, predicate: ["assign"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <div>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-grid-list [cols]=\"cols\" [style.display]=\"data ? '': 'none'\">\r\n <mat-grid-tile>\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data?.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <button mat-icon-button (click)=\"chat(data.info.id)\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data?.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.positions.length; else none\">\r\n <tr *ngFor=\"let p of data?.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n</mat-grid-list>\r\n<!-- dialog -->\r\n<ng-template #assign>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-card{width:calc(100% - 50px);height:calc(100% - 50px);overflow:hidden}.mat-card .mat-card-content{height:inherit}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-table{width:100%}\n"], components: [{ type: i14.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i15.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i16.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i17.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i18.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i19.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i19.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i20.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i20.MatCardHeader, selector: "mat-card-header" }, { type: i21.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { type: i22.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i23.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i24.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i16.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i25.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i26.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i20.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i20.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i21.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { type: i25.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i13.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i13.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i27.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i13.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "async": i25.AsyncPipe, "translate": i28.TranslatePipe, "amDuration": i29.DurationPipe, "amDifference": i29.DifferencePipe, "role": i30.RolePipe } });
|
233
|
+
ProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)", "window:resize": "resize()" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assign", first: true, predicate: ["assign"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <div>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<mat-grid-list [cols]=\"cols\" [style.display]=\"data ? '': 'none'\">\r\n <mat-grid-tile>\r\n <mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data?.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <button mat-icon-button (click)=\"chat(data.info.id)\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data?.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n <mat-grid-tile>\r\n <mat-card data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data?.positions.length; else none\">\r\n <tr *ngFor=\"let p of data?.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-grid-tile>\r\n</mat-grid-list>\r\n<!-- dialog -->\r\n<ng-template #assign>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-card{width:calc(100% - 50px);height:calc(100% - 50px);overflow:hidden}.mat-card .mat-card-content{height:inherit}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-table{width:100%}\n"], components: [{ type: i14.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i15.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i16.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i17.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i18.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i19.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i19.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i20.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i20.MatCardHeader, selector: "mat-card-header" }, { type: i21.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { type: i22.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i23.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i24.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i16.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i25.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i26.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i20.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i20.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i21.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { type: i25.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i13.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i13.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i27.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i13.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "async": i25.AsyncPipe, "translate": i28.TranslatePipe, "amDuration": i29.DurationPipe, "amDifference": i30.DifferencePipe, "role": i31.RolePipe } });
|
234
234
|
ProfilerComponent = __decorate([
|
235
235
|
BizDoc({ selector: 'bizdoc-user-profiler' })
|
236
236
|
/** component*/
|
@@ -257,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
|
|
257
257
|
type: HostListener,
|
258
258
|
args: ['window:resize']
|
259
259
|
}] } });
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9wcm9maWxlci9wcm9maWxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3Byb2ZpbGVyL3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBMEMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLekQsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFTL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFmbkIsTUFBTSxNQUFNLEdBQUksT0FBZSxDQUFDLE9BQU8sQ0FBQztJQTBCOUQsaUJBQWlCLFNBQWpCLGlCQUFpQjtJQW1ENUIsV0FBVztJQUNYLFlBQW9CLEdBQWtCLEVBQzVCLFdBQW9FLEVBQ3BFLFFBQXdCLEVBQ3hCLE9BQWtCLEVBQ2xCLGFBQTJCLEVBQ25DLEtBQW9CLEVBQ1osS0FBZSxFQUNmLE1BQW9CLEVBQ3BCLE9BQW9CLEVBQ3BCLEtBQWlDLEVBQ2pDLFVBQTRCLEVBQzVCLFNBQXlCLEVBQ3pCLEdBQWdCO1FBWk4sUUFBRyxHQUFILEdBQUcsQ0FBZTtRQUM1QixnQkFBVyxHQUFYLFdBQVcsQ0FBeUQ7UUFDcEUsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDeEIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNsQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUUzQixVQUFLLEdBQUwsS0FBSyxDQUFVO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUNwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFFBQUcsR0FBSCxHQUFHLENBQWE7UUEvRGpCLFdBQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUloQyxRQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsRCxpQkFBWSxHQUFHO1lBQ3RCLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLFdBQVcsRUFBRSxRQUFRO1lBQ3JCLFVBQVUsRUFBRTtnQkFDVixVQUFVLEVBQUUsV0FBVzthQUN4QjtTQUNXLENBQUM7UUFDTixpQkFBWSxHQUFHO1lBQ3RCLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsS0FBSzthQUNaO1NBQ1csQ0FBQztRQUNOLGlCQUFZLEdBQXNCO1lBQ3pDLHVCQUF1QixFQUFFLElBQUk7WUFDN0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixZQUFZLEVBQUUsRUFBRTtZQUNoQixzQkFBc0IsRUFBRSxLQUFLO1lBQzdCLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7UUFDTyxZQUFPLEdBQXlCO1lBQ3ZDLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUU7Z0JBQ1QsVUFBVSxFQUFFLFdBQVc7YUFDeEI7U0FDRixDQUFDO1FBQ08sV0FBTSxHQUFzQjtZQUNuQyxPQUFPLEVBQUUsS0FBSztZQUNkLFNBQVMsRUFBRTtnQkFDVCxVQUFVLEVBQUUsV0FBVzthQUN4QjtTQUNGLENBQUM7UUFDTyxXQUFNLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFpQixDQUFDO1FBQ3JDLFdBQU0sR0FBdUI7WUFDcEMsT0FBTyxFQUFFLElBQUk7WUFDYixLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQTtRQUdELGFBQVEsR0FBYSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztRQUNqRCxVQUFLLEdBQWdDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFFNUYsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUNRLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBZTlDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pILFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNqQixFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDbEUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUN6QixTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELEtBQUssQ0FBQyxHQUEyQjtRQUMvQixNQUFNLEtBQUssR0FBZ0IsQ0FBQztnQkFDMUIsUUFBUSxFQUFFLG9CQUFvQjtnQkFDOUIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQzthQUNuRCxDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNULFFBQVEsRUFBRSxzQkFBc0I7Z0JBQ2hDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7YUFDN0MsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU07Z0JBQ3BDLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztpQkFDN0MsQ0FBQyxDQUFDO1lBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtnQkFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO2lCQUM1QyxDQUFDLENBQUM7WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO2dCQUN4QixLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUM7aUJBQzlDLENBQUMsQ0FBQztTQUNOO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDaEIsSUFBSSxFQUFFLFVBQVU7WUFDaEIsS0FBSztTQUNOLENBQUMsQ0FBQztRQUNILEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFpQztRQUN0QyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDRDs7O09BR0c7SUFDSyxLQUFLLENBQUMsTUFBYztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU07Z0JBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsTUFBTTtJQUNFLE9BQU87UUFDYixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTztnQkFDTCxJQUFJLEVBQUUsU0FBUztnQkFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLEtBQUssRUFBRSxNQUFNO2dCQUNiLEtBQUssRUFBRSxVQUFVO2dCQUNqQixVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDdEIsT0FBTzt3QkFDTCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7d0JBQ3RCLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtxQkFDckIsQ0FBQztnQkFDSixDQUFDLENBQUM7YUFDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVyxDQUFDLElBQVk7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDeEUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3JELENBQUM7SUFFRCxNQUFNO1FBQ0osTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBb0I7UUFDN0IsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBQ0QsS0FBSyxDQUFDLEVBQVU7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsRUFBRTtZQUM5RCxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDbkIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVE7U0FDL0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNO1FBQ1QsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELFFBQVEsQ0FBQyxRQUF1QjtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUM5QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDWixDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQ2pDLENBQUM7SUFDTixDQUFDO0lBQ0QsTUFBTTtJQUNFLFNBQVMsQ0FBQyxHQUFXLEVBQUUsUUFBdUI7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN2RixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMzQixJQUFJLFFBQVE7Z0JBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztnQkFFckMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQzdCLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FDTixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELGFBQWEsQ0FBQyxDQUEwQjtRQUN0QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQzNELENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7Q0FDRixDQUFBOzhHQTFNWSxpQkFBaUI7a0dBQWpCLGlCQUFpQixpVkFHRyxVQUFVLGdIQ3JDM0Msb3hKQTZHQTtBRDNFYSxpQkFBaUI7SUFGN0IsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDN0MsZUFBZTtHQUNGLGlCQUFpQixDQTBNN0I7U0ExTVksaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBVDdCLFNBQVM7MkJBR0Y7d0JBQ0osS0FBSyxFQUFFLE1BQU07cUJBQ2Q7cWFBTXNCLEtBQUs7c0JBQTNCLFNBQVM7dUJBQUMsVUFBVTtnQkFDd0IsWUFBWTtzQkFBeEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUN0QixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBK0VuQixLQUFLO3NCQURKLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBMEU3QyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkluaXQsIE9uRGVzdHJveSwgSW5qZWN0LCBUZW1wbGF0ZVJlZiwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgTWVkaWFPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHsgQXhpc01vZGVsLCBCb3JkZXJNb2RlbCwgQ2hhcnRDb21wb25lbnQsIElQb2ludEV2ZW50QXJncywgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MsIExlZ2VuZFNlcmllc01vZGVsLCBNYXJrZXJPcHRpb25zTW9kZWwsIFNlcmllc01vZGVsLCBUb29sdGlwU2V0dGluZ3NNb2RlbCwgWm9vbVNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7IGNvbnN0IG1vbWVudCA9IChtb21lbnRfIGFzIGFueSkuZGVmYXVsdDtcclxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEd1aWRlU3RlcCwgVXNlckluZm8gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tICcuLi91dGlsaXR5LXJlZic7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL2NvcmUvaW5mby9kb2N1bWVudC1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpZGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9ndWlkZS9ndWlkZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGT05UX0ZBTUlMWSB9IGZyb20gJy4uLy4uL2NvcmUvY29sb3JzJztcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tICcuLi8uLi9jaGF0L2NoYXQtaW5mbyc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZmlsZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2ZpbGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH1cclxufSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnYml6ZG9jLXVzZXItcHJvZmlsZXInIH0pXHJcbi8qKiBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgUHJvZmlsZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgc2VhcmNoID0gdGhpcy5fZmIuY29udHJvbChudWxsKTtcclxuICBAVmlld0NoaWxkKCdhY3Rpdml0eScpIGNoYXJ0OiBDaGFydENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdhY3Rpdml0eScsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjaGFydEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYXNzaWduJykgYXNzaWduOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHJlYWRvbmx5IHdobyA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVhBeGlzID0ge1xyXG4gICAgdmFsdWVUeXBlOiAnRGF0ZVRpbWUnLFxyXG4gICAgbGFiZWxGb3JtYXQ6ICdNTU0gZGQnLFxyXG4gICAgbGFiZWxTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH0gYXMgQXhpc01vZGVsO1xyXG4gIHJlYWRvbmx5IHByaW1hcnlZQXhpcyA9IHtcclxuICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgc2l6ZTogJzBweCdcclxuICAgIH0sXHJcbiAgfSBhcyBBeGlzTW9kZWw7XHJcbiAgcmVhZG9ubHkgem9vbVNldHRpbmdzOiBab29tU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGVuYWJsZU1vdXNlV2hlZWxab29taW5nOiB0cnVlLFxyXG4gICAgZW5hYmxlUGluY2hab29taW5nOiB0cnVlLFxyXG4gICAgdG9vbGJhckl0ZW1zOiBbXSxcclxuICAgIGVuYWJsZVNlbGVjdGlvblpvb21pbmc6IGZhbHNlLFxyXG4gICAgZW5hYmxlU2Nyb2xsYmFyOiB0cnVlXHJcbiAgfTtcclxuICByZWFkb25seSB0b29sdGlwOiBUb29sdGlwU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgIHNoYXJlZDogdHJ1ZSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgbGVnZW5kOiBMZWdlbmRTZXJpZXNNb2RlbCA9IHtcclxuICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBib3JkZXIgPSB7IHdpZHRoOiAwIH0gYXMgQm9yZGVyTW9kZWw7XHJcbiAgcmVhZG9ubHkgbWFya2VyOiBNYXJrZXJPcHRpb25zTW9kZWwgPSB7XHJcbiAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgd2lkdGg6IDEwLFxyXG4gICAgaGVpZ2h0OiAxMFxyXG4gIH1cclxuICB1c2VycyQ6IE9ic2VydmFibGU8VXNlckluZm9bXT47XHJcbiAgYXNzaWduYWJsZSQ6IE9ic2VydmFibGU8VXNlckluZm9bXT47XHJcbiAgcGFsZXR0ZXM6IHN0cmluZ1tdID0gdGhpcy5fc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gIHRoZW1lOiAnTWF0ZXJpYWwnIHwgJ01hdGVyaWFsRGFyaycgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgZGF0YTogUHJvZmlsZUluZm87XHJcbiAgY29scyA9IDI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3V0aWxpdHlSZWY6IFV0aWxpdHlSZWY8Ym9vbGVhbiwgUmVhc3NpZ25Nb2RlbCwgUHJvZmlsZUluZm8sIHN0cmluZz4sXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBfZG9jdW1lbnRJbmZvOiBEb2N1bWVudEluZm8sXHJcbiAgICBtZWRpYTogTWVkaWFPYnNlcnZlcixcclxuICAgIHByaXZhdGUgX2NoYXQ6IENoYXRJbmZvLFxyXG4gICAgcHJpdmF0ZSBfZ3VpZGU6IEd1aWRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zbG90OiBQYW5lUmVmPFByb2ZpbGVyQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcikge1xyXG4gICAgbWVkaWEubWVkaWEkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUobSA9PiB0aGlzLmNvbHMgPSBtLm1xQWxpYXMgPT09ICdzbScgfHwgbS5tcUFsaWFzID09PSAneG0nID8gMSA6IDIpO1xyXG4gICAgX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgdGhpcy50aGVtZSA9IHQuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICAgICAgdGhpcy5wYWxldHRlcyA9IF9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zbG90LnF1ZXJ5UGFyYW1zQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIGNvbnN0IHsgaWQgfSA9IHA7XHJcbiAgICAgIGlkICYmIHRoaXMuX29wZW4oaWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9zbG90LnJlc2l6ZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHRoaXMucmVzaXplLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy51c2VycyQgPSB0aGlzLnNlYXJjaC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIGRlYm91bmNlVGltZSgyNTApLFxyXG4gICAgICBmaWx0ZXIodiA9PiAhaXNPYmplY3QodikpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYpKSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmYxJywgWyckZXZlbnQnXSlcclxuICBndWlkZShldnQ/OiBFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IHN0ZXBzOiBHdWlkZVN0ZXBbXSA9IFt7XHJcbiAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1zZWFyY2hdJyxcclxuICAgICAgcG9zaXRpb246ICdCZWxvdycsXHJcbiAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1Byb2ZpbGVyU2VhcmNoSGVscCcpXHJcbiAgICB9XTtcclxuICAgIGlmICh0aGlzLmRhdGEpIHtcclxuICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXJlYXNzaWduXScsXHJcbiAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUmVhc3NpZ25IZWxwJylcclxuICAgICAgfSk7XHJcbiAgICAgIE9iamVjdC5rZXlzKHRoaXMuZGF0YS5hY3Rpdml0eSkubGVuZ3RoICYmXHJcbiAgICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9YWN0aXZpdHldJyxcclxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0FjdGl2aXR5SGVscCcpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZGF0YS5wZW5kaW5nLmxlbmd0aCAmJlxyXG4gICAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXBlbmRpbmddJyxcclxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1BlbmRpbmdIZWxwJylcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5kYXRhLnBvc2l0aW9ucy5sZW5ndGggJiZcclxuICAgICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1wb3NpdGlvbnNdJyxcclxuICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1Bvc2l0aW9uc0hlbHAnKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZ3VpZGUuc3RhcnQoe1xyXG4gICAgICBuYW1lOiAncHJvZmlsZXInLFxyXG4gICAgICBzdGVwc1xyXG4gICAgfSk7XHJcbiAgICBldnQgJiYgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG4gIGNoYW5nZShldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgaWQgfSA9IGV2dC5vcHRpb24udmFsdWU7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW10sIHsgcXVlcnlQYXJhbXM6IHsgaWQgfSB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHVzZXJJZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX29wZW4odXNlcklkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3V0aWxpdHlSZWYucG9wdWxhdGUodXNlcklkKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGU7XHJcbiAgICAgIHdoaWxlICh0aGlzLmNoYXJ0LnNlcmllcy5sZW5ndGgpIHRoaXMuY2hhcnQucmVtb3ZlU2VyaWVzKDApO1xyXG4gICAgICB0aGlzLmNoYXJ0LmFkZFNlcmllcyh0aGlzLl9zZXJpZXMoKSk7XHJcbiAgICB9LCAoKSA9PiB0aGlzLl9zYi5lcnJvcigpKTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgcHJpdmF0ZSBfc2VyaWVzKCk6IFNlcmllc01vZGVsW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZGF0YS5hY3Rpdml0eSkubWFwKGEgPT4ge1xyXG4gICAgICBjb25zdCBsb2cgPSB0aGlzLmRhdGEuYWN0aXZpdHlbYV07XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogJ1NjYXR0ZXInLFxyXG4gICAgICAgIG5hbWU6IHRoaXMuX2FjdGlvbk5hbWUoYSksXHJcbiAgICAgICAgeE5hbWU6ICd0aW1lJyxcclxuICAgICAgICB5TmFtZTogJ2R1cmF0aW9uJyxcclxuICAgICAgICBkYXRhU291cmNlOiBsb2cubWFwKGwgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWQ6IGwuaWQsXHJcbiAgICAgICAgICAgIHRpbWU6IG5ldyBEYXRlKGwudGltZSksXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiBsLmR1cmF0aW9uXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FjdGlvbk5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbmQoYSA9PiBhLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgcmV0dXJuIGFjdGlvbiA/IGFjdGlvbi5wYXN0IHx8IGFjdGlvbi50aXRsZSA6IG5hbWU7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNoYXJ0RWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpO1xyXG4gICAgdGhpcy5jaGFydC53aWR0aCA9IHdpZHRoO1xyXG4gICAgdGhpcy5jaGFydC5oZWlnaHQgPSBoZWlnaHQ7XHJcbiAgfVxyXG4gIHBvaW50Q2xpY2soZXZ0OiBJUG9pbnRFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgaWQgfSA9IGV2dC5zZXJpZXMuZGF0YVNvdXJjZVtldnQucG9pbnRJbmRleF07XHJcbiAgICB0aGlzLl9kb2N1bWVudEluZm8ub3BlbihpZCk7XHJcbiAgfVxyXG4gIGRpc3BsYXkoaXRlbTogVXNlckluZm8pIHtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS5uYW1lIDogbnVsbDtcclxuICB9XHJcbiAgdHJhY2UoaWQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnYWRtaW4nLCAndXRpbGl0aWVzJywgJ2RvY3VtZW50LXRyYWNlJ10sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgaWQgfSxcclxuICAgICAgcG9saWN5OiBPcGVuUG9saWN5LkRlZmVyIHwgT3BlblBvbGljeS5QaW5uYWJsZVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGNoYXQodXNlcklkKSB7XHJcbiAgICB0aGlzLl9jaGF0Lm9wZW4odXNlcklkKTtcclxuICB9XHJcbiAgcmVhc3NpZ24ocG9zaXRpb24/OiBQb3NpdGlvbkluZm8pIHtcclxuICAgIHRoaXMuYXNzaWduYWJsZSQgPSB0aGlzLl9hY2NvdW50cy5maW5kQWxsKCkucGlwZShtYXAodSA9PiB1LmZpbHRlcih1ID0+IHUuaWQgIT09IHRoaXMuZGF0YS5pbmZvLmlkKSkpO1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW4odGhpcy5hc3NpZ24sIHt9KS5hZnRlckNsb3NlZCgpLlxyXG4gICAgICBzdWJzY3JpYmUodSA9PlxyXG4gICAgICAgIHUgJiYgdGhpcy5fcmVhc3NpZ24odSwgcG9zaXRpb24pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX3JlYXNzaWduKHdobzogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uSW5mbykge1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHsgd2hvLCAuLi5wb3NpdGlvbiwgdXNlcklkOiB0aGlzLmRhdGEuaW5mby5pZCB9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi50b2FzdCgnQXNzaWduZWQnKTtcclxuICAgICAgaWYgKHBvc2l0aW9uKVxyXG4gICAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMucmVtb3ZlKHBvc2l0aW9uKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMgPSBbXTtcclxuICAgIH0sICgpID0+XHJcbiAgICAgIHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICB0b29sdGlwUmVuZGVyKGU6IElUb29sdGlwUmVuZGVyRXZlbnRBcmdzKSB7XHJcbiAgICBlLnRleHQgPSBgJHttb21lbnQuZHVyYXRpb24oZS5wb2ludC55LCAncycpLmh1bWFuaXplKCl9YDtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBQcm9maWxlSW5mbyB7XHJcbiAgcG9zaXRpb25zOiBQb3NpdGlvbkluZm9bXTtcclxuICBhY3Rpdml0eToge1xyXG4gICAgW2FjdGlvbjogc3RyaW5nXToge1xyXG4gICAgICBpZDogbnVtYmVyO1xyXG4gICAgICAvKiogc2Vjb25kcyAqL1xyXG4gICAgICBkdXJhdGlvbjogbnVtYmVyO1xyXG4gICAgICBudW1iZXI6IHN0cmluZztcclxuICAgICAgdGltZTogRGF0ZTtcclxuICAgIH1bXVxyXG4gIH07XHJcbiAgcGVuZGluZzoge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIHJlY2VpdmVkOiBEYXRlO1xyXG4gICAgbnVtYmVyOiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGluZm86IFVzZXJJbmZvO1xyXG59XHJcbmludGVyZmFjZSBQb3NpdGlvbkluZm8ge1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIHJvbGU6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgUmVhc3NpZ25Nb2RlbCB7XHJcbiAgdXNlcklkOiBzdHJpbmc7XHJcbiAgd2hvOiBzdHJpbmc7XHJcbiAgcm9sZT86IHN0cmluZztcclxuICBrZXk/OiBhbnk7XHJcbn1cclxuIiwiPG1hdC10b29sYmFyPlxyXG4gIDxtYXQtaWNvbiAoY2xpY2spPVwibnVsbFwiIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgPGRpdj5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwic2VhcmNoXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW2Zvcm1Db250cm9sXT1cInNlYXJjaFwiIGRhdGEtaGVscD1cInNlYXJjaFwiIHdpZHRoPVwiMjBcIiAvPlxyXG4gICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2YgdXNlcnMkIHwgYXN5bmNcIiBbdmFsdWVdPVwidVwiPlxyXG4gICAgICAgIDxzcGFuPnt7dS5uYW1lfX08L3NwYW4+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICA8L2Rpdj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlYXNzaWduKClcIiBbYml6ZG9jVG9vbHRpcF09XCInUmVhc3NpZ25BbGwnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkYXRhIHx8ICFkYXRhLnBvc2l0aW9ucy5sZW5ndGhcIiBkYXRhLWhlbHA9XCJyZWFzc2lnblwiPjxtYXQtaWNvbj5zd2FwX2hvcml6PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZ3VpZGUoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidIZWxwJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5oZWxwX291dGxpbmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L21hdC10b29sYmFyPlxyXG48bWF0LWdyaWQtbGlzdCBbY29sc109XCJjb2xzXCIgW3N0eWxlLmRpc3BsYXldPVwiZGF0YSA/ICcnOiAnbm9uZSdcIj5cclxuICA8bWF0LWdyaWQtdGlsZT5cclxuICAgIDxtYXQtY2FyZD5cclxuICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICA8c3Bhbj57e2RhdGE/LmluZm8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2hhdChkYXRhLmluZm8uaWQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0NoYXQnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkYXRhXCI+PG1hdC1pY29uPmNoYXQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gIDwvbWF0LWdyaWQtdGlsZT5cclxuICA8bWF0LWdyaWQtdGlsZT5cclxuICAgIDxtYXQtY2FyZCBkYXRhLWhlbHA9XCJhY3Rpdml0eVwiPlxyXG4gICAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgIHt7J0FjdGl2aXR5JyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxlanMtY2hhcnQgI2FjdGl2aXR5IFtwcmltYXJ5WEF4aXNdPVwicHJpbWFyeVhBeGlzXCIgW3ByaW1hcnlZQXhpc109XCJwcmltYXJ5WUF4aXNcIiBbem9vbVNldHRpbmdzXT1cInpvb21TZXR0aW5nc1wiIFt0b29sdGlwXT0ndG9vbHRpcCcgKHRvb2x0aXBSZW5kZXIpPVwidG9vbHRpcFJlbmRlcigkZXZlbnQpXCIgW3BhbGV0dGVzXT1cInBhbGV0dGVzXCIgYmFja2dyb3VuZD1cInRyYW5zcGFyZW50XCIgW3RoZW1lXT0ndGhlbWUnIFtib3JkZXJdPVwiYm9yZGVyXCIgKHBvaW50Q2xpY2spPVwicG9pbnRDbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8ZS1zZXJpZXMtY29sbGVjdGlvbj5cclxuICAgICAgICAgIDwvZS1zZXJpZXMtY29sbGVjdGlvbj5cclxuICAgICAgICA8L2Vqcy1jaGFydD5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuICA8L21hdC1ncmlkLXRpbGU+XHJcbiAgPG1hdC1ncmlkLXRpbGU+XHJcbiAgICA8bWF0LWNhcmQgZGF0YS1oZWxwPVwicGVuZGluZ1wiPlxyXG4gICAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgIHt7J1BlbmRpbmcnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwibWF0LXRhYmxlXCIgKm5nSWY9XCJkYXRhPy5wZW5kaW5nLmxlbmd0aDsgZWxzZSBub25lXCI+XHJcbiAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIj5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIj48L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHIgb2YgZGF0YT8ucGVuZGluZ1wiIGNsYXNzPVwibWF0LXJvd1wiPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+PGEgKGNsaWNrKT1cInRyYWNlKHIuaWQpXCI+e3tyLm51bWJlcn19PC9hPjwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj57eyByLnJlY2VpdmVkIHwgYW1EaWZmZXJlbmNlIDogbnVsbCA6ICdzJyB8IGFtRHVyYXRpb24gOiAncyd9fTwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDwvbWF0LWNhcmQ+XHJcbiAgPC9tYXQtZ3JpZC10aWxlPlxyXG4gIDxtYXQtZ3JpZC10aWxlPlxyXG4gICAgPG1hdC1jYXJkIGRhdGEtaGVscD1cInBvc2l0aW9uc1wiPlxyXG4gICAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgIHt7J1Bvc2l0aW9ucycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiAqbmdJZj1cImRhdGE/LnBvc2l0aW9ucy5sZW5ndGg7IGVsc2Ugbm9uZVwiPlxyXG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBwIG9mIGRhdGE/LnBvc2l0aW9uc1wiIGNsYXNzPVwibWF0LXJvd1wiPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7cC52YWx1ZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+e3twLnJvbGUgfCByb2xlfX08L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZWFzc2lnbihwKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWFzc2lnbicgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+c3dhcF9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDwvbWF0LWNhcmQ+XHJcbiAgPC9tYXQtZ3JpZC10aWxlPlxyXG48L21hdC1ncmlkLWxpc3Q+XHJcbjwhLS0gZGlhbG9nIC0tPlxyXG48bmctdGVtcGxhdGUgI2Fzc2lnbj5cclxuICA8aDIgbWF0LWRpYWxvZy10aXRsZT57eydSZWFzc2lnbicgfCB0cmFuc2xhdGUgfX08L2gyPlxyXG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJ7eydXaG8nIHwgdHJhbnNsYXRlfX1cIiBbZm9ybUNvbnRyb2xdPVwid2hvXCIgcmVxdWlyZWQ+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdSBvZiBhc3NpZ25hYmxlJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInUuaWRcIj57e3UubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZm9ybT5cclxuICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cIndoby52YWx1ZVwiIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCIhd2hvLnZhbGlkXCI+e3snT0snIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPnt7J0NhbmNlbCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI25vbmU+XHJcbiAgPHNwYW4gY2xhc3M9XCJtYXQtYm9keS0yXCI+e3snTm9uZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9wcm9maWxlci9wcm9maWxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3Byb2ZpbGVyL3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBMEMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLekQsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFTL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSWhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBV3pDLGlCQUFpQixTQUFqQixpQkFBaUI7SUFtRDVCLFdBQVc7SUFDWCxZQUFvQixHQUFrQixFQUM1QixXQUFvRSxFQUNwRSxRQUF3QixFQUN4QixPQUFrQixFQUNsQixhQUEyQixFQUNuQyxLQUFvQixFQUNaLEtBQWUsRUFDZixNQUFvQixFQUNwQixPQUFvQixFQUNwQixLQUFpQyxFQUNqQyxVQUE0QixFQUM1QixTQUF5QixFQUN6QixHQUFnQjtRQVpOLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQXlEO1FBQ3BFLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDbEIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFFM0IsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUNmLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixVQUFLLEdBQUwsS0FBSyxDQUE0QjtRQUNqQyxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUN6QixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBL0RqQixXQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFJaEMsUUFBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEQsaUJBQVksR0FBRztZQUN0QixTQUFTLEVBQUUsVUFBVTtZQUNyQixXQUFXLEVBQUUsUUFBUTtZQUNyQixVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLFdBQVc7YUFDeEI7U0FDVyxDQUFDO1FBQ04saUJBQVksR0FBRztZQUN0QixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLEtBQUs7YUFDWjtTQUNXLENBQUM7UUFDTixpQkFBWSxHQUFzQjtZQUN6Qyx1QkFBdUIsRUFBRSxJQUFJO1lBQzdCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsc0JBQXNCLEVBQUUsS0FBSztZQUM3QixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDO1FBQ08sWUFBTyxHQUF5QjtZQUN2QyxNQUFNLEVBQUUsSUFBSTtZQUNaLE1BQU0sRUFBRSxJQUFJO1lBQ1osU0FBUyxFQUFFO2dCQUNULFVBQVUsRUFBRSxXQUFXO2FBQ3hCO1NBQ0YsQ0FBQztRQUNPLFdBQU0sR0FBc0I7WUFDbkMsT0FBTyxFQUFFLEtBQUs7WUFDZCxTQUFTLEVBQUU7Z0JBQ1QsVUFBVSxFQUFFLFdBQVc7YUFDeEI7U0FDRixDQUFDO1FBQ08sV0FBTSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBaUIsQ0FBQztRQUNyQyxXQUFNLEdBQXVCO1lBQ3BDLE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUE7UUFHRCxhQUFRLEdBQWEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDakQsVUFBSyxHQUFnQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBRTVGLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDUSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQWU5QyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6SCxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN6QyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ2pCLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUNsRSxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3pCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsS0FBSyxDQUFDLEdBQTJCO1FBQy9CLE1BQU0sS0FBSyxHQUFnQixDQUFDO2dCQUMxQixRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixRQUFRLEVBQUUsT0FBTztnQkFDakIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDO2FBQ25ELENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQzthQUM3QyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTTtnQkFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO2lCQUM3QyxDQUFDLENBQUM7WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7aUJBQzVDLENBQUMsQ0FBQztZQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07Z0JBQ3hCLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztpQkFDOUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNoQixJQUFJLEVBQUUsVUFBVTtZQUNoQixLQUFLO1NBQ04sQ0FBQyxDQUFDO1FBQ0gsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBQ0QsTUFBTSxDQUFDLEdBQWlDO1FBQ3RDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUNEOzs7T0FHRztJQUNLLEtBQUssQ0FBQyxNQUFjO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUNkLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN2QyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxNQUFNO0lBQ0UsT0FBTztRQUNiLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxPQUFPO2dCQUNMLElBQUksRUFBRSxTQUFTO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztnQkFDekIsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLFVBQVUsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN0QixPQUFPO3dCQUNMLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTt3QkFDUixJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt3QkFDdEIsUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO3FCQUNyQixDQUFDO2dCQUNKLENBQUMsQ0FBQzthQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBWTtRQUM5QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUN4RSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckQsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFGLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUNELFVBQVUsQ0FBQyxHQUFvQjtRQUM3QixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBYztRQUNwQixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFDRCxLQUFLLENBQUMsRUFBVTtRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFO1lBQzlELFdBQVcsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUNuQixNQUFNLEVBQUUsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUTtTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU07UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsUUFBUSxDQUFDLFFBQXVCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFO1lBQzlDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNaLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FDakMsQ0FBQztJQUNOLENBQUM7SUFDRCxNQUFNO0lBQ0UsU0FBUyxDQUFDLEdBQVcsRUFBRSxRQUF1QjtRQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3ZGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNCLElBQUksUUFBUTtnQkFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7O2dCQUVyQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDN0IsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQ0QsYUFBYSxDQUFDLENBQTBCO1FBQ3RDLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQUNGLENBQUE7OEdBMU1ZLGlCQUFpQjtrR0FBakIsaUJBQWlCLGlWQUdHLFVBQVUsZ0hDckMzQyxveEpBNkdBO0FEM0VhLGlCQUFpQjtJQUY3QixNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQztJQUM3QyxlQUFlO0dBQ0YsaUJBQWlCLENBME03QjtTQTFNWSxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFUN0IsU0FBUzsyQkFHRjt3QkFDSixLQUFLLEVBQUUsTUFBTTtxQkFDZDtxYUFNc0IsS0FBSztzQkFBM0IsU0FBUzt1QkFBQyxVQUFVO2dCQUN3QixZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3RCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkErRW5CLEtBQUs7c0JBREosWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkEwRTdDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uSW5pdCwgT25EZXN0cm95LCBJbmplY3QsIFRlbXBsYXRlUmVmLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBNZWRpYU9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBBeGlzTW9kZWwsIEJvcmRlck1vZGVsLCBDaGFydENvbXBvbmVudCwgSVBvaW50RXZlbnRBcmdzLCBJVG9vbHRpcFJlbmRlckV2ZW50QXJncywgTGVnZW5kU2VyaWVzTW9kZWwsIE1hcmtlck9wdGlvbnNNb2RlbCwgU2VyaWVzTW9kZWwsIFRvb2x0aXBTZXR0aW5nc01vZGVsLCBab29tU2V0dGluZ3NNb2RlbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUsIHN3aXRjaE1hcCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEd1aWRlU3RlcCwgVXNlckluZm8gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tICcuLi91dGlsaXR5LXJlZic7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL2NvcmUvaW5mby9kb2N1bWVudC1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpZGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9ndWlkZS9ndWlkZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGT05UX0ZBTUlMWSB9IGZyb20gJy4uLy4uL2NvcmUvY29sb3JzJztcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tICcuLi8uLi9jaGF0L2NoYXQtaW5mbyc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZmlsZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2ZpbGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH1cclxufSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnYml6ZG9jLXVzZXItcHJvZmlsZXInIH0pXHJcbi8qKiBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgUHJvZmlsZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgc2VhcmNoID0gdGhpcy5fZmIuY29udHJvbChudWxsKTtcclxuICBAVmlld0NoaWxkKCdhY3Rpdml0eScpIGNoYXJ0OiBDaGFydENvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdhY3Rpdml0eScsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjaGFydEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYXNzaWduJykgYXNzaWduOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHJlYWRvbmx5IHdobyA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVhBeGlzID0ge1xyXG4gICAgdmFsdWVUeXBlOiAnRGF0ZVRpbWUnLFxyXG4gICAgbGFiZWxGb3JtYXQ6ICdNTU0gZGQnLFxyXG4gICAgbGFiZWxTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH0gYXMgQXhpc01vZGVsO1xyXG4gIHJlYWRvbmx5IHByaW1hcnlZQXhpcyA9IHtcclxuICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgc2l6ZTogJzBweCdcclxuICAgIH0sXHJcbiAgfSBhcyBBeGlzTW9kZWw7XHJcbiAgcmVhZG9ubHkgem9vbVNldHRpbmdzOiBab29tU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGVuYWJsZU1vdXNlV2hlZWxab29taW5nOiB0cnVlLFxyXG4gICAgZW5hYmxlUGluY2hab29taW5nOiB0cnVlLFxyXG4gICAgdG9vbGJhckl0ZW1zOiBbXSxcclxuICAgIGVuYWJsZVNlbGVjdGlvblpvb21pbmc6IGZhbHNlLFxyXG4gICAgZW5hYmxlU2Nyb2xsYmFyOiB0cnVlXHJcbiAgfTtcclxuICByZWFkb25seSB0b29sdGlwOiBUb29sdGlwU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGVuYWJsZTogdHJ1ZSxcclxuICAgIHNoYXJlZDogdHJ1ZSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgbGVnZW5kOiBMZWdlbmRTZXJpZXNNb2RlbCA9IHtcclxuICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBib3JkZXIgPSB7IHdpZHRoOiAwIH0gYXMgQm9yZGVyTW9kZWw7XHJcbiAgcmVhZG9ubHkgbWFya2VyOiBNYXJrZXJPcHRpb25zTW9kZWwgPSB7XHJcbiAgICB2aXNpYmxlOiB0cnVlLFxyXG4gICAgd2lkdGg6IDEwLFxyXG4gICAgaGVpZ2h0OiAxMFxyXG4gIH1cclxuICB1c2VycyQ6IE9ic2VydmFibGU8VXNlckluZm9bXT47XHJcbiAgYXNzaWduYWJsZSQ6IE9ic2VydmFibGU8VXNlckluZm9bXT47XHJcbiAgcGFsZXR0ZXM6IHN0cmluZ1tdID0gdGhpcy5fc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gIHRoZW1lOiAnTWF0ZXJpYWwnIHwgJ01hdGVyaWFsRGFyaycgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgZGF0YTogUHJvZmlsZUluZm87XHJcbiAgY29scyA9IDI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIGN0b3IgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3V0aWxpdHlSZWY6IFV0aWxpdHlSZWY8Ym9vbGVhbiwgUmVhc3NpZ25Nb2RlbCwgUHJvZmlsZUluZm8sIHN0cmluZz4sXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBfZG9jdW1lbnRJbmZvOiBEb2N1bWVudEluZm8sXHJcbiAgICBtZWRpYTogTWVkaWFPYnNlcnZlcixcclxuICAgIHByaXZhdGUgX2NoYXQ6IENoYXRJbmZvLFxyXG4gICAgcHJpdmF0ZSBfZ3VpZGU6IEd1aWRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9zbG90OiBQYW5lUmVmPFByb2ZpbGVyQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcikge1xyXG4gICAgbWVkaWEubWVkaWEkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUobSA9PiB0aGlzLmNvbHMgPSBtLm1xQWxpYXMgPT09ICdzbScgfHwgbS5tcUFsaWFzID09PSAneG0nID8gMSA6IDIpO1xyXG4gICAgX3Nlc3Npb24udGhlbWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgdGhpcy50aGVtZSA9IHQuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICAgICAgdGhpcy5wYWxldHRlcyA9IF9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zbG90LnF1ZXJ5UGFyYW1zQ2hhbmdlLnN1YnNjcmliZShwID0+IHtcclxuICAgICAgY29uc3QgeyBpZCB9ID0gcDtcclxuICAgICAgaWQgJiYgdGhpcy5fb3BlbihpZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3Nsb3QucmVzaXplLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodGhpcy5yZXNpemUuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLnVzZXJzJCA9IHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgIGZpbHRlcih2ID0+ICFpc09iamVjdCh2KSksXHJcbiAgICAgIHN3aXRjaE1hcCh2ID0+IHRoaXMuX2FjY291bnRzLmZpbmRBbGwodikpKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24uZjEnLCBbJyRldmVudCddKVxyXG4gIGd1aWRlKGV2dD86IEV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3Qgc3RlcHM6IEd1aWRlU3RlcFtdID0gW3tcclxuICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXNlYXJjaF0nLFxyXG4gICAgICBwb3NpdGlvbjogJ0JlbG93JyxcclxuICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUHJvZmlsZXJTZWFyY2hIZWxwJylcclxuICAgIH1dO1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9cmVhc3NpZ25dJyxcclxuICAgICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdSZWFzc2lnbkhlbHAnKVxyXG4gICAgICB9KTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5kYXRhLmFjdGl2aXR5KS5sZW5ndGggJiZcclxuICAgICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1hY3Rpdml0eV0nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnQWN0aXZpdHlIZWxwJylcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5kYXRhLnBlbmRpbmcubGVuZ3RoICYmXHJcbiAgICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9cGVuZGluZ10nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUGVuZGluZ0hlbHAnKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRhdGEucG9zaXRpb25zLmxlbmd0aCAmJlxyXG4gICAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXBvc2l0aW9uc10nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUG9zaXRpb25zSGVscCcpXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9ndWlkZS5zdGFydCh7XHJcbiAgICAgIG5hbWU6ICdwcm9maWxlcicsXHJcbiAgICAgIHN0ZXBzXHJcbiAgICB9KTtcclxuICAgIGV2dCAmJiBldnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgY2hhbmdlKGV2dDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgY29uc3QgeyBpZCB9ID0gZXZ0Lm9wdGlvbi52YWx1ZTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbXSwgeyBxdWVyeVBhcmFtczogeyBpZCB9IH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdXNlcklkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfb3Blbih1c2VySWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5wb3B1bGF0ZSh1c2VySWQpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgdGhpcy5kYXRhID0gZTtcclxuICAgICAgd2hpbGUgKHRoaXMuY2hhcnQuc2VyaWVzLmxlbmd0aCkgdGhpcy5jaGFydC5yZW1vdmVTZXJpZXMoMCk7XHJcbiAgICAgIHRoaXMuY2hhcnQuYWRkU2VyaWVzKHRoaXMuX3NlcmllcygpKTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9zZXJpZXMoKTogU2VyaWVzTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5kYXRhLmFjdGl2aXR5KS5tYXAoYSA9PiB7XHJcbiAgICAgIGNvbnN0IGxvZyA9IHRoaXMuZGF0YS5hY3Rpdml0eVthXTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiAnU2NhdHRlcicsXHJcbiAgICAgICAgbmFtZTogdGhpcy5fYWN0aW9uTmFtZShhKSxcclxuICAgICAgICB4TmFtZTogJ3RpbWUnLFxyXG4gICAgICAgIHlOYW1lOiAnZHVyYXRpb24nLFxyXG4gICAgICAgIGRhdGFTb3VyY2U6IGxvZy5tYXAobCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogbC5pZCxcclxuICAgICAgICAgICAgdGltZTogbmV3IERhdGUobC50aW1lKSxcclxuICAgICAgICAgICAgZHVyYXRpb246IGwuZHVyYXRpb25cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSlcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYWN0aW9uTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gYWN0aW9uID8gYWN0aW9uLnBhc3QgfHwgYWN0aW9uLnRpdGxlIDogbmFtZTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgcmVzaXplKCkge1xyXG4gICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBnZXRDb21wdXRlZFN0eWxlKHRoaXMuY2hhcnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCk7XHJcbiAgICB0aGlzLmNoYXJ0LndpZHRoID0gd2lkdGg7XHJcbiAgICB0aGlzLmNoYXJ0LmhlaWdodCA9IGhlaWdodDtcclxuICB9XHJcbiAgcG9pbnRDbGljayhldnQ6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBpZCB9ID0gZXZ0LnNlcmllcy5kYXRhU291cmNlW2V2dC5wb2ludEluZGV4XTtcclxuICAgIHRoaXMuX2RvY3VtZW50SW5mby5vcGVuKGlkKTtcclxuICB9XHJcbiAgZGlzcGxheShpdGVtOiBVc2VySW5mbykge1xyXG4gICAgcmV0dXJuIGl0ZW0gPyBpdGVtLm5hbWUgOiBudWxsO1xyXG4gIH1cclxuICB0cmFjZShpZDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydhZG1pbicsICd1dGlsaXRpZXMnLCAnZG9jdW1lbnQtdHJhY2UnXSwge1xyXG4gICAgICBxdWVyeVBhcmFtczogeyBpZCB9LFxyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGVmZXIgfCBPcGVuUG9saWN5LlBpbm5hYmxlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY2hhdCh1c2VySWQpIHtcclxuICAgIHRoaXMuX2NoYXQub3Blbih1c2VySWQpO1xyXG4gIH1cclxuICByZWFzc2lnbihwb3NpdGlvbj86IFBvc2l0aW9uSW5mbykge1xyXG4gICAgdGhpcy5hc3NpZ25hYmxlJCA9IHRoaXMuX2FjY291bnRzLmZpbmRBbGwoKS5waXBlKG1hcCh1ID0+IHUuZmlsdGVyKHUgPT4gdS5pZCAhPT0gdGhpcy5kYXRhLmluZm8uaWQpKSk7XHJcbiAgICB0aGlzLl9kaWFsb2cub3Blbih0aGlzLmFzc2lnbiwge30pLmFmdGVyQ2xvc2VkKCkuXHJcbiAgICAgIHN1YnNjcmliZSh1ID0+XHJcbiAgICAgICAgdSAmJiB0aGlzLl9yZWFzc2lnbih1LCBwb3NpdGlvbilcclxuICAgICAgKTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgcHJpdmF0ZSBfcmVhc3NpZ24od2hvOiBzdHJpbmcsIHBvc2l0aW9uPzogUG9zaXRpb25JbmZvKSB7XHJcbiAgICB0aGlzLl91dGlsaXR5UmVmLmV4ZWN1dGUoeyB3aG8sIC4uLnBvc2l0aW9uLCB1c2VySWQ6IHRoaXMuZGF0YS5pbmZvLmlkIH0pLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX3NiLnRvYXN0KCdBc3NpZ25lZCcpO1xyXG4gICAgICBpZiAocG9zaXRpb24pXHJcbiAgICAgICAgdGhpcy5kYXRhLnBvc2l0aW9ucy5yZW1vdmUocG9zaXRpb24pO1xyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5kYXRhLnBvc2l0aW9ucyA9IFtdO1xyXG4gICAgfSwgKCkgPT5cclxuICAgICAgdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgfVxyXG4gIHRvb2x0aXBSZW5kZXIoZTogSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MpIHtcclxuICAgIGUudGV4dCA9IGAke2RheWpzLmR1cmF0aW9uKGUucG9pbnQueSBhcyBudW1iZXIsICdzJykuaHVtYW5pemUoKX1gO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIFByb2ZpbGVJbmZvIHtcclxuICBwb3NpdGlvbnM6IFBvc2l0aW9uSW5mb1tdO1xyXG4gIGFjdGl2aXR5OiB7XHJcbiAgICBbYWN0aW9uOiBzdHJpbmddOiB7XHJcbiAgICAgIGlkOiBudW1iZXI7XHJcbiAgICAgIC8qKiBzZWNvbmRzICovXHJcbiAgICAgIGR1cmF0aW9uOiBudW1iZXI7XHJcbiAgICAgIG51bWJlcjogc3RyaW5nO1xyXG4gICAgICB0aW1lOiBEYXRlO1xyXG4gICAgfVtdXHJcbiAgfTtcclxuICBwZW5kaW5nOiB7XHJcbiAgICBpZDogbnVtYmVyO1xyXG4gICAgcmVjZWl2ZWQ6IERhdGU7XHJcbiAgICBudW1iZXI6IHN0cmluZztcclxuICB9W107XHJcbiAgaW5mbzogVXNlckluZm87XHJcbn1cclxuaW50ZXJmYWNlIFBvc2l0aW9uSW5mbyB7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgcm9sZTogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBSZWFzc2lnbk1vZGVsIHtcclxuICB1c2VySWQ6IHN0cmluZztcclxuICB3aG86IHN0cmluZztcclxuICByb2xlPzogc3RyaW5nO1xyXG4gIGtleT86IGFueTtcclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPG1hdC1pY29uIChjbGljayk9XCJudWxsXCIgY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+c2VhcmNoPC9tYXQtaWNvbj5cclxuICA8ZGl2PlxyXG4gICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJzZWFyY2hcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoXCIgZGF0YS1oZWxwPVwic2VhcmNoXCIgd2lkdGg9XCIyMFwiIC8+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIFtkaXNwbGF5V2l0aF09XCJkaXNwbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdSBvZiB1c2VycyQgfCBhc3luY1wiIFt2YWx1ZV09XCJ1XCI+XHJcbiAgICAgICAgPHNwYW4+e3t1Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gIDwvZGl2PlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVhc3NpZ24oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWFzc2lnbkFsbCcgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWRhdGEgfHwgIWRhdGEucG9zaXRpb25zLmxlbmd0aFwiIGRhdGEtaGVscD1cInJlYXNzaWduXCI+PG1hdC1pY29uPnN3YXBfaG9yaXo8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJndWlkZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPmhlbHBfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxtYXQtZ3JpZC1saXN0IFtjb2xzXT1cImNvbHNcIiBbc3R5bGUuZGlzcGxheV09XCJkYXRhID8gJyc6ICdub25lJ1wiPlxyXG4gIDxtYXQtZ3JpZC10aWxlPlxyXG4gICAgPG1hdC1jYXJkPlxyXG4gICAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICAgIDxzcGFuPnt7ZGF0YT8uaW5mby5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjaGF0KGRhdGEuaW5mby5pZClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ2hhdCcgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWRhdGFcIj48bWF0LWljb24+Y2hhdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDwvbWF0LWNhcmQ+XHJcbiAgPC9tYXQtZ3JpZC10aWxlPlxyXG4gIDxtYXQtZ3JpZC10aWxlPlxyXG4gICAgPG1hdC1jYXJkIGRhdGEtaGVscD1cImFjdGl2aXR5XCI+XHJcbiAgICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAge3snQWN0aXZpdHknIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPGVqcy1jaGFydCAjYWN0aXZpdHkgW3ByaW1hcnlYQXhpc109XCJwcmltYXJ5WEF4aXNcIiBbcHJpbWFyeVlBeGlzXT1cInByaW1hcnlZQXhpc1wiIFt6b29tU2V0dGluZ3NdPVwiem9vbVNldHRpbmdzXCIgW3Rvb2x0aXBdPSd0b29sdGlwJyAodG9vbHRpcFJlbmRlcik9XCJ0b29sdGlwUmVuZGVyKCRldmVudClcIiBbcGFsZXR0ZXNdPVwicGFsZXR0ZXNcIiBiYWNrZ3JvdW5kPVwidHJhbnNwYXJlbnRcIiBbdGhlbWVdPSd0aGVtZScgW2JvcmRlcl09XCJib3JkZXJcIiAocG9pbnRDbGljayk9XCJwb2ludENsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgIDxlLXNlcmllcy1jb2xsZWN0aW9uPlxyXG4gICAgICAgICAgPC9lLXNlcmllcy1jb2xsZWN0aW9uPlxyXG4gICAgICAgIDwvZWpzLWNoYXJ0PlxyXG4gICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG4gIDwvbWF0LWdyaWQtdGlsZT5cclxuICA8bWF0LWdyaWQtdGlsZT5cclxuICAgIDxtYXQtY2FyZCBkYXRhLWhlbHA9XCJwZW5kaW5nXCI+XHJcbiAgICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAge3snUGVuZGluZycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiAqbmdJZj1cImRhdGE/LnBlbmRpbmcubGVuZ3RoOyBlbHNlIG5vbmVcIj5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+PC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgciBvZiBkYXRhPy5wZW5kaW5nXCIgY2xhc3M9XCJtYXQtcm93XCI+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj48YSAoY2xpY2spPVwidHJhY2Uoci5pZClcIj57e3IubnVtYmVyfX08L2E+PC90ZD5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7IHIucmVjZWl2ZWQgfCBhbURpZmZlcmVuY2UgOiBudWxsIDogJ3MnIHwgYW1EdXJhdGlvbiA6ICdzJ319PC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuICA8L21hdC1ncmlkLXRpbGU+XHJcbiAgPG1hdC1ncmlkLXRpbGU+XHJcbiAgICA8bWF0LWNhcmQgZGF0YS1oZWxwPVwicG9zaXRpb25zXCI+XHJcbiAgICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAge3snUG9zaXRpb25zJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICAgIDx0YWJsZSBjbGFzcz1cIm1hdC10YWJsZVwiICpuZ0lmPVwiZGF0YT8ucG9zaXRpb25zLmxlbmd0aDsgZWxzZSBub25lXCI+XHJcbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHAgb2YgZGF0YT8ucG9zaXRpb25zXCIgY2xhc3M9XCJtYXQtcm93XCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+e3twLnZhbHVlIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj57e3Aucm9sZSB8IHJvbGV9fTwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlYXNzaWduKHApXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlYXNzaWduJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5zd2FwX2hvcml6PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPC9tYXQtY2FyZD5cclxuICA8L21hdC1ncmlkLXRpbGU+XHJcbjwvbWF0LWdyaWQtbGlzdD5cclxuPCEtLSBkaWFsb2cgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjYXNzaWduPlxyXG4gIDxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7J1JlYXNzaWduJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XHJcbiAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cInt7J1dobycgfCB0cmFuc2xhdGV9fVwiIFtmb3JtQ29udHJvbF09XCJ3aG9cIiByZXF1aXJlZD5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIGFzc2lnbmFibGUkIHwgYXN5bmNcIiBbdmFsdWVdPVwidS5pZFwiPnt7dS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwid2hvLnZhbHVlXCIgY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiF3aG8udmFsaWRcIj57eydPSycgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+e3snQ2FuY2VsJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjbm9uZT5cclxuICA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTJcIj57eydOb25lJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
@@ -2,7 +2,6 @@ import { BrowserModule } from '@angular/platform-browser';
|
|
2
2
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
3
3
|
import { NgModule } from '@angular/core';
|
4
4
|
import { RouterModule } from '@angular/router';
|
5
|
-
import { MomentModule } from 'ngx-moment';
|
6
5
|
import { MaterialModule } from './modules/material.module';
|
7
6
|
import { BIZDOC_CONFIG } from './core/configuration';
|
8
7
|
import { PANES_DATA } from './core/slots/pane-ref';
|
@@ -18,9 +17,8 @@ import { MAT_DATE_FORMATS } from '@angular/material/core';
|
|
18
17
|
import * as i0 from "@angular/core";
|
19
18
|
import * as i1 from "@angular/platform-browser";
|
20
19
|
import * as i2 from "@angular/router";
|
21
|
-
import * as i3 from "
|
22
|
-
import * as i4 from "./
|
23
|
-
import * as i5 from "./shared.module";
|
20
|
+
import * as i3 from "./system.module";
|
21
|
+
import * as i4 from "./shared.module";
|
24
22
|
export class BizDocModule {
|
25
23
|
static forChild(config) {
|
26
24
|
const { components } = config;
|
@@ -60,18 +58,13 @@ export class BizDocModule {
|
|
60
58
|
}
|
61
59
|
}
|
62
60
|
BizDocModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: BizDocModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
63
|
-
BizDocModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: BizDocModule, imports: [i1.BrowserModule, BrowserAnimationsModule, i2.RouterModule,
|
64
|
-
DesktopModule,
|
61
|
+
BizDocModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: BizDocModule, imports: [i1.BrowserModule, BrowserAnimationsModule, i2.RouterModule, MobileModule,
|
62
|
+
DesktopModule, i3.SystemModule, i4.SharedModule], exports: [SharedModule,
|
65
63
|
MaterialModule] });
|
66
64
|
BizDocModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: BizDocModule, imports: [[
|
67
65
|
BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),
|
68
66
|
BrowserAnimationsModule,
|
69
67
|
RouterModule.forRoot(ROUTES, { initialNavigation: 'disabled' }),
|
70
|
-
MomentModule.forRoot({
|
71
|
-
relativeTimeThresholdOptions: {
|
72
|
-
s: 30
|
73
|
-
},
|
74
|
-
}),
|
75
68
|
MobileModule,
|
76
69
|
DesktopModule,
|
77
70
|
SystemModule.forChild(),
|
@@ -86,11 +79,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
|
|
86
79
|
BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),
|
87
80
|
BrowserAnimationsModule,
|
88
81
|
RouterModule.forRoot(ROUTES, { initialNavigation: 'disabled' }),
|
89
|
-
MomentModule.forRoot({
|
90
|
-
relativeTimeThresholdOptions: {
|
91
|
-
s: 30
|
92
|
-
},
|
93
|
-
}),
|
94
82
|
MobileModule,
|
95
83
|
DesktopModule,
|
96
84
|
SystemModule.forChild(),
|
@@ -102,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImpor
|
|
102
90
|
]
|
103
91
|
}]
|
104
92
|
}] });
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYml6ZG9jLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYml6ZG9jLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFFBQVEsRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFtQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQWtCMUQsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUF5QjtRQUN2QyxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQzlCLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9CLE9BQU87WUFDTCxRQUFRLEVBQUUsWUFBWTtZQUN0QixTQUFTLEVBQUUsRUFBRTtTQUNkLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFvQjtRQUNqQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDL0Msa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsTUFBTSxTQUFTLEdBQUc7WUFDaEIsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsRUFBRTtZQUNwRTtnQkFDRSxPQUFPLEVBQUUsYUFBYTtnQkFDdEIsUUFBUSxFQUFFLE1BQU07YUFDakI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFO29CQUNuQyxLQUFLLEVBQUU7d0JBQ0wsU0FBUyxFQUFFLElBQUk7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxTQUFTLEVBQUUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUk7d0JBQ3ZDLGNBQWMsRUFBRSxVQUFVO3dCQUMxQixhQUFhLEVBQUUsSUFBSTt3QkFDbkIsa0JBQWtCLEVBQUUsV0FBVztxQkFDaEM7aUJBQ0Y7YUFDRjtTQUNZLENBQUM7UUFDaEIsT0FBTztZQUNMLFFBQVEsRUFBRSxZQUFZO1lBQ3RCLFNBQVM7U0FDVixDQUFDO0lBQ0osQ0FBQzs7eUdBcENVLFlBQVk7MEdBQVosWUFBWSw4QkFackIsdUJBQXVCLG1CQUV2QixZQUFZO1FBQ1osYUFBYSwrQ0FLYixZQUFZO1FBQ1osY0FBYzswR0FHTCxZQUFZLFlBZGQ7WUFDUCxhQUFhLENBQUMsb0JBQW9CLENBQUMsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQztZQUNqRSx1QkFBdUI7WUFDdkIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUMvRCxZQUFZO1lBQ1osYUFBYTtZQUNiLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDdkIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUMvRCxFQUVDLFlBQVk7UUFDWixjQUFjOzJGQUdMLFlBQVk7a0JBaEJ4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsYUFBYSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLENBQUM7d0JBQ2pFLHVCQUF1Qjt3QkFDdkIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsQ0FBQzt3QkFDL0QsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVksQ0FBQyxRQUFRLEVBQUU7d0JBQ3ZCLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7cUJBQy9EO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7cUJBQ2Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgTmdNb2R1bGUsIE1vZHVsZVdpdGhQcm92aWRlcnMsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL21hdGVyaWFsLm1vZHVsZSdcclxuaW1wb3J0IHsgQklaRE9DX0NPTkZJRywgQml6RG9jQ29uZmlnLCBCaXpEb2NDaGlsZENvbmZpZyB9IGZyb20gJy4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUEFORVNfREFUQSB9IGZyb20gJy4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IFBBTkVTX0NPTkZJRyB9IGZyb20gJy4vcm91dGVzLmRlc2t0b3AnO1xyXG5pbXBvcnQgeyBST1VURVMgfSBmcm9tICcuL3JvdXRlcy5tb2JpbGUnO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuL3NoYXJlZC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBNb2JpbGVNb2R1bGUgfSBmcm9tICcuL21vYmlsZS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBTeXN0ZW1Nb2R1bGUgfSBmcm9tICcuL3N5c3RlbS5tb2R1bGUnO1xyXG5pbXBvcnQgeyBEZXNrdG9wTW9kdWxlIH0gZnJvbSAnLi9kZXNrdG9wLm1vZHVsZSc7XHJcbmltcG9ydCB7IHJlZ2lzdGVyQ29tcG9uZW50cyB9IGZyb20gJy4vY29yZS9jb21wb25lbnQtZmFjdG9yeS1yZXNvbHZlcic7XHJcbmltcG9ydCB7IGlzTW9iaWxlIH0gZnJvbSAnLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCcm93c2VyTW9kdWxlLndpdGhTZXJ2ZXJUcmFuc2l0aW9uKHsgYXBwSWQ6ICduZy1jbGktdW5pdmVyc2FsJyB9KSxcclxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLmZvclJvb3QoUk9VVEVTLCB7IGluaXRpYWxOYXZpZ2F0aW9uOiAnZGlzYWJsZWQnIH0pLFxyXG4gICAgTW9iaWxlTW9kdWxlLFxyXG4gICAgRGVza3RvcE1vZHVsZSxcclxuICAgIFN5c3RlbU1vZHVsZS5mb3JDaGlsZCgpLFxyXG4gICAgU2hhcmVkTW9kdWxlLmZvckNoaWxkKHsgcm91dGluZzogaXNNb2JpbGUoKSA/ICduZycgOiAncGFuZScgfSlcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFNoYXJlZE1vZHVsZSxcclxuICAgIE1hdGVyaWFsTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQml6RG9jTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yQ2hpbGQoY29uZmlnOiBCaXpEb2NDaGlsZENvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8Qml6RG9jTW9kdWxlPiB7XHJcbiAgICBjb25zdCB7IGNvbXBvbmVudHMgfSA9IGNvbmZpZztcclxuICAgIHJlZ2lzdGVyQ29tcG9uZW50cyhjb21wb25lbnRzKTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBCaXpEb2NNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW11cclxuICAgIH07XHJcbiAgfVxyXG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZzogQml6RG9jQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxCaXpEb2NNb2R1bGU+IHtcclxuICAgIGNvbnN0IHsgZm9ybWF0cywgcm91dGVzLCBjb21wb25lbnRzIH0gPSBjb25maWc7XHJcbiAgICByZWdpc3RlckNvbXBvbmVudHMoY29tcG9uZW50cyk7XHJcbiAgICBjb25zdCBwcm92aWRlcnMgPSBbXHJcbiAgICAgIHsgcHJvdmlkZTogUEFORVNfREFUQSwgdXNlVmFsdWU6IFBBTkVTX0NPTkZJRy5jb25jYXQocm91dGVzIHx8IFtdKSB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogQklaRE9DX0NPTkZJRyxcclxuICAgICAgICB1c2VWYWx1ZTogY29uZmlnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZToge1xyXG4gICAgICAgICAgcGFyc2U6IHtcclxuICAgICAgICAgICAgZGF0ZUlucHV0OiAnTEwnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRpc3BsYXk6IHtcclxuICAgICAgICAgICAgZGF0ZUlucHV0OiAoZm9ybWF0cyB8fCB7fSkuZGF0ZSB8fCAnbGwnLFxyXG4gICAgICAgICAgICBtb250aFllYXJMYWJlbDogJ01NTSBZWVlZJyxcclxuICAgICAgICAgICAgZGF0ZUExMXlMYWJlbDogJ0xMJyxcclxuICAgICAgICAgICAgbW9udGhZZWFyQTExeUxhYmVsOiAnTU1NTSBZWVlZJyxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICBdIGFzIFByb3ZpZGVyW107XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogQml6RG9jTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnNcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|