mmhglobal-dynamicform 2.0.0-beta.77 → 2.0.0-beta.78
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/README.md +3 -0
- package/esm2020/lib/zchart/zchart.component.mjs +93 -76
- package/fesm2015/mmhglobal-dynamicform.mjs +242 -227
- package/fesm2015/mmhglobal-dynamicform.mjs.map +1 -1
- package/fesm2020/mmhglobal-dynamicform.mjs +241 -226
- package/fesm2020/mmhglobal-dynamicform.mjs.map +1 -1
- package/lib/zchart/zchart.component.d.ts +21 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.13.
|
|
4
4
|
|
|
5
5
|
## Changelog
|
|
6
|
+
`2.78beta`<br/>
|
|
7
|
+
[zchart] - Enhanced component with extra events handling.<br/>
|
|
8
|
+
|
|
6
9
|
`2.77beta`<br/>
|
|
7
10
|
[debugger] - handle extra watch list item.<br/>
|
|
8
11
|
[zudf] - add zudf zmodel to the console watch list dropdown.<br/>
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
/********** Angular **********/
|
|
2
|
-
import { Component
|
|
3
|
-
import { Validators } from '@angular/forms';
|
|
2
|
+
import { Component } from "@angular/core";
|
|
4
3
|
/********** Ionic **********/
|
|
5
4
|
/********** Plugin **********/
|
|
6
5
|
// import { groupBy, GroupResult } from '@progress/kendo-data-query';
|
|
7
6
|
/********** Component & Service **********/
|
|
8
|
-
import { ZComponentHelper
|
|
7
|
+
import { ZComponentHelper } from 'mmhglobal-zcore';
|
|
8
|
+
import { DataListingFieldBase } from "../components/datalistingfieldbase.component";
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "
|
|
11
|
-
import * as i2 from "@angular
|
|
12
|
-
|
|
10
|
+
import * as i1 from "../services/zcomponent.service";
|
|
11
|
+
import * as i2 from "@progress/kendo-angular-charts";
|
|
12
|
+
import * as i3 from "@angular/common";
|
|
13
|
+
import * as i4 from "../pipe/htmlSanitize.pipe";
|
|
14
|
+
export class ZchartComponent extends DataListingFieldBase {
|
|
13
15
|
// fieldElement01 = [{
|
|
14
16
|
// Name: 'chart01',
|
|
15
17
|
// Type: 'zchart',
|
|
@@ -40,9 +42,8 @@ export class ZchartComponent {
|
|
|
40
42
|
// DivClass: "col-md-12 col-md-6",
|
|
41
43
|
// Visible: true
|
|
42
44
|
// }];
|
|
43
|
-
constructor() {
|
|
44
|
-
|
|
45
|
-
this.componentProperties = new ZComponentProperties();
|
|
45
|
+
constructor(compService) {
|
|
46
|
+
super(compService);
|
|
46
47
|
this.series = [];
|
|
47
48
|
// = [{
|
|
48
49
|
// type: '',
|
|
@@ -67,8 +68,9 @@ export class ZchartComponent {
|
|
|
67
68
|
// }];
|
|
68
69
|
this.categories = [];
|
|
69
70
|
// [2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011];
|
|
71
|
+
// Default values
|
|
70
72
|
this.options = {
|
|
71
|
-
title: '
|
|
73
|
+
title: '',
|
|
72
74
|
renderAs: 'canvas',
|
|
73
75
|
pannable: false,
|
|
74
76
|
zoomable: false,
|
|
@@ -92,89 +94,94 @@ export class ZchartComponent {
|
|
|
92
94
|
dataField: null,
|
|
93
95
|
categoryField: null,
|
|
94
96
|
color: '#05A2FE',
|
|
97
|
+
onRender: '',
|
|
98
|
+
onAxisLabelClick: '',
|
|
99
|
+
onLegendItemClick: '',
|
|
100
|
+
onLegendItemHover: '',
|
|
101
|
+
onPlotAreaClick: '',
|
|
102
|
+
onPlotAreaHover: '',
|
|
103
|
+
onSeriesClick: '',
|
|
104
|
+
onSeriesHover: '',
|
|
105
|
+
customTooltipFunc: '',
|
|
106
|
+
customTooltipOptions: { background: '#05A2FE' }
|
|
95
107
|
};
|
|
96
108
|
this.setData = (gData) => {
|
|
97
|
-
this.getFieldDeclarationForSetup(this.data
|
|
98
|
-
};
|
|
99
|
-
this.setEnable = (status) => {
|
|
100
|
-
// const fc = this.group.form.controls[this.data.Value];
|
|
101
|
-
// status ? fc.enable() : fc.disable();
|
|
102
|
-
this.componentProperties.isReadOnly = !status;
|
|
103
|
-
};
|
|
104
|
-
this.setVisible = (status) => {
|
|
105
|
-
this.componentProperties.isVisible = status;
|
|
106
|
-
this.data.Visible = status;
|
|
107
|
-
};
|
|
108
|
-
this.setRequire = (status) => {
|
|
109
|
-
this.componentProperties.isRequired = status;
|
|
110
|
-
ZComponentHelper.changeValidator(status, this.group, this.data.Value, this.componentProperties, Validators.required);
|
|
109
|
+
this.getFieldDeclarationForSetup(this.data);
|
|
111
110
|
};
|
|
112
111
|
}
|
|
113
112
|
ngOnInit() {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
113
|
+
super.initComponent().subscribe(() => {
|
|
114
|
+
if (this.data.Options) {
|
|
115
|
+
const optionType = typeof (this.data.Options);
|
|
116
|
+
if (optionType === 'object') {
|
|
117
|
+
Object.assign(this.options, this.data.Options);
|
|
118
|
+
}
|
|
119
|
+
else if (optionType === 'string') {
|
|
120
|
+
const optionValue = ZComponentHelper.getGroupEvalValue.call(this, this.data.Options);
|
|
121
|
+
if (typeof (optionValue) === 'object') {
|
|
122
|
+
Object.assign(this.options, optionValue);
|
|
123
|
+
}
|
|
125
124
|
}
|
|
126
125
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
126
|
+
if (this.data.Options && this.data.Options.categoryAxis && this.data.Options.categoryAxis.categories && typeof (this.data.Options.categoryAxis.categories) === 'string') {
|
|
127
|
+
this.options.categoryAxis.categories =
|
|
128
|
+
ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.categoryAxis.categories);
|
|
129
|
+
}
|
|
130
|
+
if (this.data.Options && this.data.Options.series && typeof (this.data.Options.series) === 'string') {
|
|
131
|
+
this.options.series =
|
|
132
|
+
ZComponentHelper.getGroupEvalValue.call(this, this.data.Options.series);
|
|
133
|
+
}
|
|
134
|
+
this.getFieldDeclarationForSetup(this.data);
|
|
135
|
+
this.isLoading = false;
|
|
136
|
+
});
|
|
138
137
|
}
|
|
139
|
-
getFieldDeclarationForSetup(field
|
|
140
|
-
options.title = field.Title || options.title;
|
|
141
|
-
options.renderAs = field.RenderAs || options.renderAs;
|
|
142
|
-
options.pannable = field.Pannable || options.pannable;
|
|
143
|
-
options.zoomable = field.Zoomable || options.zoomable;
|
|
144
|
-
options.categoryAxis.categories = ZComponentHelper.getGroupEvalValue.call(this, field.Categories) || [];
|
|
145
|
-
options.categoryAxis.max = field.Max || options.categoryAxis.max;
|
|
146
|
-
options.categoryAxis.maxDivisions = field.MaxDivisions || options.categoryAxis.maxDivisions;
|
|
147
|
-
options.categoryAxis.labels.rotation = field.Rotation || options.categoryAxis.labels.rotation;
|
|
148
|
-
options.series = ZComponentHelper.getGroupEvalValue.call(this, field.Series) || [];
|
|
149
|
-
options.dataType = field.DataType || options.dataType;
|
|
150
|
-
options.dataStyle = field.DataStyle || options.dataStyle;
|
|
151
|
-
options.legendPosition = field.LegendPosition || options.legendPosition;
|
|
152
|
-
options.legendOrientation = field.LegendOrientation || options.legendOrientation;
|
|
153
|
-
options.tooltipFormat = field.TooltipFormat || options.tooltipFormat;
|
|
154
|
-
options.aggregateType = field.AggregateType || options.aggregateType;
|
|
155
|
-
options.dataField = field.DataField || options.dataField;
|
|
156
|
-
options.categoryField = field.CategoryField || options.categoryField;
|
|
138
|
+
getFieldDeclarationForSetup(field) {
|
|
139
|
+
this.options.title = field.Title || this.options.title;
|
|
140
|
+
this.options.renderAs = field.RenderAs || this.options.renderAs;
|
|
141
|
+
this.options.pannable = field.Pannable || this.options.pannable;
|
|
142
|
+
this.options.zoomable = field.Zoomable || this.options.zoomable;
|
|
143
|
+
this.options.categoryAxis.categories = ZComponentHelper.getGroupEvalValue.call(this, field.Categories) || [];
|
|
144
|
+
this.options.categoryAxis.max = field.Max || this.options.categoryAxis.max;
|
|
145
|
+
this.options.categoryAxis.maxDivisions = field.MaxDivisions || this.options.categoryAxis.maxDivisions;
|
|
146
|
+
this.options.categoryAxis.labels.rotation = field.Rotation || this.options.categoryAxis.labels.rotation;
|
|
147
|
+
this.options.series = ZComponentHelper.getGroupEvalValue.call(this, field.Series) || [];
|
|
148
|
+
this.options.dataType = field.DataType || this.options.dataType;
|
|
149
|
+
this.options.dataStyle = field.DataStyle || this.options.dataStyle;
|
|
150
|
+
this.options.legendPosition = field.LegendPosition || this.options.legendPosition;
|
|
151
|
+
this.options.legendOrientation = field.LegendOrientation || this.options.legendOrientation;
|
|
152
|
+
this.options.tooltipFormat = field.TooltipFormat || this.options.tooltipFormat;
|
|
153
|
+
this.options.aggregateType = field.AggregateType || this.options.aggregateType;
|
|
154
|
+
this.options.dataField = field.DataField || this.options.dataField;
|
|
155
|
+
this.options.categoryField = field.CategoryField || this.options.categoryField;
|
|
156
|
+
this.options.customTooltipFunc = field[`CustomTooltipFunc`] || this.options.customTooltipFunc;
|
|
157
157
|
}
|
|
158
|
+
//#region Component Events
|
|
158
159
|
onRender(e) {
|
|
159
160
|
// console.log('render');
|
|
161
|
+
this.callComponentEvent(e, this.options.onRender);
|
|
160
162
|
}
|
|
161
163
|
onAxisLabelClick(e) {
|
|
162
164
|
// console.log('axisLabelClick', e);
|
|
165
|
+
this.callComponentEvent(e, this.options.onAxisLabelClick);
|
|
163
166
|
}
|
|
164
167
|
onLegendItemClick(e) {
|
|
165
168
|
// console.log('legendItemClick', e);
|
|
169
|
+
this.callComponentEvent(e, this.options.onLegendItemClick);
|
|
166
170
|
}
|
|
167
171
|
onLegendItemHover(e) {
|
|
168
172
|
// console.log('legendItemHover', e);
|
|
173
|
+
this.callComponentEvent(e, this.options.onLegendItemHover);
|
|
169
174
|
}
|
|
170
175
|
onPlotAreaClick(e) {
|
|
171
176
|
// console.log('plotAreaClick', e);
|
|
177
|
+
this.callComponentEvent(e, this.options.onPlotAreaClick);
|
|
172
178
|
}
|
|
173
179
|
onPlotAreaHover(e) {
|
|
174
180
|
// console.log('plotAreaHover', e);
|
|
181
|
+
this.callComponentEvent(e, this.options.onPlotAreaHover);
|
|
175
182
|
}
|
|
176
183
|
onSeriesClick(e) {
|
|
177
|
-
|
|
184
|
+
console.log('seriesClick', e);
|
|
178
185
|
const f = ZComponentHelper.getGroupEvalValue.call(this, this.data.OnItemClick);
|
|
179
186
|
if (typeof f === 'function') {
|
|
180
187
|
const callFunc = f.bind(this.group.ctrlScope);
|
|
@@ -183,19 +190,29 @@ export class ZchartComponent {
|
|
|
183
190
|
return;
|
|
184
191
|
}
|
|
185
192
|
onSeriesHover(e) {
|
|
193
|
+
this.callComponentEvent(e, this.options.onSeriesHover);
|
|
186
194
|
// console.log('seriesHover', e);
|
|
187
195
|
}
|
|
196
|
+
callComponentEvent(e, event) {
|
|
197
|
+
if (typeof event === 'function') {
|
|
198
|
+
const callFunc = event.bind(this.group.ctrlScope);
|
|
199
|
+
return callFunc(e);
|
|
200
|
+
}
|
|
201
|
+
const f = ZComponentHelper.getGroupEvalValue.call(this, event);
|
|
202
|
+
if (typeof f === 'function') {
|
|
203
|
+
const callFunc = f.bind(this.group.ctrlScope);
|
|
204
|
+
return callFunc(e);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
//#endregion
|
|
208
|
+
getToolTip(value, category) {
|
|
209
|
+
return this.callComponentEvent({ value, category }, this.options.customTooltipFunc);
|
|
210
|
+
}
|
|
188
211
|
}
|
|
189
|
-
ZchartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZchartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
190
|
-
ZchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZchartComponent, selector: "app-zchart",
|
|
212
|
+
ZchartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZchartComponent, deps: [{ token: i1.ZComponentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
213
|
+
ZchartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: ZchartComponent, selector: "app-zchart", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <kendo-chart [renderAs]=\"options.renderAs\" [pannable]=\"options.pannable\" [zoomable]=\"options.zoomable\"\r\n [categoryAxis]=\"options.categoryAxis\"\r\n (render)=\"onRender($event)\"\r\n (axisLabelClick)=\"onAxisLabelClick($event)\"\r\n (legendItemClick)=\"onLegendItemClick($event)\"\r\n (legendItemHover)=\"onLegendItemHover($event)\"\r\n (plotAreaClick)=\"onPlotAreaClick($event)\"\r\n (plotAreaHover)=\"onPlotAreaHover($event)\"\r\n (seriesClick)=\"onSeriesClick($event)\"\r\n (seriesHover)=\"onSeriesHover($event)\"\r\n class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <kendo-chart-title *ngIf=\"options.title\" [text]=\"options.title\" class=\"e1tag-style2\" [style]=\"componentProperties.style.style2\"></kendo-chart-title>\r\n <kendo-chart-legend [position]=\"options.legendPosition\" [orientation]=\"options.legendOrientation\" class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\"></kendo-chart-legend>\r\n <kendo-chart-tooltip [format]=\"options.tooltipFormat\" class=\"e1tag-style4\" [style]=\"componentProperties.style.style4\"></kendo-chart-tooltip>\r\n <kendo-chart-series class=\"e1tag-style5\" [style]=\"componentProperties.style.style5\">\r\n <kendo-chart-series-item *ngFor=\"let item of options.series\"\r\n [aggregate]=\"options.aggregateType\"\r\n [type]=\"item.type || options.dataType\" [style]=\"item.style || options.dataStyle\"\r\n [color]=\"item.color || options.color\"\r\n [labels]=\"item.labels || options.labels\"\r\n [field]=\"options.dataField\" [categoryField]=\"options.categoryField\"\r\n [data]=\"item.data\" [name]=\"item.name\">\r\n <kendo-chart-series-item-tooltip kendoChartSeriesTooltipTemplate *ngIf=\"options.customTooltipFunc\" [background]=\"options.customTooltipOptions.background\">\r\n <ng-template let-value=\"value\" let-category=\"category\">\r\n <div [innerHTML]=\"getToolTip(value, category) | htmlSanitize\" class=\"e1tag-style6\" [style]=\"componentProperties.style.style6\"></div>\r\n </ng-template>\r\n </kendo-chart-series-item-tooltip>\r\n </kendo-chart-series-item>\r\n </kendo-chart-series>\r\n </kendo-chart>\r\n</div>\r\n", styles: [""], components: [{ type: i2.ChartComponent, selector: "kendo-chart", inputs: ["pannable", "renderAs", "seriesColors", "subtitle", "title", "transitions", "zoomable", "axisDefaults", "categoryAxis", "chartArea", "legend", "panes", "paneDefaults", "plotArea", "series", "seriesDefaults", "tooltip", "valueAxis", "xAxis", "yAxis", "resizeRateLimit", "popupSettings"], outputs: ["axisLabelClick", "drag", "dragEnd", "dragStart", "legendItemHover", "legendItemLeave", "noteClick", "noteHover", "noteLeave", "paneRender", "plotAreaClick", "plotAreaHover", "plotAreaLeave", "render", "select", "selectEnd", "selectStart", "seriesClick", "seriesHover", "seriesOver", "seriesLeave", "zoom", "zoomEnd", "zoomStart", "legendItemClick"], exportAs: ["kendoChart"] }, { type: i2.TitleComponent, selector: "kendo-chart-title", inputs: ["align", "background", "border", "color", "font", "margin", "padding", "position", "text", "visible"] }, { type: i2.LegendComponent, selector: "kendo-chart-legend", inputs: ["align", "background", "border", "height", "labels", "margin", "offsetX", "offsetY", "orientation", "padding", "position", "reverse", "visible", "width", "markers", "spacing", "inactiveItems", "item", "title"] }, { type: i2.TooltipComponent, selector: "kendo-chart-tooltip", inputs: ["background", "border", "color", "font", "format", "opacity", "padding", "shared", "visible"] }, { type: i2.SeriesComponent, selector: "kendo-chart-series" }, { type: i2.SeriesItemComponent, selector: "kendo-chart-series-item", inputs: ["aggregate", "autoFit", "axis", "border", "categoryAxis", "categoryField", "closeField", "color", "colorField", "connectors", "currentField", "dashType", "data", "downColor", "downColorField", "dynamicHeight", "dynamicSlope", "errorHighField", "errorLowField", "explodeField", "field", "fromField", "gap", "highField", "holeSize", "line", "lowField", "lowerField", "margin", "maxSize", "mean", "meanField", "median", "medianField", "minSize", "missingValues", "name", "neckRatio", "negativeColor", "negativeValues", "noteTextField", "opacity", "openField", "outliersField", "overlay", "padding", "q1Field", "q3Field", "segmentSpacing", "size", "sizeField", "spacing", "stack", "startAngle", "style", "summaryField", "target", "toField", "type", "upperField", "visible", "visibleInLegend", "visibleInLegendField", "visual", "width", "whiskers", "xAxis", "xErrorHighField", "xErrorLowField", "xField", "yAxis", "yErrorHighField", "yErrorLowField", "yField", "zIndex", "errorBars", "extremes", "highlight", "labels", "markers", "notes", "outliers", "tooltip"] }, { type: i2.SeriesTooltipComponent, selector: "kendo-chart-series-item-tooltip", inputs: ["background", "border", "color", "font", "format", "padding", "visible"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.SeriesTooltipTemplateDirective, selector: "[kendoChartSeriesTooltipTemplate]" }], pipes: { "htmlSanitize": i4.HtmlSanitizePipe } });
|
|
191
214
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: ZchartComponent, decorators: [{
|
|
192
215
|
type: Component,
|
|
193
|
-
args: [{ selector: 'app-zchart', template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\">\r\n <kendo-chart [renderAs]=\"options.renderAs\" [pannable]=\"options.pannable\" [zoomable]=\"options.zoomable\"\r\n [categoryAxis]=\"options.categoryAxis\"\r\n (render)=\"onRender($event)\"\r\n (axisLabelClick)=\"onAxisLabelClick($event)\"\r\n (legendItemClick)=\"onLegendItemClick($event)\"\r\n (legendItemHover)=\"onLegendItemHover($event)\"\r\n (plotAreaClick)=\"onPlotAreaClick($event)\"\r\n (plotAreaHover)=\"onPlotAreaHover($event)\"\r\n (seriesClick)=\"onSeriesClick($event)\"\r\n (seriesHover)=\"onSeriesHover($event)\">\r\n <kendo-chart-title [text]=\"options.title\"></kendo-chart-title>\r\n <kendo-chart-legend [position]=\"options.legendPosition\" [orientation]=\"options.legendOrientation\"></kendo-chart-legend>\r\n <kendo-chart-tooltip [format]=\"options.tooltipFormat\"></kendo-chart-tooltip>\r\n <kendo-chart-series>\r\n <kendo-chart-series-item *ngFor=\"let item of options.series\"\r\n [aggregate]=\"options.aggregateType\"\r\n [type]=\"item.type || options.dataType\" [style]=\"item.style || options.dataStyle\"
|
|
194
|
-
}], ctorParameters: function () { return []; }
|
|
195
|
-
type: Input
|
|
196
|
-
}], group: [{
|
|
197
|
-
type: Input
|
|
198
|
-
}], form: [{
|
|
199
|
-
type: Input
|
|
200
|
-
}] } });
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pjaGFydC96Y2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNoYXJ0L3pjaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELDZCQUE2QjtBQUU3Qiw4QkFBOEI7QUFDOUIscUVBQXFFO0FBRXJFLDJDQUEyQztBQUMzQyxPQUFPLEVBQ08sZ0JBQWdCLEVBQ1osb0JBQW9CLEVBQ3JDLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFRekIsTUFBTSxPQUFPLGVBQWU7SUE0RDFCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLHFDQUFxQztJQUNyQyxvQ0FBb0M7SUFDcEMsa0JBQWtCO0lBQ2xCLE1BQU07SUFFTixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQiw0QkFBNEI7SUFDNUIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsMkNBQTJDO0lBQzNDLGFBQWE7SUFDYix3QkFBd0I7SUFDeEIsc0JBQXNCO0lBQ3RCLG1DQUFtQztJQUNuQyxxQkFBcUI7SUFDckIseUJBQXlCO0lBQ3pCLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQixxQkFBcUI7SUFDckIseUJBQXlCO0lBQ3pCLG9DQUFvQztJQUNwQyxrQkFBa0I7SUFDbEIsTUFBTTtJQUVOO1FBdkZBLGNBQVMs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QUFhLENBQUMsQ0FBQztRQUNwQixpQ0FBaUM7UUFDakMsTUFBTSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9FLElBQUksT0FBTyxDQUFDLEtBQUssVUFBVSxFQUFFO1lBQzNCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwQjtRQUNELE9BQU87SUFDVCxDQUFDO0lBRU0sYUFBYSxDQUFDLENBQUM7UUFDcEIsaUNBQWlDO0lBQ25DLENBQUM7OzZHQXRMVSxlQUFlO2lHQUFmLGVBQWUsMEdDckI1QiwrcERBeUJNOzRGREpPLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsWUFBWTswRUFLYixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyoqKioqKioqKiogSW9uaWMgKioqKioqKioqKi9cclxuXHJcbi8qKioqKioqKioqIFBsdWdpbiAqKioqKioqKioqL1xyXG4vLyBpbXBvcnQgeyBncm91cEJ5LCBHcm91cFJlc3VsdCB9IGZyb20gJ0Bwcm9ncmVzcy9rZW5kby1kYXRhLXF1ZXJ5JztcclxuXHJcbi8qKioqKioqKioqIENvbXBvbmVudCAmIFNlcnZpY2UgKioqKioqKioqKi9cclxuaW1wb3J0IHsgXHJcbiAgWkNvbXBvbmVudCwgWkNvbXBvbmVudEhlbHBlcixcclxuICBaRmllbGQsIFpHcm91cCwgWkNvbXBvbmVudFByb3BlcnRpZXMgXHJcbn0gZnJvbSAnbW1oZ2xvYmFsLXpjb3JlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC16Y2hhcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi96Y2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3pjaGFydC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWmNoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgWkNvbXBvbmVudCwgT25Jbml0IHtcclxuICBASW5wdXQoKSBkYXRhOiBaRmllbGQ7XHJcbiAgQElucHV0KCkgZ3JvdXA6IFpHcm91cDtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIGlzTG9hZGluZyA9IHRydWU7XHJcbiAgY29tcG9uZW50UHJvcGVydGllcyA9IG5ldyBaQ29tcG9uZW50UHJvcGVydGllcygpO1xyXG4gIHByaXZhdGUgc2VyaWVzOiBhbnlbXSA9IFtdO1xyXG4gIC8vICA9IFt7XHJcbiAgLy8gICB0eXBlOiAnJyxcclxuICAvLyAgIHN0eWxlOiAnc21vb3RoJyxcclxuICAvLyAgIG5hbWU6ICdJbmRpYScsXHJcbiAgLy8gICBkYXRhOiBbMy45MDcsIDcuOTQzLCA3Ljg0OCwgOS4yODQsIDkuMjYzLCA5LjgwMSwgMy44OTAsIDguMjM4LCA5LjU1MiwgNi44NTVdXHJcbiAgLy8gfSwge1xyXG4gIC8vICAgdHlwZTogJycsXHJcbiAgLy8gICBzdHlsZTogJ3Ntb290aCcsXHJcbiAgLy8gICBuYW1lOiAnUnVzc2lhbiBGZWRlcmF0aW9uJyxcclxuICAvLyAgIGRhdGE6IFs0Ljc0MywgNy4yOTUsIDcuMTc1LCA2LjM3NiwgOC4xNTMsIDguNTM1LCA1LjI0NywgLTcuODMyLCA0LjMsIDQuM11cclxuICAvLyB9LCB7XHJcbiAgLy8gICB0eXBlOiAnYmFyJyxcclxuICAvLyAgIHN0eWxlOiAnc21vb3RoJyxcclxuICAvLyAgIG5hbWU6ICdHZXJtYW55JyxcclxuICAvLyAgIGRhdGE6IFswLjAxMCwgLTAuMzc1LCAxLjE2MSwgMC42ODQsIDMuNywgMy4yNjksIDEuMDgzLCAtNS4xMjcsIDMuNjkwLCAyLjk5NV1cclxuICAvLyB9LCB7XHJcbiAgLy8gICB0eXBlOiAnYXJlYScsXHJcbiAgLy8gICBzdHlsZTogJ3Ntb290aCcsXHJcbiAgLy8gICBuYW1lOiAnV29ybGQnLFxyXG4gIC8vICAgZGF0YTogWzEuOTg4LCAyLjczMywgMy45OTQsIDMuNDY0LCA0LjAwMSwgMy45MzksIDEuMzMzLCAtMi4yNDUsIDQuMzM5LCAyLjcyN11cclxuICAvLyB9XTtcclxuXHJcbiAgcHJpdmF0ZSBjYXRlZ29yaWVzID0gW107XHJcbiAgLy8gWzIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTFdO1xyXG5cclxuICBvcHRpb25zID0ge1xyXG4gICAgdGl0bGU6ICdDaGFydCBUaXRsZSBIZXJlJyxcclxuICAgIHJlbmRlckFzOiAnY2FudmFzJywgIC8vIHN2Z1xyXG4gICAgcGFubmFibGU6IGZhbHNlLFxyXG4gICAgem9vbWFibGU6IGZhbHNlLFxyXG4gICAgY2F0ZWdvcnlBeGlzOiB7XHJcbiAgICAgIGNhdGVnb3JpZXM6IHRoaXMuY2F0ZWdvcmllcyxcclxuICAgICAgbWF4OiAxMCxcclxuICAgICAgbWF4RGl2aXNpb25zOiBudWxsLFxyXG4gICAgICBsYWJlbHM6IHsgcm90YXRpb246ICdhdXRvJyB9XHJcbiAgICB9LFxyXG4gICAgbGFiZWxzOiB7XHJcbiAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcclxuICAgIH0sXHJcbiAgICBzZXJpZXM6IHRoaXMuc2VyaWVzLFxyXG4gICAgZGF0YVR5cGU6ICdiYXInLFxyXG4gICAgZGF0YVN0eWxlOiAnc21vb3RoJyxcclxuICAgIGxlZ2VuZFBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAgIGxlZ2VuZE9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcsXHJcbiAgICB0b29sdGlwRm9ybWF0OiAnezB9JScsXHJcbiAgICBhZ2dyZWdhdGVUeXBlOiAnc3VtJyxcclxuICAgIGRhdGFGaWVsZDogbnVsbCxcclxuICAgIGNhdGVnb3J5RmllbGQ6IG51bGwsXHJcbiAgICBjb2xvcjogJyMwNUEyRkUnLFxyXG4gIH07XHJcblxyXG4gIC8vIGZpZWxkRWxlbWVudDAxID0gW3tcclxuICAvLyAgIE5hbWU6ICdjaGFydDAxJyxcclxuICAvLyAgIFR5cGU6ICd6Y2hhcnQnLFxyXG4gIC8vICAgT3B0aW9uczogJ2dyb3VwLmNoYXJ0MDFPcHRpb25zJyxcclxuICAvLyAgIERpdkNsYXNzOiBcImNvbC1tZC0xMiBjb2wtbWQtNlwiLFxyXG4gIC8vICAgVmlzaWJsZTogdHJ1ZVxyXG4gIC8vIH1dO1xyXG5cclxuICAvLyBmaWVsZEVsZW1lbnQwMiA9IFt7XHJcbiAgLy8gICBOYW1lOiAnY2hhcnQwMScsXHJcbiAgLy8gICBUeXBlOiAnemNoYXJ0JyxcclxuICAvLyAgIFRpdGxlOiAnQ2hhcnQwMSBUaXRsZScsXHJcbiAgLy8gICBSZW5kZXJBczogJ3N2ZycsXHJcbiAgLy8gICBQYW5uYWJsZTogdHJ1ZSxcclxuICAvLyAgIFpvb21hYmxlOiB0cnVlLFxyXG4gIC8vICAgQ2F0ZWdvcmllczogJ2dyb3VwLmNoYXJ0MDFDYXRlZ29yaWVzJyxcclxuICAvLyAgIE1heDogMTAsXHJcbiAgLy8gICBNYXhEaXZpc2lvbnM6IG51bGwsXHJcbiAgLy8gICBSb3RhdGlvbjogJ2F1dG8nLFxyXG4gIC8vICAgU2VyaWVzOiAnZ3JvdXAuY2hhcnQwMVNlcmllcycsXHJcbiAgLy8gICBEYXRhVHlwZTogJ2JhcicsXHJcbiAgLy8gICBEYXRhU3R5bGU6ICdzbW9vdGgnLFxyXG4gIC8vICAgTGVnZW5kUG9zaXRpb246ICdib3R0b20nLFxyXG4gIC8vICAgTGVnZW5kT3JpZW50YXRpb246ICdob3Jpem9uYWwnLFxyXG4gIC8vICAgVG9vbHRpcEZvcm1hdDogJ3swfScsXHJcbiAgLy8gICBBZ2dyZWdhdGVUeXBlOiAnc3VtJyxcclxuICAvLyAgIERhdGFGaWVsZDogbnVsbCxcclxuICAvLyAgIENhdGVnb3J5RmllbGQ6IG51bGwsXHJcbiAgLy8gICBEaXZDbGFzczogXCJjb2wtbWQtMTIgY29sLW1kLTZcIixcclxuICAvLyAgIFZpc2libGU6IHRydWVcclxuICAvLyB9XTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnNldENvbXBvbmVudFByb3BlcnRpZXModGhpcyk7XHJcbiAgICBaQ29tcG9uZW50SGVscGVyLnJlZ2lzdGVyQ29tcG9uZW50KHRoaXMpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuT3B0aW9ucykge1xyXG4gICAgICBjb25zdCBvcHRpb25UeXBlID0gdHlwZW9mICh0aGlzLmRhdGEuT3B0aW9ucyk7XHJcbiAgICAgIGlmIChvcHRpb25UeXBlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLCB0aGlzLmRhdGEuT3B0aW9ucyk7XHJcbiAgICAgIH0gZWxzZSBpZiAob3B0aW9uVHlwZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb25zdCBvcHRpb25WYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT3B0aW9ucyk7XHJcbiAgICAgICAgaWYgKHR5cGVvZihvcHRpb25WYWx1ZSkgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucywgb3B0aW9uVmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRhdGEuT3B0aW9ucyAmJiB0aGlzLmRhdGEuT3B0aW9ucy5jYXRlZ29yeUF4aXMgJiYgdGhpcy5kYXRhLk9wdGlvbnMuY2F0ZWdvcnlBeGlzLmNhdGVnb3JpZXMgJiYgdHlwZW9mICh0aGlzLmRhdGEuT3B0aW9ucy5jYXRlZ29yeUF4aXMuY2F0ZWdvcmllcykgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5jYXRlZ29yeUF4aXMuY2F0ZWdvcmllcyA9XHJcbiAgICAgICAgWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5PcHRpb25zLmNhdGVnb3J5QXhpcy5jYXRlZ29yaWVzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhLk9wdGlvbnMgJiYgdGhpcy5kYXRhLk9wdGlvbnMuc2VyaWVzICYmIHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMuc2VyaWVzKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLnNlcmllcyA9XHJcbiAgICAgICAgWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIHRoaXMuZGF0YS5PcHRpb25zLnNlcmllcyk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHRoaXMuZ2V0RmllbGREZWNsYXJhdGlvbkZvclNldHVwKHRoaXMuZGF0YSwgdGhpcy5vcHRpb25zKTtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGaWVsZERlY2xhcmF0aW9uRm9yU2V0dXAoZmllbGQ6IFpGaWVsZCwgb3B0aW9uczogYW55KSB7XHJcbiAgICBvcHRpb25zLnRpdGxlID0gZmllbGQuVGl0bGUgfHwgb3B0aW9ucy50aXRsZTtcclxuICAgIG9wdGlvbnMucmVuZGVyQXMgPSBmaWVsZC5SZW5kZXJBcyB8fCBvcHRpb25zLnJlbmRlckFzO1xyXG4gICAgb3B0aW9ucy5wYW5uYWJsZSA9IGZpZWxkLlBhbm5hYmxlIHx8IG9wdGlvbnMucGFubmFibGU7XHJcbiAgICBvcHRpb25zLnpvb21hYmxlID0gZmllbGQuWm9vbWFibGUgfHwgb3B0aW9ucy56b29tYWJsZTtcclxuICAgIG9wdGlvbnMuY2F0ZWdvcnlBeGlzLmNhdGVnb3JpZXMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuQ2F0ZWdvcmllcykgfHwgW107XHJcbiAgICBvcHRpb25zLmNhdGVnb3J5QXhpcy5tYXggPSBmaWVsZC5NYXggfHwgb3B0aW9ucy5jYXRlZ29yeUF4aXMubWF4O1xyXG4gICAgb3B0aW9ucy5jYXRlZ29yeUF4aXMubWF4RGl2aXNpb25zID0gZmllbGQuTWF4RGl2aXNpb25zIHx8IG9wdGlvbnMuY2F0ZWdvcnlBeGlzLm1heERpdmlzaW9ucztcclxuICAgIG9wdGlvbnMuY2F0ZWdvcnlBeGlzLmxhYmVscy5yb3RhdGlvbiA9IGZpZWxkLlJvdGF0aW9uIHx8IG9wdGlvbnMuY2F0ZWdvcnlBeGlzLmxhYmVscy5yb3RhdGlvbjtcclxuICAgIG9wdGlvbnMuc2VyaWVzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKHRoaXMsIGZpZWxkLlNlcmllcykgfHwgW107XHJcbiAgICBvcHRpb25zLmRhdGFUeXBlID0gZmllbGQuRGF0YVR5cGUgfHwgb3B0aW9ucy5kYXRhVHlwZTtcclxuICAgIG9wdGlvbnMuZGF0YVN0eWxlID0gZmllbGQuRGF0YVN0eWxlIHx8IG9wdGlvbnMuZGF0YVN0eWxlO1xyXG4gICAgb3B0aW9ucy5sZWdlbmRQb3NpdGlvbiA9IGZpZWxkLkxlZ2VuZFBvc2l0aW9uIHx8IG9wdGlvbnMubGVnZW5kUG9zaXRpb247XHJcbiAgICBvcHRpb25zLmxlZ2VuZE9yaWVudGF0aW9uID0gZmllbGQuTGVnZW5kT3JpZW50YXRpb24gfHwgb3B0aW9ucy5sZWdlbmRPcmllbnRhdGlvbjtcclxuICAgIG9wdGlvbnMudG9vbHRpcEZvcm1hdCA9IGZpZWxkLlRvb2x0aXBGb3JtYXQgfHwgb3B0aW9ucy50b29sdGlwRm9ybWF0O1xyXG4gICAgb3B0aW9ucy5hZ2dyZWdhdGVUeXBlID0gZmllbGQuQWdncmVnYXRlVHlwZSB8fCBvcHRpb25zLmFnZ3JlZ2F0ZVR5cGU7XHJcbiAgICBvcHRpb25zLmRhdGFGaWVsZCA9IGZpZWxkLkRhdGFGaWVsZCB8fCBvcHRpb25zLmRhdGFGaWVsZDtcclxuICAgIG9wdGlvbnMuY2F0ZWdvcnlGaWVsZCA9IGZpZWxkLkNhdGVnb3J5RmllbGQgfHwgb3B0aW9ucy5jYXRlZ29yeUZpZWxkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUmVuZGVyKGUpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdyZW5kZXInKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkF4aXNMYWJlbENsaWNrKGUpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdheGlzTGFiZWxDbGljaycsIGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTGVnZW5kSXRlbUNsaWNrKGUpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdsZWdlbmRJdGVtQ2xpY2snLCBlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkxlZ2VuZEl0ZW1Ib3ZlcihlKTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnbGVnZW5kSXRlbUhvdmVyJywgZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QbG90QXJlYUNsaWNrKGUpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdwbG90QXJlYUNsaWNrJywgZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QbG90QXJlYUhvdmVyKGUpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdwbG90QXJlYUhvdmVyJywgZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TZXJpZXNDbGljayhlKTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnc2VyaWVzQ2xpY2snLCBlKTtcclxuICAgIGNvbnN0IGYgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9uSXRlbUNsaWNrKTtcclxuICAgIGlmICh0eXBlb2YgZiA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBjb25zdCBjYWxsRnVuYyA9IGYuYmluZCh0aGlzLmdyb3VwLmN0cmxTY29wZSk7XHJcbiAgICAgIHJldHVybiBjYWxsRnVuYyhlKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlcmllc0hvdmVyKGUpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdzZXJpZXNIb3ZlcicsIGUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERhdGEgPSAoZ0RhdGE6IGFueSkgPT4ge1xyXG4gICAgdGhpcy5nZXRGaWVsZERlY2xhcmF0aW9uRm9yU2V0dXAodGhpcy5kYXRhLCB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEVuYWJsZSA9IChzdGF0dXM6IGJvb2xlYW4pID0+IHtcclxuICAgIC8vIGNvbnN0IGZjID0gdGhpcy5ncm91cC5mb3JtLmNvbnRyb2xzW3RoaXMuZGF0YS5WYWx1ZV07XHJcbiAgICAvLyBzdGF0dXMgPyBmYy5lbmFibGUoKSA6IGZjLmRpc2FibGUoKTtcclxuICAgIHRoaXMuY29tcG9uZW50UHJvcGVydGllcy5pc1JlYWRPbmx5ID0gIXN0YXR1cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRWaXNpYmxlID0gKHN0YXR1czogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5jb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSA9IHN0YXR1cztcclxuICAgIHRoaXMuZGF0YS5WaXNpYmxlID0gc3RhdHVzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFJlcXVpcmUgPSAoc3RhdHVzOiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMuaXNSZXF1aXJlZCA9IHN0YXR1cztcclxuICAgIFpDb21wb25lbnRIZWxwZXIuY2hhbmdlVmFsaWRhdG9yKHN0YXR1cywgdGhpcy5ncm91cCwgdGhpcy5kYXRhLlZhbHVlLCB0aGlzLmNvbXBvbmVudFByb3BlcnRpZXMsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgKCEhY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZCA/IGdyb3VwW2NvbXBvbmVudFByb3BlcnRpZXMuaXNWaXNpYmxlRmllbGRdIDogY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGUpXCI+XHJcbiAgPGtlbmRvLWNoYXJ0IFtyZW5kZXJBc109XCJvcHRpb25zLnJlbmRlckFzXCIgW3Bhbm5hYmxlXT1cIm9wdGlvbnMucGFubmFibGVcIiBbem9vbWFibGVdPVwib3B0aW9ucy56b29tYWJsZVwiXHJcbiAgICAgICAgW2NhdGVnb3J5QXhpc109XCJvcHRpb25zLmNhdGVnb3J5QXhpc1wiXHJcbiAgICAgICAgKHJlbmRlcik9XCJvblJlbmRlcigkZXZlbnQpXCJcclxuICAgICAgICAoYXhpc0xhYmVsQ2xpY2spPVwib25BeGlzTGFiZWxDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobGVnZW5kSXRlbUNsaWNrKT1cIm9uTGVnZW5kSXRlbUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChsZWdlbmRJdGVtSG92ZXIpPVwib25MZWdlbmRJdGVtSG92ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHBsb3RBcmVhQ2xpY2spPVwib25QbG90QXJlYUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgIChwbG90QXJlYUhvdmVyKT1cIm9uUGxvdEFyZWFIb3ZlcigkZXZlbnQpXCJcclxuICAgICAgICAoc2VyaWVzQ2xpY2spPVwib25TZXJpZXNDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAoc2VyaWVzSG92ZXIpPVwib25TZXJpZXNIb3ZlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgPGtlbmRvLWNoYXJ0LXRpdGxlIFt0ZXh0XT1cIm9wdGlvbnMudGl0bGVcIj48L2tlbmRvLWNoYXJ0LXRpdGxlPlxyXG4gICAgICAgIDxrZW5kby1jaGFydC1sZWdlbmQgW3Bvc2l0aW9uXT1cIm9wdGlvbnMubGVnZW5kUG9zaXRpb25cIiBbb3JpZW50YXRpb25dPVwib3B0aW9ucy5sZWdlbmRPcmllbnRhdGlvblwiPjwva2VuZG8tY2hhcnQtbGVnZW5kPlxyXG4gICAgICAgIDxrZW5kby1jaGFydC10b29sdGlwIFtmb3JtYXRdPVwib3B0aW9ucy50b29sdGlwRm9ybWF0XCI+PC9rZW5kby1jaGFydC10b29sdGlwPlxyXG4gICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXM+XHJcbiAgICAgICAgICAgIDxrZW5kby1jaGFydC1zZXJpZXMtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zLnNlcmllc1wiXHJcbiAgICAgICAgICAgICAgICBbYWdncmVnYXRlXT1cIm9wdGlvbnMuYWdncmVnYXRlVHlwZVwiXHJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJpdGVtLnR5cGUgfHwgb3B0aW9ucy5kYXRhVHlwZVwiIFtzdHlsZV09XCJpdGVtLnN0eWxlIHx8IG9wdGlvbnMuZGF0YVN0eWxlXCIgXHJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiaXRlbS5jb2xvciB8fCBvcHRpb25zLmNvbG9yXCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbHNdPVwiaXRlbS5sYWJlbHMgfHwgb3B0aW9ucy5sYWJlbHNcIiBcclxuICAgICAgICAgICAgICAgIFtmaWVsZF09XCJvcHRpb25zLmRhdGFGaWVsZFwiIFtjYXRlZ29yeUZpZWxkXT1cIm9wdGlvbnMuY2F0ZWdvcnlGaWVsZFwiXHJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJpdGVtLmRhdGFcIiBbbmFtZV09XCJpdGVtLm5hbWVcIj5cclxuICAgICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cclxuICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcz5cclxuICAgIDwva2VuZG8tY2hhcnQ+XHJcbjwvZGl2PiJdfQ==
|
|
216
|
+
args: [{ selector: 'app-zchart', template: "<div *ngIf=\"!isLoading && (!!componentProperties.isVisibleField ? group[componentProperties.isVisibleField] : componentProperties.isVisible)\"\r\n class=\"e1tag-style\" [style]=\"componentProperties.style.style\">\r\n <kendo-chart [renderAs]=\"options.renderAs\" [pannable]=\"options.pannable\" [zoomable]=\"options.zoomable\"\r\n [categoryAxis]=\"options.categoryAxis\"\r\n (render)=\"onRender($event)\"\r\n (axisLabelClick)=\"onAxisLabelClick($event)\"\r\n (legendItemClick)=\"onLegendItemClick($event)\"\r\n (legendItemHover)=\"onLegendItemHover($event)\"\r\n (plotAreaClick)=\"onPlotAreaClick($event)\"\r\n (plotAreaHover)=\"onPlotAreaHover($event)\"\r\n (seriesClick)=\"onSeriesClick($event)\"\r\n (seriesHover)=\"onSeriesHover($event)\"\r\n class=\"e1tag-style1\" [style]=\"componentProperties.style.style1\">\r\n <kendo-chart-title *ngIf=\"options.title\" [text]=\"options.title\" class=\"e1tag-style2\" [style]=\"componentProperties.style.style2\"></kendo-chart-title>\r\n <kendo-chart-legend [position]=\"options.legendPosition\" [orientation]=\"options.legendOrientation\" class=\"e1tag-style3\" [style]=\"componentProperties.style.style3\"></kendo-chart-legend>\r\n <kendo-chart-tooltip [format]=\"options.tooltipFormat\" class=\"e1tag-style4\" [style]=\"componentProperties.style.style4\"></kendo-chart-tooltip>\r\n <kendo-chart-series class=\"e1tag-style5\" [style]=\"componentProperties.style.style5\">\r\n <kendo-chart-series-item *ngFor=\"let item of options.series\"\r\n [aggregate]=\"options.aggregateType\"\r\n [type]=\"item.type || options.dataType\" [style]=\"item.style || options.dataStyle\"\r\n [color]=\"item.color || options.color\"\r\n [labels]=\"item.labels || options.labels\"\r\n [field]=\"options.dataField\" [categoryField]=\"options.categoryField\"\r\n [data]=\"item.data\" [name]=\"item.name\">\r\n <kendo-chart-series-item-tooltip kendoChartSeriesTooltipTemplate *ngIf=\"options.customTooltipFunc\" [background]=\"options.customTooltipOptions.background\">\r\n <ng-template let-value=\"value\" let-category=\"category\">\r\n <div [innerHTML]=\"getToolTip(value, category) | htmlSanitize\" class=\"e1tag-style6\" [style]=\"componentProperties.style.style6\"></div>\r\n </ng-template>\r\n </kendo-chart-series-item-tooltip>\r\n </kendo-chart-series-item>\r\n </kendo-chart-series>\r\n </kendo-chart>\r\n</div>\r\n", styles: [""] }]
|
|
217
|
+
}], ctorParameters: function () { return [{ type: i1.ZComponentService }]; } });
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvbGliL3pjaGFydC96Y2hhcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvemNoYXJ0L3pjaGFydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCw2QkFBNkI7QUFFN0IsOEJBQThCO0FBQzlCLHFFQUFxRTtBQUVyRSwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFjLGdCQUFnQixFQUFVLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7OztBQVNwRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxvQkFBb0I7SUFpRXZELHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIsb0JBQW9CO0lBQ3BCLHFDQUFxQztJQUNyQyxvQ0FBb0M7SUFDcEMsa0JBQWtCO0lBQ2xCLE1BQU07SUFFTixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQiw0QkFBNEI7SUFDNUIscUJBQXFCO0lBQ3JCLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsMkNBQTJDO0lBQzNDLGFBQWE7SUFDYix3QkFBd0I7SUFDeEIsc0JBQXNCO0lBQ3RCLG1DQUFtQztJQUNuQyxxQkFBcUI7SUFDckIseUJBQXlCO0lBQ3pCLDhCQUE4QjtJQUM5QixvQ0FBb0M7SUFDcEMsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQixxQkFBcUI7SUFDckIseUJBQXlCO0lBQ3pCLG9DQUFvQztJQUNwQyxrQkFBa0I7SUFDbEIsTUFBTTtJQUVOLFlBQVksV0FBOEI7UUFDeEMs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LENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkQsaUNBQWlDO0lBQ25DLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBVTtRQUN0QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRTtZQUMvQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEI7UUFFRCxNQUFNLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQy9ELElBQUksT0FBTyxDQUFDLEtBQUssVUFBVSxFQUFFO1lBQzNCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFDRCxZQUFZO0lBRUwsVUFBVSxDQUFDLEtBQUssRUFBRSxRQUFRO1FBQy9CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RixDQUFDOzs2R0F6TlUsZUFBZTtpR0FBZixlQUFlLHlFQ25CNUIsOGxGQWlDQTs0RkRkYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKiBBbmd1bGFyICoqKioqKioqKiovXHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuLy8gaW1wb3J0IHsgZ3JvdXBCeSwgR3JvdXBSZXN1bHQgfSBmcm9tICdAcHJvZ3Jlc3Mva2VuZG8tZGF0YS1xdWVyeSc7XHJcblxyXG4vKioqKioqKioqKiBDb21wb25lbnQgJiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmltcG9ydCB7IFpDb21wb25lbnQsIFpDb21wb25lbnRIZWxwZXIsIFpGaWVsZCB9IGZyb20gJ21taGdsb2JhbC16Y29yZSc7XHJcbmltcG9ydCB7IERhdGFMaXN0aW5nRmllbGRCYXNlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvZGF0YWxpc3RpbmdmaWVsZGJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFpDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL3pjb21wb25lbnQuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtemNoYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vemNoYXJ0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi96Y2hhcnQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBaY2hhcnRDb21wb25lbnQgZXh0ZW5kcyBEYXRhTGlzdGluZ0ZpZWxkQmFzZSBpbXBsZW1lbnRzIFpDb21wb25lbnQsIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBzZXJpZXM6IGFueVtdID0gW107XHJcbiAgLy8gID0gW3tcclxuICAvLyAgIHR5cGU6ICcnLFxyXG4gIC8vICAgc3R5bGU6ICdzbW9vdGgnLFxyXG4gIC8vICAgbmFtZTogJ0luZGlhJyxcclxuICAvLyAgIGRhdGE6IFszLjkwNywgNy45NDMsIDcuODQ4LCA5LjI4NCwgOS4yNjMsIDkuODAxLCAzLjg5MCwgOC4yMzgsIDkuNTUyLCA2Ljg1NV1cclxuICAvLyB9LCB7XHJcbiAgLy8gICB0eXBlOiAnJyxcclxuICAvLyAgIHN0eWxlOiAnc21vb3RoJyxcclxuICAvLyAgIG5hbWU6ICdSdXNzaWFuIEZlZGVyYXRpb24nLFxyXG4gIC8vICAgZGF0YTogWzQuNzQzLCA3LjI5NSwgNy4xNzUsIDYuMzc2LCA4LjE1MywgOC41MzUsIDUuMjQ3LCAtNy44MzIsIDQuMywgNC4zXVxyXG4gIC8vIH0sIHtcclxuICAvLyAgIHR5cGU6ICdiYXInLFxyXG4gIC8vICAgc3R5bGU6ICdzbW9vdGgnLFxyXG4gIC8vICAgbmFtZTogJ0dlcm1hbnknLFxyXG4gIC8vICAgZGF0YTogWzAuMDEwLCAtMC4zNzUsIDEuMTYxLCAwLjY4NCwgMy43LCAzLjI2OSwgMS4wODMsIC01LjEyNywgMy42OTAsIDIuOTk1XVxyXG4gIC8vIH0sIHtcclxuICAvLyAgIHR5cGU6ICdhcmVhJyxcclxuICAvLyAgIHN0eWxlOiAnc21vb3RoJyxcclxuICAvLyAgIG5hbWU6ICdXb3JsZCcsXHJcbiAgLy8gICBkYXRhOiBbMS45ODgsIDIuNzMzLCAzLjk5NCwgMy40NjQsIDQuMDAxLCAzLjkzOSwgMS4zMzMsIC0yLjI0NSwgNC4zMzksIDIuNzI3XVxyXG4gIC8vIH1dO1xyXG5cclxuICBwcml2YXRlIGNhdGVnb3JpZXMgPSBbXTtcclxuICAvLyBbMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMV07XHJcblxyXG4gIC8vIERlZmF1bHQgdmFsdWVzXHJcbiAgcHVibGljIG9wdGlvbnMgPSB7XHJcbiAgICB0aXRsZTogJycsXHJcbiAgICByZW5kZXJBczogJ2NhbnZhcycsICAvLyBzdmdcclxuICAgIHBhbm5hYmxlOiBmYWxzZSxcclxuICAgIHpvb21hYmxlOiBmYWxzZSxcclxuICAgIGNhdGVnb3J5QXhpczoge1xyXG4gICAgICBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMsXHJcbiAgICAgIG1heDogMTAsXHJcbiAgICAgIG1heERpdmlzaW9uczogbnVsbCxcclxuICAgICAgbGFiZWxzOiB7IHJvdGF0aW9uOiAnYXV0bycgfVxyXG4gICAgfSxcclxuICAgIGxhYmVsczoge1xyXG4gICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgICAgYmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiXHJcbiAgICB9LFxyXG4gICAgc2VyaWVzOiB0aGlzLnNlcmllcyxcclxuICAgIGRhdGFUeXBlOiAnYmFyJyxcclxuICAgIGRhdGFTdHlsZTogJ3Ntb290aCcsXHJcbiAgICBsZWdlbmRQb3NpdGlvbjogJ2JvdHRvbScsXHJcbiAgICBsZWdlbmRPcmllbnRhdGlvbjogJ2hvcml6b250YWwnLFxyXG4gICAgdG9vbHRpcEZvcm1hdDogJ3swfSUnLFxyXG4gICAgYWdncmVnYXRlVHlwZTogJ3N1bScsXHJcbiAgICBkYXRhRmllbGQ6IG51bGwsXHJcbiAgICBjYXRlZ29yeUZpZWxkOiBudWxsLFxyXG4gICAgY29sb3I6ICcjMDVBMkZFJyxcclxuICAgIG9uUmVuZGVyOiAnJyxcclxuICAgIG9uQXhpc0xhYmVsQ2xpY2s6ICcnLFxyXG4gICAgb25MZWdlbmRJdGVtQ2xpY2s6ICcnLFxyXG4gICAgb25MZWdlbmRJdGVtSG92ZXI6ICcnLFxyXG4gICAgb25QbG90QXJlYUNsaWNrOiAnJyxcclxuICAgIG9uUGxvdEFyZWFIb3ZlcjogJycsXHJcbiAgICBvblNlcmllc0NsaWNrOiAnJyxcclxuICAgIG9uU2VyaWVzSG92ZXI6ICcnLFxyXG4gICAgY3VzdG9tVG9vbHRpcEZ1bmM6ICcnLFxyXG4gICAgY3VzdG9tVG9vbHRpcE9wdGlvbnM6IHsgYmFja2dyb3VuZDogJyMwNUEyRkUnIH1cclxuICB9O1xyXG5cclxuICAvLyBmaWVsZEVsZW1lbnQwMSA9IFt7XHJcbiAgLy8gICBOYW1lOiAnY2hhcnQwMScsXHJcbiAgLy8gICBUeXBlOiAnemNoYXJ0JyxcclxuICAvLyAgIE9wdGlvbnM6ICdncm91cC5jaGFydDAxT3B0aW9ucycsXHJcbiAgLy8gICBEaXZDbGFzczogXCJjb2wtbWQtMTIgY29sLW1kLTZcIixcclxuICAvLyAgIFZpc2libGU6IHRydWVcclxuICAvLyB9XTtcclxuXHJcbiAgLy8gZmllbGRFbGVtZW50MDIgPSBbe1xyXG4gIC8vICAgTmFtZTogJ2NoYXJ0MDEnLFxyXG4gIC8vICAgVHlwZTogJ3pjaGFydCcsXHJcbiAgLy8gICBUaXRsZTogJ0NoYXJ0MDEgVGl0bGUnLFxyXG4gIC8vICAgUmVuZGVyQXM6ICdzdmcnLFxyXG4gIC8vICAgUGFubmFibGU6IHRydWUsXHJcbiAgLy8gICBab29tYWJsZTogdHJ1ZSxcclxuICAvLyAgIENhdGVnb3JpZXM6ICdncm91cC5jaGFydDAxQ2F0ZWdvcmllcycsXHJcbiAgLy8gICBNYXg6IDEwLFxyXG4gIC8vICAgTWF4RGl2aXNpb25zOiBudWxsLFxyXG4gIC8vICAgUm90YXRpb246ICdhdXRvJyxcclxuICAvLyAgIFNlcmllczogJ2dyb3VwLmNoYXJ0MDFTZXJpZXMnLFxyXG4gIC8vICAgRGF0YVR5cGU6ICdiYXInLFxyXG4gIC8vICAgRGF0YVN0eWxlOiAnc21vb3RoJyxcclxuICAvLyAgIExlZ2VuZFBvc2l0aW9uOiAnYm90dG9tJyxcclxuICAvLyAgIExlZ2VuZE9yaWVudGF0aW9uOiAnaG9yaXpvbmFsJyxcclxuICAvLyAgIFRvb2x0aXBGb3JtYXQ6ICd7MH0nLFxyXG4gIC8vICAgQWdncmVnYXRlVHlwZTogJ3N1bScsXHJcbiAgLy8gICBEYXRhRmllbGQ6IG51bGwsXHJcbiAgLy8gICBDYXRlZ29yeUZpZWxkOiBudWxsLFxyXG4gIC8vICAgRGl2Q2xhc3M6IFwiY29sLW1kLTEyIGNvbC1tZC02XCIsXHJcbiAgLy8gICBWaXNpYmxlOiB0cnVlXHJcbiAgLy8gfV07XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNvbXBTZXJ2aWNlOiBaQ29tcG9uZW50U2VydmljZSkge1xyXG4gICAgc3VwZXIoY29tcFNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5pbml0Q29tcG9uZW50KCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZGF0YS5PcHRpb25zKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uVHlwZSA9IHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMpO1xyXG4gICAgICAgIGlmIChvcHRpb25UeXBlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm9wdGlvbnMsIHRoaXMuZGF0YS5PcHRpb25zKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG9wdGlvblR5cGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICBjb25zdCBvcHRpb25WYWx1ZSA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT3B0aW9ucyk7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIChvcHRpb25WYWx1ZSkgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5vcHRpb25zLCBvcHRpb25WYWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5kYXRhLk9wdGlvbnMgJiYgdGhpcy5kYXRhLk9wdGlvbnMuY2F0ZWdvcnlBeGlzICYmIHRoaXMuZGF0YS5PcHRpb25zLmNhdGVnb3J5QXhpcy5jYXRlZ29yaWVzICYmIHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMuY2F0ZWdvcnlBeGlzLmNhdGVnb3JpZXMpID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucy5jYXRlZ29yeUF4aXMuY2F0ZWdvcmllcyA9XHJcbiAgICAgICAgICBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgdGhpcy5kYXRhLk9wdGlvbnMuY2F0ZWdvcnlBeGlzLmNhdGVnb3JpZXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5kYXRhLk9wdGlvbnMgJiYgdGhpcy5kYXRhLk9wdGlvbnMuc2VyaWVzICYmIHR5cGVvZiAodGhpcy5kYXRhLk9wdGlvbnMuc2VyaWVzKSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0aGlzLm9wdGlvbnMuc2VyaWVzID1cclxuICAgICAgICAgIFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT3B0aW9ucy5zZXJpZXMpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmdldEZpZWxkRGVjbGFyYXRpb25Gb3JTZXR1cCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEZpZWxkRGVjbGFyYXRpb25Gb3JTZXR1cChmaWVsZDogWkZpZWxkKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMudGl0bGUgPSBmaWVsZC5UaXRsZSB8fCB0aGlzLm9wdGlvbnMudGl0bGU7XHJcbiAgICB0aGlzLm9wdGlvbnMucmVuZGVyQXMgPSBmaWVsZC5SZW5kZXJBcyB8fCB0aGlzLm9wdGlvbnMucmVuZGVyQXM7XHJcbiAgICB0aGlzLm9wdGlvbnMucGFubmFibGUgPSBmaWVsZC5QYW5uYWJsZSB8fCB0aGlzLm9wdGlvbnMucGFubmFibGU7XHJcbiAgICB0aGlzLm9wdGlvbnMuem9vbWFibGUgPSBmaWVsZC5ab29tYWJsZSB8fCB0aGlzLm9wdGlvbnMuem9vbWFibGU7XHJcbiAgICB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlBeGlzLmNhdGVnb3JpZXMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuQ2F0ZWdvcmllcykgfHwgW107XHJcbiAgICB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlBeGlzLm1heCA9IGZpZWxkLk1heCB8fCB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlBeGlzLm1heDtcclxuICAgIHRoaXMub3B0aW9ucy5jYXRlZ29yeUF4aXMubWF4RGl2aXNpb25zID0gZmllbGQuTWF4RGl2aXNpb25zIHx8IHRoaXMub3B0aW9ucy5jYXRlZ29yeUF4aXMubWF4RGl2aXNpb25zO1xyXG4gICAgdGhpcy5vcHRpb25zLmNhdGVnb3J5QXhpcy5sYWJlbHMucm90YXRpb24gPSBmaWVsZC5Sb3RhdGlvbiB8fCB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlBeGlzLmxhYmVscy5yb3RhdGlvbjtcclxuICAgIHRoaXMub3B0aW9ucy5zZXJpZXMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZmllbGQuU2VyaWVzKSB8fCBbXTtcclxuICAgIHRoaXMub3B0aW9ucy5kYXRhVHlwZSA9IGZpZWxkLkRhdGFUeXBlIHx8IHRoaXMub3B0aW9ucy5kYXRhVHlwZTtcclxuICAgIHRoaXMub3B0aW9ucy5kYXRhU3R5bGUgPSBmaWVsZC5EYXRhU3R5bGUgfHwgdGhpcy5vcHRpb25zLmRhdGFTdHlsZTtcclxuICAgIHRoaXMub3B0aW9ucy5sZWdlbmRQb3NpdGlvbiA9IGZpZWxkLkxlZ2VuZFBvc2l0aW9uIHx8IHRoaXMub3B0aW9ucy5sZWdlbmRQb3NpdGlvbjtcclxuICAgIHRoaXMub3B0aW9ucy5sZWdlbmRPcmllbnRhdGlvbiA9IGZpZWxkLkxlZ2VuZE9yaWVudGF0aW9uIHx8IHRoaXMub3B0aW9ucy5sZWdlbmRPcmllbnRhdGlvbjtcclxuICAgIHRoaXMub3B0aW9ucy50b29sdGlwRm9ybWF0ID0gZmllbGQuVG9vbHRpcEZvcm1hdCB8fCB0aGlzLm9wdGlvbnMudG9vbHRpcEZvcm1hdDtcclxuICAgIHRoaXMub3B0aW9ucy5hZ2dyZWdhdGVUeXBlID0gZmllbGQuQWdncmVnYXRlVHlwZSB8fCB0aGlzLm9wdGlvbnMuYWdncmVnYXRlVHlwZTtcclxuICAgIHRoaXMub3B0aW9ucy5kYXRhRmllbGQgPSBmaWVsZC5EYXRhRmllbGQgfHwgdGhpcy5vcHRpb25zLmRhdGFGaWVsZDtcclxuICAgIHRoaXMub3B0aW9ucy5jYXRlZ29yeUZpZWxkID0gZmllbGQuQ2F0ZWdvcnlGaWVsZCB8fCB0aGlzLm9wdGlvbnMuY2F0ZWdvcnlGaWVsZDtcclxuICAgIHRoaXMub3B0aW9ucy5jdXN0b21Ub29sdGlwRnVuYyA9IGZpZWxkW2BDdXN0b21Ub29sdGlwRnVuY2BdIHx8IHRoaXMub3B0aW9ucy5jdXN0b21Ub29sdGlwRnVuYztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXRhID0gKGdEYXRhOiBhbnkpID0+IHtcclxuICAgIHRoaXMuZ2V0RmllbGREZWNsYXJhdGlvbkZvclNldHVwKHRoaXMuZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvLyNyZWdpb24gQ29tcG9uZW50IEV2ZW50c1xyXG4gIHB1YmxpYyBvblJlbmRlcihlKTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygncmVuZGVyJyk7XHJcbiAgICB0aGlzLmNhbGxDb21wb25lbnRFdmVudChlLCB0aGlzLm9wdGlvbnMub25SZW5kZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQXhpc0xhYmVsQ2xpY2soZSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2F4aXNMYWJlbENsaWNrJywgZSk7XHJcbiAgICB0aGlzLmNhbGxDb21wb25lbnRFdmVudChlLCB0aGlzLm9wdGlvbnMub25BeGlzTGFiZWxDbGljayk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25MZWdlbmRJdGVtQ2xpY2soZSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ2xlZ2VuZEl0ZW1DbGljaycsIGUpO1xyXG4gICAgdGhpcy5jYWxsQ29tcG9uZW50RXZlbnQoZSwgdGhpcy5vcHRpb25zLm9uTGVnZW5kSXRlbUNsaWNrKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkxlZ2VuZEl0ZW1Ib3ZlcihlKTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnbGVnZW5kSXRlbUhvdmVyJywgZSk7XHJcbiAgICB0aGlzLmNhbGxDb21wb25lbnRFdmVudChlLCB0aGlzLm9wdGlvbnMub25MZWdlbmRJdGVtSG92ZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uUGxvdEFyZWFDbGljayhlKTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygncGxvdEFyZWFDbGljaycsIGUpO1xyXG4gICAgdGhpcy5jYWxsQ29tcG9uZW50RXZlbnQoZSwgdGhpcy5vcHRpb25zLm9uUGxvdEFyZWFDbGljayk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25QbG90QXJlYUhvdmVyKGUpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdwbG90QXJlYUhvdmVyJywgZSk7XHJcbiAgICB0aGlzLmNhbGxDb21wb25lbnRFdmVudChlLCB0aGlzLm9wdGlvbnMub25QbG90QXJlYUhvdmVyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblNlcmllc0NsaWNrKGUpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKCdzZXJpZXNDbGljaycsIGUpO1xyXG4gICAgY29uc3QgZiA9IFpDb21wb25lbnRIZWxwZXIuZ2V0R3JvdXBFdmFsVmFsdWUuY2FsbCh0aGlzLCB0aGlzLmRhdGEuT25JdGVtQ2xpY2spO1xyXG4gICAgaWYgKHR5cGVvZiBmID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gZi5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2VyaWVzSG92ZXIoZSk6IHZvaWQge1xyXG4gICAgdGhpcy5jYWxsQ29tcG9uZW50RXZlbnQoZSwgdGhpcy5vcHRpb25zLm9uU2VyaWVzSG92ZXIpO1xyXG4gICAgLy8gY29uc29sZS5sb2coJ3Nlcmllc0hvdmVyJywgZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbGxDb21wb25lbnRFdmVudChlLCBldmVudDogYW55KTogYW55IHtcclxuICAgIGlmICh0eXBlb2YgZXZlbnQgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBldmVudC5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGYgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwodGhpcywgZXZlbnQpO1xyXG4gICAgaWYgKHR5cGVvZiBmID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGNhbGxGdW5jID0gZi5iaW5kKHRoaXMuZ3JvdXAuY3RybFNjb3BlKTtcclxuICAgICAgcmV0dXJuIGNhbGxGdW5jKGUpO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcHVibGljIGdldFRvb2xUaXAodmFsdWUsIGNhdGVnb3J5KTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNhbGxDb21wb25lbnRFdmVudCh7IHZhbHVlLCBjYXRlZ29yeSB9LCB0aGlzLm9wdGlvbnMuY3VzdG9tVG9vbHRpcEZ1bmMpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIlxyXG4gIGNsYXNzPVwiZTF0YWctc3R5bGVcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZVwiPlxyXG4gIDxrZW5kby1jaGFydCBbcmVuZGVyQXNdPVwib3B0aW9ucy5yZW5kZXJBc1wiIFtwYW5uYWJsZV09XCJvcHRpb25zLnBhbm5hYmxlXCIgW3pvb21hYmxlXT1cIm9wdGlvbnMuem9vbWFibGVcIlxyXG4gICAgICAgIFtjYXRlZ29yeUF4aXNdPVwib3B0aW9ucy5jYXRlZ29yeUF4aXNcIlxyXG4gICAgICAgIChyZW5kZXIpPVwib25SZW5kZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKGF4aXNMYWJlbENsaWNrKT1cIm9uQXhpc0xhYmVsQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGxlZ2VuZEl0ZW1DbGljayk9XCJvbkxlZ2VuZEl0ZW1DbGljaygkZXZlbnQpXCJcclxuICAgICAgICAobGVnZW5kSXRlbUhvdmVyKT1cIm9uTGVnZW5kSXRlbUhvdmVyKCRldmVudClcIlxyXG4gICAgICAgIChwbG90QXJlYUNsaWNrKT1cIm9uUGxvdEFyZWFDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAocGxvdEFyZWFIb3Zlcik9XCJvblBsb3RBcmVhSG92ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlcmllc0NsaWNrKT1cIm9uU2VyaWVzQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKHNlcmllc0hvdmVyKT1cIm9uU2VyaWVzSG92ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgY2xhc3M9XCJlMXRhZy1zdHlsZTFcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTFcIj5cclxuICAgICAgICA8a2VuZG8tY2hhcnQtdGl0bGUgKm5nSWY9XCJvcHRpb25zLnRpdGxlXCIgW3RleHRdPVwib3B0aW9ucy50aXRsZVwiIGNsYXNzPVwiZTF0YWctc3R5bGUyXCIgW3N0eWxlXT1cImNvbXBvbmVudFByb3BlcnRpZXMuc3R5bGUuc3R5bGUyXCI+PC9rZW5kby1jaGFydC10aXRsZT5cclxuICAgICAgICA8a2VuZG8tY2hhcnQtbGVnZW5kIFtwb3NpdGlvbl09XCJvcHRpb25zLmxlZ2VuZFBvc2l0aW9uXCIgW29yaWVudGF0aW9uXT1cIm9wdGlvbnMubGVnZW5kT3JpZW50YXRpb25cIiBjbGFzcz1cImUxdGFnLXN0eWxlM1wiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlM1wiPjwva2VuZG8tY2hhcnQtbGVnZW5kPlxyXG4gICAgICAgIDxrZW5kby1jaGFydC10b29sdGlwIFtmb3JtYXRdPVwib3B0aW9ucy50b29sdGlwRm9ybWF0XCIgY2xhc3M9XCJlMXRhZy1zdHlsZTRcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTRcIj48L2tlbmRvLWNoYXJ0LXRvb2x0aXA+XHJcbiAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcyBjbGFzcz1cImUxdGFnLXN0eWxlNVwiIFtzdHlsZV09XCJjb21wb25lbnRQcm9wZXJ0aWVzLnN0eWxlLnN0eWxlNVwiPlxyXG4gICAgICAgICAgICA8a2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9ucy5zZXJpZXNcIlxyXG4gICAgICAgICAgICAgICAgW2FnZ3JlZ2F0ZV09XCJvcHRpb25zLmFnZ3JlZ2F0ZVR5cGVcIlxyXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwiaXRlbS50eXBlIHx8IG9wdGlvbnMuZGF0YVR5cGVcIiBbc3R5bGVdPVwiaXRlbS5zdHlsZSB8fCBvcHRpb25zLmRhdGFTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiaXRlbS5jb2xvciB8fCBvcHRpb25zLmNvbG9yXCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbHNdPVwiaXRlbS5sYWJlbHMgfHwgb3B0aW9ucy5sYWJlbHNcIlxyXG4gICAgICAgICAgICAgICAgW2ZpZWxkXT1cIm9wdGlvbnMuZGF0YUZpZWxkXCIgW2NhdGVnb3J5RmllbGRdPVwib3B0aW9ucy5jYXRlZ29yeUZpZWxkXCJcclxuICAgICAgICAgICAgICAgIFtkYXRhXT1cIml0ZW0uZGF0YVwiIFtuYW1lXT1cIml0ZW0ubmFtZVwiPlxyXG4gICAgICAgICAgICAgICAgPGtlbmRvLWNoYXJ0LXNlcmllcy1pdGVtLXRvb2x0aXAga2VuZG9DaGFydFNlcmllc1Rvb2x0aXBUZW1wbGF0ZSAqbmdJZj1cIm9wdGlvbnMuY3VzdG9tVG9vbHRpcEZ1bmNcIiBbYmFja2dyb3VuZF09XCJvcHRpb25zLmN1c3RvbVRvb2x0aXBPcHRpb25zLmJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWNhdGVnb3J5PVwiY2F0ZWdvcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiZ2V0VG9vbFRpcCh2YWx1ZSwgY2F0ZWdvcnkpIHwgaHRtbFNhbml0aXplXCIgY2xhc3M9XCJlMXRhZy1zdHlsZTZcIiBbc3R5bGVdPVwiY29tcG9uZW50UHJvcGVydGllcy5zdHlsZS5zdHlsZTZcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwva2VuZG8tY2hhcnQtc2VyaWVzLWl0ZW0tdG9vbHRpcD5cclxuICAgICAgICAgICAgPC9rZW5kby1jaGFydC1zZXJpZXMtaXRlbT5cclxuICAgICAgICA8L2tlbmRvLWNoYXJ0LXNlcmllcz5cclxuICAgIDwva2VuZG8tY2hhcnQ+XHJcbjwvZGl2PlxyXG4iXX0=
|