@syncfusion/ej2-angular-gantt 34.2.4 → 34.2.5-ngcc
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/@syncfusion/ej2-angular-gantt.es5.js +958 -0
- package/@syncfusion/ej2-angular-gantt.es5.js.map +1 -0
- package/@syncfusion/ej2-angular-gantt.js +906 -0
- package/@syncfusion/ej2-angular-gantt.js.map +1 -0
- package/LICENSE +10 -0
- package/README.md +25 -26
- package/dist/ej2-angular-gantt.umd.js +1078 -0
- package/dist/ej2-angular-gantt.umd.js.map +1 -0
- package/dist/ej2-angular-gantt.umd.min.js +2 -0
- package/dist/ej2-angular-gantt.umd.min.js.map +1 -0
- package/ej2-angular-gantt.d.ts +5 -0
- package/ej2-angular-gantt.metadata.json +1 -0
- package/package.json +9 -22
- package/public_api.d.ts +1 -1
- package/schematics/utils/lib-details.js +2 -2
- package/schematics/utils/lib-details.ts +2 -2
- package/src/gantt/adddialogfields.directive.d.ts +53 -58
- package/src/gantt/columns.directive.d.ts +236 -242
- package/src/gantt/dayworkingtime.directive.d.ts +36 -41
- package/src/gantt/editdialogfields.directive.d.ts +53 -58
- package/src/gantt/eventmarkers.directive.d.ts +49 -54
- package/src/gantt/gantt-all.module.d.ts +23 -29
- package/src/gantt/gantt.component.d.ts +164 -169
- package/src/gantt/gantt.module.d.ts +5 -18
- package/src/gantt/holidays.directive.d.ts +59 -64
- package/src/gantt/weekworkingtime.directive.d.ts +38 -43
- package/src/index.d.ts +11 -11
- package/CHANGELOG.md +0 -2812
- package/esm2020/public_api.mjs +0 -2
- package/esm2020/src/gantt/adddialogfields.directive.mjs +0 -58
- package/esm2020/src/gantt/columns.directive.mjs +0 -102
- package/esm2020/src/gantt/dayworkingtime.directive.mjs +0 -58
- package/esm2020/src/gantt/editdialogfields.directive.mjs +0 -58
- package/esm2020/src/gantt/eventmarkers.directive.mjs +0 -57
- package/esm2020/src/gantt/gantt-all.module.mjs +0 -77
- package/esm2020/src/gantt/gantt.component.mjs +0 -328
- package/esm2020/src/gantt/gantt.module.mjs +0 -88
- package/esm2020/src/gantt/holidays.directive.mjs +0 -58
- package/esm2020/src/gantt/weekworkingtime.directive.mjs +0 -58
- package/esm2020/src/index.mjs +0 -12
- package/esm2020/syncfusion-ej2-angular-gantt.mjs +0 -5
- package/fesm2015/syncfusion-ej2-angular-gantt.mjs +0 -903
- package/fesm2015/syncfusion-ej2-angular-gantt.mjs.map +0 -1
- package/fesm2020/syncfusion-ej2-angular-gantt.mjs +0 -903
- package/fesm2020/syncfusion-ej2-angular-gantt.mjs.map +0 -1
- package/styles/bds-lite.css +0 -1
- package/styles/bds-lite.scss +0 -1
- package/styles/bds.css +0 -1
- package/styles/bds.scss +0 -1
- package/styles/bootstrap-dark-lite.css +0 -1
- package/styles/bootstrap-dark-lite.scss +0 -1
- package/styles/bootstrap-dark.css +0 -1
- package/styles/bootstrap-dark.scss +0 -1
- package/styles/bootstrap-lite.css +0 -1
- package/styles/bootstrap-lite.scss +0 -1
- package/styles/bootstrap.css +0 -1
- package/styles/bootstrap.scss +0 -1
- package/styles/bootstrap4-lite.css +0 -1
- package/styles/bootstrap4-lite.scss +0 -1
- package/styles/bootstrap4.css +0 -1
- package/styles/bootstrap4.scss +0 -1
- package/styles/bootstrap5-dark-lite.css +0 -1
- package/styles/bootstrap5-dark-lite.scss +0 -1
- package/styles/bootstrap5-dark.css +0 -1
- package/styles/bootstrap5-dark.scss +0 -1
- package/styles/bootstrap5-lite.css +0 -1
- package/styles/bootstrap5-lite.scss +0 -1
- package/styles/bootstrap5.3-lite.css +0 -1
- package/styles/bootstrap5.3-lite.scss +0 -1
- package/styles/bootstrap5.3.css +0 -1
- package/styles/bootstrap5.3.scss +0 -1
- package/styles/bootstrap5.css +0 -1
- package/styles/bootstrap5.scss +0 -1
- package/styles/fabric-dark-lite.css +0 -1
- package/styles/fabric-dark-lite.scss +0 -1
- package/styles/fabric-dark.css +0 -1
- package/styles/fabric-dark.scss +0 -1
- package/styles/fabric-lite.css +0 -1
- package/styles/fabric-lite.scss +0 -1
- package/styles/fabric.css +0 -1
- package/styles/fabric.scss +0 -1
- package/styles/fluent-dark-lite.css +0 -1
- package/styles/fluent-dark-lite.scss +0 -1
- package/styles/fluent-dark.css +0 -1
- package/styles/fluent-dark.scss +0 -1
- package/styles/fluent-lite.css +0 -1
- package/styles/fluent-lite.scss +0 -1
- package/styles/fluent.css +0 -1
- package/styles/fluent.scss +0 -1
- package/styles/fluent2-lite.css +0 -1
- package/styles/fluent2-lite.scss +0 -1
- package/styles/fluent2.css +0 -1
- package/styles/fluent2.scss +0 -1
- package/styles/gantt/bds.css +0 -1
- package/styles/gantt/bds.scss +0 -1
- package/styles/gantt/bootstrap-dark.css +0 -1
- package/styles/gantt/bootstrap-dark.scss +0 -1
- package/styles/gantt/bootstrap.css +0 -1
- package/styles/gantt/bootstrap.scss +0 -1
- package/styles/gantt/bootstrap4.css +0 -1
- package/styles/gantt/bootstrap4.scss +0 -1
- package/styles/gantt/bootstrap5-dark.css +0 -1
- package/styles/gantt/bootstrap5-dark.scss +0 -1
- package/styles/gantt/bootstrap5.3.css +0 -1
- package/styles/gantt/bootstrap5.3.scss +0 -1
- package/styles/gantt/bootstrap5.css +0 -1
- package/styles/gantt/bootstrap5.scss +0 -1
- package/styles/gantt/fabric-dark.css +0 -1
- package/styles/gantt/fabric-dark.scss +0 -1
- package/styles/gantt/fabric.css +0 -1
- package/styles/gantt/fabric.scss +0 -1
- package/styles/gantt/fluent-dark.css +0 -1
- package/styles/gantt/fluent-dark.scss +0 -1
- package/styles/gantt/fluent.css +0 -1
- package/styles/gantt/fluent.scss +0 -1
- package/styles/gantt/fluent2.css +0 -1
- package/styles/gantt/fluent2.scss +0 -1
- package/styles/gantt/highcontrast-light.css +0 -1
- package/styles/gantt/highcontrast-light.scss +0 -1
- package/styles/gantt/highcontrast.css +0 -1
- package/styles/gantt/highcontrast.scss +0 -1
- package/styles/gantt/material-dark.css +0 -1
- package/styles/gantt/material-dark.scss +0 -1
- package/styles/gantt/material.css +0 -1
- package/styles/gantt/material.scss +0 -1
- package/styles/gantt/material3-dark.css +0 -1
- package/styles/gantt/material3-dark.scss +0 -1
- package/styles/gantt/material3.css +0 -1
- package/styles/gantt/material3.scss +0 -1
- package/styles/gantt/tailwind-dark.css +0 -1
- package/styles/gantt/tailwind-dark.scss +0 -1
- package/styles/gantt/tailwind.css +0 -1
- package/styles/gantt/tailwind.scss +0 -1
- package/styles/gantt/tailwind3.css +0 -1
- package/styles/gantt/tailwind3.scss +0 -1
- package/styles/highcontrast-light-lite.css +0 -1
- package/styles/highcontrast-light-lite.scss +0 -1
- package/styles/highcontrast-light.css +0 -1
- package/styles/highcontrast-light.scss +0 -1
- package/styles/highcontrast-lite.css +0 -1
- package/styles/highcontrast-lite.scss +0 -1
- package/styles/highcontrast.css +0 -1
- package/styles/highcontrast.scss +0 -1
- package/styles/material-dark-lite.css +0 -1
- package/styles/material-dark-lite.scss +0 -1
- package/styles/material-dark.css +0 -1
- package/styles/material-dark.scss +0 -1
- package/styles/material-lite.css +0 -1
- package/styles/material-lite.scss +0 -1
- package/styles/material.css +0 -1
- package/styles/material.scss +0 -1
- package/styles/material3-dark-lite.css +0 -1
- package/styles/material3-dark-lite.scss +0 -1
- package/styles/material3-dark.css +0 -1
- package/styles/material3-dark.scss +0 -1
- package/styles/material3-lite.css +0 -1
- package/styles/material3-lite.scss +0 -1
- package/styles/material3.css +0 -1
- package/styles/material3.scss +0 -1
- package/styles/tailwind-dark-lite.css +0 -1
- package/styles/tailwind-dark-lite.scss +0 -1
- package/styles/tailwind-dark.css +0 -1
- package/styles/tailwind-dark.scss +0 -1
- package/styles/tailwind-lite.css +0 -1
- package/styles/tailwind-lite.scss +0 -1
- package/styles/tailwind.css +0 -1
- package/styles/tailwind.scss +0 -1
- package/styles/tailwind3-lite.css +0 -1
- package/styles/tailwind3-lite.scss +0 -1
- package/styles/tailwind3.css +0 -1
- package/styles/tailwind3.scss +0 -1
- package/syncfusion-ej2-angular-gantt.d.ts +0 -5
|
@@ -1,328 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Component, ChangeDetectionStrategy, ContentChild } from '@angular/core';
|
|
3
|
-
import { ComponentBase, ComponentMixins, setValue } from '@syncfusion/ej2-angular-base';
|
|
4
|
-
import { Gantt } from '@syncfusion/ej2-gantt';
|
|
5
|
-
import { Template } from '@syncfusion/ej2-angular-base';
|
|
6
|
-
import { ColumnsDirective } from './columns.directive';
|
|
7
|
-
import { AddDialogFieldsDirective } from './adddialogfields.directive';
|
|
8
|
-
import { EditDialogFieldsDirective } from './editdialogfields.directive';
|
|
9
|
-
import { DayWorkingTimeCollectionDirective } from './dayworkingtime.directive';
|
|
10
|
-
import { WeekWorkingTimesDirective } from './weekworkingtime.directive';
|
|
11
|
-
import { HolidaysDirective } from './holidays.directive';
|
|
12
|
-
import { EventMarkersDirective } from './eventmarkers.directive';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
export const inputs = ['addDialogFields', 'allowExcelExport', 'allowFiltering', 'allowKeyboard', 'allowParentDependency', 'allowPdfExport', 'allowReordering', 'allowResizing', 'allowRowDragAndDrop', 'allowSelection', 'allowSorting', 'allowTaskbarDragAndDrop', 'allowTaskbarOverlap', 'allowUnscheduledTasks', 'autoCalculateDateScheduling', 'autoFocusTasks', 'autoUpdatePredecessorOffset', 'baselineColor', 'baselineTemplate', 'calendarSettings', 'collapseAllParentTasks', 'columnMenuItems', 'columns', 'connectorLineBackground', 'connectorLineWidth', 'contextMenuItems', 'dataSource', 'dateFormat', 'dayWorkingTime', 'disableHtmlEncode', 'durationUnit', 'editDialogFields', 'editSettings', 'emptyRecordTemplate', 'enableAdaptiveUI', 'enableAutoWbsUpdate', 'enableContextMenu', 'enableCriticalPath', 'enableHover', 'enableHtmlSanitizer', 'enableImmutableMode', 'enableInfiniteTimelineScroll', 'enableMultiTaskbar', 'enablePersistence', 'enablePredecessorValidation', 'enableRtl', 'enableTimelineVirtualization', 'enableUndoRedo', 'enableVirtualMaskRow', 'enableVirtualization', 'enableWBS', 'eventMarkers', 'filterSettings', 'frozenColumns', 'gridLines', 'height', 'highlightWeekends', 'holidays', 'includeWeekend', 'labelSettings', 'loadChildOnDemand', 'loadingIndicator', 'locale', 'milestoneTemplate', 'parentTaskbarTemplate', 'projectEndDate', 'projectStartDate', 'query', 'readOnly', 'renderBaseline', 'resourceFields', 'resourceIDMapping', 'resourceNameMapping', 'resources', 'rowHeight', 'searchSettings', 'segmentData', 'selectedRowIndex', 'selectionSettings', 'showColumnMenu', 'showInlineNotes', 'showOverAllocation', 'sortSettings', 'splitterSettings', 'taskFields', 'taskMode', 'taskType', 'taskbarHeight', 'taskbarTemplate', 'timelineSettings', 'timelineTemplate', 'timezone', 'toolbar', 'tooltipSettings', 'treeColumnIndex', 'undoRedoActions', 'undoRedoStepsCount', 'updateOffsetOnTaskbarEdit', 'validateManualTasksOnLinking', 'viewType', 'weekWorkingTime', 'width', 'workUnit', 'workWeek', 'zoomingLevels'];
|
|
15
|
-
export const outputs = ['actionBegin', 'actionComplete', 'actionFailure', 'beforeDataBound', 'beforeExcelExport', 'beforePdfExport', 'beforeTooltipRender', 'cellDeselected', 'cellDeselecting', 'cellEdit', 'cellSave', 'cellSelected', 'cellSelecting', 'collapsed', 'collapsing', 'columnDrag', 'columnDragStart', 'columnDrop', 'columnMenuClick', 'columnMenuOpen', 'contextMenuClick', 'contextMenuOpen', 'created', 'dataBound', 'dataSourceChanged', 'dataStateChange', 'destroyed', 'endEdit', 'excelExportComplete', 'excelHeaderQueryCellInfo', 'excelQueryCellInfo', 'expanded', 'expanding', 'headerCellInfo', 'load', 'onMouseMove', 'onTaskbarClick', 'pdfColumnHeaderQueryCellInfo', 'pdfExportComplete', 'pdfQueryCellInfo', 'pdfQueryTaskbarInfo', 'pdfQueryTimelineCellInfo', 'queryCellInfo', 'queryTaskbarInfo', 'recordDoubleClick', 'resizeStart', 'resizeStop', 'resizing', 'rowDataBound', 'rowDeselected', 'rowDeselecting', 'rowDrag', 'rowDragStart', 'rowDragStartHelper', 'rowDrop', 'rowSelected', 'rowSelecting', 'splitterResizeStart', 'splitterResized', 'splitterResizing', 'taskbarEdited', 'taskbarEditing', 'toolbarClick', 'dataSourceChange'];
|
|
16
|
-
export const twoWays = ['dataSource'];
|
|
17
|
-
/**
|
|
18
|
-
* `ejs-gantt` represents the Angular Gantt Component.
|
|
19
|
-
* ```html
|
|
20
|
-
* <ejs-gantt [dataSource]='data' allowSelection='true' allowSorting='true'></ejs-gantt>
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
let GanttComponent = class GanttComponent extends Gantt {
|
|
24
|
-
constructor(ngEle, srenderer, viewContainerRef, injector) {
|
|
25
|
-
super();
|
|
26
|
-
this.ngEle = ngEle;
|
|
27
|
-
this.srenderer = srenderer;
|
|
28
|
-
this.viewContainerRef = viewContainerRef;
|
|
29
|
-
this.injector = injector;
|
|
30
|
-
this.tags = ['columns', 'addDialogFields', 'editDialogFields', 'dayWorkingTime', 'weekWorkingTime', 'holidays', 'eventMarkers'];
|
|
31
|
-
this.element = this.ngEle.nativeElement;
|
|
32
|
-
this.injectedModules = this.injectedModules || [];
|
|
33
|
-
try {
|
|
34
|
-
let mod = this.injector.get('GanttFilter');
|
|
35
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
36
|
-
this.injectedModules.push(mod);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
catch { }
|
|
40
|
-
try {
|
|
41
|
-
let mod = this.injector.get('GanttSelection');
|
|
42
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
43
|
-
this.injectedModules.push(mod);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch { }
|
|
47
|
-
try {
|
|
48
|
-
let mod = this.injector.get('GanttSort');
|
|
49
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
50
|
-
this.injectedModules.push(mod);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
catch { }
|
|
54
|
-
try {
|
|
55
|
-
let mod = this.injector.get('GanttReorder');
|
|
56
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
57
|
-
this.injectedModules.push(mod);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
catch { }
|
|
61
|
-
try {
|
|
62
|
-
let mod = this.injector.get('GanttResize');
|
|
63
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
64
|
-
this.injectedModules.push(mod);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
catch { }
|
|
68
|
-
try {
|
|
69
|
-
let mod = this.injector.get('GanttEdit');
|
|
70
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
71
|
-
this.injectedModules.push(mod);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
catch { }
|
|
75
|
-
try {
|
|
76
|
-
let mod = this.injector.get('GanttDayMarkers');
|
|
77
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
78
|
-
this.injectedModules.push(mod);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
catch { }
|
|
82
|
-
try {
|
|
83
|
-
let mod = this.injector.get('GanttToolbar');
|
|
84
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
85
|
-
this.injectedModules.push(mod);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch { }
|
|
89
|
-
try {
|
|
90
|
-
let mod = this.injector.get('GanttContextMenu');
|
|
91
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
92
|
-
this.injectedModules.push(mod);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
catch { }
|
|
96
|
-
try {
|
|
97
|
-
let mod = this.injector.get('GanttExcelExport');
|
|
98
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
99
|
-
this.injectedModules.push(mod);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
catch { }
|
|
103
|
-
try {
|
|
104
|
-
let mod = this.injector.get('GanttRowDD');
|
|
105
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
106
|
-
this.injectedModules.push(mod);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
catch { }
|
|
110
|
-
try {
|
|
111
|
-
let mod = this.injector.get('GanttColumnMenu');
|
|
112
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
113
|
-
this.injectedModules.push(mod);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
catch { }
|
|
117
|
-
try {
|
|
118
|
-
let mod = this.injector.get('GanttPdfExport');
|
|
119
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
120
|
-
this.injectedModules.push(mod);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
catch { }
|
|
124
|
-
try {
|
|
125
|
-
let mod = this.injector.get('GanttVirtualScroll');
|
|
126
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
127
|
-
this.injectedModules.push(mod);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
catch { }
|
|
131
|
-
try {
|
|
132
|
-
let mod = this.injector.get('GanttCriticalPath');
|
|
133
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
134
|
-
this.injectedModules.push(mod);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
catch { }
|
|
138
|
-
try {
|
|
139
|
-
let mod = this.injector.get('GanttUndoRedo');
|
|
140
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
141
|
-
this.injectedModules.push(mod);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
catch { }
|
|
145
|
-
try {
|
|
146
|
-
let mod = this.injector.get('GanttFreeze');
|
|
147
|
-
if (this.injectedModules.indexOf(mod) === -1) {
|
|
148
|
-
this.injectedModules.push(mod);
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
catch { }
|
|
152
|
-
this.registerEvents(outputs);
|
|
153
|
-
this.addTwoWay.call(this, twoWays);
|
|
154
|
-
setValue('currentInstance', this, this.viewContainerRef);
|
|
155
|
-
this.context = new ComponentBase();
|
|
156
|
-
}
|
|
157
|
-
ngOnInit() {
|
|
158
|
-
this.context.ngOnInit(this);
|
|
159
|
-
}
|
|
160
|
-
ngAfterViewInit() {
|
|
161
|
-
this.context.ngAfterViewInit(this);
|
|
162
|
-
}
|
|
163
|
-
ngOnDestroy() {
|
|
164
|
-
this.context.ngOnDestroy(this);
|
|
165
|
-
}
|
|
166
|
-
ngAfterContentChecked() {
|
|
167
|
-
this.tagObjects[0].instance = this.childColumns;
|
|
168
|
-
if (this.childAddDialogFields) {
|
|
169
|
-
this.tagObjects[1].instance = this.childAddDialogFields;
|
|
170
|
-
}
|
|
171
|
-
if (this.childEditDialogFields) {
|
|
172
|
-
this.tagObjects[2].instance = this.childEditDialogFields;
|
|
173
|
-
}
|
|
174
|
-
if (this.childDayWorkingTime) {
|
|
175
|
-
this.tagObjects[3].instance = this.childDayWorkingTime;
|
|
176
|
-
}
|
|
177
|
-
if (this.childWeekWorkingTime) {
|
|
178
|
-
this.tagObjects[4].instance = this.childWeekWorkingTime;
|
|
179
|
-
}
|
|
180
|
-
if (this.childHolidays) {
|
|
181
|
-
this.tagObjects[5].instance = this.childHolidays;
|
|
182
|
-
}
|
|
183
|
-
if (this.childEventMarkers) {
|
|
184
|
-
this.tagObjects[6].instance = this.childEventMarkers;
|
|
185
|
-
}
|
|
186
|
-
this.context.ngAfterContentChecked(this);
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
GanttComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GanttComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
190
|
-
GanttComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: GanttComponent, selector: "ejs-gantt", inputs: { addDialogFields: "addDialogFields", allowExcelExport: "allowExcelExport", allowFiltering: "allowFiltering", allowKeyboard: "allowKeyboard", allowParentDependency: "allowParentDependency", allowPdfExport: "allowPdfExport", allowReordering: "allowReordering", allowResizing: "allowResizing", allowRowDragAndDrop: "allowRowDragAndDrop", allowSelection: "allowSelection", allowSorting: "allowSorting", allowTaskbarDragAndDrop: "allowTaskbarDragAndDrop", allowTaskbarOverlap: "allowTaskbarOverlap", allowUnscheduledTasks: "allowUnscheduledTasks", autoCalculateDateScheduling: "autoCalculateDateScheduling", autoFocusTasks: "autoFocusTasks", autoUpdatePredecessorOffset: "autoUpdatePredecessorOffset", baselineColor: "baselineColor", baselineTemplate: "baselineTemplate", calendarSettings: "calendarSettings", collapseAllParentTasks: "collapseAllParentTasks", columnMenuItems: "columnMenuItems", columns: "columns", connectorLineBackground: "connectorLineBackground", connectorLineWidth: "connectorLineWidth", contextMenuItems: "contextMenuItems", dataSource: "dataSource", dateFormat: "dateFormat", dayWorkingTime: "dayWorkingTime", disableHtmlEncode: "disableHtmlEncode", durationUnit: "durationUnit", editDialogFields: "editDialogFields", editSettings: "editSettings", emptyRecordTemplate: "emptyRecordTemplate", enableAdaptiveUI: "enableAdaptiveUI", enableAutoWbsUpdate: "enableAutoWbsUpdate", enableContextMenu: "enableContextMenu", enableCriticalPath: "enableCriticalPath", enableHover: "enableHover", enableHtmlSanitizer: "enableHtmlSanitizer", enableImmutableMode: "enableImmutableMode", enableInfiniteTimelineScroll: "enableInfiniteTimelineScroll", enableMultiTaskbar: "enableMultiTaskbar", enablePersistence: "enablePersistence", enablePredecessorValidation: "enablePredecessorValidation", enableRtl: "enableRtl", enableTimelineVirtualization: "enableTimelineVirtualization", enableUndoRedo: "enableUndoRedo", enableVirtualMaskRow: "enableVirtualMaskRow", enableVirtualization: "enableVirtualization", enableWBS: "enableWBS", eventMarkers: "eventMarkers", filterSettings: "filterSettings", frozenColumns: "frozenColumns", gridLines: "gridLines", height: "height", highlightWeekends: "highlightWeekends", holidays: "holidays", includeWeekend: "includeWeekend", labelSettings: "labelSettings", loadChildOnDemand: "loadChildOnDemand", loadingIndicator: "loadingIndicator", locale: "locale", milestoneTemplate: "milestoneTemplate", parentTaskbarTemplate: "parentTaskbarTemplate", projectEndDate: "projectEndDate", projectStartDate: "projectStartDate", query: "query", readOnly: "readOnly", renderBaseline: "renderBaseline", resourceFields: "resourceFields", resourceIDMapping: "resourceIDMapping", resourceNameMapping: "resourceNameMapping", resources: "resources", rowHeight: "rowHeight", searchSettings: "searchSettings", segmentData: "segmentData", selectedRowIndex: "selectedRowIndex", selectionSettings: "selectionSettings", showColumnMenu: "showColumnMenu", showInlineNotes: "showInlineNotes", showOverAllocation: "showOverAllocation", sortSettings: "sortSettings", splitterSettings: "splitterSettings", taskFields: "taskFields", taskMode: "taskMode", taskType: "taskType", taskbarHeight: "taskbarHeight", taskbarTemplate: "taskbarTemplate", timelineSettings: "timelineSettings", timelineTemplate: "timelineTemplate", timezone: "timezone", toolbar: "toolbar", tooltipSettings: "tooltipSettings", treeColumnIndex: "treeColumnIndex", undoRedoActions: "undoRedoActions", undoRedoStepsCount: "undoRedoStepsCount", updateOffsetOnTaskbarEdit: "updateOffsetOnTaskbarEdit", validateManualTasksOnLinking: "validateManualTasksOnLinking", viewType: "viewType", weekWorkingTime: "weekWorkingTime", width: "width", workUnit: "workUnit", workWeek: "workWeek", zoomingLevels: "zoomingLevels" }, outputs: { actionBegin: "actionBegin", actionComplete: "actionComplete", actionFailure: "actionFailure", beforeDataBound: "beforeDataBound", beforeExcelExport: "beforeExcelExport", beforePdfExport: "beforePdfExport", beforeTooltipRender: "beforeTooltipRender", cellDeselected: "cellDeselected", cellDeselecting: "cellDeselecting", cellEdit: "cellEdit", cellSave: "cellSave", cellSelected: "cellSelected", cellSelecting: "cellSelecting", collapsed: "collapsed", collapsing: "collapsing", columnDrag: "columnDrag", columnDragStart: "columnDragStart", columnDrop: "columnDrop", columnMenuClick: "columnMenuClick", columnMenuOpen: "columnMenuOpen", contextMenuClick: "contextMenuClick", contextMenuOpen: "contextMenuOpen", created: "created", dataBound: "dataBound", dataSourceChanged: "dataSourceChanged", dataStateChange: "dataStateChange", destroyed: "destroyed", endEdit: "endEdit", excelExportComplete: "excelExportComplete", excelHeaderQueryCellInfo: "excelHeaderQueryCellInfo", excelQueryCellInfo: "excelQueryCellInfo", expanded: "expanded", expanding: "expanding", headerCellInfo: "headerCellInfo", load: "load", onMouseMove: "onMouseMove", onTaskbarClick: "onTaskbarClick", pdfColumnHeaderQueryCellInfo: "pdfColumnHeaderQueryCellInfo", pdfExportComplete: "pdfExportComplete", pdfQueryCellInfo: "pdfQueryCellInfo", pdfQueryTaskbarInfo: "pdfQueryTaskbarInfo", pdfQueryTimelineCellInfo: "pdfQueryTimelineCellInfo", queryCellInfo: "queryCellInfo", queryTaskbarInfo: "queryTaskbarInfo", recordDoubleClick: "recordDoubleClick", resizeStart: "resizeStart", resizeStop: "resizeStop", resizing: "resizing", rowDataBound: "rowDataBound", rowDeselected: "rowDeselected", rowDeselecting: "rowDeselecting", rowDrag: "rowDrag", rowDragStart: "rowDragStart", rowDragStartHelper: "rowDragStartHelper", rowDrop: "rowDrop", rowSelected: "rowSelected", rowSelecting: "rowSelecting", splitterResizeStart: "splitterResizeStart", splitterResized: "splitterResized", splitterResizing: "splitterResizing", taskbarEdited: "taskbarEdited", taskbarEditing: "taskbarEditing", toolbarClick: "toolbarClick", dataSourceChange: "dataSourceChange" }, queries: [{ propertyName: "parentTaskbarTemplate", first: true, predicate: ["parentTaskbarTemplate"], descendants: true }, { propertyName: "toolbarTemplate", first: true, predicate: ["toolbarTemplate"], descendants: true }, { propertyName: "timelineTemplate", first: true, predicate: ["timelineTemplate"], descendants: true }, { propertyName: "milestoneTemplate", first: true, predicate: ["milestoneTemplate"], descendants: true }, { propertyName: "baselineTemplate", first: true, predicate: ["baselineTemplate"], descendants: true }, { propertyName: "taskbarTemplate", first: true, predicate: ["taskbarTemplate"], descendants: true }, { propertyName: "editTemplate", first: true, predicate: ["editTemplate"], descendants: true }, { propertyName: "labelSettings_rightLabel", first: true, predicate: ["labelSettingsRightLabel"], descendants: true }, { propertyName: "labelSettings_leftLabel", first: true, predicate: ["labelSettingsLeftLabel"], descendants: true }, { propertyName: "labelSettings_taskLabel", first: true, predicate: ["labelSettingsTaskLabel"], descendants: true }, { propertyName: "tooltipSettings_taskbar", first: true, predicate: ["tooltipSettingsTaskbar"], descendants: true }, { propertyName: "tooltipSettings_baseline", first: true, predicate: ["tooltipSettingsBaseline"], descendants: true }, { propertyName: "tooltipSettings_connectorLine", first: true, predicate: ["tooltipSettingsConnectorLine"], descendants: true }, { propertyName: "tooltipSettings_editing", first: true, predicate: ["tooltipSettingsEditing"], descendants: true }, { propertyName: "tooltipSettings_timeline", first: true, predicate: ["tooltipSettingsTimeline"], descendants: true }, { propertyName: "filter_itemTemplate", first: true, predicate: ["filterItemTemplate"], descendants: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true }, { propertyName: "emptyRecordTemplate", first: true, predicate: ["emptyRecordTemplate"], descendants: true }, { propertyName: "template", first: true, predicate: ["template"], descendants: true }, { propertyName: "childColumns", first: true, predicate: ColumnsDirective, descendants: true }, { propertyName: "childAddDialogFields", first: true, predicate: AddDialogFieldsDirective, descendants: true }, { propertyName: "childEditDialogFields", first: true, predicate: EditDialogFieldsDirective, descendants: true }, { propertyName: "childDayWorkingTime", first: true, predicate: DayWorkingTimeCollectionDirective, descendants: true }, { propertyName: "childWeekWorkingTime", first: true, predicate: WeekWorkingTimesDirective, descendants: true }, { propertyName: "childHolidays", first: true, predicate: HolidaysDirective, descendants: true }, { propertyName: "childEventMarkers", first: true, predicate: EventMarkersDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
191
|
-
__decorate([
|
|
192
|
-
Template()
|
|
193
|
-
], GanttComponent.prototype, "parentTaskbarTemplate", void 0);
|
|
194
|
-
__decorate([
|
|
195
|
-
Template()
|
|
196
|
-
], GanttComponent.prototype, "toolbarTemplate", void 0);
|
|
197
|
-
__decorate([
|
|
198
|
-
Template()
|
|
199
|
-
], GanttComponent.prototype, "timelineTemplate", void 0);
|
|
200
|
-
__decorate([
|
|
201
|
-
Template()
|
|
202
|
-
], GanttComponent.prototype, "milestoneTemplate", void 0);
|
|
203
|
-
__decorate([
|
|
204
|
-
Template()
|
|
205
|
-
], GanttComponent.prototype, "baselineTemplate", void 0);
|
|
206
|
-
__decorate([
|
|
207
|
-
Template()
|
|
208
|
-
], GanttComponent.prototype, "taskbarTemplate", void 0);
|
|
209
|
-
__decorate([
|
|
210
|
-
Template()
|
|
211
|
-
], GanttComponent.prototype, "editTemplate", void 0);
|
|
212
|
-
__decorate([
|
|
213
|
-
Template()
|
|
214
|
-
], GanttComponent.prototype, "labelSettings_rightLabel", void 0);
|
|
215
|
-
__decorate([
|
|
216
|
-
Template()
|
|
217
|
-
], GanttComponent.prototype, "labelSettings_leftLabel", void 0);
|
|
218
|
-
__decorate([
|
|
219
|
-
Template()
|
|
220
|
-
], GanttComponent.prototype, "labelSettings_taskLabel", void 0);
|
|
221
|
-
__decorate([
|
|
222
|
-
Template()
|
|
223
|
-
], GanttComponent.prototype, "tooltipSettings_taskbar", void 0);
|
|
224
|
-
__decorate([
|
|
225
|
-
Template()
|
|
226
|
-
], GanttComponent.prototype, "tooltipSettings_baseline", void 0);
|
|
227
|
-
__decorate([
|
|
228
|
-
Template()
|
|
229
|
-
], GanttComponent.prototype, "tooltipSettings_connectorLine", void 0);
|
|
230
|
-
__decorate([
|
|
231
|
-
Template()
|
|
232
|
-
], GanttComponent.prototype, "tooltipSettings_editing", void 0);
|
|
233
|
-
__decorate([
|
|
234
|
-
Template()
|
|
235
|
-
], GanttComponent.prototype, "tooltipSettings_timeline", void 0);
|
|
236
|
-
__decorate([
|
|
237
|
-
Template()
|
|
238
|
-
], GanttComponent.prototype, "filter_itemTemplate", void 0);
|
|
239
|
-
__decorate([
|
|
240
|
-
Template()
|
|
241
|
-
], GanttComponent.prototype, "filterTemplate", void 0);
|
|
242
|
-
__decorate([
|
|
243
|
-
Template()
|
|
244
|
-
], GanttComponent.prototype, "emptyRecordTemplate", void 0);
|
|
245
|
-
__decorate([
|
|
246
|
-
Template()
|
|
247
|
-
], GanttComponent.prototype, "template", void 0);
|
|
248
|
-
GanttComponent = __decorate([
|
|
249
|
-
ComponentMixins([ComponentBase])
|
|
250
|
-
], GanttComponent);
|
|
251
|
-
export { GanttComponent };
|
|
252
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GanttComponent, decorators: [{
|
|
253
|
-
type: Component,
|
|
254
|
-
args: [{
|
|
255
|
-
selector: 'ejs-gantt',
|
|
256
|
-
inputs: inputs,
|
|
257
|
-
outputs: outputs,
|
|
258
|
-
template: '',
|
|
259
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
260
|
-
queries: {
|
|
261
|
-
childColumns: new ContentChild(ColumnsDirective),
|
|
262
|
-
childAddDialogFields: new ContentChild(AddDialogFieldsDirective),
|
|
263
|
-
childEditDialogFields: new ContentChild(EditDialogFieldsDirective),
|
|
264
|
-
childDayWorkingTime: new ContentChild(DayWorkingTimeCollectionDirective),
|
|
265
|
-
childWeekWorkingTime: new ContentChild(WeekWorkingTimesDirective),
|
|
266
|
-
childHolidays: new ContentChild(HolidaysDirective),
|
|
267
|
-
childEventMarkers: new ContentChild(EventMarkersDirective)
|
|
268
|
-
}
|
|
269
|
-
}]
|
|
270
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.Injector }]; }, propDecorators: { parentTaskbarTemplate: [{
|
|
271
|
-
type: ContentChild,
|
|
272
|
-
args: ['parentTaskbarTemplate']
|
|
273
|
-
}], toolbarTemplate: [{
|
|
274
|
-
type: ContentChild,
|
|
275
|
-
args: ['toolbarTemplate']
|
|
276
|
-
}], timelineTemplate: [{
|
|
277
|
-
type: ContentChild,
|
|
278
|
-
args: ['timelineTemplate']
|
|
279
|
-
}], milestoneTemplate: [{
|
|
280
|
-
type: ContentChild,
|
|
281
|
-
args: ['milestoneTemplate']
|
|
282
|
-
}], baselineTemplate: [{
|
|
283
|
-
type: ContentChild,
|
|
284
|
-
args: ['baselineTemplate']
|
|
285
|
-
}], taskbarTemplate: [{
|
|
286
|
-
type: ContentChild,
|
|
287
|
-
args: ['taskbarTemplate']
|
|
288
|
-
}], editTemplate: [{
|
|
289
|
-
type: ContentChild,
|
|
290
|
-
args: ['editTemplate']
|
|
291
|
-
}], labelSettings_rightLabel: [{
|
|
292
|
-
type: ContentChild,
|
|
293
|
-
args: ['labelSettingsRightLabel']
|
|
294
|
-
}], labelSettings_leftLabel: [{
|
|
295
|
-
type: ContentChild,
|
|
296
|
-
args: ['labelSettingsLeftLabel']
|
|
297
|
-
}], labelSettings_taskLabel: [{
|
|
298
|
-
type: ContentChild,
|
|
299
|
-
args: ['labelSettingsTaskLabel']
|
|
300
|
-
}], tooltipSettings_taskbar: [{
|
|
301
|
-
type: ContentChild,
|
|
302
|
-
args: ['tooltipSettingsTaskbar']
|
|
303
|
-
}], tooltipSettings_baseline: [{
|
|
304
|
-
type: ContentChild,
|
|
305
|
-
args: ['tooltipSettingsBaseline']
|
|
306
|
-
}], tooltipSettings_connectorLine: [{
|
|
307
|
-
type: ContentChild,
|
|
308
|
-
args: ['tooltipSettingsConnectorLine']
|
|
309
|
-
}], tooltipSettings_editing: [{
|
|
310
|
-
type: ContentChild,
|
|
311
|
-
args: ['tooltipSettingsEditing']
|
|
312
|
-
}], tooltipSettings_timeline: [{
|
|
313
|
-
type: ContentChild,
|
|
314
|
-
args: ['tooltipSettingsTimeline']
|
|
315
|
-
}], filter_itemTemplate: [{
|
|
316
|
-
type: ContentChild,
|
|
317
|
-
args: ['filterItemTemplate']
|
|
318
|
-
}], filterTemplate: [{
|
|
319
|
-
type: ContentChild,
|
|
320
|
-
args: ['filterTemplate']
|
|
321
|
-
}], emptyRecordTemplate: [{
|
|
322
|
-
type: ContentChild,
|
|
323
|
-
args: ['emptyRecordTemplate']
|
|
324
|
-
}], template: [{
|
|
325
|
-
type: ContentChild,
|
|
326
|
-
args: ['template']
|
|
327
|
-
}] } });
|
|
328
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dhbnR0L2dhbnR0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0MsdUJBQXVCLEVBQWlELFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SixPQUFPLEVBQUUsYUFBYSxFQUErQixlQUFlLEVBQTBCLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdJLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDekUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRWpFLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBYSxDQUFDLGlCQUFpQixFQUFDLGtCQUFrQixFQUFDLGdCQUFnQixFQUFDLGVBQWUsRUFBQyx1QkFBdUIsRUFBQyxnQkFBZ0IsRUFBQyxpQkFBaUIsRUFBQyxlQUFlLEVBQUMscUJBQXFCLEVBQUMsZ0JBQWdCLEVBQUMsY0FBYyxFQUFDLHlCQUF5QixFQUFDLHFCQUFxQixFQUFDLHVCQUF1QixFQUFDLDZCQUE2QixFQUFDLGdCQUFnQixFQUFDLDZCQUE2QixFQUFDLGVBQWUsRUFBQyxrQkFBa0IsRUFBQyxrQkFBa0IsRUFBQyx3QkFBd0IsRUFBQyxpQkFBaUIsRUFBQyxTQUFTLEVBQUMseUJBQXlCLEVBQUMsb0JBQW9CLEVBQUMsa0JBQWtCLEVBQUMsWUFBWSxFQUFDLFlBQVksRUFBQyxnQkFBZ0IsRUFBQyxtQkFBbUIsRUFBQyxjQUFjLEVBQUMsa0JBQWtCLEVBQUMsY0FBYyxFQUFDLHFCQUFxQixFQUFDLGtCQUFrQixFQUFDLHFCQUFxQixFQUFDLG1CQUFtQixFQUFDLG9CQUFvQixFQUFDLGFBQWEsRUFBQyxxQkFBcUIsRUFBQyxxQkFBcUIsRUFBQyw4QkFBOEIsRUFBQyxvQkFBb0IsRUFBQyxtQkFBbUIsRUFBQyw2QkFBNkIsRUFBQyxXQUFXLEVBQUMsOEJBQThCLEVBQUMsZ0JBQWdCLEVBQUMsc0JBQXNCLEVBQUMsc0JBQXNCLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxnQkFBZ0IsRUFBQyxlQUFlLEVBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxtQkFBbUIsRUFBQyxVQUFVLEVBQUMsZ0JBQWdCLEVBQUMsZUFBZSxFQUFDLG1CQUFtQixFQUFDLGtCQUFrQixFQUFDLFFBQVEsRUFBQyxtQkFBbUIsRUFBQyx1QkFBdUIsRUFBQyxnQkFBZ0IsRUFBQyxrQkFBa0IsRUFBQyxPQUFPLEVBQUMsVUFBVSxFQUFDLGdCQUFnQixFQUFDLGdCQUFnQixFQUFDLG1CQUFtQixFQUFDLHFCQUFxQixFQUFDLFdBQVcsRUFBQyxXQUFXLEVBQUMsZ0JBQWdCLEVBQUMsYUFBYSxFQUFDLGtCQUFrQixFQUFDLG1CQUFtQixFQUFDLGdCQUFnQixFQUFDLGlCQUFpQixFQUFDLG9CQUFvQixFQUFDLGNBQWMsRUFBQyxrQkFBa0IsRUFBQyxZQUFZLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxlQUFlLEVBQUMsaUJBQWlCLEVBQUMsa0JBQWtCLEVBQUMsa0JBQWtCLEVBQUMsVUFBVSxFQUFDLFNBQVMsRUFBQyxpQkFBaUIsRUFBQyxpQkFBaUIsRUFBQyxpQkFBaUIsRUFBQyxvQkFBb0IsRUFBQywyQkFBMkIsRUFBQyw4QkFBOEIsRUFBQyxVQUFVLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxVQUFVLEVBQUMsZUFBZSxDQUFDLENBQUM7QUFDdDRELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBYSxDQUFDLGFBQWEsRUFBQyxnQkFBZ0IsRUFBQyxlQUFlLEVBQUMsaUJBQWlCLEVBQUMsbUJBQW1CLEVBQUMsaUJBQWlCLEVBQUMscUJBQXFCLEVBQUMsZ0JBQWdCLEVBQUMsaUJBQWlCLEVBQUMsVUFBVSxFQUFDLFVBQVUsRUFBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLFdBQVcsRUFBQyxZQUFZLEVBQUMsWUFBWSxFQUFDLGlCQUFpQixFQUFDLFlBQVksRUFBQyxpQkFBaUIsRUFBQyxnQkFBZ0IsRUFBQyxrQkFBa0IsRUFBQyxpQkFBaUIsRUFBQyxTQUFTLEVBQUMsV0FBVyxFQUFDLG1CQUFtQixFQUFDLGlCQUFpQixFQUFDLFdBQVcsRUFBQyxTQUFTLEVBQUMscUJBQXFCLEVBQUMsMEJBQTBCLEVBQUMsb0JBQW9CLEVBQUMsVUFBVSxFQUFDLFdBQVcsRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLGdCQUFnQixFQUFDLDhCQUE4QixFQUFDLG1CQUFtQixFQUFDLGtCQUFrQixFQUFDLHFCQUFxQixFQUFDLDBCQUEwQixFQUFDLGVBQWUsRUFBQyxrQkFBa0IsRUFBQyxtQkFBbUIsRUFBQyxhQUFhLEVBQUMsWUFBWSxFQUFDLFVBQVUsRUFBQyxjQUFjLEVBQUMsZUFBZSxFQUFDLGdCQUFnQixFQUFDLFNBQVMsRUFBQyxjQUFjLEVBQUMsb0JBQW9CLEVBQUMsU0FBUyxFQUFDLGFBQWEsRUFBQyxjQUFjLEVBQUMscUJBQXFCLEVBQUMsaUJBQWlCLEVBQUMsa0JBQWtCLEVBQUMsZUFBZSxFQUFDLGdCQUFnQixFQUFDLGNBQWMsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQ2xrQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUVoRDs7Ozs7R0FLRztJQWtCVSxjQUFjLFNBQWQsY0FBZSxTQUFRLEtBQUs7SUE4S3JDLFlBQW9CLEtBQWlCLEVBQVUsU0FBb0IsRUFBVSxnQkFBaUMsRUFBVSxRQUFrQjtRQUN0SSxLQUFLLEVBQUUsQ0FBQztRQURRLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFwR25JLFNBQUksR0FBYSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFzR3hJLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0MsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzNDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQy9DLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUMsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2hELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNoRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzFDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDOUMsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNqRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzdDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0MsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1NBQzNEO1FBRUosSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1NBQzVEO1FBRUosSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1NBQzFEO1FBRUosSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1NBQzNEO1FBRUosSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7U0FDcEQ7UUFFSixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FJSixDQUFBOzJHQTFWWSxjQUFjOytGQUFkLGNBQWMsZzVQQVZZLGdCQUFnQix1RkFDUix3QkFBd0Isd0ZBQ3ZCLHlCQUF5QixzRkFDM0IsaUNBQWlDLHVGQUNoQyx5QkFBeUIsZ0ZBQ2hDLGlCQUFpQixvRkFDYixxQkFBcUIsdUVBVG5ELEVBQUU7QUFnR1o7SUFEQyxRQUFRLEVBQUU7NkRBQ3VCO0FBR2xDO0lBREMsUUFBUSxFQUFFO3VEQUNpQjtBQVM1QjtJQURDLFFBQVEsRUFBRTt3REFDa0I7QUFTN0I7SUFEQyxRQUFRLEVBQUU7eURBQ21CO0FBVTlCO0lBREMsUUFBUSxFQUFFO3dEQUNrQjtBQVU3QjtJQURDLFFBQVEsRUFBRTt1REFDaUI7QUFHNUI7SUFEQyxRQUFRLEVBQUU7b0RBQ2M7QUFHekI7SUFEQyxRQUFRLEVBQUU7Z0VBQzBCO0FBR3JDO0lBREMsUUFBUSxFQUFFOytEQUN5QjtBQUdwQztJQURDLFFBQVEsRUFBRTsrREFDeUI7QUFHcEM7SUFEQyxRQUFRLEVBQUU7K0RBQ3lCO0FBR3BDO0lBREMsUUFBUSxFQUFFO2dFQUMwQjtBQUdyQztJQURDLFFBQVEsRUFBRTtxRUFDK0I7QUFHMUM7SUFEQyxRQUFRLEVBQUU7K0RBQ3lCO0FBR3BDO0lBREMsUUFBUSxFQUFFO2dFQUMwQjtBQUdyQztJQURDLFFBQVEsRUFBRTsyREFDcUI7QUFHaEM7SUFEQyxRQUFRLEVBQUU7c0RBQ2dCO0FBWTNCO0lBREMsUUFBUSxFQUFFOzJEQUNxQjtBQUdoQztJQURDLFFBQVEsRUFBRTtnREFDVTtBQTVLWixjQUFjO0lBRDFCLGVBQWUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0dBQ3BCLGNBQWMsQ0EwVjFCO1NBMVZZLGNBQWM7MkZBQWQsY0FBYztrQkFqQjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLE1BQU0sRUFBRSxNQUFNO29CQUNkLE9BQU8sRUFBRSxPQUFPO29CQUNoQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNMLFlBQVksRUFBRSxJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDaEQsb0JBQW9CLEVBQUUsSUFBSSxZQUFZLENBQUMsd0JBQXdCLENBQUM7d0JBQ2hFLHFCQUFxQixFQUFFLElBQUksWUFBWSxDQUFDLHlCQUF5QixDQUFDO3dCQUNsRSxtQkFBbUIsRUFBRSxJQUFJLFlBQVksQ0FBQyxpQ0FBaUMsQ0FBQzt3QkFDeEUsb0JBQW9CLEVBQUUsSUFBSSxZQUFZLENBQUMseUJBQXlCLENBQUM7d0JBQ2pFLGFBQWEsRUFBRSxJQUFJLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDbEQsaUJBQWlCLEVBQUUsSUFBSSxZQUFZLENBQUMscUJBQXFCLENBQUM7cUJBQzdEO2lCQUNKOytLQXFGVSxxQkFBcUI7c0JBRjNCLFlBQVk7dUJBQUMsdUJBQXVCO2dCQUs5QixlQUFlO3NCQUZyQixZQUFZO3VCQUFDLGlCQUFpQjtnQkFXeEIsZ0JBQWdCO3NCQUZ0QixZQUFZO3VCQUFDLGtCQUFrQjtnQkFXekIsaUJBQWlCO3NCQUZ2QixZQUFZO3VCQUFDLG1CQUFtQjtnQkFZMUIsZ0JBQWdCO3NCQUZ0QixZQUFZO3VCQUFDLGtCQUFrQjtnQkFZekIsZUFBZTtzQkFGckIsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBS3hCLFlBQVk7c0JBRmxCLFlBQVk7dUJBQUMsY0FBYztnQkFLckIsd0JBQXdCO3NCQUY5QixZQUFZO3VCQUFDLHlCQUF5QjtnQkFLaEMsdUJBQXVCO3NCQUY3QixZQUFZO3VCQUFDLHdCQUF3QjtnQkFLL0IsdUJBQXVCO3NCQUY3QixZQUFZO3VCQUFDLHdCQUF3QjtnQkFLL0IsdUJBQXVCO3NCQUY3QixZQUFZO3VCQUFDLHdCQUF3QjtnQkFLL0Isd0JBQXdCO3NCQUY5QixZQUFZO3VCQUFDLHlCQUF5QjtnQkFLaEMsNkJBQTZCO3NCQUZuQyxZQUFZO3VCQUFDLDhCQUE4QjtnQkFLckMsdUJBQXVCO3NCQUY3QixZQUFZO3VCQUFDLHdCQUF3QjtnQkFLL0Isd0JBQXdCO3NCQUY5QixZQUFZO3VCQUFDLHlCQUF5QjtnQkFLaEMsbUJBQW1CO3NCQUZ6QixZQUFZO3VCQUFDLG9CQUFvQjtnQkFLM0IsY0FBYztzQkFGcEIsWUFBWTt1QkFBQyxnQkFBZ0I7Z0JBY3ZCLG1CQUFtQjtzQkFGekIsWUFBWTt1QkFBQyxxQkFBcUI7Z0JBSzVCLFFBQVE7c0JBRmQsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIEluamVjdG9yLCBWYWx1ZVByb3ZpZGVyLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudEJhc2UsIElDb21wb25lbnRCYXNlLCBhcHBseU1peGlucywgQ29tcG9uZW50TWl4aW5zLCBQcm9wZXJ0eUNvbGxlY3Rpb25JbmZvLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgR2FudHQgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZ2FudHQnO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IENvbHVtbnNEaXJlY3RpdmUgfSBmcm9tICcuL2NvbHVtbnMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFkZERpYWxvZ0ZpZWxkc0RpcmVjdGl2ZSB9IGZyb20gJy4vYWRkZGlhbG9nZmllbGRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFZGl0RGlhbG9nRmllbGRzRGlyZWN0aXZlIH0gZnJvbSAnLi9lZGl0ZGlhbG9nZmllbGRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYXlXb3JraW5nVGltZUNvbGxlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuL2RheXdvcmtpbmd0aW1lLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXZWVrV29ya2luZ1RpbWVzRGlyZWN0aXZlIH0gZnJvbSAnLi93ZWVrd29ya2luZ3RpbWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IEhvbGlkYXlzRGlyZWN0aXZlIH0gZnJvbSAnLi9ob2xpZGF5cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRXZlbnRNYXJrZXJzRGlyZWN0aXZlIH0gZnJvbSAnLi9ldmVudG1hcmtlcnMuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IGlucHV0czogc3RyaW5nW10gPSBbJ2FkZERpYWxvZ0ZpZWxkcycsJ2FsbG93RXhjZWxFeHBvcnQnLCdhbGxvd0ZpbHRlcmluZycsJ2FsbG93S2V5Ym9hcmQnLCdhbGxvd1BhcmVudERlcGVuZGVuY3knLCdhbGxvd1BkZkV4cG9ydCcsJ2FsbG93UmVvcmRlcmluZycsJ2FsbG93UmVzaXppbmcnLCdhbGxvd1Jvd0RyYWdBbmREcm9wJywnYWxsb3dTZWxlY3Rpb24nLCdhbGxvd1NvcnRpbmcnLCdhbGxvd1Rhc2tiYXJEcmFnQW5kRHJvcCcsJ2FsbG93VGFza2Jhck92ZXJsYXAnLCdhbGxvd1Vuc2NoZWR1bGVkVGFza3MnLCdhdXRvQ2FsY3VsYXRlRGF0ZVNjaGVkdWxpbmcnLCdhdXRvRm9jdXNUYXNrcycsJ2F1dG9VcGRhdGVQcmVkZWNlc3Nvck9mZnNldCcsJ2Jhc2VsaW5lQ29sb3InLCdiYXNlbGluZVRlbXBsYXRlJywnY2FsZW5kYXJTZXR0aW5ncycsJ2NvbGxhcHNlQWxsUGFyZW50VGFza3MnLCdjb2x1bW5NZW51SXRlbXMnLCdjb2x1bW5zJywnY29ubmVjdG9yTGluZUJhY2tncm91bmQnLCdjb25uZWN0b3JMaW5lV2lkdGgnLCdjb250ZXh0TWVudUl0ZW1zJywnZGF0YVNvdXJjZScsJ2RhdGVGb3JtYXQnLCdkYXlXb3JraW5nVGltZScsJ2Rpc2FibGVIdG1sRW5jb2RlJywnZHVyYXRpb25Vbml0JywnZWRpdERpYWxvZ0ZpZWxkcycsJ2VkaXRTZXR0aW5ncycsJ2VtcHR5UmVjb3JkVGVtcGxhdGUnLCdlbmFibGVBZGFwdGl2ZVVJJywnZW5hYmxlQXV0b1dic1VwZGF0ZScsJ2VuYWJsZUNvbnRleHRNZW51JywnZW5hYmxlQ3JpdGljYWxQYXRoJywnZW5hYmxlSG92ZXInLCdlbmFibGVIdG1sU2FuaXRpemVyJywnZW5hYmxlSW1tdXRhYmxlTW9kZScsJ2VuYWJsZUluZmluaXRlVGltZWxpbmVTY3JvbGwnLCdlbmFibGVNdWx0aVRhc2tiYXInLCdlbmFibGVQZXJzaXN0ZW5jZScsJ2VuYWJsZVByZWRlY2Vzc29yVmFsaWRhdGlvbicsJ2VuYWJsZVJ0bCcsJ2VuYWJsZVRpbWVsaW5lVmlydHVhbGl6YXRpb24nLCdlbmFibGVVbmRvUmVkbycsJ2VuYWJsZVZpcnR1YWxNYXNrUm93JywnZW5hYmxlVmlydHVhbGl6YXRpb24nLCdlbmFibGVXQlMnLCdldmVudE1hcmtlcnMnLCdmaWx0ZXJTZXR0aW5ncycsJ2Zyb3plbkNvbHVtbnMnLCdncmlkTGluZXMnLCdoZWlnaHQnLCdoaWdobGlnaHRXZWVrZW5kcycsJ2hvbGlkYXlzJywnaW5jbHVkZVdlZWtlbmQnLCdsYWJlbFNldHRpbmdzJywnbG9hZENoaWxkT25EZW1hbmQnLCdsb2FkaW5nSW5kaWNhdG9yJywnbG9jYWxlJywnbWlsZXN0b25lVGVtcGxhdGUnLCdwYXJlbnRUYXNrYmFyVGVtcGxhdGUnLCdwcm9qZWN0RW5kRGF0ZScsJ3Byb2plY3RTdGFydERhdGUnLCdxdWVyeScsJ3JlYWRPbmx5JywncmVuZGVyQmFzZWxpbmUnLCdyZXNvdXJjZUZpZWxkcycsJ3Jlc291cmNlSURNYXBwaW5nJywncmVzb3VyY2VOYW1lTWFwcGluZycsJ3Jlc291cmNlcycsJ3Jvd0hlaWdodCcsJ3NlYXJjaFNldHRpbmdzJywnc2VnbWVudERhdGEnLCdzZWxlY3RlZFJvd0luZGV4Jywnc2VsZWN0aW9uU2V0dGluZ3MnLCdzaG93Q29sdW1uTWVudScsJ3Nob3dJbmxpbmVOb3RlcycsJ3Nob3dPdmVyQWxsb2NhdGlvbicsJ3NvcnRTZXR0aW5ncycsJ3NwbGl0dGVyU2V0dGluZ3MnLCd0YXNrRmllbGRzJywndGFza01vZGUnLCd0YXNrVHlwZScsJ3Rhc2tiYXJIZWlnaHQnLCd0YXNrYmFyVGVtcGxhdGUnLCd0aW1lbGluZVNldHRpbmdzJywndGltZWxpbmVUZW1wbGF0ZScsJ3RpbWV6b25lJywndG9vbGJhcicsJ3Rvb2x0aXBTZXR0aW5ncycsJ3RyZWVDb2x1bW5JbmRleCcsJ3VuZG9SZWRvQWN0aW9ucycsJ3VuZG9SZWRvU3RlcHNDb3VudCcsJ3VwZGF0ZU9mZnNldE9uVGFza2JhckVkaXQnLCd2YWxpZGF0ZU1hbnVhbFRhc2tzT25MaW5raW5nJywndmlld1R5cGUnLCd3ZWVrV29ya2luZ1RpbWUnLCd3aWR0aCcsJ3dvcmtVbml0Jywnd29ya1dlZWsnLCd6b29taW5nTGV2ZWxzJ107XG5leHBvcnQgY29uc3Qgb3V0cHV0czogc3RyaW5nW10gPSBbJ2FjdGlvbkJlZ2luJywnYWN0aW9uQ29tcGxldGUnLCdhY3Rpb25GYWlsdXJlJywnYmVmb3JlRGF0YUJvdW5kJywnYmVmb3JlRXhjZWxFeHBvcnQnLCdiZWZvcmVQZGZFeHBvcnQnLCdiZWZvcmVUb29sdGlwUmVuZGVyJywnY2VsbERlc2VsZWN0ZWQnLCdjZWxsRGVzZWxlY3RpbmcnLCdjZWxsRWRpdCcsJ2NlbGxTYXZlJywnY2VsbFNlbGVjdGVkJywnY2VsbFNlbGVjdGluZycsJ2NvbGxhcHNlZCcsJ2NvbGxhcHNpbmcnLCdjb2x1bW5EcmFnJywnY29sdW1uRHJhZ1N0YXJ0JywnY29sdW1uRHJvcCcsJ2NvbHVtbk1lbnVDbGljaycsJ2NvbHVtbk1lbnVPcGVuJywnY29udGV4dE1lbnVDbGljaycsJ2NvbnRleHRNZW51T3BlbicsJ2NyZWF0ZWQnLCdkYXRhQm91bmQnLCdkYXRhU291cmNlQ2hhbmdlZCcsJ2RhdGFTdGF0ZUNoYW5nZScsJ2Rlc3Ryb3llZCcsJ2VuZEVkaXQnLCdleGNlbEV4cG9ydENvbXBsZXRlJywnZXhjZWxIZWFkZXJRdWVyeUNlbGxJbmZvJywnZXhjZWxRdWVyeUNlbGxJbmZvJywnZXhwYW5kZWQnLCdleHBhbmRpbmcnLCdoZWFkZXJDZWxsSW5mbycsJ2xvYWQnLCdvbk1vdXNlTW92ZScsJ29uVGFza2JhckNsaWNrJywncGRmQ29sdW1uSGVhZGVyUXVlcnlDZWxsSW5mbycsJ3BkZkV4cG9ydENvbXBsZXRlJywncGRmUXVlcnlDZWxsSW5mbycsJ3BkZlF1ZXJ5VGFza2JhckluZm8nLCdwZGZRdWVyeVRpbWVsaW5lQ2VsbEluZm8nLCdxdWVyeUNlbGxJbmZvJywncXVlcnlUYXNrYmFySW5mbycsJ3JlY29yZERvdWJsZUNsaWNrJywncmVzaXplU3RhcnQnLCdyZXNpemVTdG9wJywncmVzaXppbmcnLCdyb3dEYXRhQm91bmQnLCdyb3dEZXNlbGVjdGVkJywncm93RGVzZWxlY3RpbmcnLCdyb3dEcmFnJywncm93RHJhZ1N0YXJ0Jywncm93RHJhZ1N0YXJ0SGVscGVyJywncm93RHJvcCcsJ3Jvd1NlbGVjdGVkJywncm93U2VsZWN0aW5nJywnc3BsaXR0ZXJSZXNpemVTdGFydCcsJ3NwbGl0dGVyUmVzaXplZCcsJ3NwbGl0dGVyUmVzaXppbmcnLCd0YXNrYmFyRWRpdGVkJywndGFza2JhckVkaXRpbmcnLCd0b29sYmFyQ2xpY2snLCdkYXRhU291cmNlQ2hhbmdlJ107XG5leHBvcnQgY29uc3QgdHdvV2F5czogc3RyaW5nW10gPSBbJ2RhdGFTb3VyY2UnXTtcblxuLyoqXG4gKiBgZWpzLWdhbnR0YCByZXByZXNlbnRzIHRoZSBBbmd1bGFyIEdhbnR0IENvbXBvbmVudC5cbiAqIGBgYGh0bWxcbiAqIDxlanMtZ2FudHQgW2RhdGFTb3VyY2VdPSdkYXRhJyBhbGxvd1NlbGVjdGlvbj0ndHJ1ZScgYWxsb3dTb3J0aW5nPSd0cnVlJz48L2Vqcy1nYW50dD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Vqcy1nYW50dCcsXG4gICAgaW5wdXRzOiBpbnB1dHMsXG4gICAgb3V0cHV0czogb3V0cHV0cyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZENvbHVtbnM6IG5ldyBDb250ZW50Q2hpbGQoQ29sdW1uc0RpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZEFkZERpYWxvZ0ZpZWxkczogbmV3IENvbnRlbnRDaGlsZChBZGREaWFsb2dGaWVsZHNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRFZGl0RGlhbG9nRmllbGRzOiBuZXcgQ29udGVudENoaWxkKEVkaXREaWFsb2dGaWVsZHNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGREYXlXb3JraW5nVGltZTogbmV3IENvbnRlbnRDaGlsZChEYXlXb3JraW5nVGltZUNvbGxlY3Rpb25EaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRXZWVrV29ya2luZ1RpbWU6IG5ldyBDb250ZW50Q2hpbGQoV2Vla1dvcmtpbmdUaW1lc0RpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZEhvbGlkYXlzOiBuZXcgQ29udGVudENoaWxkKEhvbGlkYXlzRGlyZWN0aXZlKSwgXG4gICAgICAgIGNoaWxkRXZlbnRNYXJrZXJzOiBuZXcgQ29udGVudENoaWxkKEV2ZW50TWFya2Vyc0RpcmVjdGl2ZSlcbiAgICB9XG59KVxuQENvbXBvbmVudE1peGlucyhbQ29tcG9uZW50QmFzZV0pXG5leHBvcnQgY2xhc3MgR2FudHRDb21wb25lbnQgZXh0ZW5kcyBHYW50dCBpbXBsZW1lbnRzIElDb21wb25lbnRCYXNlIHtcbiAgICBwdWJsaWMgY29udGV4dCA6IGFueTtcbiAgICBwdWJsaWMgdGFnT2JqZWN0czogYW55O1xuXHRhY3Rpb25CZWdpbjogYW55O1xuXHRhY3Rpb25Db21wbGV0ZTogYW55O1xuXHRhY3Rpb25GYWlsdXJlOiBhbnk7XG5cdGJlZm9yZURhdGFCb3VuZDogYW55O1xuXHRiZWZvcmVFeGNlbEV4cG9ydDogYW55O1xuXHRiZWZvcmVQZGZFeHBvcnQ6IGFueTtcblx0YmVmb3JlVG9vbHRpcFJlbmRlcjogYW55O1xuXHRjZWxsRGVzZWxlY3RlZDogYW55O1xuXHRjZWxsRGVzZWxlY3Rpbmc6IGFueTtcblx0Y2VsbEVkaXQ6IGFueTtcblx0Y2VsbFNhdmU6IGFueTtcblx0Y2VsbFNlbGVjdGVkOiBhbnk7XG5cdGNlbGxTZWxlY3Rpbmc6IGFueTtcblx0Y29sbGFwc2VkOiBhbnk7XG5cdGNvbGxhcHNpbmc6IGFueTtcblx0Y29sdW1uRHJhZzogYW55O1xuXHRjb2x1bW5EcmFnU3RhcnQ6IGFueTtcblx0Y29sdW1uRHJvcDogYW55O1xuXHRjb2x1bW5NZW51Q2xpY2s6IGFueTtcblx0Y29sdW1uTWVudU9wZW46IGFueTtcblx0Y29udGV4dE1lbnVDbGljazogYW55O1xuXHRjb250ZXh0TWVudU9wZW46IGFueTtcblx0Y3JlYXRlZDogYW55O1xuXHRkYXRhQm91bmQ6IGFueTtcblx0ZGF0YVNvdXJjZUNoYW5nZWQ6IGFueTtcblx0ZGF0YVN0YXRlQ2hhbmdlOiBhbnk7XG5cdGRlc3Ryb3llZDogYW55O1xuXHRlbmRFZGl0OiBhbnk7XG5cdGV4Y2VsRXhwb3J0Q29tcGxldGU6IGFueTtcblx0ZXhjZWxIZWFkZXJRdWVyeUNlbGxJbmZvOiBhbnk7XG5cdGV4Y2VsUXVlcnlDZWxsSW5mbzogYW55O1xuXHRleHBhbmRlZDogYW55O1xuXHRleHBhbmRpbmc6IGFueTtcblx0aGVhZGVyQ2VsbEluZm86IGFueTtcblx0bG9hZDogYW55O1xuXHRvbk1vdXNlTW92ZTogYW55O1xuXHRvblRhc2tiYXJDbGljazogYW55O1xuXHRwZGZDb2x1bW5IZWFkZXJRdWVyeUNlbGxJbmZvOiBhbnk7XG5cdHBkZkV4cG9ydENvbXBsZXRlOiBhbnk7XG5cdHBkZlF1ZXJ5Q2VsbEluZm86IGFueTtcblx0cGRmUXVlcnlUYXNrYmFySW5mbzogYW55O1xuXHRwZGZRdWVyeVRpbWVsaW5lQ2VsbEluZm86IGFueTtcblx0cXVlcnlDZWxsSW5mbzogYW55O1xuXHRxdWVyeVRhc2tiYXJJbmZvOiBhbnk7XG5cdHJlY29yZERvdWJsZUNsaWNrOiBhbnk7XG5cdHJlc2l6ZVN0YXJ0OiBhbnk7XG5cdHJlc2l6ZVN0b3A6IGFueTtcblx0cmVzaXppbmc6IGFueTtcblx0cm93RGF0YUJvdW5kOiBhbnk7XG5cdHJvd0Rlc2VsZWN0ZWQ6IGFueTtcblx0cm93RGVzZWxlY3Rpbmc6IGFueTtcblx0cm93RHJhZzogYW55O1xuXHRyb3dEcmFnU3RhcnQ6IGFueTtcblx0cm93RHJhZ1N0YXJ0SGVscGVyOiBhbnk7XG5cdHJvd0Ryb3A6IGFueTtcblx0cm93U2VsZWN0ZWQ6IGFueTtcblx0cm93U2VsZWN0aW5nOiBhbnk7XG5cdHNwbGl0dGVyUmVzaXplU3RhcnQ6IGFueTtcblx0c3BsaXR0ZXJSZXNpemVkOiBhbnk7XG5cdHNwbGl0dGVyUmVzaXppbmc6IGFueTtcblx0dGFza2JhckVkaXRlZDogYW55O1xuXHR0YXNrYmFyRWRpdGluZzogYW55O1xuXHR0b29sYmFyQ2xpY2s6IGFueTtcblx0cHVibGljIGRhdGFTb3VyY2VDaGFuZ2U6IGFueTtcbiAgICBwdWJsaWMgY2hpbGRDb2x1bW5zOiBRdWVyeUxpc3Q8Q29sdW1uc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkQWRkRGlhbG9nRmllbGRzOiBRdWVyeUxpc3Q8QWRkRGlhbG9nRmllbGRzRGlyZWN0aXZlPjtcbiAgICBwdWJsaWMgY2hpbGRFZGl0RGlhbG9nRmllbGRzOiBRdWVyeUxpc3Q8RWRpdERpYWxvZ0ZpZWxkc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkRGF5V29ya2luZ1RpbWU6IFF1ZXJ5TGlzdDxEYXlXb3JraW5nVGltZUNvbGxlY3Rpb25EaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZFdlZWtXb3JraW5nVGltZTogUXVlcnlMaXN0PFdlZWtXb3JraW5nVGltZXNEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZEhvbGlkYXlzOiBRdWVyeUxpc3Q8SG9saWRheXNEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZEV2ZW50TWFya2VyczogUXVlcnlMaXN0PEV2ZW50TWFya2Vyc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIHRhZ3M6IHN0cmluZ1tdID0gWydjb2x1bW5zJywgJ2FkZERpYWxvZ0ZpZWxkcycsICdlZGl0RGlhbG9nRmllbGRzJywgJ2RheVdvcmtpbmdUaW1lJywgJ3dlZWtXb3JraW5nVGltZScsICdob2xpZGF5cycsICdldmVudE1hcmtlcnMnXTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBhIGN1c3RvbSB0ZW1wbGF0ZSBmb3IgcmVuZGVyaW5nIHBhcmVudCB0YXNrIGJhcnMgaW4gdGhlIEdhbnR0IGNoYXJ0LiBUaGlzIHRlbXBsYXRlIGFsbG93cyB5b3UgdG8gY3VzdG9taXplIHRoZSBhcHBlYXJhbmNlIG9mIHBhcmVudCB0YXNrIGJhcnMuIFxuICAgICAqIHslIGNvZGVCbG9jayBzcmM9J2dhbnR0L3BhcmVudFRhc2tiYXJUZW1wbGF0ZS9pbmRleC5tZCcgJX17JSBlbmRjb2RlQmxvY2sgJX1cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgncGFyZW50VGFza2JhclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBwYXJlbnRUYXNrYmFyVGVtcGxhdGU6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCd0b29sYmFyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRvb2xiYXJUZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHRlbXBsYXRlIHVzZWQgdG8gcmVuZGVyIGN1c3RvbSBIVE1MIGNvbnRlbnQgaW4gdGltZWxpbmUgY2VsbHMuIFxuICAgICAqIHslIGNvZGVCbG9jayBzcmM9J2dhbnR0L3RpbWVsaW5lVGVtcGxhdGUvaW5kZXgubWQnICV9eyUgZW5kY29kZUJsb2NrICV9XG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3RpbWVsaW5lVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRpbWVsaW5lVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBhIGN1c3RvbSB0ZW1wbGF0ZSBmb3IgcmVuZGVyaW5nIG1pbGVzdG9uZSB0YXNrcyBpbiB0aGUgR2FudHQgY2hhcnQuIFRoaXMgdGVtcGxhdGUgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgdGhlIGFwcGVhcmFuY2Ugb2YgbWlsZXN0b25lIHRhc2tzLiBcbiAgICAgKiB7JSBjb2RlQmxvY2sgc3JjPSdnYW50dC9taWxlc3RvbmVUZW1wbGF0ZS9pbmRleC5tZCcgJX17JSBlbmRjb2RlQmxvY2sgJX1cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnbWlsZXN0b25lVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIG1pbGVzdG9uZVRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIC4gXG4gICAgICogQWNjZXB0cyBhbiBlbGVtZW50IElEIHNlbGVjdG9yLCBIVE1MIHN0cmluZywgb3IgZnVuY3Rpb24gcmV0dXJuaW5nIGBzdHJpbmdgIG9yIGBIVE1MRWxlbWVudGAuIFxuICAgICAqIERlZmluZXMgYSBjdXN0b20gdGVtcGxhdGUgZm9yIHJlbmRlcmluZyBiYXNlbGluZSBiYXJzIGluIHRoZSBHYW50dCBjaGFydC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnYmFzZWxpbmVUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgYmFzZWxpbmVUZW1wbGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgdGFzayBiYXIgdGVtcGxhdGUgdGhhdCByZW5kZXJzIGN1c3RvbWl6ZWQgY2hpbGQgdGFzayBiYXJzIGZyb20gdGhlIGdpdmVuIHRlbXBsYXRlLiBcbiAgICAgKiBUaGlzIHByb3BlcnR5IGFsbG93cyB1c2VycyB0byBkZWZpbmUgYSBjdXN0b20gdGVtcGxhdGUgZm9yIHJlbmRlcmluZyBjaGlsZCB0YXNrIGJhcnMgaW4gdGhlIEdhbnR0IGNoYXJ0LiBcbiAgICAgKiB7JSBjb2RlQmxvY2sgc3JjPSdnYW50dC90YXNrYmFyVGVtcGxhdGUvaW5kZXgubWQnICV9eyUgZW5kY29kZUJsb2NrICV9XG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3Rhc2tiYXJUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdGFza2JhclRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZWRpdFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBlZGl0VGVtcGxhdGU6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCdsYWJlbFNldHRpbmdzUmlnaHRMYWJlbCcpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgbGFiZWxTZXR0aW5nc19yaWdodExhYmVsOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnbGFiZWxTZXR0aW5nc0xlZnRMYWJlbCcpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgbGFiZWxTZXR0aW5nc19sZWZ0TGFiZWw6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCdsYWJlbFNldHRpbmdzVGFza0xhYmVsJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBsYWJlbFNldHRpbmdzX3Rhc2tMYWJlbDogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ3Rvb2x0aXBTZXR0aW5nc1Rhc2tiYXInKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRvb2x0aXBTZXR0aW5nc190YXNrYmFyOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgndG9vbHRpcFNldHRpbmdzQmFzZWxpbmUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRvb2x0aXBTZXR0aW5nc19iYXNlbGluZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ3Rvb2x0aXBTZXR0aW5nc0Nvbm5lY3RvckxpbmUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRvb2x0aXBTZXR0aW5nc19jb25uZWN0b3JMaW5lOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgndG9vbHRpcFNldHRpbmdzRWRpdGluZycpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdG9vbHRpcFNldHRpbmdzX2VkaXRpbmc6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCd0b29sdGlwU2V0dGluZ3NUaW1lbGluZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdG9vbHRpcFNldHRpbmdzX3RpbWVsaW5lOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZmlsdGVySXRlbVRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBmaWx0ZXJfaXRlbVRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZmlsdGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGZpbHRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgYSBjdXN0b20gdGVtcGxhdGUgdG8gZGlzcGxheSB3aGVuIHRoZSBHYW50dCBjaGFydCBoYXMgbm8gcmVjb3Jkcy5cbiAgICAgKiBcbiAgICAgKiBUaGlzIHRlbXBsYXRlIHJlcGxhY2VzIHRoZSBkZWZhdWx0IGVtcHR5IHJlY29yZCBtZXNzYWdlIGFuZCBjYW4gaW5jbHVkZSB0ZXh0LCBIVE1MIGVsZW1lbnRzLCBvciBpbWFnZXMuXG4gICAgICpBY2NlcHRzIGVpdGhlciBhIHRlbXBsYXRlIHN0cmluZyBvciBhbiBIVE1MIGVsZW1lbnQgSUQuXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdlbXB0eVJlY29yZFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBlbXB0eVJlY29yZFRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgndGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRlbXBsYXRlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nRWxlOiBFbGVtZW50UmVmLCBwcml2YXRlIHNyZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gdGhpcy5uZ0VsZS5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcyA9IHRoaXMuaW5qZWN0ZWRNb2R1bGVzIHx8IFtdO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnR2FudHRGaWx0ZXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0U2VsZWN0aW9uJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdHYW50dFNvcnQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0UmVvcmRlcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnR2FudHRSZXNpemUnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0RWRpdCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnR2FudHREYXlNYXJrZXJzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdHYW50dFRvb2xiYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0Q29udGV4dE1lbnUnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0RXhjZWxFeHBvcnQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0Um93REQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0Q29sdW1uTWVudScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnR2FudHRQZGZFeHBvcnQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0VmlydHVhbFNjcm9sbCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnR2FudHRDcml0aWNhbFBhdGgnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0VW5kb1JlZG8nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0dhbnR0RnJlZXplJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHJcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50cyhvdXRwdXRzKTtcbiAgICAgICAgdGhpcy5hZGRUd29XYXkuY2FsbCh0aGlzLCB0d29XYXlzKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMuY29udGV4dCAgPSBuZXcgQ29tcG9uZW50QmFzZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0Lm5nT25Jbml0KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5uZ0FmdGVyVmlld0luaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQubmdPbkRlc3Ryb3kodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50YWdPYmplY3RzWzBdLmluc3RhbmNlID0gdGhpcy5jaGlsZENvbHVtbnM7XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRBZGREaWFsb2dGaWVsZHMpIHtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0c1sxXS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRBZGREaWFsb2dGaWVsZHM7XG4gICAgICAgIH1cbiAgICAgICAgXG5cdCAgICBpZiAodGhpcy5jaGlsZEVkaXREaWFsb2dGaWVsZHMpIHtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0c1syXS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRFZGl0RGlhbG9nRmllbGRzO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGREYXlXb3JraW5nVGltZSkge1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzNdLmluc3RhbmNlID0gdGhpcy5jaGlsZERheVdvcmtpbmdUaW1lO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRXZWVrV29ya2luZ1RpbWUpIHtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0c1s0XS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRXZWVrV29ya2luZ1RpbWU7XG4gICAgICAgIH1cbiAgICAgICAgXG5cdCAgICBpZiAodGhpcy5jaGlsZEhvbGlkYXlzKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbNV0uaW5zdGFuY2UgPSB0aGlzLmNoaWxkSG9saWRheXM7XG4gICAgICAgIH1cbiAgICAgICAgXG5cdCAgICBpZiAodGhpcy5jaGlsZEV2ZW50TWFya2Vycykge1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzZdLmluc3RhbmNlID0gdGhpcy5jaGlsZEV2ZW50TWFya2VycztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRleHQubmdBZnRlckNvbnRlbnRDaGVja2VkKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckV2ZW50czogKGV2ZW50TGlzdDogc3RyaW5nW10pID0+IHZvaWQ7XG4gICAgcHVibGljIGFkZFR3b1dheTogKHByb3BMaXN0OiBzdHJpbmdbXSkgPT4gdm9pZDtcbn1cblxuIl19
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ColumnDirective, ColumnsDirective } from './columns.directive';
|
|
4
|
-
import { AddDialogFieldDirective, AddDialogFieldsDirective } from './adddialogfields.directive';
|
|
5
|
-
import { EditDialogFieldDirective, EditDialogFieldsDirective } from './editdialogfields.directive';
|
|
6
|
-
import { DayWorkingTimeDirective, DayWorkingTimeCollectionDirective } from './dayworkingtime.directive';
|
|
7
|
-
import { WeekWorkingTimeDirective, WeekWorkingTimesDirective } from './weekworkingtime.directive';
|
|
8
|
-
import { HolidayDirective, HolidaysDirective } from './holidays.directive';
|
|
9
|
-
import { EventMarkerDirective, EventMarkersDirective } from './eventmarkers.directive';
|
|
10
|
-
import { GanttComponent } from './gantt.component';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
/**
|
|
13
|
-
* NgModule definition for the Gantt component.
|
|
14
|
-
*/
|
|
15
|
-
export class GanttModule {
|
|
16
|
-
}
|
|
17
|
-
GanttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GanttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
18
|
-
GanttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GanttModule, declarations: [GanttComponent,
|
|
19
|
-
ColumnDirective,
|
|
20
|
-
ColumnsDirective,
|
|
21
|
-
AddDialogFieldDirective,
|
|
22
|
-
AddDialogFieldsDirective,
|
|
23
|
-
EditDialogFieldDirective,
|
|
24
|
-
EditDialogFieldsDirective,
|
|
25
|
-
DayWorkingTimeDirective,
|
|
26
|
-
DayWorkingTimeCollectionDirective,
|
|
27
|
-
WeekWorkingTimeDirective,
|
|
28
|
-
WeekWorkingTimesDirective,
|
|
29
|
-
HolidayDirective,
|
|
30
|
-
HolidaysDirective,
|
|
31
|
-
EventMarkerDirective,
|
|
32
|
-
EventMarkersDirective], imports: [CommonModule], exports: [GanttComponent,
|
|
33
|
-
ColumnDirective,
|
|
34
|
-
ColumnsDirective,
|
|
35
|
-
AddDialogFieldDirective,
|
|
36
|
-
AddDialogFieldsDirective,
|
|
37
|
-
EditDialogFieldDirective,
|
|
38
|
-
EditDialogFieldsDirective,
|
|
39
|
-
DayWorkingTimeDirective,
|
|
40
|
-
DayWorkingTimeCollectionDirective,
|
|
41
|
-
WeekWorkingTimeDirective,
|
|
42
|
-
WeekWorkingTimesDirective,
|
|
43
|
-
HolidayDirective,
|
|
44
|
-
HolidaysDirective,
|
|
45
|
-
EventMarkerDirective,
|
|
46
|
-
EventMarkersDirective] });
|
|
47
|
-
GanttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GanttModule, imports: [[CommonModule]] });
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: GanttModule, decorators: [{
|
|
49
|
-
type: NgModule,
|
|
50
|
-
args: [{
|
|
51
|
-
imports: [CommonModule],
|
|
52
|
-
declarations: [
|
|
53
|
-
GanttComponent,
|
|
54
|
-
ColumnDirective,
|
|
55
|
-
ColumnsDirective,
|
|
56
|
-
AddDialogFieldDirective,
|
|
57
|
-
AddDialogFieldsDirective,
|
|
58
|
-
EditDialogFieldDirective,
|
|
59
|
-
EditDialogFieldsDirective,
|
|
60
|
-
DayWorkingTimeDirective,
|
|
61
|
-
DayWorkingTimeCollectionDirective,
|
|
62
|
-
WeekWorkingTimeDirective,
|
|
63
|
-
WeekWorkingTimesDirective,
|
|
64
|
-
HolidayDirective,
|
|
65
|
-
HolidaysDirective,
|
|
66
|
-
EventMarkerDirective,
|
|
67
|
-
EventMarkersDirective
|
|
68
|
-
],
|
|
69
|
-
exports: [
|
|
70
|
-
GanttComponent,
|
|
71
|
-
ColumnDirective,
|
|
72
|
-
ColumnsDirective,
|
|
73
|
-
AddDialogFieldDirective,
|
|
74
|
-
AddDialogFieldsDirective,
|
|
75
|
-
EditDialogFieldDirective,
|
|
76
|
-
EditDialogFieldsDirective,
|
|
77
|
-
DayWorkingTimeDirective,
|
|
78
|
-
DayWorkingTimeCollectionDirective,
|
|
79
|
-
WeekWorkingTimeDirective,
|
|
80
|
-
WeekWorkingTimesDirective,
|
|
81
|
-
HolidayDirective,
|
|
82
|
-
HolidaysDirective,
|
|
83
|
-
EventMarkerDirective,
|
|
84
|
-
EventMarkersDirective
|
|
85
|
-
]
|
|
86
|
-
}]
|
|
87
|
-
}] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FudHQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dhbnR0L2dhbnR0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUVuRDs7R0FFRztBQXNDSCxNQUFNLE9BQU8sV0FBVzs7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLGlCQWxDaEIsY0FBYztRQUNkLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2QixpQ0FBaUM7UUFDakMsd0JBQXdCO1FBQ3hCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQixxQkFBcUIsYUFoQmYsWUFBWSxhQW1CbEIsY0FBYztRQUNkLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsdUJBQXVCO1FBQ3ZCLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2QixpQ0FBaUM7UUFDakMsd0JBQXdCO1FBQ3hCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIsaUJBQWlCO1FBQ2pCLG9CQUFvQjtRQUNwQixxQkFBcUI7eUdBR2hCLFdBQVcsWUFwQ1gsQ0FBQyxZQUFZLENBQUM7MkZBb0NkLFdBQVc7a0JBckN2QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFO3dCQUNWLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsdUJBQXVCO3dCQUN2QixpQ0FBaUM7d0JBQ2pDLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixxQkFBcUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLHVCQUF1Qjt3QkFDdkIsaUNBQWlDO3dCQUNqQyx3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3FCQUN4QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29sdW1uRGlyZWN0aXZlLCBDb2x1bW5zRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2x1bW5zLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBZGREaWFsb2dGaWVsZERpcmVjdGl2ZSwgQWRkRGlhbG9nRmllbGRzRGlyZWN0aXZlIH0gZnJvbSAnLi9hZGRkaWFsb2dmaWVsZHMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVkaXREaWFsb2dGaWVsZERpcmVjdGl2ZSwgRWRpdERpYWxvZ0ZpZWxkc0RpcmVjdGl2ZSB9IGZyb20gJy4vZWRpdGRpYWxvZ2ZpZWxkcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGF5V29ya2luZ1RpbWVEaXJlY3RpdmUsIERheVdvcmtpbmdUaW1lQ29sbGVjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGF5d29ya2luZ3RpbWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IFdlZWtXb3JraW5nVGltZURpcmVjdGl2ZSwgV2Vla1dvcmtpbmdUaW1lc0RpcmVjdGl2ZSB9IGZyb20gJy4vd2Vla3dvcmtpbmd0aW1lLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIb2xpZGF5RGlyZWN0aXZlLCBIb2xpZGF5c0RpcmVjdGl2ZSB9IGZyb20gJy4vaG9saWRheXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEV2ZW50TWFya2VyRGlyZWN0aXZlLCBFdmVudE1hcmtlcnNEaXJlY3RpdmUgfSBmcm9tICcuL2V2ZW50bWFya2Vycy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgR2FudHRDb21wb25lbnQgfSBmcm9tICcuL2dhbnR0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogTmdNb2R1bGUgZGVmaW5pdGlvbiBmb3IgdGhlIEdhbnR0IGNvbXBvbmVudC5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgR2FudHRDb21wb25lbnQsXG4gICAgICAgIENvbHVtbkRpcmVjdGl2ZSxcbiAgICAgICAgQ29sdW1uc0RpcmVjdGl2ZSxcbiAgICAgICAgQWRkRGlhbG9nRmllbGREaXJlY3RpdmUsXG4gICAgICAgIEFkZERpYWxvZ0ZpZWxkc0RpcmVjdGl2ZSxcbiAgICAgICAgRWRpdERpYWxvZ0ZpZWxkRGlyZWN0aXZlLFxuICAgICAgICBFZGl0RGlhbG9nRmllbGRzRGlyZWN0aXZlLFxuICAgICAgICBEYXlXb3JraW5nVGltZURpcmVjdGl2ZSxcbiAgICAgICAgRGF5V29ya2luZ1RpbWVDb2xsZWN0aW9uRGlyZWN0aXZlLFxuICAgICAgICBXZWVrV29ya2luZ1RpbWVEaXJlY3RpdmUsXG4gICAgICAgIFdlZWtXb3JraW5nVGltZXNEaXJlY3RpdmUsXG4gICAgICAgIEhvbGlkYXlEaXJlY3RpdmUsXG4gICAgICAgIEhvbGlkYXlzRGlyZWN0aXZlLFxuICAgICAgICBFdmVudE1hcmtlckRpcmVjdGl2ZSxcbiAgICAgICAgRXZlbnRNYXJrZXJzRGlyZWN0aXZlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEdhbnR0Q29tcG9uZW50LFxuICAgICAgICBDb2x1bW5EaXJlY3RpdmUsXG4gICAgICAgIENvbHVtbnNEaXJlY3RpdmUsXG4gICAgICAgIEFkZERpYWxvZ0ZpZWxkRGlyZWN0aXZlLFxuICAgICAgICBBZGREaWFsb2dGaWVsZHNEaXJlY3RpdmUsXG4gICAgICAgIEVkaXREaWFsb2dGaWVsZERpcmVjdGl2ZSxcbiAgICAgICAgRWRpdERpYWxvZ0ZpZWxkc0RpcmVjdGl2ZSxcbiAgICAgICAgRGF5V29ya2luZ1RpbWVEaXJlY3RpdmUsXG4gICAgICAgIERheVdvcmtpbmdUaW1lQ29sbGVjdGlvbkRpcmVjdGl2ZSxcbiAgICAgICAgV2Vla1dvcmtpbmdUaW1lRGlyZWN0aXZlLFxuICAgICAgICBXZWVrV29ya2luZ1RpbWVzRGlyZWN0aXZlLFxuICAgICAgICBIb2xpZGF5RGlyZWN0aXZlLFxuICAgICAgICBIb2xpZGF5c0RpcmVjdGl2ZSxcbiAgICAgICAgRXZlbnRNYXJrZXJEaXJlY3RpdmUsXG4gICAgICAgIEV2ZW50TWFya2Vyc0RpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgR2FudHRNb2R1bGUgeyB9Il19
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { Directive, ContentChildren } from '@angular/core';
|
|
2
|
-
import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
let input = ['cssClass', 'from', 'label', 'to'];
|
|
5
|
-
let outputs = [];
|
|
6
|
-
/**
|
|
7
|
-
* `e-holidays` directive represent a holidays collection in Gantt.
|
|
8
|
-
* It must be contained in a Gantt component(`ejs-gantt`).
|
|
9
|
-
* ```html
|
|
10
|
-
* <ejs-gantt [dataSource]='data' allowSelection='true' allowSorting='true'>
|
|
11
|
-
* <e-holidays>
|
|
12
|
-
* <e-holiday from='02/20/2018' label='Holiday 1'></e-holiday>
|
|
13
|
-
* <e-holiday from='05/15/2018' label='Holiday 2'></e-holiday>
|
|
14
|
-
* </e-holidays>
|
|
15
|
-
* </ejs-gantt>
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export class HolidayDirective extends ComplexBase {
|
|
19
|
-
constructor(viewContainerRef) {
|
|
20
|
-
super();
|
|
21
|
-
this.viewContainerRef = viewContainerRef;
|
|
22
|
-
setValue('currentInstance', this, this.viewContainerRef);
|
|
23
|
-
this.registerEvents(outputs);
|
|
24
|
-
this.directivePropList = input;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
HolidayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HolidayDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
28
|
-
HolidayDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: HolidayDirective, selector: "ejs-gantt>e-holidays>e-holidays", inputs: { cssClass: "cssClass", from: "from", label: "label", to: "to" }, usesInheritance: true, ngImport: i0 });
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HolidayDirective, decorators: [{
|
|
30
|
-
type: Directive,
|
|
31
|
-
args: [{
|
|
32
|
-
selector: 'ejs-gantt>e-holidays>e-holidays',
|
|
33
|
-
inputs: input,
|
|
34
|
-
outputs: outputs,
|
|
35
|
-
queries: {}
|
|
36
|
-
}]
|
|
37
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
|
|
38
|
-
/**
|
|
39
|
-
* Holiday Array Directive
|
|
40
|
-
* @private
|
|
41
|
-
*/
|
|
42
|
-
export class HolidaysDirective extends ArrayBase {
|
|
43
|
-
constructor() {
|
|
44
|
-
super('holidays');
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
HolidaysDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HolidaysDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
-
HolidaysDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: HolidaysDirective, selector: "ejs-gantt>e-holidays", queries: [{ propertyName: "children", predicate: HolidayDirective }], usesInheritance: true, ngImport: i0 });
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: HolidaysDirective, decorators: [{
|
|
50
|
-
type: Directive,
|
|
51
|
-
args: [{
|
|
52
|
-
selector: 'ejs-gantt>e-holidays',
|
|
53
|
-
queries: {
|
|
54
|
-
children: new ContentChildren(HolidayDirective)
|
|
55
|
-
},
|
|
56
|
-
}]
|
|
57
|
-
}], ctorParameters: function () { return []; } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9saWRheXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2dhbnR0L2hvbGlkYXlzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBSWhGLElBQUksS0FBSyxHQUFhLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDMUQsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7Ozs7OztHQVdHO0FBU0gsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQTZCO0lBdUMvRCxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBRWpELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7OzZHQTVDUSxnQkFBZ0I7aUdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQVI1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLE1BQU0sRUFBRSxLQUFLO29CQUNiLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsRUFFUjtpQkFDSjs7QUFnREQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFNBQTRCO0lBQy9EO1FBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7OzhHQUhRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHFGQUhRLGdCQUFnQjsyRkFHekMsaUJBQWlCO2tCQU43QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsZ0JBQWdCLENBQUM7cUJBQ2xEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb250ZW50Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cblxuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydjc3NDbGFzcycsICdmcm9tJywgJ2xhYmVsJywgJ3RvJ107XG5sZXQgb3V0cHV0czogc3RyaW5nW10gPSBbXTtcbi8qKlxuICogYGUtaG9saWRheXNgIGRpcmVjdGl2ZSByZXByZXNlbnQgYSBob2xpZGF5cyBjb2xsZWN0aW9uIGluIEdhbnR0LiBcbiAqIEl0IG11c3QgYmUgY29udGFpbmVkIGluIGEgR2FudHQgY29tcG9uZW50KGBlanMtZ2FudHRgKS4gXG4gKiBgYGBodG1sXG4gKiA8ZWpzLWdhbnR0IFtkYXRhU291cmNlXT0nZGF0YScgYWxsb3dTZWxlY3Rpb249J3RydWUnIGFsbG93U29ydGluZz0ndHJ1ZSc+IFxuICogICA8ZS1ob2xpZGF5cz5cbiAqICAgICA8ZS1ob2xpZGF5IGZyb209JzAyLzIwLzIwMTgnIGxhYmVsPSdIb2xpZGF5IDEnPjwvZS1ob2xpZGF5PlxuICogICAgIDxlLWhvbGlkYXkgZnJvbT0nMDUvMTUvMjAxOCcgbGFiZWw9J0hvbGlkYXkgMic+PC9lLWhvbGlkYXk+XG4gKiAgIDwvZS1ob2xpZGF5cz5cbiAqIDwvZWpzLWdhbnR0PlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLWdhbnR0PmUtaG9saWRheXM+ZS1ob2xpZGF5cycsXG4gICAgaW5wdXRzOiBpbnB1dCxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLCAgICBcbiAgICBxdWVyaWVzOiB7XG5cbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEhvbGlkYXlEaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxIb2xpZGF5RGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuXG5cbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBhIGN1c3RvbSBDU1MgY2xhc3MgZm9yIHN0eWxpbmcgdGhlIGhvbGlkYXkgbWFya2VyIGFuZCBsYWJlbC5cbiAgICAgKiBcbiAgICAgKiBVc2UgdGhpcyB0byBhcHBseSBjdXN0b20gYmFja2dyb3VuZCwgYm9yZGVycywgb3IgZm9udCBzdHlsZXMuXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgY3NzQ2xhc3M6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBzdGFydCBkYXRlIG9mIHRoZSBob2xpZGF5LlxuICAgICAqIFxuICAgICAqIEFjY2VwdHMgYSBgRGF0ZWAgb2JqZWN0IG9yIElTTy1mb3JtYXR0ZWQgc3RyaW5nLlxuICAgICAqICAgICBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZyb206IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBhIGxhYmVsIG9yIGRlc2NyaXB0aW9uIGZvciB0aGUgaG9saWRheS5cbiAgICAgKiBcbiAgICAgKiBVc2VmdWwgZm9yIHRvb2x0aXBzLCBhbm5vdGF0aW9ucywgYW5kIGV4cG9ydCBtZXRhZGF0YS5cbiAgICAgKiAgICAgXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBsYWJlbDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGVuZCBkYXRlIG9mIHRoZSBob2xpZGF5LlxuICAgICAqIFxuICAgICAqIEFjY2VwdHMgYSBgRGF0ZWAgb2JqZWN0IG9yIElTTy1mb3JtYXR0ZWQgc3RyaW5nLlxuICAgICAqSWYgb21pdHRlZCwgdGhlIGhvbGlkYXkgaXMgdHJlYXRlZCBhcyBhIHNpbmdsZS1kYXkgZXZlbnQuXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgdG86IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHNldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UnLCB0aGlzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmRpcmVjdGl2ZVByb3BMaXN0ID0gaW5wdXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIEhvbGlkYXkgQXJyYXkgRGlyZWN0aXZlXG4gKiBAcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy1nYW50dD5lLWhvbGlkYXlzJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKEhvbGlkYXlEaXJlY3RpdmUpXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgSG9saWRheXNEaXJlY3RpdmUgZXh0ZW5kcyBBcnJheUJhc2U8SG9saWRheXNEaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ2hvbGlkYXlzJyk7XG4gICAgfVxufSJdfQ==
|