@sd-angular/core 1.3.130 → 1.3.132

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.
@@ -16,7 +16,7 @@ export class SdChart {
16
16
  this.loadingStart = () => {
17
17
  this.isLoading = true;
18
18
  };
19
- _drawTotalOfStackedBar.set(this, () => {
19
+ _drawTotalOfStackedBar.set(this, (chartType) => {
20
20
  return {
21
21
  afterDraw(chartInstance, easing, options) {
22
22
  var _a, _b;
@@ -26,7 +26,7 @@ export class SdChart {
26
26
  let curLastIndex = 0;
27
27
  let curTotal = 0;
28
28
  chartInstance.data.datasets.forEach((dataset, setIndex) => {
29
- if (dataset.data[index] != 0 && (!dataset.hidden) && dataset.type === 'bar') {
29
+ if (dataset.data[index] != 0 && (!dataset.hidden) && dataset.type !== 'line') {
30
30
  curLastIndex = setIndex;
31
31
  if (Number.isNumber(dataset.data[index])) {
32
32
  curTotal += Number(dataset.data[index]);
@@ -46,7 +46,7 @@ export class SdChart {
46
46
  xTextPosition = x - textWidth - 10;
47
47
  }
48
48
  ctx.font = '300 10px';
49
- ctx.fillText(curTotal.toString(), xTextPosition, y - 10);
49
+ ctx.fillText(curTotal.toString(), chartType === 'horizontalBar' ? x + 10 : xTextPosition, chartType === 'horizontalBar' ? y : y - 10);
50
50
  });
51
51
  }
52
52
  },
@@ -297,30 +297,55 @@ export class SdChart {
297
297
  // const newwidth = Math.max(option.labels.length * option.datasets.length * labelWidth, $(this.chartWrapperRef.nativeElement).width());
298
298
  // $(this.chartAreaWrapperExtendRef.nativeElement).width(newwidth);
299
299
  // }
300
+ const plugins = [];
301
+ if (option.showTotalStack) {
302
+ plugins.push(__classPrivateFieldGet(this, _drawTotalOfStackedBar).call(this, option.type));
303
+ }
300
304
  const configuration = {
301
305
  options: {
302
306
  responsive: true,
303
307
  maintainAspectRatio: false,
304
308
  legend: {
305
- display: !option.hideLegend
309
+ display: !option.hideLegend,
310
+ onClick: (event, legendItem) => {
311
+ let index = legendItem.datasetIndex;
312
+ let ci = this.chart;
313
+ let meta = ci.getDatasetMeta(index);
314
+ if (option.showTotalStack) {
315
+ event.stopPropagation();
316
+ }
317
+ else {
318
+ // See controller.isDatasetVisible comment
319
+ meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;
320
+ // We hid a dataset ... rerender the chart
321
+ ci.update();
322
+ }
323
+ },
324
+ },
325
+ layout: {
326
+ padding: {
327
+ right: 20
328
+ }
306
329
  },
307
330
  scales: {
308
331
  xAxes: [{
309
332
  display: true,
310
333
  scaleLabel: {
311
334
  display: !!option.xTitle,
312
- labelString: option.xTitle || ''
335
+ labelString: option.xTitle || '',
313
336
  },
337
+ stacked: true,
314
338
  ticks: {
315
339
  beginAtZero: (_a = option.beginAtZero) !== null && _a !== void 0 ? _a : true,
316
340
  callback: (value, index) => {
317
341
  var _a;
318
342
  return ((_a = option.ticks) === null || _a === void 0 ? void 0 : _a.xLabel(value, index)) || (Number.isNumber(value) ? Number.toVNCurrency(value) : value);
319
343
  }
320
- }
344
+ },
321
345
  }],
322
346
  yAxes: [{
323
347
  display: true,
348
+ stacked: true,
324
349
  ticks: {
325
350
  callback: (value, index) => {
326
351
  var _a;
@@ -364,7 +389,8 @@ export class SdChart {
364
389
  };
365
390
  return result;
366
391
  })
367
- }
392
+ },
393
+ plugins: plugins
368
394
  };
369
395
  if (option.hover === 'ShowAll') {
370
396
  configuration.options.tooltips = Object.assign(Object.assign({}, configuration.options.tooltips), { mode: 'index', intersect: false });
@@ -547,10 +573,10 @@ export class SdChart {
547
573
  this.isLoading = false;
548
574
  }
549
575
  renderBarLineChart(option) {
550
- var _a, _b, _c;
576
+ var _a, _b, _c, _d;
551
577
  const plugins = [];
552
578
  if (option.showTotalStack) {
553
- plugins.push(__classPrivateFieldGet(this, _drawTotalOfStackedBar).call(this));
579
+ plugins.push(__classPrivateFieldGet(this, _drawTotalOfStackedBar).call(this, option.type));
554
580
  }
555
581
  const labelWidth = (_a = option.labelWidth) !== null && _a !== void 0 ? _a : 50;
556
582
  if (option.datasets.length) {
@@ -616,11 +642,21 @@ export class SdChart {
616
642
  maintainAspectRatio: false,
617
643
  legend: {
618
644
  display: !option.hideLegend,
619
- onClick(event, legendItem) {
645
+ onClick: (event, legendItem) => {
646
+ let index = legendItem.datasetIndex;
647
+ let ci = this.chart;
648
+ let meta = ci.getDatasetMeta(index);
620
649
  if (option.showTotalStack) {
621
650
  event.stopPropagation();
622
651
  }
652
+ else {
653
+ // See controller.isDatasetVisible comment
654
+ meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;
655
+ // We hid a dataset ... rerender the chart
656
+ ci.update();
657
+ }
623
658
  },
659
+ position: (_d = option === null || option === void 0 ? void 0 : option.legendPosition) !== null && _d !== void 0 ? _d : 'top'
624
660
  },
625
661
  layout: {
626
662
  padding: 10
@@ -718,4 +754,4 @@ SdChart.propDecorators = {
718
754
  chartAxisRef: [{ type: ViewChild, args: ['chartAxis',] }],
719
755
  chartAreaWrapperExtendRef: [{ type: ViewChild, args: ['chartAreaWrapperExtend',] }]
720
756
  };
721
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jaGFydC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsU0FBUyxFQUFjLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sS0FBSyxLQUFLLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFTTCxZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBTzdCLE1BQU0sT0FBTyxPQUFPO0lBcUJsQixZQUNVLEdBQXNCLEVBQ1ksa0JBQXVDO1FBRHpFLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ1ksdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFxQjtRQXRCM0UsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFNUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQWNsQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsV0FBTSxHQUFHLE9BQU8sQ0FBQztRQTBxQmpCLGlCQUFZLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsQ0FBQTtRQVNELGlDQUF5QixHQUEwQyxFQUFFO1lBQ25FLE9BQVE7Z0JBQ04sU0FBUyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsT0FBTzs7b0JBQ3RDLGdCQUFJLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSxJQUFJLDBDQUFFLFFBQVEsMENBQUUsTUFBTSxFQUFDO3dCQUN4QyxNQUFNLEdBQUcsR0FB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T25Jbml0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBDaGFydCBmcm9tICdjaGFydC5qcyc7XHJcbmltcG9ydCB7XHJcbiAgU2RDaGFydE9wdGlvbixcclxuICBCYXJDaGFydE9wdGlvbixcclxuICBMaW5lQ2hhcnRPcHRpb24sXHJcbiAgUGllQ2hhcnRPcHRpb24sXHJcbiAgQmFyTGluZUNoYXJ0T3B0aW9uLFxyXG4gIFN0YWNrQXJlYUNoYXJ0T3B0aW9uLFxyXG4gIEhvcml6b250YWxCYXJDaGFydE9wdGlvbixcclxuICBJQ2hhcnRDb25maWd1cmF0aW9uLFxyXG4gIENIQVJUX0NPTkZJRyxcclxuICBEb3VnaG51dENoYXJ0T3B0aW9uXHJcbn0gZnJvbSAnLi9jaGFydC5tb2RlbCc7XHJcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWNoYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQ2hhcnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIHBDaGFydE9wdGlvbjogU2RDaGFydE9wdGlvbjtcclxuICBpc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGNoYXJ0T3B0aW9uKGNoYXJ0T3B0aW9uOiBTZENoYXJ0T3B0aW9uKSB7XHJcbiAgICB0aGlzLnBDaGFydE9wdGlvbiA9IGNoYXJ0T3B0aW9uO1xyXG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgdGhpcy5yZW5kZXJDaGFydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnY2hhcnQnKSBjaGFydFJlZjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjaGFydFdyYXBwZXInKSBjaGFydFdyYXBwZXJSZWY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRBeGlzJykgY2hhcnRBeGlzUmVmOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0QXJlYVdyYXBwZXJFeHRlbmQnKSBjaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmOiBFbGVtZW50UmVmO1xyXG4gIGNoYXJ0OiBDaGFydDtcclxuICB2aXNpYmxlID0gdHJ1ZTtcclxuICBoZWlnaHQgPSAnMzAwcHgnO1xyXG4gIHByaXZhdGUgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDSEFSVF9DT05GSUcpIHByaXZhdGUgY2hhcnRDb25maWd1cmF0aW9uOiBJQ2hhcnRDb25maWd1cmF0aW9uXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMucmVuZGVyQ2hhcnQodHJ1ZSk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcmVuZGVyQ2hhcnQoZmlyc3RSZW5kZXI/OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmhlaWdodCA9IHRoaXMucENoYXJ0T3B0aW9uPy5oZWlnaHQgfHwgJzMwMHB4JztcclxuICAgIGlmICghZmlyc3RSZW5kZXIpIHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAyMDApKTtcclxuICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAyMDApKTtcclxuICAgIGlmICh0aGlzLmNoYXJ0UmVmPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuY2hhcnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MQ2FudmFzRWxlbWVudDtcclxuICAgICAgdGhpcy5jdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgc3dpdGNoICh0aGlzLnBDaGFydE9wdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAncGllJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyUGllQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYmFyJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyQmFyQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaG9yaXpvbnRhbEJhcic6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckhvcml6b250YWxCYXJDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdsaW5lJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyTGluZUNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3N0YWNrQXJlYSc6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlclN0YWNrQXJlYUNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2JhcmxpbmUnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJCYXJMaW5lQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZG91Z2hudXQnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJEb3VnaG51dENoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyUGllQ2hhcnQob3B0aW9uOiBQaWVDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICB0eXBlOiAncGllJyxcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgdGl0bGU6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBvcHRpb24udGl0bGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWwgPyBgWyR7ZGF0YXNldExhYmVsfV0gYCA6ICcnfSR7bGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24uZGF0YXNldHM/Lm1hcChlID0+IGUubGFiZWwpIHx8IFtdLFxyXG4gICAgICAgIGRhdGFzZXRzOiBbe1xyXG4gICAgICAgICAgZGF0YTogb3B0aW9uLmRhdGFzZXRzPy5tYXAoZSA9PiBlLnZhbHVlKSB8fCBbXSxcclxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogb3B0aW9uLmRhdGFzZXRzPy5tYXAoKGUsIGlkeCkgPT4gZS5iYWNrZ3JvdW5kQ29sb3JcclxuICAgICAgICAgICAgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3JcclxuICAgICAgICAgICAgfHwgdGhpcy5keW5hbWljQ29sb3IpIHx8IFtdXHJcbiAgICAgICAgfV1cclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckRvdWdobnV0Q2hhcnQob3B0aW9uOkRvdWdobnV0Q2hhcnRPcHRpb24pe1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICB0eXBlOiAnZG91Z2hudXQnLFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOmZhbHNlLFxyXG4gICAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgdGV4dDogb3B0aW9uLnRpdGxlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsID8gYFske2RhdGFzZXRMYWJlbH1dIGAgOiAnJ30ke2xhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmRhdGFzZXRzPy5tYXAoZSA9PiBlLmxhYmVsKSB8fCBbXSxcclxuICAgICAgICBkYXRhc2V0czogW3tcclxuICAgICAgICAgIGRhdGE6IG9wdGlvbi5kYXRhc2V0cz8ubWFwKGUgPT4gZS52YWx1ZSkgfHwgW10sXHJcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IG9wdGlvbi5kYXRhc2V0cz8ubWFwKChlLCBpZHgpID0+IGUuYmFja2dyb3VuZENvbG9yXHJcbiAgICAgICAgICAgIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yXHJcbiAgICAgICAgICAgIHx8IHRoaXMuZHluYW1pY0NvbG9yKSB8fCBbXVxyXG4gICAgICAgIH1dXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJCYXJDaGFydChvcHRpb246IEJhckNoYXJ0T3B0aW9uKSB7XHJcbiAgICBjb25zdCBsYWJlbFdpZHRoID0gb3B0aW9uLmxhYmVsV2lkdGggPz8gNTA7XHJcbiAgICBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgICAvLyBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogb3B0aW9uLmRhdGFzZXRzLmxlbmd0aCAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgY29uc3QgbmV3d2lkdGggPSBvcHRpb24ubGFiZWxzLmxlbmd0aCAqIG9wdGlvbi5kYXRhc2V0cy5sZW5ndGggKiBsYWJlbFdpZHRoO1xyXG4gICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBiZWdpbkF0WmVybzogb3B0aW9uLmJlZ2luQXRaZXJvID8/IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsLFxyXG4gICAgICAgICAgICBmaWxsOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVySG9yaXpvbnRhbEJhckNoYXJ0KG9wdGlvbjogSG9yaXpvbnRhbEJhckNoYXJ0T3B0aW9uKSB7XHJcbiAgICAvLyBjb25zdCBsYWJlbFdpZHRoID0gb3B0aW9uLmxhYmVsV2lkdGggPz8gNTA7XHJcbiAgICAvLyBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgLy8gICBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogb3B0aW9uLmRhdGFzZXRzLmxlbmd0aCAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAvLyAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgIC8vIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmRcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBiZWdpbkF0WmVybzogb3B0aW9uLmJlZ2luQXRaZXJvID8/IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0eXBlOiAnaG9yaXpvbnRhbEJhcicsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsLFxyXG4gICAgICAgICAgICBmaWxsOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyTGluZUNoYXJ0KG9wdGlvbjogTGluZUNoYXJ0T3B0aW9uKSB7XHJcbiAgICBjb25zdCBsYWJlbFdpZHRoID0gb3B0aW9uLmxhYmVsV2lkdGggPz8gNTA7XHJcbiAgICBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgICAvLyBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgICAgLy8gJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aDtcclxuICAgICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkuY3NzKCd3aWR0aCcsIGBtYXgoMTAwJSwke25ld3dpZHRofXB4KWApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueExhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9XSxcclxuICAgICAgICAgIHlBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0eXBlOiAnbGluZScsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsLFxyXG4gICAgICAgICAgICBmaWxsOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogZS5ib3JkZXJDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJvcmRlckNvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgZGF0YTogZS5kYXRhLFxyXG4gICAgICAgICAgICBsaW5lVGVuc2lvbjogMCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJTdGFja0FyZWFDaGFydChvcHRpb246IFN0YWNrQXJlYUNoYXJ0T3B0aW9uKSB7XHJcbiAgICBjb25zdCBsYWJlbFdpZHRoID0gb3B0aW9uLmxhYmVsV2lkdGggPz8gNTA7XHJcbiAgICBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgICAvLyBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgICAgLy8gJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aDtcclxuICAgICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkuY3NzKCd3aWR0aCcsIGBtYXgoMTAwJSwke25ld3dpZHRofXB4KWApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueExhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9XSxcclxuICAgICAgICAgIHlBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdGFja2VkOiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0eXBlOiAnbGluZScsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsLFxyXG4gICAgICAgICAgICAvLyBmaWxsOiBlLmJhY2tncm91bmRDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBlLmJvcmRlckNvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYm9yZGVyQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIGxpbmVUZW5zaW9uOiAwLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckJhckxpbmVDaGFydChvcHRpb246IEJhckxpbmVDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgcGx1Z2luczpDaGFydC5QbHVnaW5TZXJ2aWNlUmVnaXN0cmF0aW9uT3B0aW9uc1tdID0gW107XHJcbiAgICBpZiAob3B0aW9uLnNob3dUb3RhbFN0YWNrKXtcclxuICAgICAgcGx1Z2lucy5wdXNoKHRoaXMuI2RyYXdUb3RhbE9mU3RhY2tlZEJhcigpKVxyXG4gICAgfVxyXG4gICAgY29uc3QgbGFiZWxXaWR0aCA9IG9wdGlvbi5sYWJlbFdpZHRoID8/IDUwO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5sZW5ndGgpIHtcclxuICAgICAgY29uc3QgbnVtYmVyT2ZCYXJzID0gb3B0aW9uLmRhdGFzZXRzLmZpbHRlcihlID0+IGUudHlwZSA9PT0gJ2JhcicpLmxlbmd0aDtcclxuICAgICAgaWYgKG51bWJlck9mQmFycyA8PSAxKSB7XHJcbiAgICAgICAgLy8gY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAgICAgLy8gJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgICAgIGNvbnN0IG5ld3dpZHRoID0gb3B0aW9uLmxhYmVscy5sZW5ndGggKiBsYWJlbFdpZHRoO1xyXG4gICAgICAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLmNzcygnd2lkdGgnLCBgbWF4KDEwMCUsJHtuZXd3aWR0aH1weClgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbnVtYmVyT2ZCYXJzICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgICAgY29uc3QgbmV3d2lkdGggPSBvcHRpb24ubGFiZWxzLmxlbmd0aCAqIG51bWJlck9mQmFycyAqIGxhYmVsV2lkdGg7XHJcbiAgICAgICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkuY3NzKCd3aWR0aCcsIGBtYXgoMTAwJSwke25ld3dpZHRofXB4KWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBsZWZ0SWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgICBjb25zdCByaWdodElkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICAgY29uc3QgeUF4ZXMgPSBbe1xyXG4gICAgICB0eXBlOiAnbGluZWFyJyxcclxuICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgcG9zaXRpb246ICdsZWZ0JyxcclxuICAgICAgaWQ6IGxlZnRJZCxcclxuICAgICAgdGlja3M6IHtcclxuICAgICAgICBiZWdpbkF0WmVybzogb3B0aW9uLmJlZ2luQXRaZXJvID8/IHRydWUsXHJcbiAgICAgICAgc3VnZ2VzdGVkTWluOiAwLFxyXG4gICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHN0YWNrZWQ6ISFvcHRpb24ueVN0YWNrZWQsXHJcbiAgICB9XTtcclxuICAgIGlmIChvcHRpb24uZGF0YXNldHMuc29tZShlID0+IGUueUFsaWduID09PSAncmlnaHQnKSkge1xyXG4gICAgICB5QXhlcy5wdXNoKHtcclxuICAgICAgICB0eXBlOiAnbGluZWFyJyxcclxuICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgIHBvc2l0aW9uOiAncmlnaHQnLFxyXG4gICAgICAgIGlkOiByaWdodElkLFxyXG4gICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICBiZWdpbkF0WmVybzogb3B0aW9uLmJlZ2luQXRaZXJvID8/IHRydWUsXHJcbiAgICAgICAgICBzdWdnZXN0ZWRNaW46IDAsXHJcbiAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueVJpZ2h0TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVJpZ2h0VGl0bGUsXHJcbiAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlSaWdodFRpdGxlIHx8ICcnXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzdGFja2VkOiEhb3B0aW9uLnlTdGFja2VkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmQsXHJcbiAgICAgICAgICBvbkNsaWNrKGV2ZW50LCBsZWdlbmRJdGVtKSB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb24uc2hvd1RvdGFsU3RhY2sgKXtcclxuICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxheW91dDp7XHJcbiAgICAgICAgICBwYWRkaW5nOjEwXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgIHRleHQ6IG9wdGlvbi50aXRsZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueExhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN0YWNrZWQ6ICEhb3B0aW9uLnhTdGFja2VkXHJcbiAgICAgICAgICB9XSxcclxuICAgICAgICAgIHlBeGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczogeyAgICAgICAgICBcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgICAgICAgZGF0YXNldEluZGV4OiB0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXgsXHJcbiAgICAgICAgICAgICAgICBkYXRhSW5kZXg6dG9vbHRpcEl0ZW0uaW5kZXhcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWwgPyBgWyR7ZGF0YXNldExhYmVsfV0gYCA6ICcnfSAke2xhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgdHlwZTogZS50eXBlLFxyXG4gICAgICAgICAgICBsYWJlbDogZS5sYWJlbCxcclxuICAgICAgICAgICAgZmlsbDogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGUuYm9yZGVyQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5ib3JkZXJDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgeUF4aXNJRDogZS55QWxpZ24gPT09ICdyaWdodCcgPyByaWdodElkIDogbGVmdElkLFxyXG4gICAgICAgICAgICBsaW5lVGVuc2lvbjogMCxcclxuICAgICAgICAgICAgb3JkZXI6ZS5vcmRlciA/PyAxXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KSxcclxuICAgICAgfSxcclxuICAgICAgcGx1Z2luczogcGx1Z2luc1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBsb2FkaW5nU3RhcnQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBkeW5hbWljQ29sb3IoKSB7XHJcbiAgICBjb25zdCByID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIGNvbnN0IGcgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTUpO1xyXG4gICAgY29uc3QgYiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICByZXR1cm4gJ3JnYignICsgciArICcsJyArIGcgKyAnLCcgKyBiICsgJyknO1xyXG4gIH1cclxuXHJcbiAgI2RyYXdUb3RhbE9mU3RhY2tlZEJhciA9ICgpOkNoYXJ0LlBsdWdpblNlcnZpY2VSZWdpc3RyYXRpb25PcHRpb25zID0+IHtcclxuICAgIHJldHVybiAge1xyXG4gICAgICBhZnRlckRyYXcoY2hhcnRJbnN0YW5jZSwgZWFzaW5nLCBvcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKGNoYXJ0SW5zdGFuY2U/LmRhdGE/LmRhdGFzZXRzPy5sZW5ndGgpe1xyXG4gICAgICAgICAgY29uc3QgY3R4ID0gY2hhcnRJbnN0YW5jZS5jdHg7XHJcbiAgICAgICAgICBjaGFydEluc3RhbmNlLmRhdGEuZGF0YXNldHNbMF0uZGF0YS5mb3JFYWNoKCAgKGRhdGFQb2ludCxpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBjdXJMYXN0SW5kZXggPSAwO1xyXG4gICAgICAgICAgICAgIGxldCBjdXJUb3RhbCA9IDA7XHJcbiAgICAgICAgICAgICAgY2hhcnRJbnN0YW5jZS5kYXRhLmRhdGFzZXRzLmZvckVhY2goIChkYXRhc2V0LHNldEluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YXNldC5kYXRhW2luZGV4XSAhPSAwICYmICghZGF0YXNldC5oaWRkZW4pICYmIGRhdGFzZXQudHlwZSA9PT0gJ2Jhcicpe1xyXG4gICAgICAgICAgICAgICAgICBjdXJMYXN0SW5kZXggPSBzZXRJbmRleDtcclxuICAgICAgICAgICAgICAgICAgaWYgKE51bWJlci5pc051bWJlcihkYXRhc2V0LmRhdGFbaW5kZXhdKSl7XHJcbiAgICAgICAgICAgICAgICAgICAgY3VyVG90YWwgKz0gTnVtYmVyKGRhdGFzZXQuZGF0YVtpbmRleF0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIGVsc2UgY3VyVG90YWwgKz0gMDtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIGNvbnN0IHt4LHl9ID0gY2hhcnRJbnN0YW5jZS5nZXREYXRhc2V0TWV0YShjdXJMYXN0SW5kZXgpLmRhdGFbaW5kZXhdLl9tb2RlbDtcclxuICAgICAgICAgICAgICBjb25zdCB0ZXh0V2lkdGggPSBjdHgubWVhc3VyZVRleHQoY3VyVG90YWwudG9TdHJpbmcoKSkud2lkdGg7XHJcbiAgICAgICAgICAgICAgY3R4LmZpbGxTdHlsZT0gJ2JsYWNrJztcclxuICAgICAgICAgICAgICBsZXQgeFRleHRQb3NpdGlvbiA9ICh4LXRleHRXaWR0aC8yICkgLSB0ZXh0V2lkdGggPiAwID8gKHgtdGV4dFdpZHRoLzIgKSA6IDA7XHJcbiAgICAgICAgICAgICAgaWYgKGluZGV4ID09IDApe1xyXG4gICAgICAgICAgICAgICAgeFRleHRQb3NpdGlvbiA9IHggKyAxMDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaW5kZXggPT09IGNoYXJ0SW5zdGFuY2UuZGF0YS5kYXRhc2V0c1swXS5kYXRhLmxlbmd0aCAtIDEgKXtcclxuICAgICAgICAgICAgICAgIHhUZXh0UG9zaXRpb24gPSB4IC0gdGV4dFdpZHRoIC0gMTA7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGN0eC5mb250ID0gJzMwMCAxMHB4J1xyXG4gICAgICAgICAgICAgIGN0eC5maWxsVGV4dChjdXJUb3RhbC50b1N0cmluZygpLHhUZXh0UG9zaXRpb24seS0xMCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9ICAgICAgICAgXHJcbiAgICAgIH0sXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
757
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9jaGFydC8iLCJzb3VyY2VzIjpbInNyYy9saWIvY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBeUIsU0FBUyxFQUFjLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sS0FBSyxLQUFLLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFTTCxZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBTzdCLE1BQU0sT0FBTyxPQUFPO0lBcUJsQixZQUNVLEdBQXNCLEVBQ1ksa0JBQXVDO1FBRHpFLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ1ksdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFxQjtRQXRCM0UsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFNUIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQWNsQixZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsV0FBTSxHQUFHLE9BQU8sQ0FBQztRQWl0QmpCLGlCQUFZLEdBQUcsR0FBRyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUMsQ0FBQTtRQVNELGlDQUF5QixDQUFDLFNBQTZDLEVBQXlDLEVBQUU7WUFDaEgsT0FBUTtnQkFDTixTQUFTLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxPQUFPOztvQkFDdEMsZ0JBQUksYUFBYSxhQUFiLGFBQWEsdUJBQWIsYUFBYSxDQUFFLElBQUksMENBQUUsUUFBUSwwQ0FBRSxNQUFNLEVBQUM7d0JBQ3hDLE1B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LENBQUM7UUFDMUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDMUMsT0FBTyxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDOUMsQ0FBQzs7OztZQWp2QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2dCQUNwQixtZ0JBQXFDOzthQUV0Qzs7O1lBckJ3RSxpQkFBaUI7NENBNkNyRixRQUFRLFlBQUksTUFBTSxTQUFDLFlBQVk7OzswQkFsQmpDLEtBQUs7dUJBT0wsU0FBUyxTQUFDLE9BQU87OEJBQ2pCLFNBQVMsU0FBQyxjQUFjOzJCQUN4QixTQUFTLFNBQUMsV0FBVzt3Q0FDckIsU0FBUyxTQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIElucHV0LCBDaGFuZ2VEZXRlY3RvclJlZiwgT3B0aW9uYWwsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBDaGFydCBmcm9tICdjaGFydC5qcyc7XHJcbmltcG9ydCB7XHJcbiAgU2RDaGFydE9wdGlvbixcclxuICBCYXJDaGFydE9wdGlvbixcclxuICBMaW5lQ2hhcnRPcHRpb24sXHJcbiAgUGllQ2hhcnRPcHRpb24sXHJcbiAgQmFyTGluZUNoYXJ0T3B0aW9uLFxyXG4gIFN0YWNrQXJlYUNoYXJ0T3B0aW9uLFxyXG4gIEhvcml6b250YWxCYXJDaGFydE9wdGlvbixcclxuICBJQ2hhcnRDb25maWd1cmF0aW9uLFxyXG4gIENIQVJUX0NPTkZJRyxcclxuICBEb3VnaG51dENoYXJ0T3B0aW9uXHJcbn0gZnJvbSAnLi9jaGFydC5tb2RlbCc7XHJcbmltcG9ydCAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWNoYXJ0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkQ2hhcnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIHBDaGFydE9wdGlvbjogU2RDaGFydE9wdGlvbjtcclxuICBpc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGNoYXJ0T3B0aW9uKGNoYXJ0T3B0aW9uOiBTZENoYXJ0T3B0aW9uKSB7XHJcbiAgICB0aGlzLnBDaGFydE9wdGlvbiA9IGNoYXJ0T3B0aW9uO1xyXG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcclxuICAgICAgdGhpcy5yZW5kZXJDaGFydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZCgnY2hhcnQnKSBjaGFydFJlZjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjaGFydFdyYXBwZXInKSBjaGFydFdyYXBwZXJSZWY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY2hhcnRBeGlzJykgY2hhcnRBeGlzUmVmOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoYXJ0QXJlYVdyYXBwZXJFeHRlbmQnKSBjaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmOiBFbGVtZW50UmVmO1xyXG4gIGNoYXJ0OiBDaGFydDtcclxuICB2aXNpYmxlID0gdHJ1ZTtcclxuICBoZWlnaHQgPSAnMzAwcHgnO1xyXG4gIHByaXZhdGUgY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChDSEFSVF9DT05GSUcpIHByaXZhdGUgY2hhcnRDb25maWd1cmF0aW9uOiBJQ2hhcnRDb25maWd1cmF0aW9uXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMucmVuZGVyQ2hhcnQodHJ1ZSk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcmVuZGVyQ2hhcnQoZmlyc3RSZW5kZXI/OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmhlaWdodCA9IHRoaXMucENoYXJ0T3B0aW9uPy5oZWlnaHQgfHwgJzMwMHB4JztcclxuICAgIGlmICghZmlyc3RSZW5kZXIpIHtcclxuICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAyMDApKTtcclxuICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAyMDApKTtcclxuICAgIGlmICh0aGlzLmNoYXJ0UmVmPy5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuY2hhcnRSZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MQ2FudmFzRWxlbWVudDtcclxuICAgICAgdGhpcy5jdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcclxuICAgICAgc3dpdGNoICh0aGlzLnBDaGFydE9wdGlvbi50eXBlKSB7XHJcbiAgICAgICAgY2FzZSAncGllJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyUGllQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnYmFyJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyQmFyQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnaG9yaXpvbnRhbEJhcic6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckhvcml6b250YWxCYXJDaGFydCh0aGlzLnBDaGFydE9wdGlvbik7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdsaW5lJzpcclxuICAgICAgICAgIHRoaXMucmVuZGVyTGluZUNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3N0YWNrQXJlYSc6XHJcbiAgICAgICAgICB0aGlzLnJlbmRlclN0YWNrQXJlYUNoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2JhcmxpbmUnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJCYXJMaW5lQ2hhcnQodGhpcy5wQ2hhcnRPcHRpb24pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnZG91Z2hudXQnOlxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJEb3VnaG51dENoYXJ0KHRoaXMucENoYXJ0T3B0aW9uKTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyUGllQ2hhcnQob3B0aW9uOiBQaWVDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICB0eXBlOiAncGllJyxcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgdGl0bGU6IHtcclxuICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICB0ZXh0OiBvcHRpb24udGl0bGVcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWwgPyBgWyR7ZGF0YXNldExhYmVsfV0gYCA6ICcnfSR7bGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24uZGF0YXNldHM/Lm1hcChlID0+IGUubGFiZWwpIHx8IFtdLFxyXG4gICAgICAgIGRhdGFzZXRzOiBbe1xyXG4gICAgICAgICAgZGF0YTogb3B0aW9uLmRhdGFzZXRzPy5tYXAoZSA9PiBlLnZhbHVlKSB8fCBbXSxcclxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogb3B0aW9uLmRhdGFzZXRzPy5tYXAoKGUsIGlkeCkgPT4gZS5iYWNrZ3JvdW5kQ29sb3JcclxuICAgICAgICAgICAgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3JcclxuICAgICAgICAgICAgfHwgdGhpcy5keW5hbWljQ29sb3IpIHx8IFtdXHJcbiAgICAgICAgfV1cclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckRvdWdobnV0Q2hhcnQob3B0aW9uOkRvdWdobnV0Q2hhcnRPcHRpb24pe1xyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICB0eXBlOiAnZG91Z2hudXQnLFxyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOmZhbHNlLFxyXG4gICAgICAgIHRpdGxlOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgdGV4dDogb3B0aW9uLnRpdGxlXHJcbiAgICAgICAgfSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsID8gYFske2RhdGFzZXRMYWJlbH1dIGAgOiAnJ30ke2xhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmRhdGFzZXRzPy5tYXAoZSA9PiBlLmxhYmVsKSB8fCBbXSxcclxuICAgICAgICBkYXRhc2V0czogW3tcclxuICAgICAgICAgIGRhdGE6IG9wdGlvbi5kYXRhc2V0cz8ubWFwKGUgPT4gZS52YWx1ZSkgfHwgW10sXHJcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IG9wdGlvbi5kYXRhc2V0cz8ubWFwKChlLCBpZHgpID0+IGUuYmFja2dyb3VuZENvbG9yXHJcbiAgICAgICAgICAgIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yXHJcbiAgICAgICAgICAgIHx8IHRoaXMuZHluYW1pY0NvbG9yKSB8fCBbXVxyXG4gICAgICAgIH1dXHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKG9wdGlvbi5ob3ZlciA9PT0gJ1Nob3dBbGwnKSB7XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlciA9IHtcclxuICAgICAgICAuLi5jb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIsXHJcbiAgICAgICAgbW9kZTogJ2luZGV4JyxcclxuICAgICAgICBpbnRlcnNlY3Q6IGZhbHNlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmN0eCwgY29uZmlndXJhdGlvbik7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJCYXJDaGFydChvcHRpb246IEJhckNoYXJ0T3B0aW9uKSB7XHJcbiAgICBjb25zdCBsYWJlbFdpZHRoID0gb3B0aW9uLmxhYmVsV2lkdGggPz8gNTA7XHJcbiAgICBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgICAvLyBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogb3B0aW9uLmRhdGFzZXRzLmxlbmd0aCAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgY29uc3QgbmV3d2lkdGggPSBvcHRpb24ubGFiZWxzLmxlbmd0aCAqIG9wdGlvbi5kYXRhc2V0cy5sZW5ndGggKiBsYWJlbFdpZHRoO1xyXG4gICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb25maWd1cmF0aW9uOiBDaGFydC5DaGFydENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICByZXNwb25zaXZlOiB0cnVlLFxyXG4gICAgICAgIG1haW50YWluQXNwZWN0UmF0aW86IGZhbHNlLFxyXG4gICAgICAgIGxlZ2VuZDoge1xyXG4gICAgICAgICAgZGlzcGxheTogIW9wdGlvbi5oaWRlTGVnZW5kXHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZXM6IHtcclxuICAgICAgICAgIHhBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueFRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueFRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRpY2tzOiB7XHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy54TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBiZWdpbkF0WmVybzogb3B0aW9uLmJlZ2luQXRaZXJvID8/IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdHlwZTogJ2JhcicsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsLFxyXG4gICAgICAgICAgICBmaWxsOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIHN0YWNrOiBlLnN0YWNrXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVySG9yaXpvbnRhbEJhckNoYXJ0KG9wdGlvbjogSG9yaXpvbnRhbEJhckNoYXJ0T3B0aW9uKSB7XHJcbiAgICAvLyBjb25zdCBsYWJlbFdpZHRoID0gb3B0aW9uLmxhYmVsV2lkdGggPz8gNTA7XHJcbiAgICAvLyBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgLy8gICBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogb3B0aW9uLmRhdGFzZXRzLmxlbmd0aCAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAvLyAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgIC8vIH1cclxuICAgIGNvbnN0IHBsdWdpbnM6Q2hhcnQuUGx1Z2luU2VydmljZVJlZ2lzdHJhdGlvbk9wdGlvbnNbXSA9IFtdO1xyXG4gICAgaWYgKG9wdGlvbi5zaG93VG90YWxTdGFjayl7XHJcbiAgICAgIHBsdWdpbnMucHVzaCh0aGlzLiNkcmF3VG90YWxPZlN0YWNrZWRCYXIob3B0aW9uLnR5cGUpKVxyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZCxcclxuICAgICAgICAgIG9uQ2xpY2s6IChldmVudCwgbGVnZW5kSXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSBsZWdlbmRJdGVtLmRhdGFzZXRJbmRleDtcclxuICAgICAgICAgICAgbGV0IGNpID0gdGhpcy5jaGFydDtcclxuICAgICAgICAgICAgbGV0IG1ldGEgPSBjaS5nZXREYXRhc2V0TWV0YShpbmRleCk7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb24uc2hvd1RvdGFsU3RhY2spe1xyXG4gICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIC8vIFNlZSBjb250cm9sbGVyLmlzRGF0YXNldFZpc2libGUgY29tbWVudFxyXG4gICAgICAgICAgICBtZXRhLmhpZGRlbiA9IG1ldGEuaGlkZGVuID09PSBudWxsID8gIWNpLmRhdGEuZGF0YXNldHNbaW5kZXhdLmhpZGRlbiA6IG51bGw7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIFdlIGhpZCBhIGRhdGFzZXQgLi4uIHJlcmVuZGVyIHRoZSBjaGFydFxyXG4gICAgICAgICAgICBjaS51cGRhdGUoKTsgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGF5b3V0OntcclxuICAgICAgICAgIHBhZGRpbmc6e1xyXG4gICAgICAgICAgICByaWdodDoyMFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc3RhY2tlZDp0cnVlLFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc3RhY2tlZDp0cnVlLFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueUxhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi55VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfV1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHRvb2x0aXBzOiB7XHJcbiAgICAgICAgICBjYWxsYmFja3M6IHtcclxuICAgICAgICAgICAgbGFiZWw6ICh0b29sdGlwSXRlbSwgZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGRhdGFzZXRMYWJlbCA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmxhYmVsO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gZGF0YT8ubGFiZWxzW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5kYXRhW3Rvb2x0aXBJdGVtLmluZGV4XSBhcyBudW1iZXI7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50b29sdGlwcz8ubGFiZWwoe1xyXG4gICAgICAgICAgICAgICAgZGF0YXNldExhYmVsLFxyXG4gICAgICAgICAgICAgICAgbGFiZWwsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZVxyXG4gICAgICAgICAgICAgIH0pIHx8IGAke2RhdGFzZXRMYWJlbH0gOiAke051bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpfWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHR5cGU6ICdob3Jpem9udGFsQmFyJyxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgbGFiZWw6IGUubGFiZWwsXHJcbiAgICAgICAgICAgIGZpbGw6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2tcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0sXHJcbiAgICAgIHBsdWdpbnM6cGx1Z2luc1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckxpbmVDaGFydChvcHRpb246IExpbmVDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgbGFiZWxXaWR0aCA9IG9wdGlvbi5sYWJlbFdpZHRoID8/IDUwO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5sZW5ndGgpIHtcclxuICAgICAgLy8gY29uc3QgbmV3d2lkdGggPSBNYXRoLm1heChvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGgsICQodGhpcy5jaGFydFdyYXBwZXJSZWYubmF0aXZlRWxlbWVudCkud2lkdGgoKSk7XHJcbiAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgY29uc3QgbmV3d2lkdGggPSBvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGg7XHJcbiAgICAgICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLmNzcygnd2lkdGgnLCBgbWF4KDEwMCUsJHtuZXd3aWR0aH1weClgKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IENoYXJ0LkNoYXJ0Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgIHJlc3BvbnNpdmU6IHRydWUsXHJcbiAgICAgICAgbWFpbnRhaW5Bc3BlY3RSYXRpbzogZmFsc2UsXHJcbiAgICAgICAgbGVnZW5kOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhb3B0aW9uLmhpZGVMZWdlbmRcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNjYWxlczoge1xyXG4gICAgICAgICAgeEF4ZXM6IFt7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgICAgIHNjYWxlTGFiZWw6IHtcclxuICAgICAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi54VGl0bGUsXHJcbiAgICAgICAgICAgICAgbGFiZWxTdHJpbmc6IG9wdGlvbi54VGl0bGUgfHwgJydcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnhMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfV0sXHJcbiAgICAgICAgICB5QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgICAgICBiZWdpbkF0WmVybzogb3B0aW9uLmJlZ2luQXRaZXJvID8/IHRydWUsXHJcbiAgICAgICAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgdG9vbHRpcHM6IHtcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgICAgICAgfSkgfHwgYCR7ZGF0YXNldExhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgdHlwZTogJ2xpbmUnLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgbGFiZWxzOiBvcHRpb24ubGFiZWxzLFxyXG4gICAgICAgIGRhdGFzZXRzOiBvcHRpb24uZGF0YXNldHMubWFwKChlLCBpZHgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGR5bmFtaWNDb2xvciA9IHRoaXMuZHluYW1pY0NvbG9yO1xyXG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBDaGFydC5DaGFydERhdGFTZXRzID0ge1xyXG4gICAgICAgICAgICBsYWJlbDogZS5sYWJlbCxcclxuICAgICAgICAgICAgZmlsbDogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGUuYm9yZGVyQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5ib3JkZXJDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgbGluZVRlbnNpb246IDAsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcHRpb24uaG92ZXIgPT09ICdTaG93QWxsJykge1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMudG9vbHRpcHMgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWd1cmF0aW9uLm9wdGlvbnMuaG92ZXIgPSB7XHJcbiAgICAgICAgLi4uY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyLFxyXG4gICAgICAgIG1vZGU6ICdpbmRleCcsXHJcbiAgICAgICAgaW50ZXJzZWN0OiBmYWxzZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2hhcnQgPSBuZXcgQ2hhcnQodGhpcy5jdHgsIGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyU3RhY2tBcmVhQ2hhcnQob3B0aW9uOiBTdGFja0FyZWFDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgbGFiZWxXaWR0aCA9IG9wdGlvbi5sYWJlbFdpZHRoID8/IDUwO1xyXG4gICAgXHJcbiAgICBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgICAvLyBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgICAgLy8gJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkud2lkdGgobmV3d2lkdGgpO1xyXG4gICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aDtcclxuICAgICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkuY3NzKCd3aWR0aCcsIGBtYXgoMTAwJSwke25ld3dpZHRofXB4KWApO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueExhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9XSxcclxuICAgICAgICAgIHlBeGVzOiBbe1xyXG4gICAgICAgICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgICAgICBjYWxsYmFjazogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb24udGlja3M/LnlMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBzdGFja2VkOiB0cnVlLFxyXG4gICAgICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICAgICAgZGlzcGxheTogISFvcHRpb24ueVRpdGxlLFxyXG4gICAgICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVRpdGxlIHx8ICcnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1dXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczoge1xyXG4gICAgICAgICAgY2FsbGJhY2tzOiB7XHJcbiAgICAgICAgICAgIGxhYmVsOiAodG9vbHRpcEl0ZW0sIGRhdGEpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBkYXRhc2V0TGFiZWwgPSBkYXRhPy5kYXRhc2V0c1t0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXhdPy5sYWJlbDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IGRhdGE/LmxhYmVsc1t0b29sdGlwSXRlbS5pbmRleF0gYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8uZGF0YVt0b29sdGlwSXRlbS5pbmRleF0gYXMgbnVtYmVyO1xyXG4gICAgICAgICAgICAgIHJldHVybiBvcHRpb24udG9vbHRpcHM/LmxhYmVsKHtcclxuICAgICAgICAgICAgICAgIGRhdGFzZXRMYWJlbCxcclxuICAgICAgICAgICAgICAgIGxhYmVsLFxyXG4gICAgICAgICAgICAgICAgdmFsdWVcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWx9IDogJHtOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB0eXBlOiAnbGluZScsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBsYWJlbHM6IG9wdGlvbi5sYWJlbHMsXHJcbiAgICAgICAgZGF0YXNldHM6IG9wdGlvbi5kYXRhc2V0cy5tYXAoKGUsIGlkeCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZHluYW1pY0NvbG9yID0gdGhpcy5keW5hbWljQ29sb3I7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IENoYXJ0LkNoYXJ0RGF0YVNldHMgPSB7XHJcbiAgICAgICAgICAgIGxhYmVsOiBlLmxhYmVsLFxyXG4gICAgICAgICAgICAvLyBmaWxsOiBlLmJhY2tncm91bmRDb2xvcixcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBlLmJhY2tncm91bmRDb2xvciB8fCB0aGlzLmNoYXJ0Q29uZmlndXJhdGlvbj8uZGVmYXVsdENvbG9ycz8uW2lkeF0/LmJhY2tncm91bmRDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiBlLmJvcmRlckNvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYm9yZGVyQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBkYXRhOiBlLmRhdGEsXHJcbiAgICAgICAgICAgIGxpbmVUZW5zaW9uOiAwLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbmRlckJhckxpbmVDaGFydChvcHRpb246IEJhckxpbmVDaGFydE9wdGlvbikge1xyXG4gICAgY29uc3QgcGx1Z2luczpDaGFydC5QbHVnaW5TZXJ2aWNlUmVnaXN0cmF0aW9uT3B0aW9uc1tdID0gW107XHJcbiAgICBpZiAob3B0aW9uLnNob3dUb3RhbFN0YWNrKXtcclxuICAgICAgcGx1Z2lucy5wdXNoKHRoaXMuI2RyYXdUb3RhbE9mU3RhY2tlZEJhcihvcHRpb24udHlwZSkpXHJcbiAgICB9XHJcbiAgICBjb25zdCBsYWJlbFdpZHRoID0gb3B0aW9uLmxhYmVsV2lkdGggPz8gNTA7XHJcbiAgICBpZiAob3B0aW9uLmRhdGFzZXRzLmxlbmd0aCkge1xyXG4gICAgICBjb25zdCBudW1iZXJPZkJhcnMgPSBvcHRpb24uZGF0YXNldHMuZmlsdGVyKGUgPT4gZS50eXBlID09PSAnYmFyJykubGVuZ3RoO1xyXG4gICAgICBpZiAobnVtYmVyT2ZCYXJzIDw9IDEpIHtcclxuICAgICAgICAvLyBjb25zdCBuZXd3aWR0aCA9IE1hdGgubWF4KG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbGFiZWxXaWR0aCwgJCh0aGlzLmNoYXJ0V3JhcHBlclJlZi5uYXRpdmVFbGVtZW50KS53aWR0aCgpKTtcclxuICAgICAgICAvLyAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS53aWR0aChuZXd3aWR0aCk7XHJcbiAgICAgICAgY29uc3QgbmV3d2lkdGggPSBvcHRpb24ubGFiZWxzLmxlbmd0aCAqIGxhYmVsV2lkdGg7XHJcbiAgICAgICAgJCh0aGlzLmNoYXJ0QXJlYVdyYXBwZXJFeHRlbmRSZWYubmF0aXZlRWxlbWVudCkuY3NzKCd3aWR0aCcsIGBtYXgoMTAwJSwke25ld3dpZHRofXB4KWApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIGNvbnN0IG5ld3dpZHRoID0gTWF0aC5tYXgob3B0aW9uLmxhYmVscy5sZW5ndGggKiBudW1iZXJPZkJhcnMgKiBsYWJlbFdpZHRoLCAkKHRoaXMuY2hhcnRXcmFwcGVyUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKCkpO1xyXG4gICAgICAgIC8vICQodGhpcy5jaGFydEFyZWFXcmFwcGVyRXh0ZW5kUmVmLm5hdGl2ZUVsZW1lbnQpLndpZHRoKG5ld3dpZHRoKTtcclxuICAgICAgICBjb25zdCBuZXd3aWR0aCA9IG9wdGlvbi5sYWJlbHMubGVuZ3RoICogbnVtYmVyT2ZCYXJzICogbGFiZWxXaWR0aDtcclxuICAgICAgICAkKHRoaXMuY2hhcnRBcmVhV3JhcHBlckV4dGVuZFJlZi5uYXRpdmVFbGVtZW50KS5jc3MoJ3dpZHRoJywgYG1heCgxMDAlLCR7bmV3d2lkdGh9cHgpYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGxlZnRJZCA9IGBJJHt1dWlkLnY0KCl9YDtcclxuICAgIGNvbnN0IHJpZ2h0SWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgICBjb25zdCB5QXhlcyA9IFt7XHJcbiAgICAgIHR5cGU6ICdsaW5lYXInLFxyXG4gICAgICBkaXNwbGF5OiB0cnVlLFxyXG4gICAgICBwb3NpdGlvbjogJ2xlZnQnLFxyXG4gICAgICBpZDogbGVmdElkLFxyXG4gICAgICB0aWNrczoge1xyXG4gICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICBzdWdnZXN0ZWRNaW46IDAsXHJcbiAgICAgICAgY2FsbGJhY2s6ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55TGFiZWwodmFsdWUsIGluZGV4KSB8fCAoTnVtYmVyLmlzTnVtYmVyKHZhbHVlKSA/IE51bWJlci50b1ZOQ3VycmVuY3kodmFsdWUpIDogdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnlUaXRsZSxcclxuICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnlUaXRsZSB8fCAnJyxcclxuICAgICAgfSxcclxuICAgICAgc3RhY2tlZDohIW9wdGlvbi55U3RhY2tlZCxcclxuICAgIH1dO1xyXG4gICAgaWYgKG9wdGlvbi5kYXRhc2V0cy5zb21lKGUgPT4gZS55QWxpZ24gPT09ICdyaWdodCcpKSB7XHJcbiAgICAgIHlBeGVzLnB1c2goe1xyXG4gICAgICAgIHR5cGU6ICdsaW5lYXInLFxyXG4gICAgICAgIGRpc3BsYXk6IHRydWUsXHJcbiAgICAgICAgcG9zaXRpb246ICdyaWdodCcsXHJcbiAgICAgICAgaWQ6IHJpZ2h0SWQsXHJcbiAgICAgICAgdGlja3M6IHtcclxuICAgICAgICAgIGJlZ2luQXRaZXJvOiBvcHRpb24uYmVnaW5BdFplcm8gPz8gdHJ1ZSxcclxuICAgICAgICAgIHN1Z2dlc3RlZE1pbjogMCxcclxuICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRpY2tzPy55UmlnaHRMYWJlbCh2YWx1ZSwgaW5kZXgpIHx8IChOdW1iZXIuaXNOdW1iZXIodmFsdWUpID8gTnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSkgOiB2YWx1ZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBzY2FsZUxhYmVsOiB7XHJcbiAgICAgICAgICBkaXNwbGF5OiAhIW9wdGlvbi55UmlnaHRUaXRsZSxcclxuICAgICAgICAgIGxhYmVsU3RyaW5nOiBvcHRpb24ueVJpZ2h0VGl0bGUgfHwgJydcclxuICAgICAgICB9LFxyXG4gICAgICAgIHN0YWNrZWQ6ISFvcHRpb24ueVN0YWNrZWQsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uZmlndXJhdGlvbjogQ2hhcnQuQ2hhcnRDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgcmVzcG9uc2l2ZTogdHJ1ZSxcclxuICAgICAgICBtYWludGFpbkFzcGVjdFJhdGlvOiBmYWxzZSxcclxuICAgICAgICBsZWdlbmQ6IHtcclxuICAgICAgICAgIGRpc3BsYXk6ICFvcHRpb24uaGlkZUxlZ2VuZCxcclxuICAgICAgICAgIG9uQ2xpY2s6IChldmVudCwgbGVnZW5kSXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSBsZWdlbmRJdGVtLmRhdGFzZXRJbmRleDtcclxuICAgICAgICAgICAgbGV0IGNpID0gdGhpcy5jaGFydDtcclxuICAgICAgICAgICAgbGV0IG1ldGEgPSBjaS5nZXREYXRhc2V0TWV0YShpbmRleCk7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb24uc2hvd1RvdGFsU3RhY2spe1xyXG4gICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgIC8vIFNlZSBjb250cm9sbGVyLmlzRGF0YXNldFZpc2libGUgY29tbWVudFxyXG4gICAgICAgICAgICBtZXRhLmhpZGRlbiA9IG1ldGEuaGlkZGVuID09PSBudWxsID8gIWNpLmRhdGEuZGF0YXNldHNbaW5kZXhdLmhpZGRlbiA6IG51bGw7XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgIC8vIFdlIGhpZCBhIGRhdGFzZXQgLi4uIHJlcmVuZGVyIHRoZSBjaGFydFxyXG4gICAgICAgICAgICBjaS51cGRhdGUoKTsgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcG9zaXRpb246IG9wdGlvbj8ubGVnZW5kUG9zaXRpb24gPz8gJ3RvcCdcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxheW91dDp7XHJcbiAgICAgICAgICBwYWRkaW5nOjEwXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0aXRsZToge1xyXG4gICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgIHRleHQ6IG9wdGlvbi50aXRsZVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgc2NhbGVzOiB7XHJcbiAgICAgICAgICB4QXhlczogW3tcclxuICAgICAgICAgICAgZGlzcGxheTogdHJ1ZSxcclxuICAgICAgICAgICAgc2NhbGVMYWJlbDoge1xyXG4gICAgICAgICAgICAgIGRpc3BsYXk6ICEhb3B0aW9uLnhUaXRsZSxcclxuICAgICAgICAgICAgICBsYWJlbFN0cmluZzogb3B0aW9uLnhUaXRsZSB8fCAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aWNrczoge1xyXG4gICAgICAgICAgICAgIGNhbGxiYWNrOiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi50aWNrcz8ueExhYmVsKHZhbHVlLCBpbmRleCkgfHwgKE51bWJlci5pc051bWJlcih2YWx1ZSkgPyBOdW1iZXIudG9WTkN1cnJlbmN5KHZhbHVlKSA6IHZhbHVlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHN0YWNrZWQ6ICEhb3B0aW9uLnhTdGFja2VkXHJcbiAgICAgICAgICB9XSxcclxuICAgICAgICAgIHlBeGVzXHJcbiAgICAgICAgfSxcclxuICAgICAgICB0b29sdGlwczogeyAgICAgICAgICBcclxuICAgICAgICAgIGNhbGxiYWNrczoge1xyXG4gICAgICAgICAgICBsYWJlbDogKHRvb2x0aXBJdGVtLCBkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZGF0YXNldExhYmVsID0gZGF0YT8uZGF0YXNldHNbdG9vbHRpcEl0ZW0uZGF0YXNldEluZGV4XT8ubGFiZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBkYXRhPy5sYWJlbHNbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIHN0cmluZztcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGE/LmRhdGFzZXRzW3Rvb2x0aXBJdGVtLmRhdGFzZXRJbmRleF0/LmRhdGFbdG9vbHRpcEl0ZW0uaW5kZXhdIGFzIG51bWJlcjtcclxuICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnRvb2x0aXBzPy5sYWJlbCh7XHJcbiAgICAgICAgICAgICAgICBkYXRhc2V0TGFiZWwsXHJcbiAgICAgICAgICAgICAgICBsYWJlbCxcclxuICAgICAgICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgICAgICAgZGF0YXNldEluZGV4OiB0b29sdGlwSXRlbS5kYXRhc2V0SW5kZXgsXHJcbiAgICAgICAgICAgICAgICBkYXRhSW5kZXg6dG9vbHRpcEl0ZW0uaW5kZXhcclxuICAgICAgICAgICAgICB9KSB8fCBgJHtkYXRhc2V0TGFiZWwgPyBgWyR7ZGF0YXNldExhYmVsfV0gYCA6ICcnfSAke2xhYmVsfSA6ICR7TnVtYmVyLnRvVk5DdXJyZW5jeSh2YWx1ZSl9YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGxhYmVsczogb3B0aW9uLmxhYmVscyxcclxuICAgICAgICBkYXRhc2V0czogb3B0aW9uLmRhdGFzZXRzLm1hcCgoZSwgaWR4KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBkeW5hbWljQ29sb3IgPSB0aGlzLmR5bmFtaWNDb2xvcjtcclxuICAgICAgICAgIGNvbnN0IHJlc3VsdDogQ2hhcnQuQ2hhcnREYXRhU2V0cyA9IHtcclxuICAgICAgICAgICAgdHlwZTogZS50eXBlLFxyXG4gICAgICAgICAgICBsYWJlbDogZS5sYWJlbCxcclxuICAgICAgICAgICAgZmlsbDogZS5iYWNrZ3JvdW5kQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5iYWNrZ3JvdW5kQ29sb3IgfHwgZHluYW1pY0NvbG9yLFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGUuYmFja2dyb3VuZENvbG9yIHx8IHRoaXMuY2hhcnRDb25maWd1cmF0aW9uPy5kZWZhdWx0Q29sb3JzPy5baWR4XT8uYmFja2dyb3VuZENvbG9yIHx8IGR5bmFtaWNDb2xvcixcclxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6IGUuYm9yZGVyQ29sb3IgfHwgdGhpcy5jaGFydENvbmZpZ3VyYXRpb24/LmRlZmF1bHRDb2xvcnM/LltpZHhdPy5ib3JkZXJDb2xvciB8fCBkeW5hbWljQ29sb3IsXHJcbiAgICAgICAgICAgIGRhdGE6IGUuZGF0YSxcclxuICAgICAgICAgICAgeUF4aXNJRDogZS55QWxpZ24gPT09ICdyaWdodCcgPyByaWdodElkIDogbGVmdElkLFxyXG4gICAgICAgICAgICBsaW5lVGVuc2lvbjogMCxcclxuICAgICAgICAgICAgb3JkZXI6ZS5vcmRlciA/PyAxXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICB9KSxcclxuICAgICAgfSxcclxuICAgICAgcGx1Z2luczogcGx1Z2luc1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAob3B0aW9uLmhvdmVyID09PSAnU2hvd0FsbCcpIHtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLnRvb2x0aXBzID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy50b29sdGlwcyxcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgICAgY29uZmlndXJhdGlvbi5vcHRpb25zLmhvdmVyID0ge1xyXG4gICAgICAgIC4uLmNvbmZpZ3VyYXRpb24ub3B0aW9ucy5ob3ZlcixcclxuICAgICAgICBtb2RlOiAnaW5kZXgnLFxyXG4gICAgICAgIGludGVyc2VjdDogZmFsc2VcclxuICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNoYXJ0ID0gbmV3IENoYXJ0KHRoaXMuY3R4LCBjb25maWd1cmF0aW9uKTtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBsb2FkaW5nU3RhcnQgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBkeW5hbWljQ29sb3IoKSB7XHJcbiAgICBjb25zdCByID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIGNvbnN0IGcgPSBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiAyNTUpO1xyXG4gICAgY29uc3QgYiA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICByZXR1cm4gJ3JnYignICsgciArICcsJyArIGcgKyAnLCcgKyBiICsgJyknO1xyXG4gIH1cclxuXHJcbiAgI2RyYXdUb3RhbE9mU3RhY2tlZEJhciA9IChjaGFydFR5cGU6J2JhcmxpbmUnIHwgJ2JhcicgfCAnaG9yaXpvbnRhbEJhcicpOkNoYXJ0LlBsdWdpblNlcnZpY2VSZWdpc3RyYXRpb25PcHRpb25zID0+IHtcclxuICAgIHJldHVybiAge1xyXG4gICAgICBhZnRlckRyYXcoY2hhcnRJbnN0YW5jZSwgZWFzaW5nLCBvcHRpb25zKSB7XHJcbiAgICAgICAgaWYgKGNoYXJ0SW5zdGFuY2U/LmRhdGE/LmRhdGFzZXRzPy5sZW5ndGgpe1xyXG4gICAgICAgICAgY29uc3QgY3R4ID0gY2hhcnRJbnN0YW5jZS5jdHg7XHJcbiAgICAgICAgICBjaGFydEluc3RhbmNlLmRhdGEuZGF0YXNldHNbMF0uZGF0YS5mb3JFYWNoKCAgKGRhdGFQb2ludCxpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgIGxldCBjdXJMYXN0SW5kZXggPSAwO1xyXG4gICAgICAgICAgICAgIGxldCBjdXJUb3RhbCA9IDA7XHJcbiAgICAgICAgICAgICAgY2hhcnRJbnN0YW5jZS5kYXRhLmRhdGFzZXRzLmZvckVhY2goIChkYXRhc2V0LHNldEluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YXNldC5kYXRhW2luZGV4XSAhPSAwICYmICghZGF0YXNldC5oaWRkZW4pICYmIGRhdGFzZXQudHlwZSAhPT0gJ2xpbmUnKXtcclxuICAgICAgICAgICAgICAgICAgY3VyTGFzdEluZGV4ID0gc2V0SW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChOdW1iZXIuaXNOdW1iZXIoZGF0YXNldC5kYXRhW2luZGV4XSkpe1xyXG4gICAgICAgICAgICAgICAgICAgIGN1clRvdGFsICs9IE51bWJlcihkYXRhc2V0LmRhdGFbaW5kZXhdKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBlbHNlIGN1clRvdGFsICs9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICBjb25zdCB7eCx5fSA9IGNoYXJ0SW5zdGFuY2UuZ2V0RGF0YXNldE1ldGEoY3VyTGFzdEluZGV4KS5kYXRhW2luZGV4XS5fbW9kZWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgdGV4dFdpZHRoID0gY3R4Lm1lYXN1cmVUZXh0KGN1clRvdGFsLnRvU3RyaW5nKCkpLndpZHRoO1xyXG4gICAgICAgICAgICAgIGN0eC5maWxsU3R5bGU9ICdibGFjayc7XHJcbiAgICAgICAgICAgICAgbGV0IHhUZXh0UG9zaXRpb24gPSAoeC10ZXh0V2lkdGgvMiApIC0gdGV4dFdpZHRoID4gMCA/ICh4LXRleHRXaWR0aC8yICkgOiAwO1xyXG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PSAwKXtcclxuICAgICAgICAgICAgICAgIHhUZXh0UG9zaXRpb24gPSB4ICsgMTA7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKGluZGV4ID09PSBjaGFydEluc3RhbmNlLmRhdGEuZGF0YXNldHNbMF0uZGF0YS5sZW5ndGggLSAxICl7XHJcbiAgICAgICAgICAgICAgICB4VGV4dFBvc2l0aW9uID0geCAtIHRleHRXaWR0aCAtIDEwO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBjdHguZm9udCA9ICczMDAgMTBweCdcclxuICAgICAgICAgICAgICBjdHguZmlsbFRleHQoY3VyVG90YWwudG9TdHJpbmcoKSwgY2hhcnRUeXBlID09PSAnaG9yaXpvbnRhbEJhcicgPyB4ICsgMTAgOiB4VGV4dFBvc2l0aW9uLCBjaGFydFR5cGUgPT09ICdob3Jpem9udGFsQmFyJyA/IHkgOiB5LTEwKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gICAgICAgICBcclxuICAgICAgfSxcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -88,4 +88,4 @@ export const ChartColors = {
88
88
  White: '#FFFFFF',
89
89
  };
90
90
  export const CHART_CONFIG = new InjectionToken('chart.configuration');
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NoYXJ0LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jaGFydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixHQUFHLEVBQUUsbUJBQW1CO0lBQ3hCLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixLQUFLLEVBQUUsbUJBQW1CO0lBQzFCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUErSkYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFzQixxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDaGFydENvbG9ycyA9IHtcclxuICBSZWQ6ICdyZ2IoMjU1LCA5OSwgMTMyKScsXHJcbiAgT3JhbmdlOiAncmdiKDI1NSwgMTU5LCA2NCknLFxyXG4gIFllbGxvdzogJ3JnYigyNTUsIDIwNSwgODYpJyxcclxuICBHcmVlbjogJ3JnYig3NSwgMTkyLCAxOTIpJyxcclxuICBCbHVlOiAncmdiKDU0LCAxNjIsIDIzNSknLFxyXG4gIFB1cnBsZTogJ3JnYigxNTMsIDEwMiwgMjU1KScsXHJcbiAgR3JleTogJ3JnYigyMDEsIDIwMywgMjA3KScsXHJcbiAgUHVycGxlNzAwOiAnIzJFMjI0QycsXHJcbiAgUHVycGxlNjAwOiAnIzQ1MzM3MicsXHJcbiAgUHVycGxlNTAwOiAnIzU3NDE5MScsXHJcbiAgUHVycGxlNDAwOiAnIzczNTZCRicsXHJcbiAgUHVycGxlMzAwOiAnIzk1N0ZDRScsXHJcbiAgUHVycGxlMjAwOiAnI0MxQjRFMicsXHJcbiAgUHVycGxlMTAwOiAnI0UzRERGMicsXHJcbiAgUHVycGxlNTA6ICcjRjNGMUY5JyxcclxuICBCbHVlNzAwOiAnIzBGMkM2MCcsXHJcbiAgQmx1ZTYwMDogJyMxNzQyOTEnLFxyXG4gIEJsdWU1MDA6ICcjMUQ1M0I3JyxcclxuICBCbHVlNDAwOiAnIzI3NkVGMScsXHJcbiAgQmx1ZTMwMDogJyM1QTkwRjQnLFxyXG4gIEJsdWUyMDA6ICcjOUZCRkY4JyxcclxuICBCbHVlMTAwOiAnI0Q0RTJGQycsXHJcbiAgQmx1ZTUwOiAnI0VERjNGRCcsXHJcbiAgR3JlZW43MDA6ICcjMEQ0MDIwJyxcclxuICBHcmVlbjYwMDogJyMxNTZBMzYnLFxyXG4gIEdyZWVuNTAwOiAnIzA5ODYzRCcsXHJcbiAgR3JlZW40MDA6ICcjMjFBNDUzJyxcclxuICBHcmVlbjMwMDogJyM0M0JGNzUnLFxyXG4gIEdyZWVuMjAwOiAnIzlFRTJCOCcsXHJcbiAgR3JlZW4xMDA6ICcjQ0ZGM0REJyxcclxuICBHcmVlbjUwOiAnI0YwRkFGMycsXHJcbiAgWWVsbG93NzAwOiAnIzY2NEMxQScsXHJcbiAgWWVsbG93NjAwOiAnIzk5NzMyOCcsXHJcbiAgWWVsbG93NTAwOiAnI0MxOTEzMicsXHJcbiAgWWVsbG93NDAwOiAnI0ZGQzA0MycsXHJcbiAgWWVsbG93MzAwOiAnI0ZGQ0Y3MCcsXHJcbiAgWWVsbG93MjAwOiAnI0ZGRTNBQycsXHJcbiAgWWVsbG93MTAwOiAnI0ZGRjJEOScsXHJcbiAgWWVsbG93NTA6ICcjRkZGOUVGJyxcclxuICBPcmFuZ2U3MDA6ICcjNUYyQzE0JyxcclxuICBPcmFuZ2U2MDA6ICcjOEU0MjFFJyxcclxuICBPcmFuZ2U1MDA6ICcjQjQ1MzI2JyxcclxuICBPcmFuZ2U0MDA6ICcjRUQ2RTMzJyxcclxuICBPcmFuZ2UzMDA6ICcjRjE5MDYzJyxcclxuICBPcmFuZ2UyMDA6ICcjRjdCRkE1JyxcclxuICBPcmFuZ2UxMDA6ICcjRkJFMkQ2JyxcclxuICBPcmFuZ2U1MDogJyNGREYzRUUnLFxyXG4gIFJlZDcwMDogJyM1NDFBMTQnLFxyXG4gIFJlZDYwMDogJyM3RjI4MUUnLFxyXG4gIFJlZDUwMDogJyNBMTMyMjYnLFxyXG4gIFJlZDQwMDogJyNENDQzMzMnLFxyXG4gIFJlZDMwMDogJyNERTcwNjMnLFxyXG4gIFJlZDIwMDogJyNFQ0FDQTUnLFxyXG4gIFJlZDEwMDogJyNGNkQ5RDYnLFxyXG4gIFJlZDUwOiAnI0ZCRUZFRScsXHJcbiAgQnJvd243MDA6ICcjM0QyODFFJyxcclxuICBCcm93bjYwMDogJyM1QjNDMkQnLFxyXG4gIEJyb3duNTAwOiAnIzc0NEMzOScsXHJcbiAgQnJvd240MDA6ICcjOTk2NDRDJyxcclxuICBCcm93bjMwMDogJyNCMTg5NzYnLFxyXG4gIEJyb3duMjAwOiAnI0QyQkFCMCcsXHJcbiAgQnJvd24xMDA6ICcjRUJFMERCJyxcclxuICBCcm93bjUwOiAnI0Y2RjJGMCcsXHJcbiAgR3JheTkwMDogJyMxNDE0MTQnLFxyXG4gIEdyYXk4MDA6ICcjMUYxRjFGJyxcclxuICBHcmF5NzAwOiAnIzMzMzMzMycsXHJcbiAgR3JheTYwMDogJyM1NDU0NTQnLFxyXG4gIEdyYXk1MDA6ICcjNzU3NTc1JyxcclxuICBHcmF5NDAwOiAnI0FGQUZBRicsXHJcbiAgR3JheTMwMDogJyNDQkNCQ0InLFxyXG4gIEdyYXkyMDA6ICcjRTJFMkUyJyxcclxuICBHcmF5MTAwOiAnI0VFRUVFRScsXHJcbiAgR3JheTUwOiAnI0Y2RjZGNicsXHJcbiAgUGxhdGludW03MDA6ICcjMzk0MTQ1JyxcclxuICBQbGF0aW51bTYwMDogJyM1NTYyNjgnLFxyXG4gIFBsYXRpbnVtNTAwOiAnIzZDN0M4MycsXHJcbiAgUGxhdGludW00MDA6ICcjOEVBM0FEJyxcclxuICBQbGF0aW51bTMwMDogJyNBMUJEQ0EnLFxyXG4gIFBsYXRpbnVtMjAwOiAnI0NDREZFNScsXHJcbiAgUGxhdGludW0xMDA6ICcjRUJGNUY3JyxcclxuICBQbGF0aW51bTUwOiAnI0Y0RkFGQicsXHJcbiAgRWF0c0dyZWVuNDAwOiAnIzIxQTQ1MycsXHJcbiAgRnJlaWdodEJsdWU0MDA6ICcjMjFBNDUzJyxcclxuICBKdW1wUmVkNDAwOiAnI0ZGMEEyRCcsXHJcbiAgQmxhY2s6ICcjMDAwMDAwJyxcclxuICBXaGl0ZTogJyNGRkZGRkYnLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgU2RDaGFydE9wdGlvbiA9IERvdWdobnV0Q2hhcnRPcHRpb24gfCBQaWVDaGFydE9wdGlvbiB8XHJcbiAgQmFyQ2hhcnRPcHRpb24gfFxyXG4gIEhvcml6b250YWxCYXJDaGFydE9wdGlvbiB8XHJcbiAgTGluZUNoYXJ0T3B0aW9uIHxcclxuICBTdGFja0FyZWFDaGFydE9wdGlvbiB8XHJcbiAgQmFyTGluZUNoYXJ0T3B0aW9uO1xyXG5cclxuaW50ZXJmYWNlIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gIGhpZGVMZWdlbmQ/OiBib29sZWFuO1xyXG4gIHRvb2x0aXBzPzoge1xyXG4gICAgbGFiZWw6IChwYXJhbXM6IHsgZGF0YXNldExhYmVsPzogc3RyaW5nLCBsYWJlbD86IHN0cmluZywgdmFsdWU/OiBudW1iZXIsZGF0YXNldEluZGV4PzpudW1iZXIsZGF0YUluZGV4PzpudW1iZXI7IH0pID0+IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGllQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdwaWUnO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nLFxyXG4gICAgdmFsdWU6IG51bWJlcixcclxuICAgIGJhY2tncm91bmRDb2xvcjogc3RyaW5nXHJcbiAgfVtdO1xyXG4gIGhvdmVyPzogJ1Nob3dBbGwnO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERvdWdobnV0Q2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdkb3VnaG51dCc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogbnVtYmVyLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmdcclxuICB9W107XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFyQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdiYXInO1xyXG4gIHhUaXRsZT86IHN0cmluZztcclxuICB5VGl0bGU/OiBzdHJpbmc7XHJcbiAgbGFiZWxzOiBzdHJpbmdbXTtcclxuICBkYXRhc2V0czoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGRhdGE6IG51bWJlcltdO1xyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgICBzdGFjaz86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSG9yaXpvbnRhbEJhckNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnaG9yaXpvbnRhbEJhcic7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICAgIHN0YWNrPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaW5lQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdsaW5lJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nLFxyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdGFja0FyZWFDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ3N0YWNrQXJlYSc7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFyTGluZUNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnYmFybGluZSc7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHhTdGFja2VkPzpib29sZWFuO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICB5U3RhY2tlZD86Ym9vbGVhbjtcclxuICB5UmlnaHRUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICB0eXBlOiAnYmFyJyB8ICdsaW5lJyxcclxuICAgIHlBbGlnbj86ICdsZWZ0JyB8ICdyaWdodCcsXHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBvcmRlcj86bnVtYmVyO1xyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmc7XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGJlZ2luQXRaZXJvPzogYm9vbGVhbjtcclxuICBsYWJlbFdpZHRoPzogbnVtYmVyO1xyXG4gIHRpY2tzPzoge1xyXG4gICAgeExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5UmlnaHRMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmdcclxuICB9O1xyXG4gIGhvdmVyPzogJ1Nob3dBbGwnO1xyXG4gIHNob3dUb3RhbFN0YWNrPzpib29sZWFuXHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDaGFydENvbmZpZ3VyYXRpb24ge1xyXG4gIGRlZmF1bHRDb2xvcnM/OiB7XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZ1xyXG4gIH1bXTtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBDSEFSVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48SUNoYXJ0Q29uZmlndXJhdGlvbj4oJ2NoYXJ0LmNvbmZpZ3VyYXRpb24nKTtcclxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL2NoYXJ0LyIsInNvdXJjZXMiOlsic3JjL2xpYi9jaGFydC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixHQUFHLEVBQUUsbUJBQW1CO0lBQ3hCLE1BQU0sRUFBRSxtQkFBbUI7SUFDM0IsTUFBTSxFQUFFLG1CQUFtQjtJQUMzQixLQUFLLEVBQUUsbUJBQW1CO0lBQzFCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLFFBQVEsRUFBRSxTQUFTO0lBQ25CLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLE1BQU0sRUFBRSxTQUFTO0lBQ2pCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLFlBQVksRUFBRSxTQUFTO0lBQ3ZCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLEtBQUssRUFBRSxTQUFTO0lBQ2hCLEtBQUssRUFBRSxTQUFTO0NBQ2pCLENBQUM7QUFpS0YsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFzQixxQkFBcUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBDaGFydENvbG9ycyA9IHtcclxuICBSZWQ6ICdyZ2IoMjU1LCA5OSwgMTMyKScsXHJcbiAgT3JhbmdlOiAncmdiKDI1NSwgMTU5LCA2NCknLFxyXG4gIFllbGxvdzogJ3JnYigyNTUsIDIwNSwgODYpJyxcclxuICBHcmVlbjogJ3JnYig3NSwgMTkyLCAxOTIpJyxcclxuICBCbHVlOiAncmdiKDU0LCAxNjIsIDIzNSknLFxyXG4gIFB1cnBsZTogJ3JnYigxNTMsIDEwMiwgMjU1KScsXHJcbiAgR3JleTogJ3JnYigyMDEsIDIwMywgMjA3KScsXHJcbiAgUHVycGxlNzAwOiAnIzJFMjI0QycsXHJcbiAgUHVycGxlNjAwOiAnIzQ1MzM3MicsXHJcbiAgUHVycGxlNTAwOiAnIzU3NDE5MScsXHJcbiAgUHVycGxlNDAwOiAnIzczNTZCRicsXHJcbiAgUHVycGxlMzAwOiAnIzk1N0ZDRScsXHJcbiAgUHVycGxlMjAwOiAnI0MxQjRFMicsXHJcbiAgUHVycGxlMTAwOiAnI0UzRERGMicsXHJcbiAgUHVycGxlNTA6ICcjRjNGMUY5JyxcclxuICBCbHVlNzAwOiAnIzBGMkM2MCcsXHJcbiAgQmx1ZTYwMDogJyMxNzQyOTEnLFxyXG4gIEJsdWU1MDA6ICcjMUQ1M0I3JyxcclxuICBCbHVlNDAwOiAnIzI3NkVGMScsXHJcbiAgQmx1ZTMwMDogJyM1QTkwRjQnLFxyXG4gIEJsdWUyMDA6ICcjOUZCRkY4JyxcclxuICBCbHVlMTAwOiAnI0Q0RTJGQycsXHJcbiAgQmx1ZTUwOiAnI0VERjNGRCcsXHJcbiAgR3JlZW43MDA6ICcjMEQ0MDIwJyxcclxuICBHcmVlbjYwMDogJyMxNTZBMzYnLFxyXG4gIEdyZWVuNTAwOiAnIzA5ODYzRCcsXHJcbiAgR3JlZW40MDA6ICcjMjFBNDUzJyxcclxuICBHcmVlbjMwMDogJyM0M0JGNzUnLFxyXG4gIEdyZWVuMjAwOiAnIzlFRTJCOCcsXHJcbiAgR3JlZW4xMDA6ICcjQ0ZGM0REJyxcclxuICBHcmVlbjUwOiAnI0YwRkFGMycsXHJcbiAgWWVsbG93NzAwOiAnIzY2NEMxQScsXHJcbiAgWWVsbG93NjAwOiAnIzk5NzMyOCcsXHJcbiAgWWVsbG93NTAwOiAnI0MxOTEzMicsXHJcbiAgWWVsbG93NDAwOiAnI0ZGQzA0MycsXHJcbiAgWWVsbG93MzAwOiAnI0ZGQ0Y3MCcsXHJcbiAgWWVsbG93MjAwOiAnI0ZGRTNBQycsXHJcbiAgWWVsbG93MTAwOiAnI0ZGRjJEOScsXHJcbiAgWWVsbG93NTA6ICcjRkZGOUVGJyxcclxuICBPcmFuZ2U3MDA6ICcjNUYyQzE0JyxcclxuICBPcmFuZ2U2MDA6ICcjOEU0MjFFJyxcclxuICBPcmFuZ2U1MDA6ICcjQjQ1MzI2JyxcclxuICBPcmFuZ2U0MDA6ICcjRUQ2RTMzJyxcclxuICBPcmFuZ2UzMDA6ICcjRjE5MDYzJyxcclxuICBPcmFuZ2UyMDA6ICcjRjdCRkE1JyxcclxuICBPcmFuZ2UxMDA6ICcjRkJFMkQ2JyxcclxuICBPcmFuZ2U1MDogJyNGREYzRUUnLFxyXG4gIFJlZDcwMDogJyM1NDFBMTQnLFxyXG4gIFJlZDYwMDogJyM3RjI4MUUnLFxyXG4gIFJlZDUwMDogJyNBMTMyMjYnLFxyXG4gIFJlZDQwMDogJyNENDQzMzMnLFxyXG4gIFJlZDMwMDogJyNERTcwNjMnLFxyXG4gIFJlZDIwMDogJyNFQ0FDQTUnLFxyXG4gIFJlZDEwMDogJyNGNkQ5RDYnLFxyXG4gIFJlZDUwOiAnI0ZCRUZFRScsXHJcbiAgQnJvd243MDA6ICcjM0QyODFFJyxcclxuICBCcm93bjYwMDogJyM1QjNDMkQnLFxyXG4gIEJyb3duNTAwOiAnIzc0NEMzOScsXHJcbiAgQnJvd240MDA6ICcjOTk2NDRDJyxcclxuICBCcm93bjMwMDogJyNCMTg5NzYnLFxyXG4gIEJyb3duMjAwOiAnI0QyQkFCMCcsXHJcbiAgQnJvd24xMDA6ICcjRUJFMERCJyxcclxuICBCcm93bjUwOiAnI0Y2RjJGMCcsXHJcbiAgR3JheTkwMDogJyMxNDE0MTQnLFxyXG4gIEdyYXk4MDA6ICcjMUYxRjFGJyxcclxuICBHcmF5NzAwOiAnIzMzMzMzMycsXHJcbiAgR3JheTYwMDogJyM1NDU0NTQnLFxyXG4gIEdyYXk1MDA6ICcjNzU3NTc1JyxcclxuICBHcmF5NDAwOiAnI0FGQUZBRicsXHJcbiAgR3JheTMwMDogJyNDQkNCQ0InLFxyXG4gIEdyYXkyMDA6ICcjRTJFMkUyJyxcclxuICBHcmF5MTAwOiAnI0VFRUVFRScsXHJcbiAgR3JheTUwOiAnI0Y2RjZGNicsXHJcbiAgUGxhdGludW03MDA6ICcjMzk0MTQ1JyxcclxuICBQbGF0aW51bTYwMDogJyM1NTYyNjgnLFxyXG4gIFBsYXRpbnVtNTAwOiAnIzZDN0M4MycsXHJcbiAgUGxhdGludW00MDA6ICcjOEVBM0FEJyxcclxuICBQbGF0aW51bTMwMDogJyNBMUJEQ0EnLFxyXG4gIFBsYXRpbnVtMjAwOiAnI0NDREZFNScsXHJcbiAgUGxhdGludW0xMDA6ICcjRUJGNUY3JyxcclxuICBQbGF0aW51bTUwOiAnI0Y0RkFGQicsXHJcbiAgRWF0c0dyZWVuNDAwOiAnIzIxQTQ1MycsXHJcbiAgRnJlaWdodEJsdWU0MDA6ICcjMjFBNDUzJyxcclxuICBKdW1wUmVkNDAwOiAnI0ZGMEEyRCcsXHJcbiAgQmxhY2s6ICcjMDAwMDAwJyxcclxuICBXaGl0ZTogJyNGRkZGRkYnLFxyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgU2RDaGFydE9wdGlvbiA9IERvdWdobnV0Q2hhcnRPcHRpb24gfCBQaWVDaGFydE9wdGlvbiB8XHJcbiAgQmFyQ2hhcnRPcHRpb24gfFxyXG4gIEhvcml6b250YWxCYXJDaGFydE9wdGlvbiB8XHJcbiAgTGluZUNoYXJ0T3B0aW9uIHxcclxuICBTdGFja0FyZWFDaGFydE9wdGlvbiB8XHJcbiAgQmFyTGluZUNoYXJ0T3B0aW9uO1xyXG5cclxuaW50ZXJmYWNlIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgaGVpZ2h0Pzogc3RyaW5nO1xyXG4gIGhpZGVMZWdlbmQ/OiBib29sZWFuO1xyXG4gIGxlZ2VuZFBvc2l0aW9uPzonbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyB8ICdjaGFydEFyZWEnXHJcbiAgdG9vbHRpcHM/OiB7XHJcbiAgICBsYWJlbDogKHBhcmFtczogeyBkYXRhc2V0TGFiZWw/OiBzdHJpbmcsIGxhYmVsPzogc3RyaW5nLCB2YWx1ZT86IG51bWJlcixkYXRhc2V0SW5kZXg/Om51bWJlcixkYXRhSW5kZXg/Om51bWJlcjsgfSkgPT4gc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQaWVDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ3BpZSc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmcsXHJcbiAgICB2YWx1ZTogbnVtYmVyLFxyXG4gICAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmdcclxuICB9W107XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRG91Z2hudXRDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ2RvdWdobnV0JztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBkYXRhc2V0czoge1xyXG4gICAgbGFiZWw6IHN0cmluZyxcclxuICAgIHZhbHVlOiBudW1iZXIsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZ1xyXG4gIH1bXTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCYXJDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ2Jhcic7XHJcbiAgeFRpdGxlPzogc3RyaW5nO1xyXG4gIHlUaXRsZT86IHN0cmluZztcclxuICBsYWJlbHM6IHN0cmluZ1tdO1xyXG4gIGRhdGFzZXRzOiB7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgZGF0YTogbnVtYmVyW107XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZyxcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICAgIHN0YWNrPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIb3Jpem9udGFsQmFyQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdob3Jpem9udGFsQmFyJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nLFxyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gICAgc3RhY2s/OiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGJlZ2luQXRaZXJvPzogYm9vbGVhbjtcclxuICBsYWJlbFdpZHRoPzogbnVtYmVyO1xyXG4gIHRpY2tzPzoge1xyXG4gICAgeExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmdcclxuICB9O1xyXG4gIGhvdmVyPzogJ1Nob3dBbGwnO1xyXG4gIHNob3dUb3RhbFN0YWNrPzpib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExpbmVDaGFydE9wdGlvbiBleHRlbmRzIEJhc2VDaGFydE9wdGlvbiB7XHJcbiAgdHlwZTogJ2xpbmUnO1xyXG4gIHhUaXRsZT86IHN0cmluZztcclxuICB5VGl0bGU/OiBzdHJpbmc7XHJcbiAgbGFiZWxzOiBzdHJpbmdbXTtcclxuICBkYXRhc2V0czoge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGRhdGE6IG51bWJlcltdO1xyXG4gICAgYm9yZGVyQ29sb3I/OiBzdHJpbmcsXHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGJlZ2luQXRaZXJvPzogYm9vbGVhbjtcclxuICBsYWJlbFdpZHRoPzogbnVtYmVyO1xyXG4gIHRpY2tzPzoge1xyXG4gICAgeExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmdcclxuICB9O1xyXG4gIGhvdmVyPzogJ1Nob3dBbGwnO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrQXJlYUNoYXJ0T3B0aW9uIGV4dGVuZHMgQmFzZUNoYXJ0T3B0aW9uIHtcclxuICB0eXBlOiAnc3RhY2tBcmVhJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nLFxyXG4gICAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIH1bXTtcclxuICBiZWdpbkF0WmVybz86IGJvb2xlYW47XHJcbiAgbGFiZWxXaWR0aD86IG51bWJlcjtcclxuICB0aWNrcz86IHtcclxuICAgIHhMYWJlbD86ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiBzdHJpbmcsXHJcbiAgICB5TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nXHJcbiAgfTtcclxuICBob3Zlcj86ICdTaG93QWxsJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCYXJMaW5lQ2hhcnRPcHRpb24gZXh0ZW5kcyBCYXNlQ2hhcnRPcHRpb24ge1xyXG4gIHR5cGU6ICdiYXJsaW5lJztcclxuICB4VGl0bGU/OiBzdHJpbmc7XHJcbiAgeFN0YWNrZWQ/OmJvb2xlYW47XHJcbiAgeVRpdGxlPzogc3RyaW5nO1xyXG4gIHlTdGFja2VkPzpib29sZWFuO1xyXG4gIHlSaWdodFRpdGxlPzogc3RyaW5nO1xyXG4gIGxhYmVsczogc3RyaW5nW107XHJcbiAgZGF0YXNldHM6IHtcclxuICAgIHR5cGU6ICdiYXInIHwgJ2xpbmUnLFxyXG4gICAgeUFsaWduPzogJ2xlZnQnIHwgJ3JpZ2h0JyxcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBkYXRhOiBudW1iZXJbXTtcclxuICAgIG9yZGVyPzpudW1iZXI7XHJcbiAgICBib3JkZXJDb2xvcj86IHN0cmluZztcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcclxuICB9W107XHJcbiAgYmVnaW5BdFplcm8/OiBib29sZWFuO1xyXG4gIGxhYmVsV2lkdGg/OiBudW1iZXI7XHJcbiAgdGlja3M/OiB7XHJcbiAgICB4TGFiZWw/OiAodmFsdWU6IG51bWJlciB8IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4gc3RyaW5nLFxyXG4gICAgeUxhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZyxcclxuICAgIHlSaWdodExhYmVsPzogKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHN0cmluZ1xyXG4gIH07XHJcbiAgaG92ZXI/OiAnU2hvd0FsbCc7XHJcbiAgc2hvd1RvdGFsU3RhY2s/OmJvb2xlYW5cclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNoYXJ0Q29uZmlndXJhdGlvbiB7XHJcbiAgZGVmYXVsdENvbG9ycz86IHtcclxuICAgIGJhY2tncm91bmRDb2xvcj86IHN0cmluZyxcclxuICAgIGJvcmRlckNvbG9yPzogc3RyaW5nXHJcbiAgfVtdO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IENIQVJUX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJQ2hhcnRDb25maWd1cmF0aW9uPignY2hhcnQuY29uZmlndXJhdGlvbicpO1xyXG4iXX0=