@syncfusion/ej2-angular-charts 28.2.11 → 29.1.33
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/CHANGELOG.md +15 -2
- package/README.md +1 -1
- package/esm2020/src/accumulation-chart/accumulationchart.component.mjs +3 -3
- package/esm2020/src/accumulation-chart/series.directive.mjs +3 -3
- package/esm2020/src/chart/axes.directive.mjs +3 -3
- package/esm2020/src/chart/chart.component.mjs +3 -3
- package/esm2020/src/chart/series.directive.mjs +3 -3
- package/esm2020/src/stock-chart/series.directive.mjs +3 -3
- package/esm2020/src/stock-chart/stockchart.component.mjs +3 -3
- package/fesm2015/syncfusion-ej2-angular-charts.mjs +14 -14
- package/fesm2015/syncfusion-ej2-angular-charts.mjs.map +1 -1
- package/fesm2020/syncfusion-ej2-angular-charts.mjs +14 -14
- package/fesm2020/syncfusion-ej2-angular-charts.mjs.map +1 -1
- package/package.json +9 -9
- package/schematics/utils/lib-details.d.ts +2 -2
- package/schematics/utils/lib-details.js +2 -2
- package/schematics/utils/lib-details.ts +2 -2
- package/src/accumulation-chart/accumulationchart.component.d.ts +2 -1
- package/src/accumulation-chart/series.directive.d.ts +9 -1
- package/src/chart/axes.directive.d.ts +7 -1
- package/src/chart/chart.component.d.ts +1 -1
- package/src/chart/series.directive.d.ts +17 -1
- package/src/stock-chart/series.directive.d.ts +6 -1
- package/src/stock-chart/stockchart.component.d.ts +2 -1
|
@@ -12,7 +12,7 @@ import { AnnotationsDirective } from './annotations.directive';
|
|
|
12
12
|
import { SelectedDataIndexesDirective } from './selecteddataindexes.directive';
|
|
13
13
|
import { IndicatorsDirective } from './indicators.directive';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
|
-
export const inputs = ['accessibility', 'allowExport', 'allowMultiSelection', 'annotations', 'axes', 'background', 'backgroundImage', 'border', 'chartArea', 'columns', 'crosshair', 'currencyCode', 'dataSource', 'description', 'enableAnimation', 'enableAutoIntervalOnBothAxis', 'enableCanvas', 'enableExport', 'enableHtmlSanitizer', 'enablePersistence', 'enableRtl', 'enableSideBySidePlacement', 'focusBorderColor', 'focusBorderMargin', 'focusBorderWidth', 'height', 'highlightColor', 'highlightMode', 'highlightPattern', 'indicators', 'isMultiSelect', 'isTransposed', 'legendSettings', 'locale', 'margin', 'palettes', 'primaryXAxis', 'primaryYAxis', 'rangeColorSettings', 'rows', 'selectedDataIndexes', 'selectionMode', 'selectionPattern', 'series', 'subTitle', 'subTitleStyle', 'tabIndex', 'theme', 'title', 'titleStyle', 'tooltip', 'useGroupingSeparator', 'width', 'zoomSettings'];
|
|
15
|
+
export const inputs = ['accessibility', 'allowExport', 'allowMultiSelection', 'annotations', 'axes', 'background', 'backgroundImage', 'border', 'chartArea', 'columns', 'crosshair', 'currencyCode', 'dataSource', 'description', 'enableAnimation', 'enableAutoIntervalOnBothAxis', 'enableCanvas', 'enableExport', 'enableHtmlSanitizer', 'enablePersistence', 'enableRtl', 'enableSideBySidePlacement', 'focusBorderColor', 'focusBorderMargin', 'focusBorderWidth', 'height', 'highlightColor', 'highlightMode', 'highlightPattern', 'indicators', 'isMultiSelect', 'isTransposed', 'legendSettings', 'locale', 'margin', 'palettes', 'primaryXAxis', 'primaryYAxis', 'rangeColorSettings', 'rows', 'selectedDataIndexes', 'selectionMode', 'selectionPattern', 'series', 'stackLabels', 'subTitle', 'subTitleStyle', 'tabIndex', 'theme', 'title', 'titleStyle', 'tooltip', 'useGroupingSeparator', 'width', 'zoomSettings'];
|
|
16
16
|
export const outputs = ['afterExport', 'animationComplete', 'annotationRender', 'axisLabelClick', 'axisLabelRender', 'axisMultiLabelRender', 'axisRangeCalculated', 'beforeExport', 'beforePrint', 'beforeResize', 'chartDoubleClick', 'chartMouseClick', 'chartMouseDown', 'chartMouseLeave', 'chartMouseMove', 'chartMouseUp', 'drag', 'dragComplete', 'dragEnd', 'dragStart', 'legendClick', 'legendRender', 'load', 'loaded', 'multiLevelLabelClick', 'onZooming', 'pointClick', 'pointDoubleClick', 'pointMove', 'pointRender', 'resized', 'scrollChanged', 'scrollEnd', 'scrollStart', 'selectionComplete', 'seriesRender', 'sharedTooltipRender', 'textRender', 'tooltipRender', 'zoomComplete', 'dataSourceChange'];
|
|
17
17
|
export const twoWays = ['dataSource'];
|
|
18
18
|
/**
|
|
@@ -485,7 +485,7 @@ let ChartComponent = class ChartComponent extends Chart {
|
|
|
485
485
|
}
|
|
486
486
|
};
|
|
487
487
|
ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ChartComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
488
|
-
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ChartComponent, selector: "ejs-chart", inputs: { accessibility: "accessibility", allowExport: "allowExport", allowMultiSelection: "allowMultiSelection", annotations: "annotations", axes: "axes", background: "background", backgroundImage: "backgroundImage", border: "border", chartArea: "chartArea", columns: "columns", crosshair: "crosshair", currencyCode: "currencyCode", dataSource: "dataSource", description: "description", enableAnimation: "enableAnimation", enableAutoIntervalOnBothAxis: "enableAutoIntervalOnBothAxis", enableCanvas: "enableCanvas", enableExport: "enableExport", enableHtmlSanitizer: "enableHtmlSanitizer", enablePersistence: "enablePersistence", enableRtl: "enableRtl", enableSideBySidePlacement: "enableSideBySidePlacement", focusBorderColor: "focusBorderColor", focusBorderMargin: "focusBorderMargin", focusBorderWidth: "focusBorderWidth", height: "height", highlightColor: "highlightColor", highlightMode: "highlightMode", highlightPattern: "highlightPattern", indicators: "indicators", isMultiSelect: "isMultiSelect", isTransposed: "isTransposed", legendSettings: "legendSettings", locale: "locale", margin: "margin", palettes: "palettes", primaryXAxis: "primaryXAxis", primaryYAxis: "primaryYAxis", rangeColorSettings: "rangeColorSettings", rows: "rows", selectedDataIndexes: "selectedDataIndexes", selectionMode: "selectionMode", selectionPattern: "selectionPattern", series: "series", subTitle: "subTitle", subTitleStyle: "subTitleStyle", tabIndex: "tabIndex", theme: "theme", title: "title", titleStyle: "titleStyle", tooltip: "tooltip", useGroupingSeparator: "useGroupingSeparator", width: "width", zoomSettings: "zoomSettings" }, outputs: { afterExport: "afterExport", animationComplete: "animationComplete", annotationRender: "annotationRender", axisLabelClick: "axisLabelClick", axisLabelRender: "axisLabelRender", axisMultiLabelRender: "axisMultiLabelRender", axisRangeCalculated: "axisRangeCalculated", beforeExport: "beforeExport", beforePrint: "beforePrint", beforeResize: "beforeResize", chartDoubleClick: "chartDoubleClick", chartMouseClick: "chartMouseClick", chartMouseDown: "chartMouseDown", chartMouseLeave: "chartMouseLeave", chartMouseMove: "chartMouseMove", chartMouseUp: "chartMouseUp", drag: "drag", dragComplete: "dragComplete", dragEnd: "dragEnd", dragStart: "dragStart", legendClick: "legendClick", legendRender: "legendRender", load: "load", loaded: "loaded", multiLevelLabelClick: "multiLevelLabelClick", onZooming: "onZooming", pointClick: "pointClick", pointDoubleClick: "pointDoubleClick", pointMove: "pointMove", pointRender: "pointRender", resized: "resized", scrollChanged: "scrollChanged", scrollEnd: "scrollEnd", scrollStart: "scrollStart", selectionComplete: "selectionComplete", seriesRender: "seriesRender", sharedTooltipRender: "sharedTooltipRender", textRender: "textRender", tooltipRender: "tooltipRender", zoomComplete: "zoomComplete", dataSourceChange: "dataSourceChange" }, queries: [{ propertyName: "tooltip_template", first: true, predicate: ["tooltipTemplate"], descendants: true }, { propertyName: "childSeries", first: true, predicate: SeriesCollectionDirective, descendants: true }, { propertyName: "childAxes", first: true, predicate: AxesDirective, descendants: true }, { propertyName: "childRows", first: true, predicate: RowsDirective, descendants: true }, { propertyName: "childColumns", first: true, predicate: ColumnsDirective, descendants: true }, { propertyName: "childRangeColorSettings", first: true, predicate: RangeColorSettingsDirective, descendants: true }, { propertyName: "childAnnotations", first: true, predicate: AnnotationsDirective, descendants: true }, { propertyName: "childSelectedDataIndexes", first: true, predicate: SelectedDataIndexesDirective, descendants: true }, { propertyName: "childIndicators", first: true, predicate: IndicatorsDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
488
|
+
ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ChartComponent, selector: "ejs-chart", inputs: { accessibility: "accessibility", allowExport: "allowExport", allowMultiSelection: "allowMultiSelection", annotations: "annotations", axes: "axes", background: "background", backgroundImage: "backgroundImage", border: "border", chartArea: "chartArea", columns: "columns", crosshair: "crosshair", currencyCode: "currencyCode", dataSource: "dataSource", description: "description", enableAnimation: "enableAnimation", enableAutoIntervalOnBothAxis: "enableAutoIntervalOnBothAxis", enableCanvas: "enableCanvas", enableExport: "enableExport", enableHtmlSanitizer: "enableHtmlSanitizer", enablePersistence: "enablePersistence", enableRtl: "enableRtl", enableSideBySidePlacement: "enableSideBySidePlacement", focusBorderColor: "focusBorderColor", focusBorderMargin: "focusBorderMargin", focusBorderWidth: "focusBorderWidth", height: "height", highlightColor: "highlightColor", highlightMode: "highlightMode", highlightPattern: "highlightPattern", indicators: "indicators", isMultiSelect: "isMultiSelect", isTransposed: "isTransposed", legendSettings: "legendSettings", locale: "locale", margin: "margin", palettes: "palettes", primaryXAxis: "primaryXAxis", primaryYAxis: "primaryYAxis", rangeColorSettings: "rangeColorSettings", rows: "rows", selectedDataIndexes: "selectedDataIndexes", selectionMode: "selectionMode", selectionPattern: "selectionPattern", series: "series", stackLabels: "stackLabels", subTitle: "subTitle", subTitleStyle: "subTitleStyle", tabIndex: "tabIndex", theme: "theme", title: "title", titleStyle: "titleStyle", tooltip: "tooltip", useGroupingSeparator: "useGroupingSeparator", width: "width", zoomSettings: "zoomSettings" }, outputs: { afterExport: "afterExport", animationComplete: "animationComplete", annotationRender: "annotationRender", axisLabelClick: "axisLabelClick", axisLabelRender: "axisLabelRender", axisMultiLabelRender: "axisMultiLabelRender", axisRangeCalculated: "axisRangeCalculated", beforeExport: "beforeExport", beforePrint: "beforePrint", beforeResize: "beforeResize", chartDoubleClick: "chartDoubleClick", chartMouseClick: "chartMouseClick", chartMouseDown: "chartMouseDown", chartMouseLeave: "chartMouseLeave", chartMouseMove: "chartMouseMove", chartMouseUp: "chartMouseUp", drag: "drag", dragComplete: "dragComplete", dragEnd: "dragEnd", dragStart: "dragStart", legendClick: "legendClick", legendRender: "legendRender", load: "load", loaded: "loaded", multiLevelLabelClick: "multiLevelLabelClick", onZooming: "onZooming", pointClick: "pointClick", pointDoubleClick: "pointDoubleClick", pointMove: "pointMove", pointRender: "pointRender", resized: "resized", scrollChanged: "scrollChanged", scrollEnd: "scrollEnd", scrollStart: "scrollStart", selectionComplete: "selectionComplete", seriesRender: "seriesRender", sharedTooltipRender: "sharedTooltipRender", textRender: "textRender", tooltipRender: "tooltipRender", zoomComplete: "zoomComplete", dataSourceChange: "dataSourceChange" }, queries: [{ propertyName: "tooltip_template", first: true, predicate: ["tooltipTemplate"], descendants: true }, { propertyName: "childSeries", first: true, predicate: SeriesCollectionDirective, descendants: true }, { propertyName: "childAxes", first: true, predicate: AxesDirective, descendants: true }, { propertyName: "childRows", first: true, predicate: RowsDirective, descendants: true }, { propertyName: "childColumns", first: true, predicate: ColumnsDirective, descendants: true }, { propertyName: "childRangeColorSettings", first: true, predicate: RangeColorSettingsDirective, descendants: true }, { propertyName: "childAnnotations", first: true, predicate: AnnotationsDirective, descendants: true }, { propertyName: "childSelectedDataIndexes", first: true, predicate: SelectedDataIndexesDirective, descendants: true }, { propertyName: "childIndicators", first: true, predicate: IndicatorsDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
489
489
|
__decorate([
|
|
490
490
|
Template()
|
|
491
491
|
], ChartComponent.prototype, "tooltip_template", void 0);
|
|
@@ -515,4 +515,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
515
515
|
type: ContentChild,
|
|
516
516
|
args: ['tooltipTemplate']
|
|
517
517
|
}] } });
|
|
518
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0csWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlKLE9BQU8sRUFBRSxhQUFhLEVBQStCLGVBQWUsRUFBMEIsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0ksT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUU3RCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWEsQ0FBQyxlQUFlLEVBQUMsYUFBYSxFQUFDLHFCQUFxQixFQUFDLGFBQWEsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLGlCQUFpQixFQUFDLFFBQVEsRUFBQyxXQUFXLEVBQUMsU0FBUyxFQUFDLFdBQVcsRUFBQyxjQUFjLEVBQUMsWUFBWSxFQUFDLGFBQWEsRUFBQyxpQkFBaUIsRUFBQyw4QkFBOEIsRUFBQyxj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Qix1RUFUL0MsRUFBRTtBQW9FWjtJQURDLFFBQVEsRUFBRTt3REFDa0I7QUF2RHBCLGNBQWM7SUFEMUIsZUFBZSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7R0FDcEIsY0FBYyxDQStnQjFCO1NBL2dCWSxjQUFjOzJGQUFkLGNBQWM7a0JBakIxQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxXQUFXO29CQUNyQixNQUFNLEVBQUUsTUFBTTtvQkFDZCxPQUFPLEVBQUUsT0FBTztvQkFDaEIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osT0FBTyxFQUFFO3dCQUNMLFdBQVcsRUFBRSxJQUFJLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQzt3QkFDeEQsU0FBUyxFQUFFLElBQUksWUFBWSxDQUFDLGFBQWEsQ0FBQzt3QkFDMUMsU0FBUyxFQUFFLElBQUksWUFBWSxDQUFDLGFBQWEsQ0FBQzt3QkFDMUMsWUFBWSxFQUFFLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDO3dCQUNoRCx1QkFBdUIsRUFBRSxJQUFJLFlBQVksQ0FBQywyQkFBMkIsQ0FBQzt3QkFDdEUsZ0JBQWdCLEVBQUUsSUFBSSxZQUFZLENBQUMsb0JBQW9CLENBQUM7d0JBQ3hELHdCQUF3QixFQUFFLElBQUksWUFBWSxDQUFDLDRCQUE0QixDQUFDO3dCQUN4RSxlQUFlLEVBQUUsSUFBSSxZQUFZLENBQUMsbUJBQW1CLENBQUM7cUJBQ3pEO2lCQUNKOytLQXlEVSxnQkFBZ0I7c0JBRnRCLFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q29udGFpbmVyUmVmLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIEluamVjdG9yLCBWYWx1ZVByb3ZpZGVyLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudEJhc2UsIElDb21wb25lbnRCYXNlLCBhcHBseU1peGlucywgQ29tcG9uZW50TWl4aW5zLCBQcm9wZXJ0eUNvbGxlY3Rpb25JbmZvLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgQ2hhcnQgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItY2hhcnRzJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBTZXJpZXNDb2xsZWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9zZXJpZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEF4ZXNEaXJlY3RpdmUgfSBmcm9tICcuL2F4ZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJvd3NEaXJlY3RpdmUgfSBmcm9tICcuL3Jvd3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbHVtbnNEaXJlY3RpdmUgfSBmcm9tICcuL2NvbHVtbnMuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJhbmdlQ29sb3JTZXR0aW5nc0RpcmVjdGl2ZSB9IGZyb20gJy4vcmFuZ2Vjb2xvcnNldHRpbmdzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBbm5vdGF0aW9uc0RpcmVjdGl2ZSB9IGZyb20gJy4vYW5ub3RhdGlvbnMuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNlbGVjdGVkRGF0YUluZGV4ZXNEaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdGVkZGF0YWluZGV4ZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEluZGljYXRvcnNEaXJlY3RpdmUgfSBmcm9tICcuL2luZGljYXRvcnMuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IGlucHV0czogc3RyaW5nW10gPSBbJ2FjY2Vzc2liaWxpdHknLCdhbGxvd0V4cG9ydCcsJ2FsbG93TXVsdGlTZWxlY3Rpb24nLCdhbm5vdGF0aW9ucycsJ2F4ZXMnLCdiYWNrZ3JvdW5kJywnYmFja2dyb3VuZEltYWdlJywnYm9yZGVyJywnY2hhcnRBcmVhJywnY29sdW1ucycsJ2Nyb3NzaGFpcicsJ2N1cnJlbmN5Q29kZScsJ2RhdGFTb3VyY2UnLCdkZXNjcmlwdGlvbicsJ2VuYWJsZUFuaW1hdGlvbicsJ2VuYWJsZUF1dG9JbnRlcnZhbE9uQm90aEF4aXMnLCdlbmFibGVDYW52YXMnLCdlbmFibGVFeHBvcnQnLCdlbmFibGVIdG1sU2FuaXRpemVyJywnZW5hYmxlUGVyc2lzdGVuY2UnLCdlbmFibGVSdGwnLCdlbmFibGVTaWRlQnlTaWRlUGxhY2VtZW50JywnZm9jdXNCb3JkZXJDb2xvcicsJ2ZvY3VzQm9yZGVyTWFyZ2luJywnZm9jdXNCb3JkZXJXaWR0aCcsJ2hlaWdodCcsJ2hpZ2hsaWdodENvbG9yJywnaGlnaGxpZ2h0TW9kZScsJ2hpZ2hsaWdodFBhdHRlcm4nLCdpbmRpY2F0b3JzJywnaXNNdWx0aVNlbGVjdCcsJ2lzVHJhbnNwb3NlZCcsJ2xlZ2VuZFNldHRpbmdzJywnbG9jYWxlJywnbWFyZ2luJywncGFsZXR0ZXMnLCdwcmltYXJ5WEF4aXMnLCdwcmltYXJ5WUF4aXMnLCdyYW5nZUNvbG9yU2V0dGluZ3MnLCdyb3dzJywnc2VsZWN0ZWREYXRhSW5kZXhlcycsJ3NlbGVjdGlvbk1vZGUnLCdzZWxlY3Rpb25QYXR0ZXJuJywnc2VyaWVzJywnc3ViVGl0bGUnLCdzdWJUaXRsZVN0eWxlJywndGFiSW5kZXgnLCd0aGVtZScsJ3RpdGxlJywndGl0bGVTdHlsZScsJ3Rvb2x0aXAnLCd1c2VHcm91cGluZ1NlcGFyYXRvcicsJ3dpZHRoJywnem9vbVNldHRpbmdzJ107XG5leHBvcnQgY29uc3Qgb3V0cHV0czogc3RyaW5nW10gPSBbJ2FmdGVyRXhwb3J0JywnYW5pbWF0aW9uQ29tcGxldGUnLCdhbm5vdGF0aW9uUmVuZGVyJywnYXhpc0xhYmVsQ2xpY2snLCdheGlzTGFiZWxSZW5kZXInLCdheGlzTXVsdGlMYWJlbFJlbmRlcicsJ2F4aXNSYW5nZUNhbGN1bGF0ZWQnLCdiZWZvcmVFeHBvcnQnLCdiZWZvcmVQcmludCcsJ2JlZm9yZVJlc2l6ZScsJ2NoYXJ0RG91YmxlQ2xpY2snLCdjaGFydE1vdXNlQ2xpY2snLCdjaGFydE1vdXNlRG93bicsJ2NoYXJ0TW91c2VMZWF2ZScsJ2NoYXJ0TW91c2VNb3ZlJywnY2hhcnRNb3VzZVVwJywnZHJhZycsJ2RyYWdDb21wbGV0ZScsJ2RyYWdFbmQnLCdkcmFnU3RhcnQnLCdsZWdlbmRDbGljaycsJ2xlZ2VuZFJlbmRlcicsJ2xvYWQnLCdsb2FkZWQnLCdtdWx0aUxldmVsTGFiZWxDbGljaycsJ29uWm9vbWluZycsJ3BvaW50Q2xpY2snLCdwb2ludERvdWJsZUNsaWNrJywncG9pbnRNb3ZlJywncG9pbnRSZW5kZXInLCdyZXNpemVkJywnc2Nyb2xsQ2hhbmdlZCcsJ3Njcm9sbEVuZCcsJ3Njcm9sbFN0YXJ0Jywnc2VsZWN0aW9uQ29tcGxldGUnLCdzZXJpZXNSZW5kZXInLCdzaGFyZWRUb29sdGlwUmVuZGVyJywndGV4dFJlbmRlcicsJ3Rvb2x0aXBSZW5kZXInLCd6b29tQ29tcGxldGUnLCdkYXRhU291cmNlQ2hhbmdlJ107XG5leHBvcnQgY29uc3QgdHdvV2F5czogc3RyaW5nW10gPSBbJ2RhdGFTb3VyY2UnXTtcblxuLyoqXG4gKiBDaGFydCBDb21wb25lbnRcbiAqIGBgYGh0bWxcbiAqIDxlanNjaGFydD48L2Vqc2NoYXJ0PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWpzLWNoYXJ0JyxcbiAgICBpbnB1dHM6IGlucHV0cyxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkU2VyaWVzOiBuZXcgQ29udGVudENoaWxkKFNlcmllc0NvbGxlY3Rpb25EaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRBeGVzOiBuZXcgQ29udGVudENoaWxkKEF4ZXNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRSb3dzOiBuZXcgQ29udGVudENoaWxkKFJvd3NEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRDb2x1bW5zOiBuZXcgQ29udGVudENoaWxkKENvbHVtbnNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRSYW5nZUNvbG9yU2V0dGluZ3M6IG5ldyBDb250ZW50Q2hpbGQoUmFuZ2VDb2xvclNldHRpbmdzRGlyZWN0aXZlKSwgXG4gICAgICAgIGNoaWxkQW5ub3RhdGlvbnM6IG5ldyBDb250ZW50Q2hpbGQoQW5ub3RhdGlvbnNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRTZWxlY3RlZERhdGFJbmRleGVzOiBuZXcgQ29udGVudENoaWxkKFNlbGVjdGVkRGF0YUluZGV4ZXNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRJbmRpY2F0b3JzOiBuZXcgQ29udGVudENoaWxkKEluZGljYXRvcnNEaXJlY3RpdmUpXG4gICAgfVxufSlcbkBDb21wb25lbnRNaXhpbnMoW0NvbXBvbmVudEJhc2VdKVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGV4dGVuZHMgQ2hhcnQgaW1wbGVtZW50cyBJQ29tcG9uZW50QmFzZSB7XG4gICAgcHVibGljIGNvbnRleHQgOiBhbnk7XG4gICAgcHVibGljIHRhZ09iamVjdHM6IGFueTtcblx0YWZ0ZXJFeHBvcnQ6IGFueTtcblx0YW5pbWF0aW9uQ29tcGxldGU6IGFueTtcblx0YW5ub3RhdGlvblJlbmRlcjogYW55O1xuXHRheGlzTGFiZWxDbGljazogYW55O1xuXHRheGlzTGFiZWxSZW5kZXI6IGFueTtcblx0YXhpc011bHRpTGFiZWxSZW5kZXI6IGFueTtcblx0YXhpc1JhbmdlQ2FsY3VsYXRlZDogYW55O1xuXHRiZWZvcmVFeHBvcnQ6IGFueTtcblx0YmVmb3JlUHJpbnQ6IGFueTtcblx0YmVmb3JlUmVzaXplOiBhbnk7XG5cdGNoYXJ0RG91YmxlQ2xpY2s6IGFueTtcblx0Y2hhcnRNb3VzZUNsaWNrOiBhbnk7XG5cdGNoYXJ0TW91c2VEb3duOiBhbnk7XG5cdGNoYXJ0TW91c2VMZWF2ZTogYW55O1xuXHRjaGFydE1vdXNlTW92ZTogYW55O1xuXHRjaGFydE1vdXNlVXA6IGFueTtcblx0ZHJhZzogYW55O1xuXHRkcmFnQ29tcGxldGU6IGFueTtcblx0ZHJhZ0VuZDogYW55O1xuXHRkcmFnU3RhcnQ6IGFueTtcblx0bGVnZW5kQ2xpY2s6IGFueTtcblx0bGVnZW5kUmVuZGVyOiBhbnk7XG5cdGxvYWQ6IGFueTtcblx0bG9hZGVkOiBhbnk7XG5cdG11bHRpTGV2ZWxMYWJlbENsaWNrOiBhbnk7XG5cdG9uWm9vbWluZzogYW55O1xuXHRwb2ludENsaWNrOiBhbnk7XG5cdHBvaW50RG91YmxlQ2xpY2s6IGFueTtcblx0cG9pbnRNb3ZlOiBhbnk7XG5cdHBvaW50UmVuZGVyOiBhbnk7XG5cdHJlc2l6ZWQ6IGFueTtcblx0c2Nyb2xsQ2hhbmdlZDogYW55O1xuXHRzY3JvbGxFbmQ6IGFueTtcblx0c2Nyb2xsU3RhcnQ6IGFueTtcblx0c2VsZWN0aW9uQ29tcGxldGU6IGFueTtcblx0c2VyaWVzUmVuZGVyOiBhbnk7XG5cdHNoYXJlZFRvb2x0aXBSZW5kZXI6IGFueTtcblx0dGV4dFJlbmRlcjogYW55O1xuXHR0b29sdGlwUmVuZGVyOiBhbnk7XG5cdHpvb21Db21wbGV0ZTogYW55O1xuXHRwdWJsaWMgZGF0YVNvdXJjZUNoYW5nZTogYW55O1xuICAgIHB1YmxpYyBjaGlsZFNlcmllczogUXVlcnlMaXN0PFNlcmllc0NvbGxlY3Rpb25EaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZEF4ZXM6IFF1ZXJ5TGlzdDxBeGVzRGlyZWN0aXZlPjtcbiAgICBwdWJsaWMgY2hpbGRSb3dzOiBRdWVyeUxpc3Q8Um93c0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkQ29sdW1uczogUXVlcnlMaXN0PENvbHVtbnNEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZFJhbmdlQ29sb3JTZXR0aW5nczogUXVlcnlMaXN0PFJhbmdlQ29sb3JTZXR0aW5nc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkQW5ub3RhdGlvbnM6IFF1ZXJ5TGlzdDxBbm5vdGF0aW9uc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkU2VsZWN0ZWREYXRhSW5kZXhlczogUXVlcnlMaXN0PFNlbGVjdGVkRGF0YUluZGV4ZXNEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZEluZGljYXRvcnM6IFF1ZXJ5TGlzdDxJbmRpY2F0b3JzRGlyZWN0aXZlPjtcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10gPSBbJ3NlcmllcycsICdheGVzJywgJ3Jvd3MnLCAnY29sdW1ucycsICdyYW5nZUNvbG9yU2V0dGluZ3MnLCAnYW5ub3RhdGlvbnMnLCAnc2VsZWN0ZWREYXRhSW5kZXhlcycsICdpbmRpY2F0b3JzJ107XG4gICAgQENvbnRlbnRDaGlsZCgndG9vbHRpcFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyB0b29sdGlwX3RlbXBsYXRlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nRWxlOiBFbGVtZW50UmVmLCBwcml2YXRlIHNyZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gdGhpcy5uZ0VsZS5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcyA9IHRoaXMuaW5qZWN0ZWRNb2R1bGVzIHx8IFtdO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzTGluZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU2NhdHRlclNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQ29sdW1uU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTcGxpbmVTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1NwbGluZUFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1N0cmlwTGluZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU2Nyb2xsQmFyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTdGVwTGluZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3RlcEFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1N0YWNraW5nQ29sdW1uU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTdGFja2luZ0xpbmVTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1N0YWNraW5nQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3RhY2tpbmdTdGVwQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQmFyU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTdGFja2luZ0JhclNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUmFuZ2VDb2x1bW5TZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0J1YmJsZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzVG9vbHRpcCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQ3Jvc3NoYWlyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNDYXRlZ29yeScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzRGF0ZVRpbWUnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0xvZ2FyaXRobWljJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNMZWdlbmQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1pvb20nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0RhdGFMYWJlbCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU2VsZWN0aW9uJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNDaGFydEFubm90YXRpb24nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0hpbG9TZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0hpbG9PcGVuQ2xvc2VTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1dhdGVyZmFsbFNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUmFuZ2VBcmVhU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNSYW5nZVN0ZXBBcmVhU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTcGxpbmVSYW5nZUFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0NhbmRsZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUG9sYXJTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1JhZGFyU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTbWFJbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1RtYUluZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzRW1hSW5kaWNhdG9yJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNBY2N1bXVsYXRpb25EaXN0cmlidXRpb25JbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c01hY2RJbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0F0ckluZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUnNpSW5kaWNhdG9yJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNNb21lbnR1bUluZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3RvY2hhc3RpY0luZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQm9sbGluZ2VyQmFuZHMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0JveEFuZFdoaXNrZXJTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0hpc3RvZ3JhbVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzRXJyb3JCYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1RyZW5kbGluZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0RhdGVUaW1lQ2F0ZWdvcnknKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c011bHRpQ29sb3JlZExpbmVTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c011bHRpQ29sb3JlZEFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c011bHRpTGV2ZWxMYWJlbCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUGFyZXRvU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNFeHBvcnQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0RhdGFFZGl0aW5nJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNIaWdobGlnaHQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cclxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmFkZFR3b1dheS5jYWxsKHRoaXMsIHR3b1dheXMpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5jb250ZXh0ICA9IG5ldyBDb21wb25lbnRCYXNlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbnRleHQubmdPbkluaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0Lm5nQWZ0ZXJWaWV3SW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5uZ09uRGVzdHJveSh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhZ09iamVjdHNbMF0uaW5zdGFuY2UgPSB0aGlzLmNoaWxkU2VyaWVzO1xuICAgICAgICBcblx0ICAgIGlmICh0aGlzLmNoaWxkQXhlcykge1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzFdLmluc3RhbmNlID0gdGhpcy5jaGlsZEF4ZXM7XG4gICAgICAgIH1cbiAgICAgICAgXG5cdCAgICBpZiAodGhpcy5jaGlsZFJvd3MpIHtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0c1syXS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRSb3dzO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRDb2x1bW5zKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbM10uaW5zdGFuY2UgPSB0aGlzLmNoaWxkQ29sdW1ucztcbiAgICAgICAgfVxuICAgICAgICBcblx0ICAgIGlmICh0aGlzLmNoaWxkUmFuZ2VDb2xvclNldHRpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbNF0uaW5zdGFuY2UgPSB0aGlzLmNoaWxkUmFuZ2VDb2xvclNldHRpbmdzO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRBbm5vdGF0aW9ucykge1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzVdLmluc3RhbmNlID0gdGhpcy5jaGlsZEFubm90YXRpb25zO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRTZWxlY3RlZERhdGFJbmRleGVzKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbNl0uaW5zdGFuY2UgPSB0aGlzLmNoaWxkU2VsZWN0ZWREYXRhSW5kZXhlcztcbiAgICAgICAgfVxuICAgICAgICBcblx0ICAgIGlmICh0aGlzLmNoaWxkSW5kaWNhdG9ycykge1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzddLmluc3RhbmNlID0gdGhpcy5jaGlsZEluZGljYXRvcnM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0Lm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJFdmVudHM6IChldmVudExpc3Q6IHN0cmluZ1tdKSA9PiB2b2lkO1xuICAgIHB1YmxpYyBhZGRUd29XYXk6IChwcm9wTGlzdDogc3RyaW5nW10pID0+IHZvaWQ7XG59XG5cbiJdfQ==
|
|
518
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0csWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlKLE9BQU8sRUFBRSxhQUFhLEVBQStCLGVBQWUsRUFBMEIsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0ksT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUU3RCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWEsQ0FBQyxlQUFlLEVBQUMsYUFBYSxFQUFDLHFCQUFxQixFQUFDLGFBQWEsRUFBQyxNQUFNLEVBQUMsWUFBWSxFQUFDLGlCQUFpQixFQUFDLFFBQVEsRUFBQyxXQUFXLEVBQUMsU0FBUyxFQUFDLFdBQVcsRUFBQyxjQUFjLEVBQUMsWUFBWSxFQUFDLGFBQWEsRUFBQyxpQkFBaUIsRUFBQyw4QkFBOEIsRUFBQyxjQUFjLEVBQUMsY0FBYyxFQUFDLHFCQUFxQixFQUFDLG1CQUFtQixFQUFDLFdBQVcsRUFBQywyQkFBMkIsRUFBQyxrQkFBa0IsRUFBQyxtQkFBbUIsRUFBQyxrQkFBa0IsRUFBQyxRQUFRLEVBQUMsZ0JBQWdCLEVBQUMsZUFBZSxFQUFDLGtCQUFrQixFQUFDLFlBQVksRUFBQyxlQUFlLEVBQUMsY0FBYyxFQUFDLGdCQUFnQixFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsVUFBVSxFQUFDLGNBQWMsRUFBQyxjQUFjLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxFQUFDLHFCQUFxQixFQUFDLGVBQWUsRUFBQyxrQkFBa0IsRUFBQyxRQUFRLEVBQUMsYUFBYSxFQUFDLFVBQVUsRUFBQyxlQUFlLEVBQUMsVUFBVSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsWUFBWSxFQUFDLFNBQVMsRUFBQyxzQkFBc0IsRUFBQyxPQUFPLEVBQUMsY0FBYyxDQUFDLENBQUM7QUFDdDFCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBYSxDQUFDLGFBQWEsRUFBQyxtQkFBbUIsRUFBQyxrQkFBa0IsRUFBQyxnQkFBZ0IsRUFBQyxpQkFBaUIsRUFBQyxzQkFBc0IsRUFBQyxxQkFBcUIsRUFBQyxjQUFjLEVBQUMsYUFBYSxFQUFDLGNBQWMsRUFBQyxrQkFBa0IsRUFBQyxpQkFBaUIsRUFBQyxnQkFBZ0IsRUFBQyxpQkFBaUIsRUFBQyxnQkFBZ0IsRUFBQyxjQUFjLEVBQUMsTUFBTSxFQUFDLGNBQWMsRUFBQyxTQUFTLEVBQUMsV0FBVyxFQUFDLGFBQWEsRUFBQyxjQUFjLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxzQkFBc0IsRUFBQyxXQUFXLEVBQUMsWUFBWSxFQUFDLGtCQUFrQixFQUFDLFdBQVcsRUFBQyxhQUFhLEVBQUMsU0FBUyxFQUFDLGVBQWUsRUFBQyxXQUFXLEVBQUMsYUFBYSxFQUFDLG1CQUFtQixFQUFDLGNBQWMsRUFBQyxxQkFBcUIsRUFBQyxZQUFZLEVBQUMsZUFBZSxFQUFDLGNBQWMsRUFBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBQzlwQixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUVoRDs7Ozs7R0FLRztJQWtCVSxjQUFjLFNBQWQsY0FBZSxTQUFRLEtBQUs7SUF5RHJDLFlBQW9CLEtBQWlCLEVBQVUsU0FBb0IsRUFBVSxnQkFBaUMsRUFBVSxRQUFrQjtRQUN0SSxLQUFLLEVBQUUsQ0FBQztRQURRLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFMbkksU0FBSSxHQUFhLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQU9wSSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7UUFDbEQsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDaEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ25ELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3RELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDaEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQy9DLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUNwRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDcEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQzFELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztZQUN4RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDeEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQzVELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDdkQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQzdDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDOUMsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNqRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDMUMsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQy9DLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDckQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2hELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN6RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDckQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN6RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDM0QsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNqRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDakQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNuRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUN2RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDekQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3BELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUN6RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDckQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNoRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7WUFDdEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1lBQzVELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUM1RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDckQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUMsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2pELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFJLElBQUksYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLFFBQVE7UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUVsRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ2hEO1FBRUosSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNoRDtRQUVKLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ25EO1FBRUosSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1NBQzlEO1FBRUosSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ3ZEO1FBRUosSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1NBQy9EO1FBRUosSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7U0FDdEQ7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FJSixDQUFBOzJHQS9nQlksY0FBYzsrRkFBZCxjQUFjLHVqR0FYVyx5QkFBeUIsNEVBQzNCLGFBQWEsNEVBQ2IsYUFBYSwrRUFDVixnQkFBZ0IsMEZBQ0wsMkJBQTJCLG1GQUNsQyxvQkFBb0IsMkZBQ1osNEJBQTRCLGtGQUNyQyxtQkFBbUIsdUVBVC9DLEVBQUU7QUFvRVo7SUFEQyxRQUFRLEVBQUU7d0RBQ2tCO0FBdkRwQixjQUFjO0lBRDFCLGVBQWUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0dBQ3BCLGNBQWMsQ0ErZ0IxQjtTQS9nQlksY0FBYzsyRkFBZCxjQUFjO2tCQWpCMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztvQkFDckIsTUFBTSxFQUFFLE1BQU07b0JBQ2QsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLFFBQVEsRUFBRSxFQUFFO29CQUNaLE9BQU8sRUFBRTt3QkFDTCxXQUFXLEVBQUUsSUFBSSxZQUFZLENBQUMseUJBQXlCLENBQUM7d0JBQ3hELFNBQVMsRUFBRSxJQUFJLFlBQVksQ0FBQyxhQUFhLENBQUM7d0JBQzFDLFNBQVMsRUFBRSxJQUFJLFlBQVksQ0FBQyxhQUFhLENBQUM7d0JBQzFDLFlBQVksRUFBRSxJQUFJLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDaEQsdUJBQXVCLEVBQUUsSUFBSSxZQUFZLENBQUMsMkJBQTJCLENBQUM7d0JBQ3RFLGdCQUFnQixFQUFFLElBQUksWUFBWSxDQUFDLG9CQUFvQixDQUFDO3dCQUN4RCx3QkFBd0IsRUFBRSxJQUFJLFlBQVksQ0FBQyw0QkFBNEIsQ0FBQzt3QkFDeEUsZUFBZSxFQUFFLElBQUksWUFBWSxDQUFDLG1CQUFtQixDQUFDO3FCQUN6RDtpQkFDSjsrS0F5RFUsZ0JBQWdCO3NCQUZ0QixZQUFZO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBJbmplY3RvciwgVmFsdWVQcm92aWRlciwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRCYXNlLCBJQ29tcG9uZW50QmFzZSwgYXBwbHlNaXhpbnMsIENvbXBvbmVudE1peGlucywgUHJvcGVydHlDb2xsZWN0aW9uSW5mbywgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IENoYXJ0IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWNoYXJ0cyc7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgU2VyaWVzQ29sbGVjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vc2VyaWVzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBeGVzRGlyZWN0aXZlIH0gZnJvbSAnLi9heGVzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSb3dzRGlyZWN0aXZlIH0gZnJvbSAnLi9yb3dzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb2x1bW5zRGlyZWN0aXZlIH0gZnJvbSAnLi9jb2x1bW5zLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSYW5nZUNvbG9yU2V0dGluZ3NEaXJlY3RpdmUgfSBmcm9tICcuL3JhbmdlY29sb3JzZXR0aW5ncy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbnNEaXJlY3RpdmUgfSBmcm9tICcuL2Fubm90YXRpb25zLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTZWxlY3RlZERhdGFJbmRleGVzRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3RlZGRhdGFpbmRleGVzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJbmRpY2F0b3JzRGlyZWN0aXZlIH0gZnJvbSAnLi9pbmRpY2F0b3JzLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBpbnB1dHM6IHN0cmluZ1tdID0gWydhY2Nlc3NpYmlsaXR5JywnYWxsb3dFeHBvcnQnLCdhbGxvd011bHRpU2VsZWN0aW9uJywnYW5ub3RhdGlvbnMnLCdheGVzJywnYmFja2dyb3VuZCcsJ2JhY2tncm91bmRJbWFnZScsJ2JvcmRlcicsJ2NoYXJ0QXJlYScsJ2NvbHVtbnMnLCdjcm9zc2hhaXInLCdjdXJyZW5jeUNvZGUnLCdkYXRhU291cmNlJywnZGVzY3JpcHRpb24nLCdlbmFibGVBbmltYXRpb24nLCdlbmFibGVBdXRvSW50ZXJ2YWxPbkJvdGhBeGlzJywnZW5hYmxlQ2FudmFzJywnZW5hYmxlRXhwb3J0JywnZW5hYmxlSHRtbFNhbml0aXplcicsJ2VuYWJsZVBlcnNpc3RlbmNlJywnZW5hYmxlUnRsJywnZW5hYmxlU2lkZUJ5U2lkZVBsYWNlbWVudCcsJ2ZvY3VzQm9yZGVyQ29sb3InLCdmb2N1c0JvcmRlck1hcmdpbicsJ2ZvY3VzQm9yZGVyV2lkdGgnLCdoZWlnaHQnLCdoaWdobGlnaHRDb2xvcicsJ2hpZ2hsaWdodE1vZGUnLCdoaWdobGlnaHRQYXR0ZXJuJywnaW5kaWNhdG9ycycsJ2lzTXVsdGlTZWxlY3QnLCdpc1RyYW5zcG9zZWQnLCdsZWdlbmRTZXR0aW5ncycsJ2xvY2FsZScsJ21hcmdpbicsJ3BhbGV0dGVzJywncHJpbWFyeVhBeGlzJywncHJpbWFyeVlBeGlzJywncmFuZ2VDb2xvclNldHRpbmdzJywncm93cycsJ3NlbGVjdGVkRGF0YUluZGV4ZXMnLCdzZWxlY3Rpb25Nb2RlJywnc2VsZWN0aW9uUGF0dGVybicsJ3NlcmllcycsJ3N0YWNrTGFiZWxzJywnc3ViVGl0bGUnLCdzdWJUaXRsZVN0eWxlJywndGFiSW5kZXgnLCd0aGVtZScsJ3RpdGxlJywndGl0bGVTdHlsZScsJ3Rvb2x0aXAnLCd1c2VHcm91cGluZ1NlcGFyYXRvcicsJ3dpZHRoJywnem9vbVNldHRpbmdzJ107XG5leHBvcnQgY29uc3Qgb3V0cHV0czogc3RyaW5nW10gPSBbJ2FmdGVyRXhwb3J0JywnYW5pbWF0aW9uQ29tcGxldGUnLCdhbm5vdGF0aW9uUmVuZGVyJywnYXhpc0xhYmVsQ2xpY2snLCdheGlzTGFiZWxSZW5kZXInLCdheGlzTXVsdGlMYWJlbFJlbmRlcicsJ2F4aXNSYW5nZUNhbGN1bGF0ZWQnLCdiZWZvcmVFeHBvcnQnLCdiZWZvcmVQcmludCcsJ2JlZm9yZVJlc2l6ZScsJ2NoYXJ0RG91YmxlQ2xpY2snLCdjaGFydE1vdXNlQ2xpY2snLCdjaGFydE1vdXNlRG93bicsJ2NoYXJ0TW91c2VMZWF2ZScsJ2NoYXJ0TW91c2VNb3ZlJywnY2hhcnRNb3VzZVVwJywnZHJhZycsJ2RyYWdDb21wbGV0ZScsJ2RyYWdFbmQnLCdkcmFnU3RhcnQnLCdsZWdlbmRDbGljaycsJ2xlZ2VuZFJlbmRlcicsJ2xvYWQnLCdsb2FkZWQnLCdtdWx0aUxldmVsTGFiZWxDbGljaycsJ29uWm9vbWluZycsJ3BvaW50Q2xpY2snLCdwb2ludERvdWJsZUNsaWNrJywncG9pbnRNb3ZlJywncG9pbnRSZW5kZXInLCdyZXNpemVkJywnc2Nyb2xsQ2hhbmdlZCcsJ3Njcm9sbEVuZCcsJ3Njcm9sbFN0YXJ0Jywnc2VsZWN0aW9uQ29tcGxldGUnLCdzZXJpZXNSZW5kZXInLCdzaGFyZWRUb29sdGlwUmVuZGVyJywndGV4dFJlbmRlcicsJ3Rvb2x0aXBSZW5kZXInLCd6b29tQ29tcGxldGUnLCdkYXRhU291cmNlQ2hhbmdlJ107XG5leHBvcnQgY29uc3QgdHdvV2F5czogc3RyaW5nW10gPSBbJ2RhdGFTb3VyY2UnXTtcblxuLyoqXG4gKiBDaGFydCBDb21wb25lbnRcbiAqIGBgYGh0bWxcbiAqIDxlanNjaGFydD48L2Vqc2NoYXJ0PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWpzLWNoYXJ0JyxcbiAgICBpbnB1dHM6IGlucHV0cyxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkU2VyaWVzOiBuZXcgQ29udGVudENoaWxkKFNlcmllc0NvbGxlY3Rpb25EaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRBeGVzOiBuZXcgQ29udGVudENoaWxkKEF4ZXNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRSb3dzOiBuZXcgQ29udGVudENoaWxkKFJvd3NEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRDb2x1bW5zOiBuZXcgQ29udGVudENoaWxkKENvbHVtbnNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRSYW5nZUNvbG9yU2V0dGluZ3M6IG5ldyBDb250ZW50Q2hpbGQoUmFuZ2VDb2xvclNldHRpbmdzRGlyZWN0aXZlKSwgXG4gICAgICAgIGNoaWxkQW5ub3RhdGlvbnM6IG5ldyBDb250ZW50Q2hpbGQoQW5ub3RhdGlvbnNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRTZWxlY3RlZERhdGFJbmRleGVzOiBuZXcgQ29udGVudENoaWxkKFNlbGVjdGVkRGF0YUluZGV4ZXNEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRJbmRpY2F0b3JzOiBuZXcgQ29udGVudENoaWxkKEluZGljYXRvcnNEaXJlY3RpdmUpXG4gICAgfVxufSlcbkBDb21wb25lbnRNaXhpbnMoW0NvbXBvbmVudEJhc2VdKVxuZXhwb3J0IGNsYXNzIENoYXJ0Q29tcG9uZW50IGV4dGVuZHMgQ2hhcnQgaW1wbGVtZW50cyBJQ29tcG9uZW50QmFzZSB7XG4gICAgcHVibGljIGNvbnRleHQgOiBhbnk7XG4gICAgcHVibGljIHRhZ09iamVjdHM6IGFueTtcblx0YWZ0ZXJFeHBvcnQ6IGFueTtcblx0YW5pbWF0aW9uQ29tcGxldGU6IGFueTtcblx0YW5ub3RhdGlvblJlbmRlcjogYW55O1xuXHRheGlzTGFiZWxDbGljazogYW55O1xuXHRheGlzTGFiZWxSZW5kZXI6IGFueTtcblx0YXhpc011bHRpTGFiZWxSZW5kZXI6IGFueTtcblx0YXhpc1JhbmdlQ2FsY3VsYXRlZDogYW55O1xuXHRiZWZvcmVFeHBvcnQ6IGFueTtcblx0YmVmb3JlUHJpbnQ6IGFueTtcblx0YmVmb3JlUmVzaXplOiBhbnk7XG5cdGNoYXJ0RG91YmxlQ2xpY2s6IGFueTtcblx0Y2hhcnRNb3VzZUNsaWNrOiBhbnk7XG5cdGNoYXJ0TW91c2VEb3duOiBhbnk7XG5cdGNoYXJ0TW91c2VMZWF2ZTogYW55O1xuXHRjaGFydE1vdXNlTW92ZTogYW55O1xuXHRjaGFydE1vdXNlVXA6IGFueTtcblx0ZHJhZzogYW55O1xuXHRkcmFnQ29tcGxldGU6IGFueTtcblx0ZHJhZ0VuZDogYW55O1xuXHRkcmFnU3RhcnQ6IGFueTtcblx0bGVnZW5kQ2xpY2s6IGFueTtcblx0bGVnZW5kUmVuZGVyOiBhbnk7XG5cdGxvYWQ6IGFueTtcblx0bG9hZGVkOiBhbnk7XG5cdG11bHRpTGV2ZWxMYWJlbENsaWNrOiBhbnk7XG5cdG9uWm9vbWluZzogYW55O1xuXHRwb2ludENsaWNrOiBhbnk7XG5cdHBvaW50RG91YmxlQ2xpY2s6IGFueTtcblx0cG9pbnRNb3ZlOiBhbnk7XG5cdHBvaW50UmVuZGVyOiBhbnk7XG5cdHJlc2l6ZWQ6IGFueTtcblx0c2Nyb2xsQ2hhbmdlZDogYW55O1xuXHRzY3JvbGxFbmQ6IGFueTtcblx0c2Nyb2xsU3RhcnQ6IGFueTtcblx0c2VsZWN0aW9uQ29tcGxldGU6IGFueTtcblx0c2VyaWVzUmVuZGVyOiBhbnk7XG5cdHNoYXJlZFRvb2x0aXBSZW5kZXI6IGFueTtcblx0dGV4dFJlbmRlcjogYW55O1xuXHR0b29sdGlwUmVuZGVyOiBhbnk7XG5cdHpvb21Db21wbGV0ZTogYW55O1xuXHRwdWJsaWMgZGF0YVNvdXJjZUNoYW5nZTogYW55O1xuICAgIHB1YmxpYyBjaGlsZFNlcmllczogUXVlcnlMaXN0PFNlcmllc0NvbGxlY3Rpb25EaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZEF4ZXM6IFF1ZXJ5TGlzdDxBeGVzRGlyZWN0aXZlPjtcbiAgICBwdWJsaWMgY2hpbGRSb3dzOiBRdWVyeUxpc3Q8Um93c0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkQ29sdW1uczogUXVlcnlMaXN0PENvbHVtbnNEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZFJhbmdlQ29sb3JTZXR0aW5nczogUXVlcnlMaXN0PFJhbmdlQ29sb3JTZXR0aW5nc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkQW5ub3RhdGlvbnM6IFF1ZXJ5TGlzdDxBbm5vdGF0aW9uc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkU2VsZWN0ZWREYXRhSW5kZXhlczogUXVlcnlMaXN0PFNlbGVjdGVkRGF0YUluZGV4ZXNEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZEluZGljYXRvcnM6IFF1ZXJ5TGlzdDxJbmRpY2F0b3JzRGlyZWN0aXZlPjtcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10gPSBbJ3NlcmllcycsICdheGVzJywgJ3Jvd3MnLCAnY29sdW1ucycsICdyYW5nZUNvbG9yU2V0dGluZ3MnLCAnYW5ub3RhdGlvbnMnLCAnc2VsZWN0ZWREYXRhSW5kZXhlcycsICdpbmRpY2F0b3JzJ107XG4gICAgQENvbnRlbnRDaGlsZCgndG9vbHRpcFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyB0b29sdGlwX3RlbXBsYXRlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nRWxlOiBFbGVtZW50UmVmLCBwcml2YXRlIHNyZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gdGhpcy5uZ0VsZS5uYXRpdmVFbGVtZW50O1xuICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcyA9IHRoaXMuaW5qZWN0ZWRNb2R1bGVzIHx8IFtdO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzTGluZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU2NhdHRlclNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQ29sdW1uU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTcGxpbmVTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1NwbGluZUFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1N0cmlwTGluZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU2Nyb2xsQmFyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTdGVwTGluZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3RlcEFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1N0YWNraW5nQ29sdW1uU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTdGFja2luZ0xpbmVTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1N0YWNraW5nQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3RhY2tpbmdTdGVwQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQmFyU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTdGFja2luZ0JhclNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUmFuZ2VDb2x1bW5TZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0J1YmJsZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzVG9vbHRpcCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQ3Jvc3NoYWlyJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNDYXRlZ29yeScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzRGF0ZVRpbWUnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0xvZ2FyaXRobWljJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNMZWdlbmQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1pvb20nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0RhdGFMYWJlbCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU2VsZWN0aW9uJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNDaGFydEFubm90YXRpb24nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0hpbG9TZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0hpbG9PcGVuQ2xvc2VTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1dhdGVyZmFsbFNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUmFuZ2VBcmVhU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNSYW5nZVN0ZXBBcmVhU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTcGxpbmVSYW5nZUFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0NhbmRsZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUG9sYXJTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1JhZGFyU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTbWFJbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1RtYUluZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzRW1hSW5kaWNhdG9yJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNBY2N1bXVsYXRpb25EaXN0cmlidXRpb25JbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c01hY2RJbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0F0ckluZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUnNpSW5kaWNhdG9yJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNNb21lbnR1bUluZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3RvY2hhc3RpY0luZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQm9sbGluZ2VyQmFuZHMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0JveEFuZFdoaXNrZXJTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0hpc3RvZ3JhbVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzRXJyb3JCYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1RyZW5kbGluZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0RhdGVUaW1lQ2F0ZWdvcnknKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c011bHRpQ29sb3JlZExpbmVTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c011bHRpQ29sb3JlZEFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c011bHRpTGV2ZWxMYWJlbCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUGFyZXRvU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNFeHBvcnQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0RhdGFFZGl0aW5nJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNIaWdobGlnaHQnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cclxuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmFkZFR3b1dheS5jYWxsKHRoaXMsIHR3b1dheXMpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5jb250ZXh0ICA9IG5ldyBDb21wb25lbnRCYXNlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbnRleHQubmdPbkluaXQodGhpcyk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0Lm5nQWZ0ZXJWaWV3SW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29udGV4dC5uZ09uRGVzdHJveSh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhZ09iamVjdHNbMF0uaW5zdGFuY2UgPSB0aGlzLmNoaWxkU2VyaWVzO1xuICAgICAgICBcblx0ICAgIGlmICh0aGlzLmNoaWxkQXhlcykge1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzFdLmluc3RhbmNlID0gdGhpcy5jaGlsZEF4ZXM7XG4gICAgICAgIH1cbiAgICAgICAgXG5cdCAgICBpZiAodGhpcy5jaGlsZFJvd3MpIHtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0c1syXS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRSb3dzO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRDb2x1bW5zKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbM10uaW5zdGFuY2UgPSB0aGlzLmNoaWxkQ29sdW1ucztcbiAgICAgICAgfVxuICAgICAgICBcblx0ICAgIGlmICh0aGlzLmNoaWxkUmFuZ2VDb2xvclNldHRpbmdzKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbNF0uaW5zdGFuY2UgPSB0aGlzLmNoaWxkUmFuZ2VDb2xvclNldHRpbmdzO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRBbm5vdGF0aW9ucykge1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzVdLmluc3RhbmNlID0gdGhpcy5jaGlsZEFubm90YXRpb25zO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRTZWxlY3RlZERhdGFJbmRleGVzKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbNl0uaW5zdGFuY2UgPSB0aGlzLmNoaWxkU2VsZWN0ZWREYXRhSW5kZXhlcztcbiAgICAgICAgfVxuICAgICAgICBcblx0ICAgIGlmICh0aGlzLmNoaWxkSW5kaWNhdG9ycykge1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzddLmluc3RhbmNlID0gdGhpcy5jaGlsZEluZGljYXRvcnM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb250ZXh0Lm5nQWZ0ZXJDb250ZW50Q2hlY2tlZCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJFdmVudHM6IChldmVudExpc3Q6IHN0cmluZ1tdKSA9PiB2b2lkO1xuICAgIHB1YmxpYyBhZGRUd29XYXk6IChwcm9wTGlzdDogc3RyaW5nW10pID0+IHZvaWQ7XG59XG5cbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { Template } from '@syncfusion/ej2-angular-base';
|
|
|
5
5
|
import { TrendlinesDirective } from './trendlines.directive';
|
|
6
6
|
import { SegmentsDirective } from './segments.directive';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
let input = ['accessibility', 'animation', 'bearFillColor', 'binInterval', 'border', 'boxPlotMode', 'bullFillColor', 'cardinalSplineTension', 'close', 'colorName', 'columnFacet', 'columnSpacing', 'columnWidth', 'columnWidthInPixel', 'connector', 'cornerRadius', 'dashArray', 'dataSource', 'dragSettings', 'drawType', 'emptyPointSettings', 'enableComplexProperty', 'enableSolidCandles', 'enableTooltip', 'errorBar', 'fill', 'groupName', 'high', 'intermediateSumIndexes', 'isClosed', 'legendImageUrl', 'legendShape', 'low', 'marker', 'maxRadius', 'minRadius', 'name', 'negativeFillColor', 'noRisers', 'nonHighlightStyle', 'opacity', 'open', 'paretoOptions', 'pointColorMapping', 'query', 'segmentAxis', 'segments', 'selectionStyle', 'showMean', 'showNormalDistribution', 'size', 'splineType', 'stackingGroup', 'step', 'sumIndexes', 'summaryFillColor', 'tooltipFormat', 'tooltipMappingName', 'trendlines', 'type', 'unSelectedStyle', 'visible', 'volume', 'width', 'xAxisName', 'xName', 'yAxisName', 'yName', 'zOrder'];
|
|
8
|
+
let input = ['accessibility', 'animation', 'bearFillColor', 'binInterval', 'border', 'boxPlotMode', 'bullFillColor', 'cardinalSplineTension', 'close', 'colorName', 'columnFacet', 'columnSpacing', 'columnWidth', 'columnWidthInPixel', 'connector', 'cornerRadius', 'dashArray', 'dataSource', 'dragSettings', 'drawType', 'emptyPointSettings', 'enableComplexProperty', 'enableSolidCandles', 'enableTooltip', 'errorBar', 'fill', 'groupName', 'high', 'intermediateSumIndexes', 'isClosed', 'legendImageUrl', 'legendShape', 'low', 'marker', 'maxRadius', 'minRadius', 'name', 'negativeFillColor', 'noRisers', 'nonHighlightStyle', 'opacity', 'open', 'paretoOptions', 'pointColorMapping', 'query', 'segmentAxis', 'segments', 'selectionStyle', 'showMean', 'showNearestTooltip', 'showNormalDistribution', 'showOutliers', 'size', 'splineType', 'stackingGroup', 'step', 'sumIndexes', 'summaryFillColor', 'tooltipFormat', 'tooltipMappingName', 'trendlines', 'type', 'unSelectedStyle', 'visible', 'volume', 'width', 'xAxisName', 'xName', 'yAxisName', 'yName', 'zOrder'];
|
|
9
9
|
let outputs = [];
|
|
10
10
|
/**
|
|
11
11
|
* Series Directive
|
|
@@ -26,7 +26,7 @@ export class SeriesDirective extends ComplexBase {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
SeriesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SeriesDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
29
|
-
SeriesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: SeriesDirective, selector: "e-series-collection>e-series", inputs: { accessibility: "accessibility", animation: "animation", bearFillColor: "bearFillColor", binInterval: "binInterval", border: "border", boxPlotMode: "boxPlotMode", bullFillColor: "bullFillColor", cardinalSplineTension: "cardinalSplineTension", close: "close", colorName: "colorName", columnFacet: "columnFacet", columnSpacing: "columnSpacing", columnWidth: "columnWidth", columnWidthInPixel: "columnWidthInPixel", connector: "connector", cornerRadius: "cornerRadius", dashArray: "dashArray", dataSource: "dataSource", dragSettings: "dragSettings", drawType: "drawType", emptyPointSettings: "emptyPointSettings", enableComplexProperty: "enableComplexProperty", enableSolidCandles: "enableSolidCandles", enableTooltip: "enableTooltip", errorBar: "errorBar", fill: "fill", groupName: "groupName", high: "high", intermediateSumIndexes: "intermediateSumIndexes", isClosed: "isClosed", legendImageUrl: "legendImageUrl", legendShape: "legendShape", low: "low", marker: "marker", maxRadius: "maxRadius", minRadius: "minRadius", name: "name", negativeFillColor: "negativeFillColor", noRisers: "noRisers", nonHighlightStyle: "nonHighlightStyle", opacity: "opacity", open: "open", paretoOptions: "paretoOptions", pointColorMapping: "pointColorMapping", query: "query", segmentAxis: "segmentAxis", segments: "segments", selectionStyle: "selectionStyle", showMean: "showMean", showNormalDistribution: "showNormalDistribution", size: "size", splineType: "splineType", stackingGroup: "stackingGroup", step: "step", sumIndexes: "sumIndexes", summaryFillColor: "summaryFillColor", tooltipFormat: "tooltipFormat", tooltipMappingName: "tooltipMappingName", trendlines: "trendlines", type: "type", unSelectedStyle: "unSelectedStyle", visible: "visible", volume: "volume", width: "width", xAxisName: "xAxisName", xName: "xName", yAxisName: "yAxisName", yName: "yName", zOrder: "zOrder" }, queries: [{ propertyName: "dataLabel_template", first: true, predicate: ["dataLabelTemplate"], descendants: true }, { propertyName: "childTrendlines", first: true, predicate: TrendlinesDirective, descendants: true }, { propertyName: "childSegments", first: true, predicate: SegmentsDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
29
|
+
SeriesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: SeriesDirective, selector: "e-series-collection>e-series", inputs: { accessibility: "accessibility", animation: "animation", bearFillColor: "bearFillColor", binInterval: "binInterval", border: "border", boxPlotMode: "boxPlotMode", bullFillColor: "bullFillColor", cardinalSplineTension: "cardinalSplineTension", close: "close", colorName: "colorName", columnFacet: "columnFacet", columnSpacing: "columnSpacing", columnWidth: "columnWidth", columnWidthInPixel: "columnWidthInPixel", connector: "connector", cornerRadius: "cornerRadius", dashArray: "dashArray", dataSource: "dataSource", dragSettings: "dragSettings", drawType: "drawType", emptyPointSettings: "emptyPointSettings", enableComplexProperty: "enableComplexProperty", enableSolidCandles: "enableSolidCandles", enableTooltip: "enableTooltip", errorBar: "errorBar", fill: "fill", groupName: "groupName", high: "high", intermediateSumIndexes: "intermediateSumIndexes", isClosed: "isClosed", legendImageUrl: "legendImageUrl", legendShape: "legendShape", low: "low", marker: "marker", maxRadius: "maxRadius", minRadius: "minRadius", name: "name", negativeFillColor: "negativeFillColor", noRisers: "noRisers", nonHighlightStyle: "nonHighlightStyle", opacity: "opacity", open: "open", paretoOptions: "paretoOptions", pointColorMapping: "pointColorMapping", query: "query", segmentAxis: "segmentAxis", segments: "segments", selectionStyle: "selectionStyle", showMean: "showMean", showNearestTooltip: "showNearestTooltip", showNormalDistribution: "showNormalDistribution", showOutliers: "showOutliers", size: "size", splineType: "splineType", stackingGroup: "stackingGroup", step: "step", sumIndexes: "sumIndexes", summaryFillColor: "summaryFillColor", tooltipFormat: "tooltipFormat", tooltipMappingName: "tooltipMappingName", trendlines: "trendlines", type: "type", unSelectedStyle: "unSelectedStyle", visible: "visible", volume: "volume", width: "width", xAxisName: "xAxisName", xName: "xName", yAxisName: "yAxisName", yName: "yName", zOrder: "zOrder" }, queries: [{ propertyName: "dataLabel_template", first: true, predicate: ["dataLabelTemplate"], descendants: true }, { propertyName: "childTrendlines", first: true, predicate: TrendlinesDirective, descendants: true }, { propertyName: "childSegments", first: true, predicate: SegmentsDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
30
30
|
__decorate([
|
|
31
31
|
Template()
|
|
32
32
|
], SeriesDirective.prototype, "dataLabel_template", void 0);
|
|
@@ -65,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
65
65
|
},
|
|
66
66
|
}]
|
|
67
67
|
}], ctorParameters: function () { return []; } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWVzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJpZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFekQsSUFBSSxLQUFLLEdBQWEsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2hnQyxJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7QUFDM0I7Ozs7Ozs7R0FPRztBQVVILE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQTRCO0lBK2I3RCxZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBMWI5QyxTQUFJLEdBQWEsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUE0Yi9DLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7OzRHQXBjUSxlQUFlO2dHQUFmLGVBQWUsK2lFQUpjLG1CQUFtQixnRkFDckIsaUJBQWlCO0FBZ2NyRDtJQURDLFFBQVEsRUFBRTsyREFDb0I7MkZBN2J0QixlQUFlO2tCQVQzQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLE1BQU0sRUFBRSxLQUFLO29CQUNiLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUU7d0JBQ0wsZUFBZSxFQUFFLElBQUksWUFBWSxDQUFDLG1CQUFtQixDQUFDO3dCQUN0RCxhQUFhLEVBQUUsSUFBSSxZQUFZLENBQUMsaUJBQWlCLENBQUM7cUJBQ3JEO2lCQUNKO3VHQThiVSxrQkFBa0I7c0JBRnhCLFlBQVk7dUJBQUMsbUJBQW1COztBQVlyQzs7O0dBR0c7QUFPSCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsU0FBb0M7SUFDL0U7UUFDSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEIsQ0FBQzs7c0hBSFEseUJBQXlCOzBHQUF6Qix5QkFBeUIsNkZBSEEsZUFBZTsyRkFHeEMseUJBQXlCO2tCQU5yQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDO3FCQUNqRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgVHJlbmRsaW5lc0RpcmVjdGl2ZSB9IGZyb20gJy4vdHJlbmRsaW5lcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2VnbWVudHNEaXJlY3RpdmUgfSBmcm9tICcuL3NlZ21lbnRzLmRpcmVjdGl2ZSc7XG5cbmxldCBpbnB1dDogc3RyaW5nW10gPSBbJ2FjY2Vzc2liaWxpdHknLCAnYW5pbWF0aW9uJywgJ2JlYXJGaWxsQ29sb3InLCAnYmluSW50ZXJ2YWwnLCAnYm9yZGVyJywgJ2JveFBsb3RNb2RlJywgJ2J1bGxGaWxsQ29sb3InLCAnY2FyZGluYWxTcGxpbmVUZW5zaW9uJywgJ2Nsb3NlJywgJ2NvbG9yTmFtZScsICdjb2x1bW5GYWNldCcsICdjb2x1bW5TcGFjaW5nJywgJ2NvbHVtbldpZHRoJywgJ2NvbHVtbldpZHRoSW5QaXhlbCcsICdjb25uZWN0b3InLCAnY29ybmVyUmFkaXVzJywgJ2Rhc2hBcnJheScsICdkYXRhU291cmNlJywgJ2RyYWdTZXR0aW5ncycsICdkcmF3VHlwZScsICdlbXB0eVBvaW50U2V0dGluZ3MnLCAnZW5hYmxlQ29tcGxleFByb3BlcnR5JywgJ2VuYWJsZVNvbGlkQ2FuZGxlcycsICdlbmFibGVUb29sdGlwJywgJ2Vycm9yQmFyJywgJ2ZpbGwnLCAnZ3JvdXBOYW1lJywgJ2hpZ2gnLCAnaW50ZXJtZWRpYXRlU3VtSW5kZXhlcycsICdpc0Nsb3NlZCcsICdsZWdlbmRJbWFnZVVybCcsICdsZWdlbmRTaGFwZScsICdsb3cnLCAnbWFya2VyJywgJ21heFJhZGl1cycsICdtaW5SYWRpdXMnLCAnbmFtZScsICduZWdhdGl2ZUZpbGxDb2xvcicsICdub1Jpc2VycycsICdub25IaWdobGlnaHRTdHlsZScsICdvcGFjaXR5JywgJ29wZW4nLCAncGFyZXRvT3B0aW9ucycsICdwb2ludENvbG9yTWFwcGluZycsICdxdWVyeScsICdzZWdtZW50QXhpcycsICdzZWdtZW50cycsICdzZWxlY3Rpb25TdHlsZScsICdzaG93TWVhbicsICdzaG93Tm9ybWFsRGlzdHJpYnV0aW9uJywgJ3NpemUnLCAnc3BsaW5lVHlwZScsICdzdGFja2luZ0dyb3VwJywgJ3N0ZXAnLCAnc3VtSW5kZXhlcycsICdzdW1tYXJ5RmlsbENvbG9yJywgJ3Rvb2x0aXBGb3JtYXQnLCAndG9vbHRpcE1hcHBpbmdOYW1lJywgJ3RyZW5kbGluZXMnLCAndHlwZScsICd1blNlbGVjdGVkU3R5bGUnLCAndmlzaWJsZScsICd2b2x1bWUnLCAnd2lkdGgnLCAneEF4aXNOYW1lJywgJ3hOYW1lJywgJ3lBeGlzTmFtZScsICd5TmFtZScsICd6T3JkZXInXTtcbmxldCBvdXRwdXRzOiBzdHJpbmdbXSA9IFtdO1xuLyoqXG4gKiBTZXJpZXMgRGlyZWN0aXZlXG4gKiBgYGBodG1sXG4gKiA8ZS1zZXJpZXMtY29sbGVjdGlvbj5cbiAqIDxlLXNlcmllcz48L2Utc2VyaWVzPlxuICogPC9lLXNlcmllcy1jb2xsZWN0aW9uPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS1zZXJpZXMtY29sbGVjdGlvbj5lLXNlcmllcycsXG4gICAgaW5wdXRzOiBpbnB1dCxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLCAgICBcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkVHJlbmRsaW5lczogbmV3IENvbnRlbnRDaGlsZChUcmVuZGxpbmVzRGlyZWN0aXZlKSwgXG4gICAgICAgIGNoaWxkU2VnbWVudHM6IG5ldyBDb250ZW50Q2hpbGQoU2VnbWVudHNEaXJlY3RpdmUpXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTZXJpZXNEaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxTZXJpZXNEaXJlY3RpdmU+IHtcbiAgICBwdWJsaWMgZGlyZWN0aXZlUHJvcExpc3Q6IGFueTtcblx0XG4gICAgcHVibGljIGNoaWxkVHJlbmRsaW5lczogYW55O1xuICAgIHB1YmxpYyBjaGlsZFNlZ21lbnRzOiBhbnk7XG4gICAgcHVibGljIHRhZ3M6IHN0cmluZ1tdID0gWyd0cmVuZGxpbmVzJywgJ3NlZ21lbnRzJ107XG4gICAgLyoqIFxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBzZXJpZXMgZGV0ZXJtaW5lcyB0aGUgdmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRhLiBcbiAgICAgKiBBdmFpbGFibGUgc2VyaWVzIHR5cGVzIGluY2x1ZGU6IFxuICAgICAqICogTGluZSAtIERyYXdzIGEgbGluZSBzZXJpZXMuIFxuICAgICAqICogQ29sdW1uIC0gRHJhd3MgYSBjb2x1bW4gc2VyaWVzLiBcbiAgICAgKiAqIEFyZWEgLSBEcmF3cyBhbiBhcmVhIHNlcmllcy4gXG4gICAgICogKiBCYXIgLSBEcmF3cyBhIGJhciBzZXJpZXMuIFxuICAgICAqICogSGlzdG9ncmFtIC0gRHJhd3MgYSBoaXN0b2dyYW0gc2VyaWVzLiBcbiAgICAgKiAqIFN0YWNraW5nQ29sdW1uIC0gRHJhd3MgYSBzdGFja2luZyBjb2x1bW4gc2VyaWVzLiBcbiAgICAgKiAqIFN0YWNraW5nQXJlYSAtIERyYXdzIGEgc3RhY2tpbmcgYXJlYSBzZXJpZXMuIFxuICAgICAqICogU3RhY2tpbmdCYXIgLSBEcmF3cyBhIHN0YWNraW5nIGJhciBzZXJpZXMuIFxuICAgICAqICogU3RlcExpbmUgLSBEcmF3cyBhIHN0ZXAgbGluZSBzZXJpZXMuIFxuICAgICAqICogU3RlcEFyZWEgLSBEcmF3cyBhIHN0ZXAgYXJlYSBzZXJpZXMuIFxuICAgICAqICogU2NhdHRlciAtIERyYXdzIGEgc2NhdHRlciBzZXJpZXMuIFxuICAgICAqICogU3BsaW5lIC0gRHJhd3MgYSBzcGxpbmUgc2VyaWVzLiBcbiAgICAgKiAqIFN0YWNraW5nQ29sdW1uMTAwIC0gRHJhd3MgYSAxMDAlIHN0YWNrZWQgY29sdW1uIHNlcmllcy4gXG4gICAgICogKiBTdGFja2luZ0JhcjEwMCAtIERyYXdzIGEgMTAwJSBzdGFja2VkIGJhciBzZXJpZXMuIFxuICAgICAqICogU3RhY2tpbmdBcmVhMTAwIC0gRHJhd3MgYSAxMDAlIHN0YWNrZWQgYXJlYSBzZXJpZXMuIFxuICAgICAqICogUmFuZ2VDb2x1bW4gLSBEcmF3cyBhIHJhbmdlIGNvbHVtbiBzZXJpZXMuIFxuICAgICAqICogSGlsbyAtIERyYXdzIGEgSGlsbyBzZXJpZXMuIFxuICAgICAqICogSGlsb09wZW5DbG9zZSAtIERyYXdzIGEgSGlsbyBPcGVuIENsb3NlIHNlcmllcy4gXG4gICAgICogKiBXYXRlcmZhbGwgLSBEcmF3cyBhIHdhdGVyZmFsbCBzZXJpZXMuIFxuICAgICAqICogUmFuZ2VBcmVhIC0gRHJhd3MgYSByYW5nZSBhcmVhIHNlcmllcy4gXG4gICAgICogKiBTcGxpbmVSYW5nZUFyZWEgLSBEcmF3cyBhIHNwbGluZSByYW5nZSBhcmVhIHNlcmllcy4gXG4gICAgICogKiBCdWJibGUgLSBEcmF3cyBhIGJ1YmJsZSBzZXJpZXMuIFxuICAgICAqICogQ2FuZGxlIC0gRHJhd3MgYSBjYW5kbGUgc2VyaWVzLiBcbiAgICAgKiAqIFBvbGFyIC0gRHJhd3MgYSBwb2xhciBzZXJpZXMuIFxuICAgICAqICogUmFkYXIgLSBEcmF3cyBhIHJhZGFyIHNlcmllcy4gXG4gICAgICogKiBCb3hBbmRXaGlza2VyIC0gRHJhd3MgYSBib3ggYW5kIHdoaXNrZXIgc2VyaWVzLiBcbiAgICAgKiAqIFBhcmV0byAtIERyYXdzIGEgUGFyZXRvIHNlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAnTGluZSdcbiAgICAgKi9cbiAgICBwdWJsaWMgdHlwZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBPcHRpb25zIHRvIGltcHJvdmUgYWNjZXNzaWJpbGl0eSBmb3Igc2VyaWVzIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBhY2Nlc3NpYmlsaXR5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIHRoZSBhbmltYXRpb24gb2YgdGhlIHNlcmllcy4gXG4gICAgICogQnkgZGVmYXVsdCwgYW5pbWF0aW9uIGlzIGVuYWJsZWQgd2l0aCBhIGR1cmF0aW9uIG9mIDEwMDAgbWlsbGlzZWNvbmRzIChhYm91dCAxIHNlY29uZCkuIEl0IGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGVuYWJsZSB0byBgZmFsc2VgLiBcbiAgICAgKiBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIHN1cHBvcnRlZCBpbiBhbmltYXRpb246IFxuICAgICAqICogZW5hYmxlOiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHNlcmllcyBpcyBhbmltYXRlZCBvbiBpbml0aWFsIGxvYWRpbmcuIFxuICAgICAqICogZHVyYXRpb246IFRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uIGluIG1pbGxpc2Vjb25kcy4gXG4gICAgICogKiBkZWxheTogVGhlIGRlbGF5IGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0cywgaW4gbWlsbGlzZWNvbmRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBhbmltYXRpb246IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGluIGZpbmFuY2lhbCBjaGFydHMgdG8gdmlzdWFsaXplIHByaWNlIG1vdmVtZW50cyBpbiBzdG9ja3MuIFxuICAgICAqIEl0IGRlZmluZXMgdGhlIGNvbG9yIG9mIHRoZSBjYW5kbGUvcG9pbnQgd2hlbiB0aGUgb3BlbmluZyBwcmljZSBpcyBsZXNzIHRoYW4gdGhlIGNsb3NpbmcgcHJpY2UuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBiZWFyRmlsbENvbG9yOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBgYmluSW50ZXJ2YWxgIHByb3BlcnR5IGNvbnRyb2xzIHRoZSB3aWR0aCBvZiBlYWNoIGJpbiBhbmQgdGhlIGludGVydmFsIGJldHdlZW4gYmlucyBmb3IgaGlzdG9ncmFtIHBvaW50cy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKi9cbiAgICBwdWJsaWMgYmluSW50ZXJ2YWw6IGFueTtcbiAgICAvKiogXG4gICAgICogT3B0aW9ucyBmb3IgY3VzdG9taXppbmcgdGhlIGJvcmRlciBvZiB0aGUgc2VyaWVzLiBcbiAgICAgKiA+IE5vdGUgdGhhdCB0aGlzIHByb3BlcnR5IGlzIGFwcGxpY2FibGUgb25seSBmb3IgYENvbHVtbmAgYW5kIGBCYXJgIHR5cGUgc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBib3JkZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBib3ggcGxvdCBtb2RlIGZvciB0aGUgYm94IGFuZCB3aGlza2VyIGNoYXJ0IHNlcmllcy4gXG4gICAgICogVGhlIGF2YWlsYWJsZSBtb2RlcyBhcmU6IFxuICAgICAqIEV4Y2x1c2l2ZSAtIFJlbmRlcnMgdGhlIHNlcmllcyBiYXNlZCBvbiB0aGUgZXhjbHVzaXZlIG1vZGUuIFxuICAgICAqIEluY2x1c2l2ZSAtIFJlbmRlcnMgdGhlIHNlcmllcyBiYXNlZCBvbiB0aGUgaW5jbHVzaXZlIG1vZGUuIFxuICAgICAqIE5vcm1hbCAtIFJlbmRlcnMgdGhlIHNlcmllcyBiYXNlZCBvbiB0aGUgbm9ybWFsIG1vZGUuXG4gICAgICogQGRlZmF1bHQgJ05vcm1hbCdcbiAgICAgKi9cbiAgICBwdWJsaWMgYm94UGxvdE1vZGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGluIGZpbmFuY2lhbCBjaGFydHMgdG8gdmlzdWFsaXplIHByaWNlIG1vdmVtZW50cyBpbiBzdG9ja3MuIFxuICAgICAqIEl0IGRlZmluZXMgdGhlIGNvbG9yIG9mIHRoZSBjYW5kbGUvcG9pbnQgd2hlbiB0aGUgb3BlbmluZyBwcmljZSBpcyBoaWdoZXIgdGhhbiB0aGUgY2xvc2luZyBwcmljZS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGJ1bGxGaWxsQ29sb3I6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSB0ZW5zaW9uIHBhcmFtZXRlciBmb3IgY2FyZGluYWwgc3BsaW5lcy4gVGhpcyBhZmZlY3RzIHRoZSBjdXJ2YXR1cmUgb2YgdGhlIHNwbGluZS5cbiAgICAgKiBAZGVmYXVsdCAwLjVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FyZGluYWxTcGxpbmVUZW5zaW9uOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBjbG9zZSB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgYm90aCBmaW5hbmNpYWwgc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9ycy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgY29sb3IgbWFwcGluZyB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgcmFuZ2UgY29sb3IgbWFwcGluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29sb3JOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHNoYXBlIG9mIHRoZSBkYXRhIGluIGEgY29sdW1uIGFuZCBiYXIgY2hhcnQuIFxuICAgICAqIEF2YWlsYWJsZSBzaGFwZXMgYXJlOiBcbiAgICAgKiAqIFJlY3RhbmdsZTogRGlzcGxheXMgdGhlIGRhdGEgaW4gYSBjb2x1bW4gYW5kIGJhciBjaGFydCB3aXRoIGEgcmVjdGFuZ3VsYXIgc2hhcGUuIFxuICAgICAqICogQ3lsaW5kZXI6IERpc3BsYXlzIHRoZSBkYXRhIGluIGEgY29sdW1uIGFuZCBiYXIgY2hhcnQgd2l0aCBhIGN5bGluZHJpY2FsIHNoYXBlLlxuICAgICAqIEBkZWZhdWx0ICdSZWN0YW5nbGUnXG4gICAgICovXG4gICAgcHVibGljIGNvbHVtbkZhY2V0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoaXMgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgc3BhY2UgYmV0d2VlbiBjb2x1bW5zIGluIGEgY29sdW1uIG9yIGJhciBjaGFydC4gXG4gICAgICogPiBOb3RlIHRoYXQgaXQgdGFrZXMgYSB2YWx1ZSBmcm9tIDAgdG8gMS5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIGNvbHVtblNwYWNpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIGBjb2x1bW5XaWR0aGAgcHJvcGVydHkgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1ucyBpbiBhIGNvbHVtbiBzZXJpZXMuIFxuICAgICAqID4gTm90ZSB0aGF0IGlmIHRoZSBzZXJpZXMgdHlwZSBpcyBoaXN0b2dyYW0sIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDE7IG90aGVyd2lzZSwgaXQgaXMgMC43LlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBibGF6b3JkZWZhdWx0dmFsdWUgRG91YmxlLk5hTlxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5XaWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUbyByZW5kZXIgdGhlIGNvbHVtbiBzZXJpZXMgcG9pbnRzIHdpdGggYSBzcGVjaWZpYyBjb2x1bW4gd2lkdGggaW4gcGl4ZWxzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBibGF6b3JkZWZhdWx0dmFsdWUgRG91YmxlLk5hTlxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5XaWR0aEluUGl4ZWw6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBsaW5lIGNvbm5lY3RpbmcgYWRqYWNlbnQgcG9pbnRzIGluIHdhdGVyZmFsbCBjaGFydHMuXG4gICAgICovXG4gICAgcHVibGljIGNvbm5lY3RvcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgYGNvcm5lclJhZGl1c2AgcHJvcGVydHkgc3BlY2lmaWVzIHRoZSByYWRpdXMgZm9yIHRoZSBjb3JuZXJzIG9mIHRoZSBjb2x1bW4gc2VyaWVzIHBvaW50cyB0byBjcmVhdGUgYSByb3VuZGVkIGFwcGVhcmFuY2UgaW4gdGhlIGNoYXJ0LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb3JuZXJSYWRpdXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgcGF0dGVybiBvZiBkYXNoZXMgYW5kIGdhcHMgdXNlZCB0byBzdHJva2UgdGhlIGxpbmVzIGluIGBMaW5lYCB0eXBlIHNlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBkYXNoQXJyYXk6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHNlcmllcy4gSXQgY2FuIGJlIGFuIGFycmF5IG9mIEpTT04gb2JqZWN0cywgb3IgYW4gaW5zdGFuY2Ugb2YgRGF0YU1hbmFnZXIuIFxuICAgICAqIFxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIGRhdGFTb3VyY2U6IGFueTtcbiAgICAvKiogXG4gICAgICogQ3VzdG9taXplIHRoZSBkcmFnIHNldHRpbmdzIGZvciB0aGUgc2VyaWVzIHdpdGggdGhpcyBwcm9wZXJ0eSB0byBjb25maWd1cmUgZHJhZyBiZWhhdmlvciBpbiB0aGUgY2hhcnQuXG4gICAgICovXG4gICAgcHVibGljIGRyYWdTZXR0aW5nczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHR5cGUgb2Ygc2VyaWVzIHRvIGJlIGRyYXduIGluIHJhZGFyIG9yIHBvbGFyIGNoYXJ0cy4gXG4gICAgICogVGhlIGF2YWlsYWJsZSBvcHRpb25zIGFyZTogXG4gICAgICogKiAnTGluZScgLSBSZW5kZXJzIGEgbGluZSBzZXJpZXMuIFxuICAgICAqICogJ0NvbHVtbicgLSBSZW5kZXJzIGEgY29sdW1uIHNlcmllcy4gXG4gICAgICogKiAnQXJlYScgLSBSZW5kZXJzIGFuIGFyZWEgc2VyaWVzLiBcbiAgICAgKiAqICdTY2F0dGVyJyAtIFJlbmRlcnMgYSBzY2F0dGVyIHNlcmllcy4gXG4gICAgICogKiAnU3BsaW5lJyAtIFJlbmRlcnMgYSBzcGxpbmUgc2VyaWVzLiBcbiAgICAgKiAqICdTdGFja2luZ0NvbHVtbicgLSBSZW5kZXJzIGEgc3RhY2tpbmcgY29sdW1uIHNlcmllcy4gXG4gICAgICogKiAnU3RhY2tpbmdBcmVhJyAtIFJlbmRlcnMgYSBzdGFja2luZyBhcmVhIHNlcmllcy4gXG4gICAgICogKiAnUmFuZ2VDb2x1bW4nIC0gUmVuZGVycyBhIHJhbmdlIGNvbHVtbiBzZXJpZXMuIFxuICAgICAqICogJ1NwbGluZUFyZWEnIC0gUmVuZGVycyBhIHNwbGluZSBhcmVhIHNlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAnTGluZSdcbiAgICAgKi9cbiAgICBwdWJsaWMgZHJhd1R5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogQ3VzdG9taXphdGlvbiBvcHRpb25zIGZvciB0aGUgYXBwZWFyYW5jZSBvZiBlbXB0eSBwb2ludHMgaW4gdGhlIHNlcmllcy4gXG4gICAgICogYG51bGxgIG9yIGB1bmRlZmluZWRgIHZhbHVlcyBhcmUgY29uc2lkZXJlZCBlbXB0eSBwb2ludHMuXG4gICAgICovXG4gICAgcHVibGljIGVtcHR5UG9pbnRTZXR0aW5nczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gaW1wcm92ZSBjaGFydCBwZXJmb3JtYW5jZSB0aHJvdWdoIGRhdGEgbWFwcGluZyBmb3IgdGhlIHNlcmllcyBkYXRhIHNvdXJjZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVDb21wbGV4UHJvcGVydHk6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyBhcHBsaWNhYmxlIGZvciB0aGUgY2FuZGxlIHNlcmllcy4gXG4gICAgICogSXQgZW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgdmlzdWFsIGNvbXBhcmlzb24gb2YgdGhlIGN1cnJlbnQgdmFsdWVzIHdpdGggcHJldmlvdXMgdmFsdWVzIGluIHN0b2NrIGNoYXJ0cy5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVTb2xpZENhbmRsZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogQ29udHJvbHMgd2hldGhlciB0aGUgdG9vbHRpcCBmb3IgdGhlIGNoYXJ0IHNlcmllcyBpcyBlbmFibGVkIG9yIGRpc2FibGVkLiBTZXQgdG8gdHJ1ZSB0byBkaXNwbGF5IHRvb2x0aXBzIG9uIGhvdmVyLCBvciBmYWxzZSB0byBoaWRlIHRoZW0uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVUb29sdGlwOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbnMgZm9yIGRpc3BsYXlpbmcgYW5kIGN1c3RvbWl6aW5nIGVycm9yIGJhcnMgZm9yIGluZGl2aWR1YWwgcG9pbnRzIGluIGEgc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBlcnJvckJhcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZmlsbCBjb2xvciBmb3IgdGhlIHNlcmllcywgd2hpY2ggYWNjZXB0cyB2YWx1ZXMgaW4gaGV4IG9yIHJnYmEgYXMgYSB2YWxpZCBDU1MgY29sb3Igc3RyaW5nLiBcbiAgICAgKiBJdCBhbHNvIHJlcHJlc2VudHMgdGhlIGNvbG9yIG9mIHRoZSBzaWduYWwgbGluZXMgaW4gdGVjaG5pY2FsIGluZGljYXRvcnMuIFxuICAgICAqIEZvciB0ZWNobmljYWwgaW5kaWNhdG9ycywgdGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2JsdWUnLCBhbmQgZm9yIHNlcmllcywgaXQgaXMgbnVsbC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpbGw6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbmFtZSB0aGF0IHNwZWNpZmllcyB0aGUgY2hhcnQgc2VyaWVzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgYW5kIGNhbiBiZSBvdmVybGFpZC4gXG4gICAgICogU2VyaWVzIGluIHRoZSBzYW1lIGdyb3VwIHNoYXJlIHRoZSBzYW1lIGJhc2VsaW5lIGFuZCBsb2NhdGlvbiBvbiB0aGUgY29ycmVzcG9uZGluZyBheGlzLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIGdyb3VwTmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgaGlnaCB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgYm90aCBmaW5hbmNpYWwgc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9ycy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBoaWdoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbGxlY3Rpb24gb2YgaW5kZXhlcyBmb3IgdGhlIGludGVybWVkaWF0ZSBzdW1tYXJ5IGNvbHVtbnMgaW4gd2F0ZXJmYWxsIGNoYXJ0cy5cbiAgICAgKiBAZGVmYXVsdCBbXVxuICAgICAqIEBhc3B0eXBlIGludFtdXG4gICAgICovXG4gICAgcHVibGljIGludGVybWVkaWF0ZVN1bUluZGV4ZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gam9pbiB0aGUgc3RhcnQgYW5kIGVuZCBwb2ludHMgb2YgYSBsaW5lL2FyZWEgc2VyaWVzIHVzZWQgaW4gYSBwb2xhci9yYWRhciBjaGFydCB0byBmb3JtIGEgY2xvc2VkIHBhdGguXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc0Nsb3NlZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgVVJMIGZvciB0aGUgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGFzIGEgbGVnZW5kIGljb24uIFxuICAgICAqID4gTm90ZSB0aGF0IGBsZWdlbmRTaGFwZWAgbXVzdCBiZSBzZXQgdG8gYEltYWdlYC5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBsZWdlbmRJbWFnZVVybDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHNoYXBlIG9mIHRoZSBsZWdlbmQgaWNvbiBmb3IgZWFjaCBzZXJpZXMuIFxuICAgICAqIEF2YWlsYWJsZSBzaGFwZXMgZm9yIGxlZ2VuZDogXG4gICAgICogKiBDaXJjbGUgLSBSZW5kZXJzIGEgY2lyY3VsYXIgaWNvbi4gXG4gICAgICogKiBSZWN0YW5nbGUgLSBSZW5kZXJzIGEgcmVjdGFuZ3VsYXIgaWNvbi4gXG4gICAgICogKiBUcmlhbmdsZSAtIFJlbmRlcnMgYSB0cmlhbmd1bGFyIGljb24uIFxuICAgICAqICogRGlhbW9uZCAtIFJlbmRlcnMgYSBkaWFtb25kLXNoYXBlZCBpY29uLiBcbiAgICAgKiAqIENyb3NzIC0gUmVuZGVycyBhIGNyb3NzLXNoYXBlZCBpY29uLiBcbiAgICAgKiAqIEhvcml6b250YWxMaW5lIC0gUmVuZGVycyBhIGhvcml6b250YWwgbGluZSBpY29uLiBcbiAgICAgKiAqIFZlcnRpY2FsTGluZSAtIFJlbmRlcnMgYSB2ZXJ0aWNhbCBsaW5lIGljb24uIFxuICAgICAqICogUGVudGFnb24gLSBSZW5kZXJzIGEgcGVudGFnb24tc2hhcGVkIGljb24uIFxuICAgICAqICogSW52ZXJ0ZWRUcmlhbmdsZSAtIFJlbmRlcnMgYW4gaW52ZXJ0ZWQgdHJpYW5nbGUtc2hhcGVkIGljb24uIFxuICAgICAqICogU2VyaWVzVHlwZSAtIFVzZXMgdGhlIGRlZmF1bHQgaWNvbiBzaGFwZSBiYXNlZCBvbiB0aGUgc2VyaWVzIHR5cGUuIFxuICAgICAqICogSW1hZ2UgLSBSZW5kZXJzIGEgY3VzdG9tIGltYWdlIGZvciB0aGUgbGVnZW5kIGljb24uXG4gICAgICogQGRlZmF1bHQgJ1Nlcmllc1R5cGUnXG4gICAgICovXG4gICAgcHVibGljIGxlZ2VuZFNoYXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBsb3cgdmFsdWUuIFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIGJvdGggZmluYW5jaWFsIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnMuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgbG93OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbnMgZm9yIGRpc3BsYXlpbmcgYW5kIGN1c3RvbWl6aW5nIG1hcmtlcnMgZm9yIGluZGl2aWR1YWwgcG9pbnRzIGluIGEgc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBtYXJrZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIHJhZGl1cyBmb3IgdGhlIGRhdGEgcG9pbnRzIGluIHRoZSBzZXJpZXMuXG4gICAgICogQGRlZmF1bHQgM1xuICAgICAqL1xuICAgIHB1YmxpYyBtYXhSYWRpdXM6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBtaW5pbXVtIHJhZGl1cyBmb3IgdGhlIGRhdGEgcG9pbnRzIGluIHRoZSBzZXJpZXMuXG4gICAgICogQGRlZmF1bHQgMVxuICAgICAqL1xuICAgIHB1YmxpYyBtaW5SYWRpdXM6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIGBuYW1lYCBwcm9wZXJ0eSBhbGxvd3Mgc2V0dGluZyBhIG5hbWUgZm9yIHRoZSBzZXJpZXMsIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBsZWdlbmQsIGlkZW50aWZ5aW5nIGRpZmZlcmVudCBzZXJpZXMgaW4gdGhlIGNoYXJ0LCBlc3BlY2lhbGx5IHdoZW4gbXVsdGlwbGUgc2VyaWVzIGFyZSBwcmVzZW50LlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIG5hbWU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgdmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mIG5lZ2F0aXZlIGNoYW5nZXMgaW4gd2F0ZXJmYWxsIGNoYXJ0cy5cbiAgICAgKiBAZGVmYXVsdCAnI0M2NEU0QSdcbiAgICAgKi9cbiAgICBwdWJsaWMgbmVnYXRpdmVGaWxsQ29sb3I6IGFueTtcbiAgICAvKiogXG4gICAgICogV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIHN0ZXAgc2VyaWVzIHdpbGwgYmUgcmVuZGVyZWQgd2l0aG91dCB0aGUgdmVydGljYWwgbGluZXMgKHJpc2VycykgY29ubmVjdGluZyB0aGUgaG9yaXpvbnRhbCBzdGVwcy4gXG4gICAgICogPiBOb3RlIHRoaXMgcHJvcGVydHkgaXMgb25seSBhcHBsaWNhYmxlIHRvIHN0ZXAgc2VyaWVzLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIG5vUmlzZXJzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBgbm9uSGlnaGxpZ2h0U3R5bGVgIHByb3BlcnR5IGlzIHVzZWQgdG8gc3BlY2lmeSBjdXN0b20gQ1NTIHN0eWxlcyBmb3IgdGhlIG5vbi1oaWdobGlnaHRlZCBzZXJpZXMgb3IgcG9pbnRzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgbm9uSGlnaGxpZ2h0U3R5bGU6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgb3BhY2l0eSBvZiB0aGUgc2VyaWVzLCB3aXRoIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxIHdoZXJlIDAgaXMgZnVsbHkgdHJhbnNwYXJlbnQgYW5kIDEgaXMgZnVsbHkgb3BhcXVlLlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKi9cbiAgICBwdWJsaWMgb3BhY2l0eTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgb3BlbiB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgYm90aCBmaW5hbmNpYWwgc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9ycy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIHRoZSBQYXJldG8gbGluZSBzZXJpZXMsIGluY2x1ZGluZyBpdHMgYXBwZWFyYW5jZSBhbmQgYmVoYXZpb3IgaW4gdGhlIGNoYXJ0LlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXJldG9PcHRpb25zOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBjb2xvciB2YWx1ZSBvZiBhIHBvaW50LiBcbiAgICAgKiBJdCBpcyBhcHBsaWNhYmxlIGZvciBzZXJpZXMuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9pbnRDb2xvck1hcHBpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIGEgcXVlcnkgdG8gc2VsZWN0IGRhdGEgZnJvbSB0aGUgZGF0YSBzb3VyY2UuIFRoaXMgcHJvcGVydHkgaXMgYXBwbGljYWJsZSBvbmx5IHdoZW4gdGhlIGRhdGEgc291cmNlIGlzIGFuIGBlai5EYXRhTWFuYWdlcmAuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgcXVlcnk6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYXhpcyBhbG9uZyB3aGljaCB0aGUgbGluZSBzZXJpZXMgd2lsbCBiZSBzcGxpdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VnbWVudEF4aXM6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIGEgY29sbGVjdGlvbiBvZiByZWdpb25zIHVzZWQgdG8gZGlmZmVyZW50aWF0ZSBhIGxpbmUgc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZWdtZW50czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgYHNlbGVjdGlvblN0eWxlYCBwcm9wZXJ0eSBpcyB1c2VkIHRvIHNwZWNpZnkgY3VzdG9tIENTUyBzdHlsZXMgZm9yIHRoZSBzZWxlY3RlZCBzZXJpZXMgb3IgcG9pbnRzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0aW9uU3R5bGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgc2V0IHRvIHRydWUsIHRoZSBtZWFuIHZhbHVlIGZvciB0aGUgYm94IGFuZCB3aGlza2VyIHBsb3Qgd2lsbCBiZSB2aXNpYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd01lYW46IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZGlzcGxheSB0aGUgbm9ybWFsIGRpc3RyaWJ1dGlvbiBjdXJ2ZSBmb3IgdGhlIGhpc3RvZ3JhbSBzZXJpZXMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd05vcm1hbERpc3RyaWJ1dGlvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgc2l6ZSB2YWx1ZSBmb3IgdGhlIHktYXhpcy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBzaXplOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgdHlwZSBvZiBzcGxpbmUgdXNlZCBmb3IgcmVuZGVyaW5nLiBcbiAgICAgKiBBdmFpbGFibGUgb3B0aW9ucyBpbmNsdWRlOiBcbiAgICAgKiAqIE5hdHVyYWwgLSBSZW5kZXJzIGEgbmF0dXJhbCBzcGxpbmUuIFxuICAgICAqICogQ2FyZGluYWwgLSBSZW5kZXJzIGEgY2FyZGluYWwgc3BsaW5lLiBcbiAgICAgKiAqIENsYW1wZWQgLSBSZW5kZXJzIGEgY2xhbXBlZCBzcGxpbmUuIFxuICAgICAqICogTW9ub3RvbmljIC0gUmVuZGVycyBhIG1vbm90b25pYyBzcGxpbmUuXG4gICAgICogQGRlZmF1bHQgJ05hdHVyYWwnXG4gICAgICovXG4gICAgcHVibGljIHNwbGluZVR5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBhbGxvd3MgdGhlIGdyb3VwaW5nIG9mIHNlcmllcyBpbiBzdGFja2VkIGNvbHVtbiBhbmQgc3RhY2tlZCBiYXIgY2hhcnRzLiBcbiAgICAgKiBBbnkgc3RyaW5nIHZhbHVlIGNhbiBiZSBhc3NpZ25lZCB0byB0aGUgYHN0YWNraW5nR3JvdXBgIHByb3BlcnR5LiBcbiAgICAgKiBTZXJpZXMgd2l0aCB0aGUgc2FtZSBgc3RhY2tpbmdHcm91cGAgdmFsdWUgd2lsbCBiZSBncm91cGVkIHRvZ2V0aGVyIGluIHRoZSBjaGFydC5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBzdGFja2luZ0dyb3VwOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBgc3RlcGAgcHJvcGVydHkgY2FuIGJlIHVzZWQgdG8gY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgc3RlcHMgaW4gc3RlcCBsaW5lLCBzdGVwIGFyZWEsIGFuZCBzdGVwIHJhbmdlIGFyZWEgY2hhcnQgdHlwZXMuIFxuICAgICAqICogTGVmdDogU3RlcHMgc3RhcnQgZnJvbSB0aGUgbGVmdCBzaWRlIG9mIHRoZSAybmQgcG9pbnQuIFxuICAgICAqICogQ2VudGVyOiBTdGVwcyBzdGFydCBiZXR3ZWVuIHRoZSBkYXRhIHBvaW50cy4gXG4gICAgICogKiBSaWdodDogU3RlcHMgc3RhcnQgZnJvbSB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgMXN0IHBvaW50LlxuICAgICAqIEBkZWZhdWx0ICdMZWZ0J1xuICAgICAqL1xuICAgIHB1YmxpYyBzdGVwOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbGxlY3Rpb24gb2YgaW5kZXhlcyBmb3IgdGhlIG92ZXJhbGwgc3VtbWFyeSBjb2x1bW5zIGluIHdhdGVyZmFsbCBjaGFydHMuXG4gICAgICogQGRlZmF1bHQgW11cbiAgICAgKiBAYXNwdHlwZSBpbnRbXVxuICAgICAqL1xuICAgIHB1YmxpYyBzdW1JbmRleGVzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHZpc3VhbCByZXByZXNlbnRhdGlvbiBvZiBzdW1tYXJpZXMgaW4gd2F0ZXJmYWxsIGNoYXJ0cy5cbiAgICAgKiBAZGVmYXVsdCAnIzRFODFCQydcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VtbWFyeUZpbGxDb2xvcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSB0byBkZWZpbmUgYSBjdXN0b20gZm9ybWF0IGZvciBob3cgdG9vbHRpcHMgYXJlIGRpc3BsYXllZC4gXG4gICAgICogXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9vbHRpcEZvcm1hdDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgdmFsdWUgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB0b29sdGlwLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIHRvb2x0aXBNYXBwaW5nTmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBjb2xsZWN0aW9uIG9mIHRyZW5kbGluZXMgdXNlZCB0byBwcmVkaWN0IHRoZSB0cmVuZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgdHJlbmRsaW5lczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgYHVuU2VsZWN0ZWRTdHlsZWAgcHJvcGVydHkgaXMgdXNlZCB0byBzcGVjaWZ5IGN1c3RvbSBDU1Mgc3R5bGVzIGZvciB0aGUgZGVzZWxlY3RlZCBzZXJpZXMgb3IgcG9pbnRzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgdW5TZWxlY3RlZFN0eWxlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBzZXJpZXMgd2lsbCBiZSB2aXNpYmxlLiBJZiBzZXQgdG8gYGZhbHNlYCwgdGhlIHNlcmllcyB3aWxsIGJlIGhpZGRlbi5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHZpc2libGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgdm9sdW1lIHZhbHVlIGluIGNhbmRsZSBjaGFydHMuIFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIGJvdGggZmluYW5jaWFsIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnMuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgdm9sdW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBzdHJva2Ugd2lkdGggZm9yIHRoZSBzZXJpZXMsIGFwcGxpY2FibGUgb25seSBmb3IgYExpbmVgIHR5cGUgc2VyaWVzLiBcbiAgICAgKiBJdCBhbHNvIHJlcHJlc2VudHMgdGhlIHN0cm9rZSB3aWR0aCBvZiB0aGUgc2lnbmFsIGxpbmVzIGluIHRlY2huaWNhbCBpbmRpY2F0b3JzLlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKi9cbiAgICBwdWJsaWMgd2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGhvcml6b250YWwgYXhpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNlcmllcy4gSXQgcmVxdWlyZXMgYGF4ZXNgIG9mIHRoZSBjaGFydC4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3Igc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9ycy4gXG4gICAgICogXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB4QXhpc05hbWU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIGRhdGEgc291cmNlIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIHggdmFsdWUuIFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgdG8gYm90aCBzZXJpZXMgYW5kIHRlY2huaWNhbCBpbmRpY2F0b3JzLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIHhOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSB2ZXJ0aWNhbCBheGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VyaWVzLiBJdCByZXF1aXJlcyBgYXhlc2Agb2YgdGhlIGNoYXJ0LiBcbiAgICAgKiBJdCBpcyBhcHBsaWNhYmxlIGZvciBzZXJpZXMgYW5kIHRlY2huaWNhbCBpbmRpY2F0b3JzLiBcbiAgICAgKiBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHlBeGlzTmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgeSB2YWx1ZS5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyB5TmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgei1vcmRlciBvZiB0aGUgc2VyaWVzLCB3aGljaCBjb250cm9scyB0aGUgc3RhY2sgb3JkZXIgb2YgdGhlIHNlcmllcy4gSGlnaGVyIHZhbHVlcyBhcmUgZHJhd24gb24gdG9wIG9mIGxvd2VyIHZhbHVlcy5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIHpPcmRlcjogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ2RhdGFMYWJlbFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBkYXRhTGFiZWxfdGVtcGxhdGU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHNldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UnLCB0aGlzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmRpcmVjdGl2ZVByb3BMaXN0ID0gaW5wdXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIFNlcmllcyBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWotY2hhcnQ+ZS1zZXJpZXMtY29sbGVjdGlvbicsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihTZXJpZXNEaXJlY3RpdmUpXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2VyaWVzQ29sbGVjdGlvbkRpcmVjdGl2ZSBleHRlbmRzIEFycmF5QmFzZTxTZXJpZXNDb2xsZWN0aW9uRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdzZXJpZXMnKTtcbiAgICB9XG59Il19
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWVzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jaGFydC9zZXJpZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFekQsSUFBSSxLQUFLLEdBQWEsQ0FBQyxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN0aUMsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0FBQzNCOzs7Ozs7O0dBT0c7QUFVSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUE0QjtJQStjN0QsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQTFjOUMsU0FBSSxHQUFhLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBNGMvQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOzs0R0FwZFEsZUFBZTtnR0FBZixlQUFlLHVuRUFKYyxtQkFBbUIsZ0ZBQ3JCLGlCQUFpQjtBQWdkckQ7SUFEQyxRQUFRLEVBQUU7MkRBQ29COzJGQTdjdEIsZUFBZTtrQkFUM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLGVBQWUsRUFBRSxJQUFJLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQzt3QkFDdEQsYUFBYSxFQUFFLElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDO3FCQUNyRDtpQkFDSjt1R0E4Y1Usa0JBQWtCO3NCQUZ4QixZQUFZO3VCQUFDLG1CQUFtQjs7QUFZckM7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFNBQW9DO0lBQy9FO1FBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7O3NIQUhRLHlCQUF5QjswR0FBekIseUJBQXlCLDZGQUhBLGVBQWU7MkZBR3hDLHlCQUF5QjtrQkFOckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxPQUFPLEVBQUU7d0JBQ0wsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQztxQkFDakQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIENvbnRlbnRDaGlsZHJlbiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wbGV4QmFzZSwgQXJyYXlCYXNlLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFRyZW5kbGluZXNEaXJlY3RpdmUgfSBmcm9tICcuL3RyZW5kbGluZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNlZ21lbnRzRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWdtZW50cy5kaXJlY3RpdmUnO1xuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydhY2Nlc3NpYmlsaXR5JywgJ2FuaW1hdGlvbicsICdiZWFyRmlsbENvbG9yJywgJ2JpbkludGVydmFsJywgJ2JvcmRlcicsICdib3hQbG90TW9kZScsICdidWxsRmlsbENvbG9yJywgJ2NhcmRpbmFsU3BsaW5lVGVuc2lvbicsICdjbG9zZScsICdjb2xvck5hbWUnLCAnY29sdW1uRmFjZXQnLCAnY29sdW1uU3BhY2luZycsICdjb2x1bW5XaWR0aCcsICdjb2x1bW5XaWR0aEluUGl4ZWwnLCAnY29ubmVjdG9yJywgJ2Nvcm5lclJhZGl1cycsICdkYXNoQXJyYXknLCAnZGF0YVNvdXJjZScsICdkcmFnU2V0dGluZ3MnLCAnZHJhd1R5cGUnLCAnZW1wdHlQb2ludFNldHRpbmdzJywgJ2VuYWJsZUNvbXBsZXhQcm9wZXJ0eScsICdlbmFibGVTb2xpZENhbmRsZXMnLCAnZW5hYmxlVG9vbHRpcCcsICdlcnJvckJhcicsICdmaWxsJywgJ2dyb3VwTmFtZScsICdoaWdoJywgJ2ludGVybWVkaWF0ZVN1bUluZGV4ZXMnLCAnaXNDbG9zZWQnLCAnbGVnZW5kSW1hZ2VVcmwnLCAnbGVnZW5kU2hhcGUnLCAnbG93JywgJ21hcmtlcicsICdtYXhSYWRpdXMnLCAnbWluUmFkaXVzJywgJ25hbWUnLCAnbmVnYXRpdmVGaWxsQ29sb3InLCAnbm9SaXNlcnMnLCAnbm9uSGlnaGxpZ2h0U3R5bGUnLCAnb3BhY2l0eScsICdvcGVuJywgJ3BhcmV0b09wdGlvbnMnLCAncG9pbnRDb2xvck1hcHBpbmcnLCAncXVlcnknLCAnc2VnbWVudEF4aXMnLCAnc2VnbWVudHMnLCAnc2VsZWN0aW9uU3R5bGUnLCAnc2hvd01lYW4nLCAnc2hvd05lYXJlc3RUb29sdGlwJywgJ3Nob3dOb3JtYWxEaXN0cmlidXRpb24nLCAnc2hvd091dGxpZXJzJywgJ3NpemUnLCAnc3BsaW5lVHlwZScsICdzdGFja2luZ0dyb3VwJywgJ3N0ZXAnLCAnc3VtSW5kZXhlcycsICdzdW1tYXJ5RmlsbENvbG9yJywgJ3Rvb2x0aXBGb3JtYXQnLCAndG9vbHRpcE1hcHBpbmdOYW1lJywgJ3RyZW5kbGluZXMnLCAndHlwZScsICd1blNlbGVjdGVkU3R5bGUnLCAndmlzaWJsZScsICd2b2x1bWUnLCAnd2lkdGgnLCAneEF4aXNOYW1lJywgJ3hOYW1lJywgJ3lBeGlzTmFtZScsICd5TmFtZScsICd6T3JkZXInXTtcbmxldCBvdXRwdXRzOiBzdHJpbmdbXSA9IFtdO1xuLyoqXG4gKiBTZXJpZXMgRGlyZWN0aXZlXG4gKiBgYGBodG1sXG4gKiA8ZS1zZXJpZXMtY29sbGVjdGlvbj5cbiAqIDxlLXNlcmllcz48L2Utc2VyaWVzPlxuICogPC9lLXNlcmllcy1jb2xsZWN0aW9uPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS1zZXJpZXMtY29sbGVjdGlvbj5lLXNlcmllcycsXG4gICAgaW5wdXRzOiBpbnB1dCxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLCAgICBcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkVHJlbmRsaW5lczogbmV3IENvbnRlbnRDaGlsZChUcmVuZGxpbmVzRGlyZWN0aXZlKSwgXG4gICAgICAgIGNoaWxkU2VnbWVudHM6IG5ldyBDb250ZW50Q2hpbGQoU2VnbWVudHNEaXJlY3RpdmUpXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTZXJpZXNEaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxTZXJpZXNEaXJlY3RpdmU+IHtcbiAgICBwdWJsaWMgZGlyZWN0aXZlUHJvcExpc3Q6IGFueTtcblx0XG4gICAgcHVibGljIGNoaWxkVHJlbmRsaW5lczogYW55O1xuICAgIHB1YmxpYyBjaGlsZFNlZ21lbnRzOiBhbnk7XG4gICAgcHVibGljIHRhZ3M6IHN0cmluZ1tdID0gWyd0cmVuZGxpbmVzJywgJ3NlZ21lbnRzJ107XG4gICAgLyoqIFxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBzZXJpZXMgZGV0ZXJtaW5lcyB0aGUgdmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkYXRhLiBcbiAgICAgKiBBdmFpbGFibGUgc2VyaWVzIHR5cGVzIGluY2x1ZGU6IFxuICAgICAqICogTGluZSAtIERyYXdzIGEgbGluZSBzZXJpZXMuIFxuICAgICAqICogQ29sdW1uIC0gRHJhd3MgYSBjb2x1bW4gc2VyaWVzLiBcbiAgICAgKiAqIEFyZWEgLSBEcmF3cyBhbiBhcmVhIHNlcmllcy4gXG4gICAgICogKiBCYXIgLSBEcmF3cyBhIGJhciBzZXJpZXMuIFxuICAgICAqICogSGlzdG9ncmFtIC0gRHJhd3MgYSBoaXN0b2dyYW0gc2VyaWVzLiBcbiAgICAgKiAqIFN0YWNraW5nQ29sdW1uIC0gRHJhd3MgYSBzdGFja2luZyBjb2x1bW4gc2VyaWVzLiBcbiAgICAgKiAqIFN0YWNraW5nQXJlYSAtIERyYXdzIGEgc3RhY2tpbmcgYXJlYSBzZXJpZXMuIFxuICAgICAqICogU3RhY2tpbmdCYXIgLSBEcmF3cyBhIHN0YWNraW5nIGJhciBzZXJpZXMuIFxuICAgICAqICogU3RlcExpbmUgLSBEcmF3cyBhIHN0ZXAgbGluZSBzZXJpZXMuIFxuICAgICAqICogU3RlcEFyZWEgLSBEcmF3cyBhIHN0ZXAgYXJlYSBzZXJpZXMuIFxuICAgICAqICogU2NhdHRlciAtIERyYXdzIGEgc2NhdHRlciBzZXJpZXMuIFxuICAgICAqICogU3BsaW5lIC0gRHJhd3MgYSBzcGxpbmUgc2VyaWVzLiBcbiAgICAgKiAqIFN0YWNraW5nQ29sdW1uMTAwIC0gRHJhd3MgYSAxMDAlIHN0YWNrZWQgY29sdW1uIHNlcmllcy4gXG4gICAgICogKiBTdGFja2luZ0JhcjEwMCAtIERyYXdzIGEgMTAwJSBzdGFja2VkIGJhciBzZXJpZXMuIFxuICAgICAqICogU3RhY2tpbmdBcmVhMTAwIC0gRHJhd3MgYSAxMDAlIHN0YWNrZWQgYXJlYSBzZXJpZXMuIFxuICAgICAqICogUmFuZ2VDb2x1bW4gLSBEcmF3cyBhIHJhbmdlIGNvbHVtbiBzZXJpZXMuIFxuICAgICAqICogSGlsbyAtIERyYXdzIGEgSGlsbyBzZXJpZXMuIFxuICAgICAqICogSGlsb09wZW5DbG9zZSAtIERyYXdzIGEgSGlsbyBPcGVuIENsb3NlIHNlcmllcy4gXG4gICAgICogKiBXYXRlcmZhbGwgLSBEcmF3cyBhIHdhdGVyZmFsbCBzZXJpZXMuIFxuICAgICAqICogUmFuZ2VBcmVhIC0gRHJhd3MgYSByYW5nZSBhcmVhIHNlcmllcy4gXG4gICAgICogKiBTcGxpbmVSYW5nZUFyZWEgLSBEcmF3cyBhIHNwbGluZSByYW5nZSBhcmVhIHNlcmllcy4gXG4gICAgICogKiBCdWJibGUgLSBEcmF3cyBhIGJ1YmJsZSBzZXJpZXMuIFxuICAgICAqICogQ2FuZGxlIC0gRHJhd3MgYSBjYW5kbGUgc2VyaWVzLiBcbiAgICAgKiAqIFBvbGFyIC0gRHJhd3MgYSBwb2xhciBzZXJpZXMuIFxuICAgICAqICogUmFkYXIgLSBEcmF3cyBhIHJhZGFyIHNlcmllcy4gXG4gICAgICogKiBCb3hBbmRXaGlza2VyIC0gRHJhd3MgYSBib3ggYW5kIHdoaXNrZXIgc2VyaWVzLiBcbiAgICAgKiAqIFBhcmV0byAtIERyYXdzIGEgUGFyZXRvIHNlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAnTGluZSdcbiAgICAgKi9cbiAgICBwdWJsaWMgdHlwZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBPcHRpb25zIHRvIGltcHJvdmUgYWNjZXNzaWJpbGl0eSBmb3Igc2VyaWVzIGVsZW1lbnRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBhY2Nlc3NpYmlsaXR5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIHRoZSBhbmltYXRpb24gb2YgdGhlIHNlcmllcy4gXG4gICAgICogQnkgZGVmYXVsdCwgYW5pbWF0aW9uIGlzIGVuYWJsZWQgd2l0aCBhIGR1cmF0aW9uIG9mIDEwMDAgbWlsbGlzZWNvbmRzIChhYm91dCAxIHNlY29uZCkuIEl0IGNhbiBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIGVuYWJsZSB0byBgZmFsc2VgLiBcbiAgICAgKiBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIHN1cHBvcnRlZCBpbiBhbmltYXRpb246IFxuICAgICAqICogZW5hYmxlOiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIHNlcmllcyBpcyBhbmltYXRlZCBvbiBpbml0aWFsIGxvYWRpbmcuIFxuICAgICAqICogZHVyYXRpb246IFRoZSBkdXJhdGlvbiBvZiB0aGUgYW5pbWF0aW9uIGluIG1pbGxpc2Vjb25kcy4gXG4gICAgICogKiBkZWxheTogVGhlIGRlbGF5IGJlZm9yZSB0aGUgYW5pbWF0aW9uIHN0YXJ0cywgaW4gbWlsbGlzZWNvbmRzLlxuICAgICAqL1xuICAgIHB1YmxpYyBhbmltYXRpb246IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGluIGZpbmFuY2lhbCBjaGFydHMgdG8gdmlzdWFsaXplIHByaWNlIG1vdmVtZW50cyBpbiBzdG9ja3MuIFxuICAgICAqIEl0IGRlZmluZXMgdGhlIGNvbG9yIG9mIHRoZSBjYW5kbGUvcG9pbnQgd2hlbiB0aGUgb3BlbmluZyBwcmljZSBpcyBsZXNzIHRoYW4gdGhlIGNsb3NpbmcgcHJpY2UuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBiZWFyRmlsbENvbG9yOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBgYmluSW50ZXJ2YWxgIHByb3BlcnR5IGNvbnRyb2xzIHRoZSB3aWR0aCBvZiBlYWNoIGJpbiBhbmQgdGhlIGludGVydmFsIGJldHdlZW4gYmlucyBmb3IgaGlzdG9ncmFtIHBvaW50cy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKi9cbiAgICBwdWJsaWMgYmluSW50ZXJ2YWw6IGFueTtcbiAgICAvKiogXG4gICAgICogT3B0aW9ucyBmb3IgY3VzdG9taXppbmcgdGhlIGJvcmRlciBvZiB0aGUgc2VyaWVzLiBcbiAgICAgKiA+IE5vdGUgdGhhdCB0aGlzIHByb3BlcnR5IGlzIGFwcGxpY2FibGUgb25seSBmb3IgYENvbHVtbmAgYW5kIGBCYXJgIHR5cGUgc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBib3JkZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBib3ggcGxvdCBtb2RlIGZvciB0aGUgYm94IGFuZCB3aGlza2VyIGNoYXJ0IHNlcmllcy4gXG4gICAgICogVGhlIGF2YWlsYWJsZSBtb2RlcyBhcmU6IFxuICAgICAqIEV4Y2x1c2l2ZSAtIFJlbmRlcnMgdGhlIHNlcmllcyBiYXNlZCBvbiB0aGUgZXhjbHVzaXZlIG1vZGUuIFxuICAgICAqIEluY2x1c2l2ZSAtIFJlbmRlcnMgdGhlIHNlcmllcyBiYXNlZCBvbiB0aGUgaW5jbHVzaXZlIG1vZGUuIFxuICAgICAqIE5vcm1hbCAtIFJlbmRlcnMgdGhlIHNlcmllcyBiYXNlZCBvbiB0aGUgbm9ybWFsIG1vZGUuXG4gICAgICogQGRlZmF1bHQgJ05vcm1hbCdcbiAgICAgKi9cbiAgICBwdWJsaWMgYm94UGxvdE1vZGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGluIGZpbmFuY2lhbCBjaGFydHMgdG8gdmlzdWFsaXplIHByaWNlIG1vdmVtZW50cyBpbiBzdG9ja3MuIFxuICAgICAqIEl0IGRlZmluZXMgdGhlIGNvbG9yIG9mIHRoZSBjYW5kbGUvcG9pbnQgd2hlbiB0aGUgb3BlbmluZyBwcmljZSBpcyBoaWdoZXIgdGhhbiB0aGUgY2xvc2luZyBwcmljZS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGJ1bGxGaWxsQ29sb3I6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSB0ZW5zaW9uIHBhcmFtZXRlciBmb3IgY2FyZGluYWwgc3BsaW5lcy4gVGhpcyBhZmZlY3RzIHRoZSBjdXJ2YXR1cmUgb2YgdGhlIHNwbGluZS5cbiAgICAgKiBAZGVmYXVsdCAwLjVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FyZGluYWxTcGxpbmVUZW5zaW9uOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBjbG9zZSB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgYm90aCBmaW5hbmNpYWwgc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9ycy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgY29sb3IgbWFwcGluZyB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgcmFuZ2UgY29sb3IgbWFwcGluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29sb3JOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHNoYXBlIG9mIHRoZSBkYXRhIGluIGEgY29sdW1uIGFuZCBiYXIgY2hhcnQuIFxuICAgICAqIEF2YWlsYWJsZSBzaGFwZXMgYXJlOiBcbiAgICAgKiAqIFJlY3RhbmdsZTogRGlzcGxheXMgdGhlIGRhdGEgaW4gYSBjb2x1bW4gYW5kIGJhciBjaGFydCB3aXRoIGEgcmVjdGFuZ3VsYXIgc2hhcGUuIFxuICAgICAqICogQ3lsaW5kZXI6IERpc3BsYXlzIHRoZSBkYXRhIGluIGEgY29sdW1uIGFuZCBiYXIgY2hhcnQgd2l0aCBhIGN5bGluZHJpY2FsIHNoYXBlLlxuICAgICAqIEBkZWZhdWx0ICdSZWN0YW5nbGUnXG4gICAgICovXG4gICAgcHVibGljIGNvbHVtbkZhY2V0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoaXMgcHJvcGVydHkgZGV0ZXJtaW5lcyB0aGUgc3BhY2UgYmV0d2VlbiBjb2x1bW5zIGluIGEgY29sdW1uIG9yIGJhciBjaGFydC4gXG4gICAgICogPiBOb3RlIHRoYXQgaXQgdGFrZXMgYSB2YWx1ZSBmcm9tIDAgdG8gMS5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIGNvbHVtblNwYWNpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIGBjb2x1bW5XaWR0aGAgcHJvcGVydHkgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1ucyBpbiBhIGNvbHVtbiBzZXJpZXMuIFxuICAgICAqID4gTm90ZSB0aGF0IGlmIHRoZSBzZXJpZXMgdHlwZSBpcyBoaXN0b2dyYW0sIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDE7IG90aGVyd2lzZSwgaXQgaXMgMC43LlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBibGF6b3JkZWZhdWx0dmFsdWUgRG91YmxlLk5hTlxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5XaWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUbyByZW5kZXIgdGhlIGNvbHVtbiBzZXJpZXMgcG9pbnRzIHdpdGggYSBzcGVjaWZpYyBjb2x1bW4gd2lkdGggaW4gcGl4ZWxzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqIEBibGF6b3JkZWZhdWx0dmFsdWUgRG91YmxlLk5hTlxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5XaWR0aEluUGl4ZWw6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBsaW5lIGNvbm5lY3RpbmcgYWRqYWNlbnQgcG9pbnRzIGluIHdhdGVyZmFsbCBjaGFydHMuXG4gICAgICovXG4gICAgcHVibGljIGNvbm5lY3RvcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgYGNvcm5lclJhZGl1c2AgcHJvcGVydHkgc3BlY2lmaWVzIHRoZSByYWRpdXMgZm9yIHRoZSBjb3JuZXJzIG9mIHRoZSBjb2x1bW4gc2VyaWVzIHBvaW50cyB0byBjcmVhdGUgYSByb3VuZGVkIGFwcGVhcmFuY2UgaW4gdGhlIGNoYXJ0LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb3JuZXJSYWRpdXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgcGF0dGVybiBvZiBkYXNoZXMgYW5kIGdhcHMgdXNlZCB0byBzdHJva2UgdGhlIGxpbmVzIGluIGBMaW5lYCB0eXBlIHNlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBkYXNoQXJyYXk6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHNlcmllcy4gSXQgY2FuIGJlIGFuIGFycmF5IG9mIEpTT04gb2JqZWN0cywgb3IgYW4gaW5zdGFuY2Ugb2YgRGF0YU1hbmFnZXIuIFxuICAgICAqIFxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIGRhdGFTb3VyY2U6IGFueTtcbiAgICAvKiogXG4gICAgICogQ3VzdG9taXplIHRoZSBkcmFnIHNldHRpbmdzIGZvciB0aGUgc2VyaWVzIHdpdGggdGhpcyBwcm9wZXJ0eSB0byBjb25maWd1cmUgZHJhZyBiZWhhdmlvciBpbiB0aGUgY2hhcnQuXG4gICAgICovXG4gICAgcHVibGljIGRyYWdTZXR0aW5nczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHR5cGUgb2Ygc2VyaWVzIHRvIGJlIGRyYXduIGluIHJhZGFyIG9yIHBvbGFyIGNoYXJ0cy4gXG4gICAgICogVGhlIGF2YWlsYWJsZSBvcHRpb25zIGFyZTogXG4gICAgICogKiAnTGluZScgLSBSZW5kZXJzIGEgbGluZSBzZXJpZXMuIFxuICAgICAqICogJ0NvbHVtbicgLSBSZW5kZXJzIGEgY29sdW1uIHNlcmllcy4gXG4gICAgICogKiAnQXJlYScgLSBSZW5kZXJzIGFuIGFyZWEgc2VyaWVzLiBcbiAgICAgKiAqICdTY2F0dGVyJyAtIFJlbmRlcnMgYSBzY2F0dGVyIHNlcmllcy4gXG4gICAgICogKiAnU3BsaW5lJyAtIFJlbmRlcnMgYSBzcGxpbmUgc2VyaWVzLiBcbiAgICAgKiAqICdTdGFja2luZ0NvbHVtbicgLSBSZW5kZXJzIGEgc3RhY2tpbmcgY29sdW1uIHNlcmllcy4gXG4gICAgICogKiAnU3RhY2tpbmdBcmVhJyAtIFJlbmRlcnMgYSBzdGFja2luZyBhcmVhIHNlcmllcy4gXG4gICAgICogKiAnUmFuZ2VDb2x1bW4nIC0gUmVuZGVycyBhIHJhbmdlIGNvbHVtbiBzZXJpZXMuIFxuICAgICAqICogJ1NwbGluZUFyZWEnIC0gUmVuZGVycyBhIHNwbGluZSBhcmVhIHNlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAnTGluZSdcbiAgICAgKi9cbiAgICBwdWJsaWMgZHJhd1R5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogQ3VzdG9taXphdGlvbiBvcHRpb25zIGZvciB0aGUgYXBwZWFyYW5jZSBvZiBlbXB0eSBwb2ludHMgaW4gdGhlIHNlcmllcy4gXG4gICAgICogYG51bGxgIG9yIGB1bmRlZmluZWRgIHZhbHVlcyBhcmUgY29uc2lkZXJlZCBlbXB0eSBwb2ludHMuXG4gICAgICovXG4gICAgcHVibGljIGVtcHR5UG9pbnRTZXR0aW5nczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgdG8gaW1wcm92ZSBjaGFydCBwZXJmb3JtYW5jZSB0aHJvdWdoIGRhdGEgbWFwcGluZyBmb3IgdGhlIHNlcmllcyBkYXRhIHNvdXJjZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVDb21wbGV4UHJvcGVydHk6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyBhcHBsaWNhYmxlIGZvciB0aGUgY2FuZGxlIHNlcmllcy4gXG4gICAgICogSXQgZW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgdmlzdWFsIGNvbXBhcmlzb24gb2YgdGhlIGN1cnJlbnQgdmFsdWVzIHdpdGggcHJldmlvdXMgdmFsdWVzIGluIHN0b2NrIGNoYXJ0cy5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVTb2xpZENhbmRsZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogQ29udHJvbHMgd2hldGhlciB0aGUgdG9vbHRpcCBmb3IgdGhlIGNoYXJ0IHNlcmllcyBpcyBlbmFibGVkIG9yIGRpc2FibGVkLiBTZXQgdG8gdHJ1ZSB0byBkaXNwbGF5IHRvb2x0aXBzIG9uIGhvdmVyLCBvciBmYWxzZSB0byBoaWRlIHRoZW0uXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVUb29sdGlwOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbnMgZm9yIGRpc3BsYXlpbmcgYW5kIGN1c3RvbWl6aW5nIGVycm9yIGJhcnMgZm9yIGluZGl2aWR1YWwgcG9pbnRzIGluIGEgc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBlcnJvckJhcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZmlsbCBjb2xvciBmb3IgdGhlIHNlcmllcywgd2hpY2ggYWNjZXB0cyB2YWx1ZXMgaW4gaGV4IG9yIHJnYmEgYXMgYSB2YWxpZCBDU1MgY29sb3Igc3RyaW5nLiBcbiAgICAgKiBJdCBhbHNvIHJlcHJlc2VudHMgdGhlIGNvbG9yIG9mIHRoZSBzaWduYWwgbGluZXMgaW4gdGVjaG5pY2FsIGluZGljYXRvcnMuIFxuICAgICAqIEZvciB0ZWNobmljYWwgaW5kaWNhdG9ycywgdGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2JsdWUnLCBhbmQgZm9yIHNlcmllcywgaXQgaXMgbnVsbC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpbGw6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgbmFtZSB0aGF0IHNwZWNpZmllcyB0aGUgY2hhcnQgc2VyaWVzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgYW5kIGNhbiBiZSBvdmVybGFpZC4gXG4gICAgICogU2VyaWVzIGluIHRoZSBzYW1lIGdyb3VwIHNoYXJlIHRoZSBzYW1lIGJhc2VsaW5lIGFuZCBsb2NhdGlvbiBvbiB0aGUgY29ycmVzcG9uZGluZyBheGlzLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIGdyb3VwTmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgaGlnaCB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgYm90aCBmaW5hbmNpYWwgc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9ycy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBoaWdoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbGxlY3Rpb24gb2YgaW5kZXhlcyBmb3IgdGhlIGludGVybWVkaWF0ZSBzdW1tYXJ5IGNvbHVtbnMgaW4gd2F0ZXJmYWxsIGNoYXJ0cy5cbiAgICAgKiBAZGVmYXVsdCBbXVxuICAgICAqIEBhc3B0eXBlIGludFtdXG4gICAgICovXG4gICAgcHVibGljIGludGVybWVkaWF0ZVN1bUluZGV4ZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gam9pbiB0aGUgc3RhcnQgYW5kIGVuZCBwb2ludHMgb2YgYSBsaW5lL2FyZWEgc2VyaWVzIHVzZWQgaW4gYSBwb2xhci9yYWRhciBjaGFydCB0byBmb3JtIGEgY2xvc2VkIHBhdGguXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc0Nsb3NlZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgVVJMIGZvciB0aGUgaW1hZ2UgdG8gYmUgZGlzcGxheWVkIGFzIGEgbGVnZW5kIGljb24uIFxuICAgICAqID4gTm90ZSB0aGF0IGBsZWdlbmRTaGFwZWAgbXVzdCBiZSBzZXQgdG8gYEltYWdlYC5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBsZWdlbmRJbWFnZVVybDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHNoYXBlIG9mIHRoZSBsZWdlbmQgaWNvbiBmb3IgZWFjaCBzZXJpZXMuIFxuICAgICAqIEF2YWlsYWJsZSBzaGFwZXMgZm9yIGxlZ2VuZDogXG4gICAgICogKiBDaXJjbGUgLSBSZW5kZXJzIGEgY2lyY3VsYXIgaWNvbi4gXG4gICAgICogKiBSZWN0YW5nbGUgLSBSZW5kZXJzIGEgcmVjdGFuZ3VsYXIgaWNvbi4gXG4gICAgICogKiBUcmlhbmdsZSAtIFJlbmRlcnMgYSB0cmlhbmd1bGFyIGljb24uIFxuICAgICAqICogRGlhbW9uZCAtIFJlbmRlcnMgYSBkaWFtb25kLXNoYXBlZCBpY29uLiBcbiAgICAgKiAqIENyb3NzIC0gUmVuZGVycyBhIGNyb3NzLXNoYXBlZCBpY29uLiBcbiAgICAgKiAqIEhvcml6b250YWxMaW5lIC0gUmVuZGVycyBhIGhvcml6b250YWwgbGluZSBpY29uLiBcbiAgICAgKiAqIFZlcnRpY2FsTGluZSAtIFJlbmRlcnMgYSB2ZXJ0aWNhbCBsaW5lIGljb24uIFxuICAgICAqICogUGVudGFnb24gLSBSZW5kZXJzIGEgcGVudGFnb24tc2hhcGVkIGljb24uIFxuICAgICAqICogSW52ZXJ0ZWRUcmlhbmdsZSAtIFJlbmRlcnMgYW4gaW52ZXJ0ZWQgdHJpYW5nbGUtc2hhcGVkIGljb24uIFxuICAgICAqICogU2VyaWVzVHlwZSAtIFVzZXMgdGhlIGRlZmF1bHQgaWNvbiBzaGFwZSBiYXNlZCBvbiB0aGUgc2VyaWVzIHR5cGUuIFxuICAgICAqICogSW1hZ2UgLSBSZW5kZXJzIGEgY3VzdG9tIGltYWdlIGZvciB0aGUgbGVnZW5kIGljb24uXG4gICAgICogQGRlZmF1bHQgJ1Nlcmllc1R5cGUnXG4gICAgICovXG4gICAgcHVibGljIGxlZ2VuZFNoYXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBsb3cgdmFsdWUuIFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIGJvdGggZmluYW5jaWFsIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnMuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgbG93OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbnMgZm9yIGRpc3BsYXlpbmcgYW5kIGN1c3RvbWl6aW5nIG1hcmtlcnMgZm9yIGluZGl2aWR1YWwgcG9pbnRzIGluIGEgc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBtYXJrZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIHJhZGl1cyBmb3IgdGhlIGRhdGEgcG9pbnRzIGluIHRoZSBzZXJpZXMuXG4gICAgICogQGRlZmF1bHQgM1xuICAgICAqL1xuICAgIHB1YmxpYyBtYXhSYWRpdXM6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBtaW5pbXVtIHJhZGl1cyBmb3IgdGhlIGRhdGEgcG9pbnRzIGluIHRoZSBzZXJpZXMuXG4gICAgICogQGRlZmF1bHQgMVxuICAgICAqL1xuICAgIHB1YmxpYyBtaW5SYWRpdXM6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIGBuYW1lYCBwcm9wZXJ0eSBhbGxvd3Mgc2V0dGluZyBhIG5hbWUgZm9yIHRoZSBzZXJpZXMsIHdoaWNoIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBsZWdlbmQsIGlkZW50aWZ5aW5nIGRpZmZlcmVudCBzZXJpZXMgaW4gdGhlIGNoYXJ0LCBlc3BlY2lhbGx5IHdoZW4gbXVsdGlwbGUgc2VyaWVzIGFyZSBwcmVzZW50LlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIG5hbWU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgdmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mIG5lZ2F0aXZlIGNoYW5nZXMgaW4gd2F0ZXJmYWxsIGNoYXJ0cy5cbiAgICAgKiBAZGVmYXVsdCAnI0M2NEU0QSdcbiAgICAgKi9cbiAgICBwdWJsaWMgbmVnYXRpdmVGaWxsQ29sb3I6IGFueTtcbiAgICAvKiogXG4gICAgICogV2hlbiBzZXQgdG8gdHJ1ZSwgdGhlIHN0ZXAgc2VyaWVzIHdpbGwgYmUgcmVuZGVyZWQgd2l0aG91dCB0aGUgdmVydGljYWwgbGluZXMgKHJpc2VycykgY29ubmVjdGluZyB0aGUgaG9yaXpvbnRhbCBzdGVwcy4gXG4gICAgICogPiBOb3RlIHRoaXMgcHJvcGVydHkgaXMgb25seSBhcHBsaWNhYmxlIHRvIHN0ZXAgc2VyaWVzLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIG5vUmlzZXJzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBgbm9uSGlnaGxpZ2h0U3R5bGVgIHByb3BlcnR5IGlzIHVzZWQgdG8gc3BlY2lmeSBjdXN0b20gQ1NTIHN0eWxlcyBmb3IgdGhlIG5vbi1oaWdobGlnaHRlZCBzZXJpZXMgb3IgcG9pbnRzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgbm9uSGlnaGxpZ2h0U3R5bGU6IGFueTtcbiAgICAvKiogXG4gICAgICogU2V0cyB0aGUgb3BhY2l0eSBvZiB0aGUgc2VyaWVzLCB3aXRoIGEgdmFsdWUgYmV0d2VlbiAwIGFuZCAxIHdoZXJlIDAgaXMgZnVsbHkgdHJhbnNwYXJlbnQgYW5kIDEgaXMgZnVsbHkgb3BhcXVlLlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKi9cbiAgICBwdWJsaWMgb3BhY2l0eTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgb3BlbiB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgYm90aCBmaW5hbmNpYWwgc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9ycy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbnMgZm9yIGN1c3RvbWl6aW5nIHRoZSBQYXJldG8gbGluZSBzZXJpZXMsIGluY2x1ZGluZyBpdHMgYXBwZWFyYW5jZSBhbmQgYmVoYXZpb3IgaW4gdGhlIGNoYXJ0LlxuICAgICAqL1xuICAgIHB1YmxpYyBwYXJldG9PcHRpb25zOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBjb2xvciB2YWx1ZSBvZiBhIHBvaW50LiBcbiAgICAgKiBJdCBpcyBhcHBsaWNhYmxlIGZvciBzZXJpZXMuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9pbnRDb2xvck1hcHBpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIGEgcXVlcnkgdG8gc2VsZWN0IGRhdGEgZnJvbSB0aGUgZGF0YSBzb3VyY2UuIFRoaXMgcHJvcGVydHkgaXMgYXBwbGljYWJsZSBvbmx5IHdoZW4gdGhlIGRhdGEgc291cmNlIGlzIGFuIGBlai5EYXRhTWFuYWdlcmAuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgcXVlcnk6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgYXhpcyBhbG9uZyB3aGljaCB0aGUgbGluZSBzZXJpZXMgd2lsbCBiZSBzcGxpdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2VnbWVudEF4aXM6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIGEgY29sbGVjdGlvbiBvZiByZWdpb25zIHVzZWQgdG8gZGlmZmVyZW50aWF0ZSBhIGxpbmUgc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZWdtZW50czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgYHNlbGVjdGlvblN0eWxlYCBwcm9wZXJ0eSBpcyB1c2VkIHRvIHNwZWNpZnkgY3VzdG9tIENTUyBzdHlsZXMgZm9yIHRoZSBzZWxlY3RlZCBzZXJpZXMgb3IgcG9pbnRzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2VsZWN0aW9uU3R5bGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgc2V0IHRvIHRydWUsIHRoZSBtZWFuIHZhbHVlIGZvciB0aGUgYm94IGFuZCB3aGlza2VyIHBsb3Qgd2lsbCBiZSB2aXNpYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd01lYW46IGFueTtcbiAgICAvKiogXG4gICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgZGlzcGxheSBvZiB0b29sdGlwcyBmb3IgdGhlIG5lYXJlc3QgZGF0YSBwb2ludCB0byB0aGUgY3Vyc29yIGZvciBzZXJpZXMuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93TmVhcmVzdFRvb2x0aXA6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZGlzcGxheSB0aGUgbm9ybWFsIGRpc3RyaWJ1dGlvbiBjdXJ2ZSBmb3IgdGhlIGhpc3RvZ3JhbSBzZXJpZXMuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd05vcm1hbERpc3RyaWJ1dGlvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgd2hldGhlciB0byBkaXNwbGF5IG91dGxpZXJzIGluIHRoZSBCb3ggYW5kIFdoaXNrZXIgY2hhcnQuXG4gICAgICogXG4gICAgICogSWYgc2V0IHRvIGB0cnVlYCwgb3V0bGllcnMgd2lsbCBiZSBkaXNwbGF5ZWQgYXMgaW5kaXZpZHVhbCBwb2ludHMgYmV5b25kIHRoZSB3aGlza2VycywgcmVwcmVzZW50aW5nIGRhdGEgcG9pbnRzIHRoYXQgc2lnbmlmaWNhbnRseSBkaWZmZXIgZnJvbSB0aGUgcmVzdCBvZiB0aGUgZGF0YXNldC5cbiAgICAgKklmIHNldCB0byBgZmFsc2VgLCBvdXRsaWVycyB3aWxsIGJlIGhpZGRlbiwgYW5kIG9ubHkgdGhlIGJveCwgbWVkaWFuLCBhbmQgd2hpc2tlcnMgd2lsbCBiZSByZW5kZXJlZC5cbiAgICAgKlxuICAgICAqT3V0bGllcnMgYXJlIHR5cGljYWxseSB1c2VkIHRvIGlkZW50aWZ5IGV4dHJlbWUgdmFsdWVzIGluIHN0YXRpc3RpY2FsIGRhdGEgcmVwcmVzZW50YXRpb24uXG4gICAgICogICAgIFxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd091dGxpZXJzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBzaXplIHZhbHVlIGZvciB0aGUgeS1heGlzLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIHNpemU6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIHNwbGluZSB1c2VkIGZvciByZW5kZXJpbmcuIFxuICAgICAqIEF2YWlsYWJsZSBvcHRpb25zIGluY2x1ZGU6IFxuICAgICAqICogTmF0dXJhbCAtIFJlbmRlcnMgYSBuYXR1cmFsIHNwbGluZS4gXG4gICAgICogKiBDYXJkaW5hbCAtIFJlbmRlcnMgYSBjYXJkaW5hbCBzcGxpbmUuIFxuICAgICAqICogQ2xhbXBlZCAtIFJlbmRlcnMgYSBjbGFtcGVkIHNwbGluZS4gXG4gICAgICogKiBNb25vdG9uaWMgLSBSZW5kZXJzIGEgbW9ub3RvbmljIHNwbGluZS5cbiAgICAgKiBAZGVmYXVsdCAnTmF0dXJhbCdcbiAgICAgKi9cbiAgICBwdWJsaWMgc3BsaW5lVHlwZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGlzIHByb3BlcnR5IGFsbG93cyB0aGUgZ3JvdXBpbmcgb2Ygc2VyaWVzIGluIHN0YWNrZWQgY29sdW1uIGFuZCBzdGFja2VkIGJhciBjaGFydHMuIFxuICAgICAqIEFueSBzdHJpbmcgdmFsdWUgY2FuIGJlIGFzc2lnbmVkIHRvIHRoZSBgc3RhY2tpbmdHcm91cGAgcHJvcGVydHkuIFxuICAgICAqIFNlcmllcyB3aXRoIHRoZSBzYW1lIGBzdGFja2luZ0dyb3VwYCB2YWx1ZSB3aWxsIGJlIGdyb3VwZWQgdG9nZXRoZXIgaW4gdGhlIGNoYXJ0LlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIHN0YWNraW5nR3JvdXA6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIGBzdGVwYCBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byBjaGFuZ2UgdGhlIHBvc2l0aW9uIG9mIHRoZSBzdGVwcyBpbiBzdGVwIGxpbmUsIHN0ZXAgYXJlYSwgYW5kIHN0ZXAgcmFuZ2UgYXJlYSBjaGFydCB0eXBlcy4gXG4gICAgICogKiBMZWZ0OiBTdGVwcyBzdGFydCBmcm9tIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIDJuZCBwb2ludC4gXG4gICAgICogKiBDZW50ZXI6IFN0ZXBzIHN0YXJ0IGJldHdlZW4gdGhlIGRhdGEgcG9pbnRzLiBcbiAgICAgKiAqIFJpZ2h0OiBTdGVwcyBzdGFydCBmcm9tIHRoZSByaWdodCBzaWRlIG9mIHRoZSAxc3QgcG9pbnQuXG4gICAgICogQGRlZmF1bHQgJ0xlZnQnXG4gICAgICovXG4gICAgcHVibGljIHN0ZXA6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY29sbGVjdGlvbiBvZiBpbmRleGVzIGZvciB0aGUgb3ZlcmFsbCBzdW1tYXJ5IGNvbHVtbnMgaW4gd2F0ZXJmYWxsIGNoYXJ0cy5cbiAgICAgKiBAZGVmYXVsdCBbXVxuICAgICAqIEBhc3B0eXBlIGludFtdXG4gICAgICovXG4gICAgcHVibGljIHN1bUluZGV4ZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgdmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mIHN1bW1hcmllcyBpbiB3YXRlcmZhbGwgY2hhcnRzLlxuICAgICAqIEBkZWZhdWx0ICcjNEU4MUJDJ1xuICAgICAqL1xuICAgIHB1YmxpYyBzdW1tYXJ5RmlsbENvbG9yOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFVzZSB0aGlzIHByb3BlcnR5IHRvIGRlZmluZSBhIGN1c3RvbSBmb3JtYXQgZm9yIGhvdyB0b29sdGlwcyBhcmUgZGlzcGxheWVkLiBcbiAgICAgKiBcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyB0b29sdGlwRm9ybWF0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSB2YWx1ZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIHRvb2x0aXAuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9vbHRpcE1hcHBpbmdOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbGxlY3Rpb24gb2YgdHJlbmRsaW5lcyB1c2VkIHRvIHByZWRpY3QgdGhlIHRyZW5kLlxuICAgICAqL1xuICAgIHB1YmxpYyB0cmVuZGxpbmVzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBgdW5TZWxlY3RlZFN0eWxlYCBwcm9wZXJ0eSBpcyB1c2VkIHRvIHNwZWNpZnkgY3VzdG9tIENTUyBzdHlsZXMgZm9yIHRoZSBkZXNlbGVjdGVkIHNlcmllcyBvciBwb2ludHMuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB1blNlbGVjdGVkU3R5bGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgc2V0IHRvIGB0cnVlYCwgdGhlIHNlcmllcyB3aWxsIGJlIHZpc2libGUuIElmIHNldCB0byBgZmFsc2VgLCB0aGUgc2VyaWVzIHdpbGwgYmUgaGlkZGVuLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmlzaWJsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSB2b2x1bWUgdmFsdWUgaW4gY2FuZGxlIGNoYXJ0cy4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgYm90aCBmaW5hbmNpYWwgc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9ycy5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyB2b2x1bWU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIHN0cm9rZSB3aWR0aCBmb3IgdGhlIHNlcmllcywgYXBwbGljYWJsZSBvbmx5IGZvciBgTGluZWAgdHlwZSBzZXJpZXMuIFxuICAgICAqIEl0IGFsc28gcmVwcmVzZW50cyB0aGUgc3Ryb2tlIHdpZHRoIG9mIHRoZSBzaWduYWwgbGluZXMgaW4gdGVjaG5pY2FsIGluZGljYXRvcnMuXG4gICAgICogQGRlZmF1bHQgMVxuICAgICAqL1xuICAgIHB1YmxpYyB3aWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgaG9yaXpvbnRhbCBheGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VyaWVzLiBJdCByZXF1aXJlcyBgYXhlc2Agb2YgdGhlIGNoYXJ0LiBcbiAgICAgKiBJdCBpcyBhcHBsaWNhYmxlIGZvciBzZXJpZXMgYW5kIHRlY2huaWNhbCBpbmRpY2F0b3JzLiBcbiAgICAgKiBcbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHhBeGlzTmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgeCB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSB0byBib3RoIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnMuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgeE5hbWU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIHZlcnRpY2FsIGF4aXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZXJpZXMuIEl0IHJlcXVpcmVzIGBheGVzYCBvZiB0aGUgY2hhcnQuIFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnMuIFxuICAgICAqIFxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgeUF4aXNOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSB5IHZhbHVlLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIHlOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSB6LW9yZGVyIG9mIHRoZSBzZXJpZXMsIHdoaWNoIGNvbnRyb2xzIHRoZSBzdGFjayBvcmRlciBvZiB0aGUgc2VyaWVzLiBIaWdoZXIgdmFsdWVzIGFyZSBkcmF3biBvbiB0b3Agb2YgbG93ZXIgdmFsdWVzLlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBwdWJsaWMgek9yZGVyOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZGF0YUxhYmVsVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGRhdGFMYWJlbF90ZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogU2VyaWVzIEFycmF5IERpcmVjdGl2ZVxuICogQHByaXZhdGVcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlai1jaGFydD5lLXNlcmllcy1jb2xsZWN0aW9uJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKFNlcmllc0RpcmVjdGl2ZSlcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTZXJpZXNDb2xsZWN0aW9uRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPFNlcmllc0NvbGxlY3Rpb25EaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ3NlcmllcycpO1xuICAgIH1cbn0iXX0=
|
|
@@ -2,7 +2,7 @@ import { Directive, ContentChildren, ContentChild } from '@angular/core';
|
|
|
2
2
|
import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
|
|
3
3
|
import { StockChartTrendlinesDirective } from './trendlines.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
let input = ['animation', 'bearFillColor', 'border', 'bullFillColor', 'cardinalSplineTension', 'close', 'columnSpacing', 'columnWidth', 'cornerRadius', 'dashArray', 'dataSource', 'emptyPointSettings', 'enableSolidCandles', 'enableTooltip', 'fill', 'high', 'legendImageUrl', 'legendShape', 'low', 'marker', 'name', 'opacity', 'open', 'pointColorMapping', 'query', 'selectionStyle', 'tooltipMappingName', 'trendlines', 'type', 'visible', 'volume', 'width', 'xAxisName', 'xName', 'yAxisName', 'yName'];
|
|
5
|
+
let input = ['animation', 'bearFillColor', 'border', 'bullFillColor', 'cardinalSplineTension', 'close', 'columnSpacing', 'columnWidth', 'cornerRadius', 'dashArray', 'dataSource', 'emptyPointSettings', 'enableSolidCandles', 'enableTooltip', 'fill', 'high', 'legendImageUrl', 'legendShape', 'low', 'marker', 'name', 'opacity', 'open', 'pointColorMapping', 'query', 'selectionStyle', 'showNearestTooltip', 'tooltipMappingName', 'trendlines', 'type', 'visible', 'volume', 'width', 'xAxisName', 'xName', 'yAxisName', 'yName'];
|
|
6
6
|
let outputs = [];
|
|
7
7
|
/**
|
|
8
8
|
* Series Directive
|
|
@@ -23,7 +23,7 @@ export class StockChartSeriesDirective extends ComplexBase {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
StockChartSeriesDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StockChartSeriesDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
-
StockChartSeriesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: StockChartSeriesDirective, selector: "e-stockchart-series-collection>e-stockchart-series", inputs: { animation: "animation", bearFillColor: "bearFillColor", border: "border", bullFillColor: "bullFillColor", cardinalSplineTension: "cardinalSplineTension", close: "close", columnSpacing: "columnSpacing", columnWidth: "columnWidth", cornerRadius: "cornerRadius", dashArray: "dashArray", dataSource: "dataSource", emptyPointSettings: "emptyPointSettings", enableSolidCandles: "enableSolidCandles", enableTooltip: "enableTooltip", fill: "fill", high: "high", legendImageUrl: "legendImageUrl", legendShape: "legendShape", low: "low", marker: "marker", name: "name", opacity: "opacity", open: "open", pointColorMapping: "pointColorMapping", query: "query", selectionStyle: "selectionStyle", tooltipMappingName: "tooltipMappingName", trendlines: "trendlines", type: "type", visible: "visible", volume: "volume", width: "width", xAxisName: "xAxisName", xName: "xName", yAxisName: "yAxisName", yName: "yName" }, queries: [{ propertyName: "childTrendlines", first: true, predicate: StockChartTrendlinesDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
26
|
+
StockChartSeriesDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: StockChartSeriesDirective, selector: "e-stockchart-series-collection>e-stockchart-series", inputs: { animation: "animation", bearFillColor: "bearFillColor", border: "border", bullFillColor: "bullFillColor", cardinalSplineTension: "cardinalSplineTension", close: "close", columnSpacing: "columnSpacing", columnWidth: "columnWidth", cornerRadius: "cornerRadius", dashArray: "dashArray", dataSource: "dataSource", emptyPointSettings: "emptyPointSettings", enableSolidCandles: "enableSolidCandles", enableTooltip: "enableTooltip", fill: "fill", high: "high", legendImageUrl: "legendImageUrl", legendShape: "legendShape", low: "low", marker: "marker", name: "name", opacity: "opacity", open: "open", pointColorMapping: "pointColorMapping", query: "query", selectionStyle: "selectionStyle", showNearestTooltip: "showNearestTooltip", tooltipMappingName: "tooltipMappingName", trendlines: "trendlines", type: "type", visible: "visible", volume: "volume", width: "width", xAxisName: "xAxisName", xName: "xName", yAxisName: "yAxisName", yName: "yName" }, queries: [{ propertyName: "childTrendlines", first: true, predicate: StockChartTrendlinesDirective, descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
27
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StockChartSeriesDirective, decorators: [{
|
|
28
28
|
type: Directive,
|
|
29
29
|
args: [{
|
|
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
55
55
|
},
|
|
56
56
|
}]
|
|
57
57
|
}], ctorParameters: function () { return []; } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWVzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdG9jay1jaGFydC9zZXJpZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXZFLElBQUksS0FBSyxHQUFhLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdmLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztBQUMzQjs7Ozs7OztHQU9HO0FBU0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLFdBQXNDO0lBdU5qRixZQUFvQixnQkFBaUM7UUFDakQsS0FBSyxFQUFFLENBQUM7UUFEUSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBbk45QyxTQUFJLEdBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQXFObkMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQzs7c0hBNU5RLHlCQUF5QjswR0FBekIseUJBQXlCLHVoQ0FISSw2QkFBNkI7MkZBRzFELHlCQUF5QjtrQkFSckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0RBQW9EO29CQUM5RCxNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLGVBQWUsRUFBRSxJQUFJLFlBQVksQ0FBQyw2QkFBNkIsQ0FBQztxQkFDbkU7aUJBQ0o7O0FBZ09EOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSxTQUE4QztJQUNuRztRQUNJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQixDQUFDOztnSUFIUSxtQ0FBbUM7b0hBQW5DLG1DQUFtQyw4R0FIVix5QkFBeUI7MkZBR2xELG1DQUFtQztrQkFOL0MsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsK0NBQStDO29CQUN6RCxPQUFPLEVBQUU7d0JBQ0wsUUFBUSxFQUFFLElBQUksZUFBZSxDQUFDLHlCQUF5QixDQUFDO3FCQUMzRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiwgQ29udGVudENoaWxkcmVuLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBsZXhCYXNlLCBBcnJheUJhc2UsIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cbmltcG9ydCB7IFN0b2NrQ2hhcnRUcmVuZGxpbmVzRGlyZWN0aXZlIH0gZnJvbSAnLi90cmVuZGxpbmVzLmRpcmVjdGl2ZSc7XG5cbmxldCBpbnB1dDogc3RyaW5nW10gPSBbJ2FuaW1hdGlvbicsICdiZWFyRmlsbENvbG9yJywgJ2JvcmRlcicsICdidWxsRmlsbENvbG9yJywgJ2NhcmRpbmFsU3BsaW5lVGVuc2lvbicsICdjbG9zZScsICdjb2x1bW5TcGFjaW5nJywgJ2NvbHVtbldpZHRoJywgJ2Nvcm5lclJhZGl1cycsICdkYXNoQXJyYXknLCAnZGF0YVNvdXJjZScsICdlbXB0eVBvaW50U2V0dGluZ3MnLCAnZW5hYmxlU29saWRDYW5kbGVzJywgJ2VuYWJsZVRvb2x0aXAnLCAnZmlsbCcsICdoaWdoJywgJ2xlZ2VuZEltYWdlVXJsJywgJ2xlZ2VuZFNoYXBlJywgJ2xvdycsICdtYXJrZXInLCAnbmFtZScsICdvcGFjaXR5JywgJ29wZW4nLCAncG9pbnRDb2xvck1hcHBpbmcnLCAncXVlcnknLCAnc2VsZWN0aW9uU3R5bGUnLCAndG9vbHRpcE1hcHBpbmdOYW1lJywgJ3RyZW5kbGluZXMnLCAndHlwZScsICd2aXNpYmxlJywgJ3ZvbHVtZScsICd3aWR0aCcsICd4QXhpc05hbWUnLCAneE5hbWUnLCAneUF4aXNOYW1lJywgJ3lOYW1lJ107XG5sZXQgb3V0cHV0czogc3RyaW5nW10gPSBbXTtcbi8qKlxuICogU2VyaWVzIERpcmVjdGl2ZVxuICogYGBgaHRtbFxuICogPGUtc3RvY2tjaGFydC1zZXJpZXMtY29sbGVjdGlvbj5cbiAqIDxlLXN0b2NrY2hhcnQtc2VyaWVzPjwvZS1zdG9ja2NoYXJ0LXNlcmllcz5cbiAqIDwvZS1zdG9ja2NoYXJ0LXNlcmllcy1jb2xsZWN0aW9uPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS1zdG9ja2NoYXJ0LXNlcmllcy1jb2xsZWN0aW9uPmUtc3RvY2tjaGFydC1zZXJpZXMnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZFRyZW5kbGluZXM6IG5ldyBDb250ZW50Q2hpbGQoU3RvY2tDaGFydFRyZW5kbGluZXNEaXJlY3RpdmUpXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTdG9ja0NoYXJ0U2VyaWVzRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8U3RvY2tDaGFydFNlcmllc0RpcmVjdGl2ZT4ge1xuICAgIHB1YmxpYyBkaXJlY3RpdmVQcm9wTGlzdDogYW55O1xuXHRcbiAgICBwdWJsaWMgY2hpbGRUcmVuZGxpbmVzOiBhbnk7XG4gICAgcHVibGljIHRhZ3M6IHN0cmluZ1tdID0gWyd0cmVuZGxpbmVzJ107XG4gICAgLyoqIFxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSBzZXJpZXMgYXJlIFxuICAgICAqICogTGluZSBcbiAgICAgKiAqIENvbHVtbiBcbiAgICAgKiAqIEFyZWEgXG4gICAgICogKiBTcGxpbmUgXG4gICAgICogKiBIaWxvIFxuICAgICAqICogSGlsb09wZW5DbG9zZSBcbiAgICAgKiAqIENhbmRsZVxuICAgICAqIEBkZWZhdWx0ICdDYW5kbGUnXG4gICAgICovXG4gICAgcHVibGljIHR5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogT3B0aW9ucyB0byBjdXN0b21pemluZyBhbmltYXRpb24gZm9yIHRoZSBzZXJpZXMuXG4gICAgICovXG4gICAgcHVibGljIGFuaW1hdGlvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgaW4gc3RvY2sgY2hhcnRzIHRvIHZpc3VhbGl6ZSB0aGUgcHJpY2UgbW92ZW1lbnRzIGluIHN0b2NrLiBcbiAgICAgKiBJdCBkZWZpbmVzIHRoZSBjb2xvciBvZiB0aGUgY2FuZGxlL3BvaW50LCB3aGVuIHRoZSBvcGVuaW5nIHByaWNlIGlzIGxlc3MgdGhhbiB0aGUgY2xvc2luZyBwcmljZS5cbiAgICAgKiBAZGVmYXVsdCAnIzJlY2Q3MSdcbiAgICAgKi9cbiAgICBwdWJsaWMgYmVhckZpbGxDb2xvcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBPcHRpb25zIHRvIGN1c3RvbWl6aW5nIHRoZSBib3JkZXIgb2YgdGhlIHNlcmllcy4gVGhpcyBpcyBhcHBsaWNhYmxlIG9ubHkgZm9yIGBDb2x1bW5gIGFuZCBgQmFyYCB0eXBlIHNlcmllcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYm9yZGVyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoaXMgcHJvcGVydHkgaXMgdXNlZCBpbiBmaW5hbmNpYWwgY2hhcnRzIHRvIHZpc3VhbGl6ZSB0aGUgcHJpY2UgbW92ZW1lbnRzIGluIHN0b2NrLiBcbiAgICAgKiBJdCBkZWZpbmVzIHRoZSBjb2xvciBvZiB0aGUgY2FuZGxlL3BvaW50LCB3aGVuIHRoZSBvcGVuaW5nIHByaWNlIGlzIGhpZ2hlciB0aGFuIHRoZSBjbG9zaW5nIHByaWNlLlxuICAgICAqIEBkZWZhdWx0ICcjZTc0YzNkJ1xuICAgICAqL1xuICAgIHB1YmxpYyBidWxsRmlsbENvbG9yOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGRlZmluZXMgdGVuc2lvbiBvZiBjYXJkaW5hbCBzcGxpbmUgdHlwZXMuXG4gICAgICogQGRlZmF1bHQgMC41XG4gICAgICovXG4gICAgcHVibGljIGNhcmRpbmFsU3BsaW5lVGVuc2lvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgRGF0YVNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBjbG9zZSB2YWx1ZSBvZiB5IFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnNcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBjbG9zZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUbyByZW5kZXIgdGhlIGNvbHVtbiBzZXJpZXMgcG9pbnRzIHdpdGggcGFydGljdWxhciBjb2x1bW4gc3BhY2luZy4gSXQgdGFrZXMgdmFsdWUgZnJvbSAwIC0gMS5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIGNvbHVtblNwYWNpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogVG8gcmVuZGVyIHRoZSBjb2x1bW4gc2VyaWVzIHBvaW50cyB3aXRoIHBhcnRpY3VsYXIgY29sdW1uIHdpZHRoLiBJZiB0aGUgc2VyaWVzIHR5cGUgaXMgaGlzdG9ncmFtIHRoZSBcbiAgICAgKiBkZWZhdWx0IHZhbHVlIGlzIDEgb3RoZXJ3aXNlIDAuNy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZSBcbiAgICAgKi9cbiAgICBwdWJsaWMgY29sdW1uV2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogVG8gcmVuZGVyIHRoZSBjb2x1bW4gc2VyaWVzIHBvaW50cyB3aXRoIHBhcnRpY3VsYXIgcm91bmRlZCBjb3JuZXIuXG4gICAgICovXG4gICAgcHVibGljIGNvcm5lclJhZGl1czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBwYXR0ZXJuIG9mIGRhc2hlcyBhbmQgZ2FwcyB0byBzdHJva2UgdGhlIGxpbmVzIGluIGBMaW5lYCB0eXBlIHNlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAnMCdcbiAgICAgKi9cbiAgICBwdWJsaWMgZGFzaEFycmF5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgRGF0YVNvdXJjZSBmb3IgdGhlIHNlcmllcy4gSXQgY2FuIGJlIGFuIGFycmF5IG9mIEpTT04gb2JqZWN0cyBvciBhbiBpbnN0YW5jZSBvZiBEYXRhTWFuYWdlci5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBkYXRhU291cmNlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIG9wdGlvbnMgdG8gY3VzdG9taXplIHRoZSBlbXB0eSBwb2ludHMgaW4gc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBlbXB0eVBvaW50U2V0dGluZ3M6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyBhcHBsaWNhYmxlIGZvciBjYW5kbGUgc2VyaWVzLiBcbiAgICAgKiBJdCBlbmFibGVzL2Rpc2FibGVzIHRvIHZpc3VhbGx5IGNvbXBhcmUgdGhlIGN1cnJlbnQgdmFsdWVzIHdpdGggdGhlIHByZXZpb3VzIHZhbHVlcyBpbiBzdG9jay5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVTb2xpZENhbmRsZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogSWYgc2V0IHRydWUsIHRoZSBUb29sdGlwIGZvciBzZXJpZXMgd2lsbCBiZSB2aXNpYmxlLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgZW5hYmxlVG9vbHRpcDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgZmlsbCBjb2xvciBmb3IgdGhlIHNlcmllcyB0aGF0IGFjY2VwdHMgdmFsdWUgaW4gaGV4IGFuZCByZ2JhIGFzIGEgdmFsaWQgQ1NTIGNvbG9yIHN0cmluZy4gXG4gICAgICogSXQgYWxzbyByZXByZXNlbnRzIHRoZSBjb2xvciBvZiB0aGUgc2lnbmFsIGxpbmVzIGluIHRlY2huaWNhbCBpbmRpY2F0b3JzLiBcbiAgICAgKiBGb3IgdGVjaG5pY2FsIGluZGljYXRvcnMsIHRoZSBkZWZhdWx0IHZhbHVlIGlzICdibHVlJyBhbmQgZm9yIHNlcmllcywgaXQgaGFzIG51bGwuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBmaWxsOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBEYXRhU291cmNlIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIGhpZ2ggdmFsdWUgb2YgeSBcbiAgICAgKiBJdCBpcyBhcHBsaWNhYmxlIGZvciBzZXJpZXMgYW5kIHRlY2huaWNhbCBpbmRpY2F0b3JzXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgaGlnaDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgVVJMIGZvciB0aGUgSW1hZ2UgdGhhdCBpcyB0byBiZSBkaXNwbGF5ZWQgYXMgYSBMZWdlbmQgaWNvbi4gIEl0IHJlcXVpcmVzICBgbGVnZW5kU2hhcGVgIHZhbHVlIHRvIGJlIGFuIGBJbWFnZWAuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgbGVnZW5kSW1hZ2VVcmw6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIHNoYXBlIG9mIHRoZSBsZWdlbmQuIEVhY2ggc2VyaWVzIGhhcyBpdHMgb3duIGxlZ2VuZCBzaGFwZS4gVGhleSBhcmUgXG4gICAgICogKiBDaXJjbGUgLSBSZW5kZXJzIGEgY2lyY2xlLiBcbiAgICAgKiAqIFJlY3RhbmdsZSAtIFJlbmRlcnMgYSByZWN0YW5nbGUuIFxuICAgICAqICogVHJpYW5nbGUgLSBSZW5kZXJzIGEgdHJpYW5nbGUuIFxuICAgICAqICogRGlhbW9uZCAtIFJlbmRlcnMgYSBkaWFtb25kLiBcbiAgICAgKiAqIENyb3NzIC0gUmVuZGVycyBhIGNyb3NzLiBcbiAgICAgKiAqIEhvcml6b250YWxMaW5lIC0gUmVuZGVycyBhIGhvcml6b250YWxMaW5lLiBcbiAgICAgKiAqIFZlcnRpY2FsTGluZSAtIFJlbmRlcnMgYSB2ZXJ0aWNhbExpbmUuIFxuICAgICAqICogUGVudGFnb24gLSBSZW5kZXJzIGEgcGVudGFnb24uIFxuICAgICAqICogSW52ZXJ0ZWRUcmlhbmdsZSAtIFJlbmRlcnMgYSBpbnZlcnRlZFRyaWFuZ2xlLiBcbiAgICAgKiAqIFNlcmllc1R5cGUgLVJlbmRlciBhIGxlZ2VuZCBzaGFwZSBiYXNlZCBvbiBzZXJpZXMgdHlwZS4gXG4gICAgICogKiBJbWFnZSAtUmVuZGVyIGEgaW1hZ2UuICAgICAqXG4gICAgICogQGRlZmF1bHQgJ1Nlcmllc1R5cGUnXG4gICAgICovXG4gICAgcHVibGljIGxlZ2VuZFNoYXBlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBEYXRhU291cmNlIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIGxvdyB2YWx1ZSBvZiB5IFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnNcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBsb3c6IGFueTtcbiAgICAvKiogXG4gICAgICogT3B0aW9ucyBmb3IgZGlzcGxheWluZyBhbmQgY3VzdG9taXppbmcgbWFya2VycyBmb3IgaW5kaXZpZHVhbCBwb2ludHMgaW4gYSBzZXJpZXMuXG4gICAgICovXG4gICAgcHVibGljIG1hcmtlcjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VyaWVzIHZpc2libGUgaW4gbGVnZW5kLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIG5hbWU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIG9wYWNpdHkgb2YgdGhlIHNlcmllcy5cbiAgICAgKiBAZGVmYXVsdCAxXG4gICAgICovXG4gICAgcHVibGljIG9wYWNpdHk6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIERhdGFTb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgb3BlbiB2YWx1ZSBvZiB5IFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnNcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBvcGVuOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBEYXRhU291cmNlIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIGNvbG9yIHZhbHVlIG9mIHBvaW50IFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIHNlcmllc1xuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIHBvaW50Q29sb3JNYXBwaW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyBxdWVyeSB0byBzZWxlY3QgZGF0YSBmcm9tIERhdGFTb3VyY2UuIFRoaXMgcHJvcGVydHkgaXMgYXBwbGljYWJsZSBvbmx5IHdoZW4gdGhlIERhdGFTb3VyY2UgaXMgYGVqLkRhdGFNYW5hZ2VyYC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHF1ZXJ5OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEN1c3RvbSBzdHlsZSBmb3IgdGhlIHNlbGVjdGVkIHNlcmllcyBvciBwb2ludHMuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBzZWxlY3Rpb25TdHlsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgcHJvdmlkZWQgdmFsdWUgd2lsbCBiZSBjb25zaWRlcmVkIGFzIGEgVG9vbHRpcCBuYW1lXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9vbHRpcE1hcHBpbmdOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIGNvbGxlY3Rpb24gb2YgdHJlbmRsaW5lcyB0aGF0IGFyZSB1c2VkIHRvIHByZWRpY3QgdGhlIHRyZW5kXG4gICAgICovXG4gICAgcHVibGljIHRyZW5kbGluZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSB2aXNpYmlsaXR5IG9mIHNlcmllcy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHZpc2libGU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgZGF0YSBzb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgdm9sdW1lIHZhbHVlIGluIGNhbmRsZSBjaGFydHMgXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3IgZmluYW5jaWFsIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnNcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyB2b2x1bWU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIHN0cm9rZSB3aWR0aCBmb3IgdGhlIHNlcmllcyB0aGF0IGlzIGFwcGxpY2FibGUgb25seSBmb3IgYExpbmVgIHR5cGUgc2VyaWVzLiBcbiAgICAgKiBJdCBhbHNvIHJlcHJlc2VudHMgdGhlIHN0cm9rZSB3aWR0aCBvZiB0aGUgc2lnbmFsIGxpbmVzIGluIHRlY2huaWNhbCBpbmRpY2F0b3JzLlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKi9cbiAgICBwdWJsaWMgd2lkdGg6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGhvcml6b250YWwgYXhpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNlcmllcy4gSXQgcmVxdWlyZXMgYGF4ZXNgIG9mIHRoZSBjaGFydC4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3Igc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9yc1xuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgeEF4aXNOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBEYXRhU291cmNlIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIHggdmFsdWUuIFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnNcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyB4TmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgdmVydGljYWwgYXhpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHNlcmllcy4gSXQgcmVxdWlyZXMgYGF4ZXNgIG9mIHRoZSBjaGFydC4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3Igc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9yc1xuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgeUF4aXNOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBEYXRhU291cmNlIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIHkgdmFsdWUuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgeU5hbWU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHNldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UnLCB0aGlzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKG91dHB1dHMpO1xuICAgICAgICB0aGlzLmRpcmVjdGl2ZVByb3BMaXN0ID0gaW5wdXQ7XG4gICAgfVxufVxuXG4vKipcbiAqIFN0b2NrQ2hhcnRTZXJpZXMgQXJyYXkgRGlyZWN0aXZlXG4gKiBAcHJpdmF0ZVxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2Vqcy1zdG9ja2NoYXJ0PmUtc3RvY2tjaGFydC1zZXJpZXMtY29sbGVjdGlvbicsXG4gICAgcXVlcmllczoge1xuICAgICAgICBjaGlsZHJlbjogbmV3IENvbnRlbnRDaGlsZHJlbihTdG9ja0NoYXJ0U2VyaWVzRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFN0b2NrQ2hhcnRTZXJpZXNDb2xsZWN0aW9uRGlyZWN0aXZlIGV4dGVuZHMgQXJyYXlCYXNlPFN0b2NrQ2hhcnRTZXJpZXNDb2xsZWN0aW9uRGlyZWN0aXZlPiB7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCdzZXJpZXMnKTtcbiAgICB9XG59Il19
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWVzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdG9jay1jaGFydC9zZXJpZXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFaEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXZFLElBQUksS0FBSyxHQUFhLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ25oQixJQUFJLE9BQU8sR0FBYSxFQUFFLENBQUM7QUFDM0I7Ozs7Ozs7R0FPRztBQVNILE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxXQUFzQztJQTROakYsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQXhOOUMsU0FBSSxHQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUEwTm5DLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7O3NIQWpPUSx5QkFBeUI7MEdBQXpCLHlCQUF5Qixpa0NBSEksNkJBQTZCOzJGQUcxRCx5QkFBeUI7a0JBUnJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9EQUFvRDtvQkFDOUQsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxlQUFlLEVBQUUsSUFBSSxZQUFZLENBQUMsNkJBQTZCLENBQUM7cUJBQ25FO2lCQUNKOztBQXFPRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsU0FBOEM7SUFDbkc7UUFDSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEIsQ0FBQzs7Z0lBSFEsbUNBQW1DO29IQUFuQyxtQ0FBbUMsOEdBSFYseUJBQXlCOzJGQUdsRCxtQ0FBbUM7a0JBTi9DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLCtDQUErQztvQkFDekQsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyx5QkFBeUIsQ0FBQztxQkFDM0Q7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIFZpZXdDb250YWluZXJSZWYsIENvbnRlbnRDaGlsZHJlbiwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wbGV4QmFzZSwgQXJyYXlCYXNlLCBzZXRWYWx1ZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWJhc2UnO1xuXG5pbXBvcnQgeyBTdG9ja0NoYXJ0VHJlbmRsaW5lc0RpcmVjdGl2ZSB9IGZyb20gJy4vdHJlbmRsaW5lcy5kaXJlY3RpdmUnO1xuXG5sZXQgaW5wdXQ6IHN0cmluZ1tdID0gWydhbmltYXRpb24nLCAnYmVhckZpbGxDb2xvcicsICdib3JkZXInLCAnYnVsbEZpbGxDb2xvcicsICdjYXJkaW5hbFNwbGluZVRlbnNpb24nLCAnY2xvc2UnLCAnY29sdW1uU3BhY2luZycsICdjb2x1bW5XaWR0aCcsICdjb3JuZXJSYWRpdXMnLCAnZGFzaEFycmF5JywgJ2RhdGFTb3VyY2UnLCAnZW1wdHlQb2ludFNldHRpbmdzJywgJ2VuYWJsZVNvbGlkQ2FuZGxlcycsICdlbmFibGVUb29sdGlwJywgJ2ZpbGwnLCAnaGlnaCcsICdsZWdlbmRJbWFnZVVybCcsICdsZWdlbmRTaGFwZScsICdsb3cnLCAnbWFya2VyJywgJ25hbWUnLCAnb3BhY2l0eScsICdvcGVuJywgJ3BvaW50Q29sb3JNYXBwaW5nJywgJ3F1ZXJ5JywgJ3NlbGVjdGlvblN0eWxlJywgJ3Nob3dOZWFyZXN0VG9vbHRpcCcsICd0b29sdGlwTWFwcGluZ05hbWUnLCAndHJlbmRsaW5lcycsICd0eXBlJywgJ3Zpc2libGUnLCAndm9sdW1lJywgJ3dpZHRoJywgJ3hBeGlzTmFtZScsICd4TmFtZScsICd5QXhpc05hbWUnLCAneU5hbWUnXTtcbmxldCBvdXRwdXRzOiBzdHJpbmdbXSA9IFtdO1xuLyoqXG4gKiBTZXJpZXMgRGlyZWN0aXZlXG4gKiBgYGBodG1sXG4gKiA8ZS1zdG9ja2NoYXJ0LXNlcmllcy1jb2xsZWN0aW9uPlxuICogPGUtc3RvY2tjaGFydC1zZXJpZXM+PC9lLXN0b2NrY2hhcnQtc2VyaWVzPlxuICogPC9lLXN0b2NrY2hhcnQtc2VyaWVzLWNvbGxlY3Rpb24+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdlLXN0b2NrY2hhcnQtc2VyaWVzLWNvbGxlY3Rpb24+ZS1zdG9ja2NoYXJ0LXNlcmllcycsXG4gICAgaW5wdXRzOiBpbnB1dCxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLCAgICBcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkVHJlbmRsaW5lczogbmV3IENvbnRlbnRDaGlsZChTdG9ja0NoYXJ0VHJlbmRsaW5lc0RpcmVjdGl2ZSlcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFN0b2NrQ2hhcnRTZXJpZXNEaXJlY3RpdmUgZXh0ZW5kcyBDb21wbGV4QmFzZTxTdG9ja0NoYXJ0U2VyaWVzRGlyZWN0aXZlPiB7XG4gICAgcHVibGljIGRpcmVjdGl2ZVByb3BMaXN0OiBhbnk7XG5cdFxuICAgIHB1YmxpYyBjaGlsZFRyZW5kbGluZXM6IGFueTtcbiAgICBwdWJsaWMgdGFnczogc3RyaW5nW10gPSBbJ3RyZW5kbGluZXMnXTtcbiAgICAvKiogXG4gICAgICogVGhlIHR5cGUgb2YgdGhlIHNlcmllcyBhcmUgXG4gICAgICogKiBMaW5lIFxuICAgICAqICogQ29sdW1uIFxuICAgICAqICogQXJlYSBcbiAgICAgKiAqIFNwbGluZSBcbiAgICAgKiAqIEhpbG8gXG4gICAgICogKiBIaWxvT3BlbkNsb3NlIFxuICAgICAqICogQ2FuZGxlXG4gICAgICogQGRlZmF1bHQgJ0NhbmRsZSdcbiAgICAgKi9cbiAgICBwdWJsaWMgdHlwZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBPcHRpb25zIHRvIGN1c3RvbWl6aW5nIGFuaW1hdGlvbiBmb3IgdGhlIHNlcmllcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYW5pbWF0aW9uOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoaXMgcHJvcGVydHkgaXMgdXNlZCBpbiBzdG9jayBjaGFydHMgdG8gdmlzdWFsaXplIHRoZSBwcmljZSBtb3ZlbWVudHMgaW4gc3RvY2suIFxuICAgICAqIEl0IGRlZmluZXMgdGhlIGNvbG9yIG9mIHRoZSBjYW5kbGUvcG9pbnQsIHdoZW4gdGhlIG9wZW5pbmcgcHJpY2UgaXMgbGVzcyB0aGFuIHRoZSBjbG9zaW5nIHByaWNlLlxuICAgICAqIEBkZWZhdWx0ICcjMmVjZDcxJ1xuICAgICAqL1xuICAgIHB1YmxpYyBiZWFyRmlsbENvbG9yOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIE9wdGlvbnMgdG8gY3VzdG9taXppbmcgdGhlIGJvcmRlciBvZiB0aGUgc2VyaWVzLiBUaGlzIGlzIGFwcGxpY2FibGUgb25seSBmb3IgYENvbHVtbmAgYW5kIGBCYXJgIHR5cGUgc2VyaWVzLlxuICAgICAqL1xuICAgIHB1YmxpYyBib3JkZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBpcyB1c2VkIGluIGZpbmFuY2lhbCBjaGFydHMgdG8gdmlzdWFsaXplIHRoZSBwcmljZSBtb3ZlbWVudHMgaW4gc3RvY2suIFxuICAgICAqIEl0IGRlZmluZXMgdGhlIGNvbG9yIG9mIHRoZSBjYW5kbGUvcG9pbnQsIHdoZW4gdGhlIG9wZW5pbmcgcHJpY2UgaXMgaGlnaGVyIHRoYW4gdGhlIGNsb3NpbmcgcHJpY2UuXG4gICAgICogQGRlZmF1bHQgJyNlNzRjM2QnXG4gICAgICovXG4gICAgcHVibGljIGJ1bGxGaWxsQ29sb3I6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgZGVmaW5lcyB0ZW5zaW9uIG9mIGNhcmRpbmFsIHNwbGluZSB0eXBlcy5cbiAgICAgKiBAZGVmYXVsdCAwLjVcbiAgICAgKi9cbiAgICBwdWJsaWMgY2FyZGluYWxTcGxpbmVUZW5zaW9uOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBEYXRhU291cmNlIGZpZWxkIHRoYXQgY29udGFpbnMgdGhlIGNsb3NlIHZhbHVlIG9mIHkgXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3Igc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9yc1xuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIGNsb3NlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRvIHJlbmRlciB0aGUgY29sdW1uIHNlcmllcyBwb2ludHMgd2l0aCBwYXJ0aWN1bGFyIGNvbHVtbiBzcGFjaW5nLiBJdCB0YWtlcyB2YWx1ZSBmcm9tIDAgLSAxLlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBwdWJsaWMgY29sdW1uU3BhY2luZzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUbyByZW5kZXIgdGhlIGNvbHVtbiBzZXJpZXMgcG9pbnRzIHdpdGggcGFydGljdWxhciBjb2x1bW4gd2lkdGguIElmIHRoZSBzZXJpZXMgdHlwZSBpcyBoaXN0b2dyYW0gdGhlIFxuICAgICAqIGRlZmF1bHQgdmFsdWUgaXMgMSBvdGhlcndpc2UgMC43LlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlaWdub3JlIFxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW5XaWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUbyByZW5kZXIgdGhlIGNvbHVtbiBzZXJpZXMgcG9pbnRzIHdpdGggcGFydGljdWxhciByb3VuZGVkIGNvcm5lci5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29ybmVyUmFkaXVzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHBhdHRlcm4gb2YgZGFzaGVzIGFuZCBnYXBzIHRvIHN0cm9rZSB0aGUgbGluZXMgaW4gYExpbmVgIHR5cGUgc2VyaWVzLlxuICAgICAqIEBkZWZhdWx0ICcwJ1xuICAgICAqL1xuICAgIHB1YmxpYyBkYXNoQXJyYXk6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBEYXRhU291cmNlIGZvciB0aGUgc2VyaWVzLiBJdCBjYW4gYmUgYW4gYXJyYXkgb2YgSlNPTiBvYmplY3RzIG9yIGFuIGluc3RhbmNlIG9mIERhdGFNYW5hZ2VyLlxuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIGRhdGFTb3VyY2U6IGFueTtcbiAgICAvKiogXG4gICAgICogb3B0aW9ucyB0byBjdXN0b21pemUgdGhlIGVtcHR5IHBvaW50cyBpbiBzZXJpZXMuXG4gICAgICovXG4gICAgcHVibGljIGVtcHR5UG9pbnRTZXR0aW5nczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGlzIHByb3BlcnR5IGlzIGFwcGxpY2FibGUgZm9yIGNhbmRsZSBzZXJpZXMuIFxuICAgICAqIEl0IGVuYWJsZXMvZGlzYWJsZXMgdG8gdmlzdWFsbHkgY29tcGFyZSB0aGUgY3VycmVudCB2YWx1ZXMgd2l0aCB0aGUgcHJldmlvdXMgdmFsdWVzIGluIHN0b2NrLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGVuYWJsZVNvbGlkQ2FuZGxlczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJZiBzZXQgdHJ1ZSwgdGhlIFRvb2x0aXAgZm9yIHNlcmllcyB3aWxsIGJlIHZpc2libGUuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBlbmFibGVUb29sdGlwOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBmaWxsIGNvbG9yIGZvciB0aGUgc2VyaWVzIHRoYXQgYWNjZXB0cyB2YWx1ZSBpbiBoZXggYW5kIHJnYmEgYXMgYSB2YWxpZCBDU1MgY29sb3Igc3RyaW5nLiBcbiAgICAgKiBJdCBhbHNvIHJlcHJlc2VudHMgdGhlIGNvbG9yIG9mIHRoZSBzaWduYWwgbGluZXMgaW4gdGVjaG5pY2FsIGluZGljYXRvcnMuIFxuICAgICAqIEZvciB0ZWNobmljYWwgaW5kaWNhdG9ycywgdGhlIGRlZmF1bHQgdmFsdWUgaXMgJ2JsdWUnIGFuZCBmb3Igc2VyaWVzLCBpdCBoYXMgbnVsbC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGZpbGw6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIERhdGFTb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgaGlnaCB2YWx1ZSBvZiB5IFxuICAgICAqIEl0IGlzIGFwcGxpY2FibGUgZm9yIHNlcmllcyBhbmQgdGVjaG5pY2FsIGluZGljYXRvcnNcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBoaWdoOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBVUkwgZm9yIHRoZSBJbWFnZSB0aGF0IGlzIHRvIGJlIGRpc3BsYXllZCBhcyBhIExlZ2VuZCBpY29uLiAgSXQgcmVxdWlyZXMgIGBsZWdlbmRTaGFwZWAgdmFsdWUgdG8gYmUgYW4gYEltYWdlYC5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyBsZWdlbmRJbWFnZVVybDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgc2hhcGUgb2YgdGhlIGxlZ2VuZC4gRWFjaCBzZXJpZXMgaGFzIGl0cyBvd24gbGVnZW5kIHNoYXBlLiBUaGV5IGFyZSBcbiAgICAgKiAqIENpcmNsZSAtIFJlbmRlcnMgYSBjaXJjbGUuIFxuICAgICAqICogUmVjdGFuZ2xlIC0gUmVuZGVycyBhIHJlY3RhbmdsZS4gXG4gICAgICogKiBUcmlhbmdsZSAtIFJlbmRlcnMgYSB0cmlhbmdsZS4gXG4gICAgICogKiBEaWFtb25kIC0gUmVuZGVycyBhIGRpYW1vbmQuIFxuICAgICAqICogQ3Jvc3MgLSBSZW5kZXJzIGEgY3Jvc3MuIFxuICAgICAqICogSG9yaXpvbnRhbExpbmUgLSBSZW5kZXJzIGEgaG9yaXpvbnRhbExpbmUuIFxuICAgICAqICogVmVydGljYWxMaW5lIC0gUmVuZGVycyBhIHZlcnRpY2FsTGluZS4gXG4gICAgICogKiBQZW50YWdvbiAtIFJlbmRlcnMgYSBwZW50YWdvbi4gXG4gICAgICogKiBJbnZlcnRlZFRyaWFuZ2xlIC0gUmVuZGVycyBhIGludmVydGVkVHJpYW5nbGUuIFxuICAgICAqICogU2VyaWVzVHlwZSAtUmVuZGVyIGEgbGVnZW5kIHNoYXBlIGJhc2VkIG9uIHNlcmllcyB0eXBlLiBcbiAgICAgKiAqIEltYWdlIC1SZW5kZXIgYSBpbWFnZS4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnU2VyaWVzVHlwZSdcbiAgICAgKi9cbiAgICBwdWJsaWMgbGVnZW5kU2hhcGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIERhdGFTb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgbG93IHZhbHVlIG9mIHkgXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3Igc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9yc1xuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIGxvdzogYW55O1xuICAgIC8qKiBcbiAgICAgKiBPcHRpb25zIGZvciBkaXNwbGF5aW5nIGFuZCBjdXN0b21pemluZyBtYXJrZXJzIGZvciBpbmRpdmlkdWFsIHBvaW50cyBpbiBhIHNlcmllcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgbWFya2VyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBzZXJpZXMgdmlzaWJsZSBpbiBsZWdlbmQuXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgbmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgb3BhY2l0eSBvZiB0aGUgc2VyaWVzLlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKi9cbiAgICBwdWJsaWMgb3BhY2l0eTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgRGF0YVNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSBvcGVuIHZhbHVlIG9mIHkgXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3Igc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9yc1xuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIG9wZW46IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIERhdGFTb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgY29sb3IgdmFsdWUgb2YgcG9pbnQgXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3Igc2VyaWVzXG4gICAgICogQGRlZmF1bHQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9pbnRDb2xvck1hcHBpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHF1ZXJ5IHRvIHNlbGVjdCBkYXRhIGZyb20gRGF0YVNvdXJjZS4gVGhpcyBwcm9wZXJ0eSBpcyBhcHBsaWNhYmxlIG9ubHkgd2hlbiB0aGUgRGF0YVNvdXJjZSBpcyBgZWouRGF0YU1hbmFnZXJgLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgcXVlcnk6IGFueTtcbiAgICAvKiogXG4gICAgICogQ3VzdG9tIHN0eWxlIGZvciB0aGUgc2VsZWN0ZWQgc2VyaWVzIG9yIHBvaW50cy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHNlbGVjdGlvblN0eWxlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIGRpc3BsYXkgb2YgdG9vbHRpcHMgZm9yIHRoZSBuZWFyZXN0IGRhdGEgcG9pbnQgdG8gdGhlIGN1cnNvciBmb3Igc2VyaWVzLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd05lYXJlc3RUb29sdGlwOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBwcm92aWRlZCB2YWx1ZSB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgYSBUb29sdGlwIG5hbWVcbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyB0b29sdGlwTWFwcGluZ05hbWU6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyB0aGUgY29sbGVjdGlvbiBvZiB0cmVuZGxpbmVzIHRoYXQgYXJlIHVzZWQgdG8gcHJlZGljdCB0aGUgdHJlbmRcbiAgICAgKi9cbiAgICBwdWJsaWMgdHJlbmRsaW5lczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHZpc2liaWxpdHkgb2Ygc2VyaWVzLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBwdWJsaWMgdmlzaWJsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHRoZSBkYXRhIHNvdXJjZSBmaWVsZCB0aGF0IGNvbnRhaW5zIHRoZSB2b2x1bWUgdmFsdWUgaW4gY2FuZGxlIGNoYXJ0cyBcbiAgICAgKiBJdCBpcyBhcHBsaWNhYmxlIGZvciBmaW5hbmNpYWwgc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9yc1xuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIHZvbHVtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgc3Ryb2tlIHdpZHRoIGZvciB0aGUgc2VyaWVzIHRoYXQgaXMgYXBwbGljYWJsZSBvbmx5IGZvciBgTGluZWAgdHlwZSBzZXJpZXMuIFxuICAgICAqIEl0IGFsc28gcmVwcmVzZW50cyB0aGUgc3Ryb2tlIHdpZHRoIG9mIHRoZSBzaWduYWwgbGluZXMgaW4gdGVjaG5pY2FsIGluZGljYXRvcnMuXG4gICAgICogQGRlZmF1bHQgMVxuICAgICAqL1xuICAgIHB1YmxpYyB3aWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgaG9yaXpvbnRhbCBheGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VyaWVzLiBJdCByZXF1aXJlcyBgYXhlc2Agb2YgdGhlIGNoYXJ0LiBcbiAgICAgKiBJdCBpcyBhcHBsaWNhYmxlIGZvciBzZXJpZXMgYW5kIHRlY2huaWNhbCBpbmRpY2F0b3JzXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB4QXhpc05hbWU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIERhdGFTb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgeCB2YWx1ZS4gXG4gICAgICogSXQgaXMgYXBwbGljYWJsZSBmb3Igc2VyaWVzIGFuZCB0ZWNobmljYWwgaW5kaWNhdG9yc1xuICAgICAqIEBkZWZhdWx0ICcnXG4gICAgICovXG4gICAgcHVibGljIHhOYW1lOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSB2ZXJ0aWNhbCBheGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgc2VyaWVzLiBJdCByZXF1aXJlcyBgYXhlc2Agb2YgdGhlIGNoYXJ0LiBcbiAgICAgKiBJdCBpcyBhcHBsaWNhYmxlIGZvciBzZXJpZXMgYW5kIHRlY2huaWNhbCBpbmRpY2F0b3JzXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyB5QXhpc05hbWU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIERhdGFTb3VyY2UgZmllbGQgdGhhdCBjb250YWlucyB0aGUgeSB2YWx1ZS5cbiAgICAgKiBAZGVmYXVsdCAnJ1xuICAgICAqL1xuICAgIHB1YmxpYyB5TmFtZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogU3RvY2tDaGFydFNlcmllcyBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLXN0b2NrY2hhcnQ+ZS1zdG9ja2NoYXJ0LXNlcmllcy1jb2xsZWN0aW9uJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKFN0b2NrQ2hhcnRTZXJpZXNEaXJlY3RpdmUpXG4gICAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU3RvY2tDaGFydFNlcmllc0NvbGxlY3Rpb25EaXJlY3RpdmUgZXh0ZW5kcyBBcnJheUJhc2U8U3RvY2tDaGFydFNlcmllc0NvbGxlY3Rpb25EaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ3NlcmllcycpO1xuICAgIH1cbn0iXX0=
|