@tetacom/ng-components 1.0.31 → 1.0.35

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.
Files changed (150) hide show
  1. package/common/contract/i-id.d.ts +3 -0
  2. package/common/contract/public-api.d.ts +1 -0
  3. package/component/chart-3d/chart3d/chart3d.component.d.ts +1 -0
  4. package/component/chart-3d/model/chart-3d-options.d.ts +1 -0
  5. package/component/date-picker/date-picker/date-picker.component.d.ts +9 -6
  6. package/component/date-picker/day-select/day-select.component.d.ts +5 -5
  7. package/component/date-picker/month-picker/month-picker.component.d.ts +5 -5
  8. package/component/date-picker/month-select/month-select.component.d.ts +2 -2
  9. package/component/dropdown/dropdown-base.d.ts +3 -2
  10. package/component/filter/base/filter-component-base.d.ts +3 -1
  11. package/component/filter/boolean-filter/boolean-filter.component.d.ts +5 -3
  12. package/component/filter/date-filter/date-filter.component.d.ts +11 -4
  13. package/component/filter/filter-host/filter-host.component.d.ts +6 -3
  14. package/component/filter/filter.module.d.ts +15 -16
  15. package/component/filter/list-filter/list-filter.component.d.ts +11 -4
  16. package/component/filter/numeric-filter/numeric-filter.component.d.ts +11 -4
  17. package/component/filter/public-api.d.ts +0 -1
  18. package/component/filter/string-filter/string-filter.component.d.ts +11 -4
  19. package/component/input/text-field/text-field.component.d.ts +2 -2
  20. package/component/select/select/select.component.d.ts +1 -1
  21. package/component/table/base/cell-component-base.d.ts +3 -1
  22. package/component/table/base/head-cell-component-base.d.ts +5 -3
  23. package/component/table/contract/i-cell-coordinates.d.ts +3 -5
  24. package/component/table/contract/i-cell-event.d.ts +1 -1
  25. package/component/table/contract/i-cell-instance.d.ts +12 -0
  26. package/component/table/contract/i-cell-value.d.ts +1 -2
  27. package/component/table/contract/public-api.d.ts +1 -1
  28. package/component/table/contract/table-column.d.ts +3 -3
  29. package/component/table/default/boolean-cell/boolean-cell.component.d.ts +1 -1
  30. package/component/table/default/date-cell/date-cell.component.d.ts +1 -1
  31. package/component/table/default/date-time-cell/date-time-cell.component.d.ts +1 -1
  32. package/component/table/default/default-head-cell/default-head-cell.component.d.ts +7 -3
  33. package/component/table/default/list-cell/list-cell.component.d.ts +1 -1
  34. package/component/table/default/numeric-cell/numeric-cell.component.d.ts +1 -1
  35. package/component/table/default/string-cell/string-cell.component.d.ts +1 -1
  36. package/component/table/enum/edit-type.enum.d.ts +3 -2
  37. package/component/table/head-cell/head-cell.component.d.ts +3 -2
  38. package/component/table/head-cell-dropdown/head-cell-dropdown.component.d.ts +12 -5
  39. package/component/table/head-cell-host/head-cell-host.component.d.ts +7 -3
  40. package/component/table/service/table.service.d.ts +38 -15
  41. package/component/table/table/table.component.d.ts +21 -32
  42. package/component/table/table-body/table-body.component.d.ts +12 -9
  43. package/component/table/table-head/table-head.component.d.ts +4 -4
  44. package/component/table/table-head-group/table-head-group.component.d.ts +5 -3
  45. package/component/table/table.module.d.ts +2 -1
  46. package/component/table/util/state-util.d.ts +3 -0
  47. package/component/table/util/table-util.d.ts +0 -1
  48. package/directive/loader/loader.directive.d.ts +3 -1
  49. package/esm2020/common/contract/i-id.mjs +2 -0
  50. package/esm2020/common/contract/public-api.mjs +2 -1
  51. package/esm2020/component/chart-3d/chart3d/chart3d.component.mjs +64 -57
  52. package/esm2020/component/chart-3d/model/chart-3d-options.mjs +1 -1
  53. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +3 -3
  54. package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +17 -8
  55. package/esm2020/component/date-picker/day-select/day-select.component.mjs +10 -8
  56. package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +10 -8
  57. package/esm2020/component/date-picker/month-select/month-select.component.mjs +5 -4
  58. package/esm2020/component/dropdown/dropdown-base.mjs +14 -6
  59. package/esm2020/component/filter/base/filter-base.mjs +4 -3
  60. package/esm2020/component/filter/base/filter-component-base.mjs +1 -1
  61. package/esm2020/component/filter/boolean-filter/boolean-filter.component.mjs +4 -2
  62. package/esm2020/component/filter/contarct/filter-item.mjs +4 -3
  63. package/esm2020/component/filter/contarct/sort-param.mjs +3 -2
  64. package/esm2020/component/filter/date-filter/date-filter.component.mjs +15 -9
  65. package/esm2020/component/filter/filter-host/filter-host.component.mjs +12 -2
  66. package/esm2020/component/filter/filter.module.mjs +3 -8
  67. package/esm2020/component/filter/list-filter/list-filter.component.mjs +20 -12
  68. package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +15 -9
  69. package/esm2020/component/filter/public-api.mjs +1 -2
  70. package/esm2020/component/filter/string-filter/string-filter.component.mjs +16 -9
  71. package/esm2020/component/input/input/input.component.mjs +2 -2
  72. package/esm2020/component/input/text-field/text-field.component.mjs +8 -3
  73. package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +1 -1
  74. package/esm2020/component/select/select/select.component.mjs +12 -6
  75. package/esm2020/component/table/base/cell-component-base.mjs +20 -26
  76. package/esm2020/component/table/base/head-cell-component-base.mjs +1 -1
  77. package/esm2020/component/table/contract/i-cell-coordinates.mjs +1 -1
  78. package/esm2020/component/table/contract/i-cell-event.mjs +1 -1
  79. package/esm2020/component/table/contract/i-cell-instance.mjs +2 -0
  80. package/esm2020/component/table/contract/i-cell-value.mjs +1 -1
  81. package/esm2020/component/table/contract/public-api.mjs +2 -2
  82. package/esm2020/component/table/contract/table-column.mjs +1 -1
  83. package/esm2020/component/table/default/boolean-cell/boolean-cell.component.mjs +4 -4
  84. package/esm2020/component/table/default/date-cell/date-cell.component.mjs +4 -4
  85. package/esm2020/component/table/default/date-time-cell/date-time-cell.component.mjs +6 -6
  86. package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +14 -4
  87. package/esm2020/component/table/default/list-cell/list-cell.component.mjs +4 -4
  88. package/esm2020/component/table/default/numeric-cell/numeric-cell.component.mjs +13 -9
  89. package/esm2020/component/table/default/string-cell/string-cell.component.mjs +16 -10
  90. package/esm2020/component/table/enum/edit-type.enum.mjs +4 -3
  91. package/esm2020/component/table/head-cell/head-cell.component.mjs +19 -19
  92. package/esm2020/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +47 -31
  93. package/esm2020/component/table/head-cell-host/head-cell-host.component.mjs +14 -2
  94. package/esm2020/component/table/selection-head-cell/selection-head-cell.component.mjs +1 -1
  95. package/esm2020/component/table/service/table.service.mjs +213 -27
  96. package/esm2020/component/table/table/table.component.mjs +174 -156
  97. package/esm2020/component/table/table-body/table-body.component.mjs +26 -50
  98. package/esm2020/component/table/table-head/table-head.component.mjs +14 -35
  99. package/esm2020/component/table/table-head-group/table-head-group.component.mjs +29 -14
  100. package/esm2020/component/table/table.module.mjs +6 -2
  101. package/esm2020/component/table/util/state-util.mjs +20 -1
  102. package/esm2020/component/table/util/table-util.mjs +10 -14
  103. package/esm2020/component/toolbar/toolbar/toolbar.component.mjs +2 -2
  104. package/esm2020/directive/context-menu/context-menu.directive.mjs +7 -5
  105. package/esm2020/directive/dynamic-content-base.directive.mjs +6 -7
  106. package/esm2020/directive/loader/loader.directive.mjs +15 -2
  107. package/esm2020/locale/en.mjs +57 -0
  108. package/esm2020/locale/public-api.mjs +5 -0
  109. package/esm2020/locale/ru.mjs +57 -0
  110. package/esm2020/locale/teta-config.service.mjs +28 -0
  111. package/esm2020/locale/teta-localisation.mjs +2 -0
  112. package/esm2020/public-api.mjs +3 -1
  113. package/esm2020/util/string-util.mjs +5 -1
  114. package/fesm2015/tetacom-ng-components.mjs +1231 -844
  115. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  116. package/fesm2020/tetacom-ng-components.mjs +1161 -761
  117. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  118. package/locale/en.d.ts +2 -0
  119. package/locale/public-api.d.ts +4 -0
  120. package/locale/ru.d.ts +2 -0
  121. package/locale/teta-config.service.d.ts +11 -0
  122. package/locale/teta-localisation.d.ts +56 -0
  123. package/package.json +1 -1
  124. package/public-api.d.ts +1 -0
  125. package/style/border.scss +1 -1
  126. package/style/button.scss +9 -5
  127. package/style/checkbox.scss +10 -2
  128. package/style/datepicker.scss +9 -7
  129. package/style/dropdown.scss +12 -2
  130. package/style/input.scss +6 -5
  131. package/style/list.scss +1 -1
  132. package/style/loader.scss +10 -0
  133. package/style/presets/color-presets.scss +62 -62
  134. package/style/presets/font-presets.scss +62 -45
  135. package/style/presets/shadow-presets.scss +3 -3
  136. package/style/select.scss +6 -6
  137. package/style/switch.scss +1 -1
  138. package/style/table.scss +44 -45
  139. package/style/tabs.scss +2 -2
  140. package/style/toolbar.scss +3 -6
  141. package/style/tree.scss +2 -2
  142. package/util/string-util.d.ts +1 -0
  143. package/component/date-picker/model/picker-locale-model.d.ts +0 -16
  144. package/component/date-picker/service/picker-locale.service.d.ts +0 -11
  145. package/component/filter/filter-panel/filter-panel.component.d.ts +0 -8
  146. package/component/table/contract/table-context-menu-config.d.ts +0 -14
  147. package/esm2020/component/date-picker/model/picker-locale-model.mjs +0 -13
  148. package/esm2020/component/date-picker/service/picker-locale.service.mjs +0 -30
  149. package/esm2020/component/filter/filter-panel/filter-panel.component.mjs +0 -13
  150. package/esm2020/component/table/contract/table-context-menu-config.mjs +0 -17
@@ -27,7 +27,8 @@ export class Chart3dComponent {
27
27
  ngOnInit() {
28
28
  this._themeService.theme
29
29
  .pipe(takeWhile((_) => this._alive), tap((_) => {
30
- this.gridColor = _ ? '#474751' : '#d7dee3';
30
+ this.gridColor = _ ? '#5d6a73' : '#bdbdc6';
31
+ this.axesColor = _ ? '#8e8f9d' : '#7d8f9a';
31
32
  this.init();
32
33
  }))
33
34
  .subscribe();
@@ -36,6 +37,7 @@ export class Chart3dComponent {
36
37
  this.addResizeObserver();
37
38
  this.createScene();
38
39
  this.startRenderingLoop();
40
+ this.init();
39
41
  }
40
42
  ngOnDestroy() {
41
43
  this._alive = false;
@@ -49,37 +51,51 @@ export class Chart3dComponent {
49
51
  }
50
52
  const { x, y, z } = this.getScales(this._config.series);
51
53
  this.config.series.forEach((data, idx) => {
52
- const geometry = new THREE.BufferGeometry().setFromPoints(data.points.map((_) => new THREE.Vector3(x(_.x), z(_.z), y(_.y))));
54
+ if (!data.points?.length) {
55
+ return;
56
+ }
57
+ const points = data.points.map((_) => new THREE.Vector3(x(_.x), y(_.y), z(_.z)));
53
58
  const color = d3.scaleOrdinal(d3.schemeTableau10);
54
59
  const material = new THREE.LineBasicMaterial({
55
60
  color: data?.color ?? color(idx.toString()),
56
61
  });
57
- const line = new THREE.Line(geometry, material);
58
- line.computeLineDistances();
59
- line.scale.set(1, 1, 1);
60
- this._scene.add(line);
62
+ const tubeGeometry = new THREE.TubeGeometry(new THREE.CatmullRomCurve3(points), 1024, 0.5, 20, false);
63
+ let tube = new THREE.Line(tubeGeometry, material);
64
+ this._scene.add(tube);
65
+ });
66
+ const circles = x.ticks(this.SIDE_SIZE / 10);
67
+ const material = new THREE.LineBasicMaterial({ color: this.axesColor });
68
+ const pointsLines = [];
69
+ pointsLines.push(new THREE.Vector3(0, 0, 0));
70
+ pointsLines.push(new THREE.Vector3(0, 0, z(-z.domain()[1])));
71
+ pointsLines.push(new THREE.Vector3(0, 0, 0));
72
+ pointsLines.push(new THREE.Vector3(x(-x.domain()[1]), 0, 0));
73
+ const geometryLines = new THREE.BufferGeometry().setFromPoints(pointsLines);
74
+ const line = new THREE.Line(geometryLines, material);
75
+ this._scene.add(line);
76
+ circles.forEach((r) => {
77
+ const material = new THREE.LineDashedMaterial({
78
+ color: this.gridColor,
79
+ dashSize: 1,
80
+ gapSize: 3
81
+ });
82
+ const circleGeometry = new THREE.BufferGeometry().setFromPoints(new THREE.Path().absarc(0, 0, x(r), 0, Math.PI * 2, false).getSpacedPoints(100));
83
+ const circle = new THREE.LineSegments(circleGeometry, material);
84
+ circle.geometry.rotateX(-Math.PI / 2);
85
+ this._scene.add(circle);
61
86
  });
62
- const plane = new THREE.GridHelper(this.SIDE_SIZE, this.SIDE_SIZE / 10, this.gridColor, this.gridColor);
63
- plane.position.set(this.SIDE_SIZE / 2, 0, this.SIDE_SIZE / 2);
64
- this._scene.add(plane);
65
- const gridX = new THREE.GridHelper(this.SIDE_SIZE, this.SIDE_SIZE / 10, this.gridColor, this.gridColor);
66
- gridX.geometry.rotateX(-Math.PI / 2);
67
- gridX.position.set(this.SIDE_SIZE / 2, this.SIDE_SIZE / 2, 0);
68
- this._scene.add(gridX);
69
- const gridY = new THREE.GridHelper(this.SIDE_SIZE, this.SIDE_SIZE / 10, this.gridColor, this.gridColor);
70
- gridY.geometry.rotateZ(Math.PI / 2);
71
- gridY.position.set(0, this.SIDE_SIZE / 2, this.SIDE_SIZE / 2);
72
- this._scene.add(gridY);
73
87
  this.drawTicks(x, y, z);
74
- this._controls = new OrbitControls(this._camera, this._renderer.domElement);
75
- this._controls.enableDamping = true;
76
- this._controls.enablePan = true;
77
- this._controls.dampingFactor = 0.25;
78
- this._controls.screenSpacePanning = true;
79
- this._controls.minDistance = 0;
80
- this._controls.maxDistance = 10000;
81
- this._controls.maxPolarAngle = Math.PI / 2;
82
- this._controls.enableZoom = true;
88
+ if (!this._controls) {
89
+ this._controls = new OrbitControls(this._camera, this._renderer.domElement);
90
+ this._controls.enableDamping = true;
91
+ this._controls.enablePan = true;
92
+ this._controls.dampingFactor = 0.25;
93
+ this._controls.screenSpacePanning = true;
94
+ this._controls.minDistance = 0;
95
+ this._controls.maxDistance = 10000;
96
+ this._controls.maxPolarAngle = Math.PI / 2;
97
+ this._controls.enableZoom = true;
98
+ }
83
99
  }
84
100
  createScene() {
85
101
  this._scene = new THREE.Scene();
@@ -141,7 +157,7 @@ export class Chart3dComponent {
141
157
  map: texture,
142
158
  });
143
159
  const sprite = new THREE.Sprite(spriteMaterial);
144
- sprite.scale.set(5, 5, 5);
160
+ sprite.scale.set(0.4 * fontSize, 0.4 * fontSize, 0.4 * fontSize);
145
161
  return sprite;
146
162
  }
147
163
  drawTicks(x, y, z) {
@@ -153,24 +169,27 @@ export class Chart3dComponent {
153
169
  generatedTicks.forEach((_) => {
154
170
  const sprite = this.makeSprite(_);
155
171
  if (idx === 0) {
156
- sprite.position.set(x(_), z(0), -5);
172
+ sprite.position.set(x(_), y(y.domain()[1]), 0);
157
173
  }
158
174
  if (idx === 1) {
159
- sprite.position.set(-5, z(0), y(_));
175
+ sprite.position.set(-10, y(_), 0);
160
176
  }
161
177
  if (idx === 2) {
162
- sprite.position.set(0, z(_), -5);
178
+ sprite.position.set(0, y(y.domain()[1]), z(_));
163
179
  }
164
180
  ticks.add(sprite);
165
181
  });
166
182
  });
167
- const northLabel = this.makeSprite('North', { fontSize: 28 });
168
- const westLabel = this.makeSprite('West', { fontSize: 28 });
183
+ const northLabel = this.makeSprite('X', { fontSize: 28 });
184
+ const westLabel = this.makeSprite('Y', { fontSize: 28 });
169
185
  const tvdLabel = this.makeSprite('TVD', { fontSize: 28 });
170
- northLabel.position.set(x(scalesExtrems[0]) + 10, 0, 0);
171
- westLabel.position.set(0, 0, y(scalesExtrems[1]) + 10);
172
- tvdLabel.position.set(0, z(scalesExtrems[2]), 0);
186
+ northLabel.position.set(x(x.domain()[1]) + 5, 0, 0);
187
+ westLabel.position.set(0, 0, y(y.domain()[0]) + 5);
188
+ tvdLabel.position.set(0, z(z.domain()[1]) + 5, 0);
173
189
  ticks.add(northLabel, westLabel, tvdLabel);
190
+ const axesHelper = new THREE.AxesHelper(this.SIDE_SIZE);
191
+ axesHelper.setColors(this.axesColor, this.axesColor, this.axesColor);
192
+ this._scene.add(axesHelper);
174
193
  this._scene.add(ticks);
175
194
  }
176
195
  getScales(series) {
@@ -187,34 +206,22 @@ export class Chart3dComponent {
187
206
  }, { x: [], y: [], z: [] });
188
207
  const x = d3
189
208
  .scaleLinear()
190
- .domain([
191
- d3.min(flattenExtrems.x),
192
- this._config?.axes?.max == null
193
- ? d3.max(flattenExtrems.x)
209
+ .domain([0, this._config?.axes?.max == null
210
+ ? parseInt(d3.max(flattenExtrems.x))
194
211
  : this._config.axes.max,
195
212
  ])
196
- .range([0, this.SIDE_SIZE])
197
- .nice();
213
+ .range([0, this.SIDE_SIZE]).nice();
198
214
  const y = d3
199
215
  .scaleLinear()
200
- .domain([
201
- d3.min(flattenExtrems.y),
202
- this._config?.axes?.max == null
203
- ? d3.max(flattenExtrems.y)
204
- : this._config.axes.max,
205
- ])
206
- .range([0, this.SIDE_SIZE])
207
- .nice();
216
+ .domain([0, parseInt(d3.max(flattenExtrems.y), 10)])
217
+ .range([this.SIDE_SIZE, 0]);
208
218
  const z = d3
209
219
  .scaleLinear()
210
- .domain([
211
- d3.min(flattenExtrems.z),
220
+ .domain([0,
212
221
  this._config?.axes?.max == null
213
- ? d3.max(flattenExtrems.z)
214
- : this._config.axes.max,
215
- ])
216
- .range([this.SIDE_SIZE, 0])
217
- .nice();
222
+ ? parseInt(d3.max(flattenExtrems.z))
223
+ : this._config.axes.max])
224
+ .range([0, this.SIDE_SIZE]).nice();
218
225
  return { x, y, z };
219
226
  }
220
227
  }
@@ -229,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
229
236
  }], config: [{
230
237
  type: Input
231
238
  }] } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQzZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0LTNkL2NoYXJ0M2QvY2hhcnQzZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0LTNkL2NoYXJ0M2QvY2hhcnQzZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsdUJBQXVCLEVBQ3RDLFNBQVMsRUFFVCxLQUFLLEVBR0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUt6QixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFRaEQsTUFBTSxPQUFPLGdCQUFnQjtJQWUzQixZQUNVLFdBQXVCLEVBQ3ZCLGFBQWlDO1FBRGpDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQVBuQyxjQUFTLEdBQUcsR0FBRyxDQUFDO1FBR2hCLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFLbkIsQ0FBQztJQUVKLElBQWEsTUFBTSxDQUFDLE1BQXNCO1FBQ3hDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFZLE1BQU07UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lB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YyxDQUFDLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUc7U0FDMUIsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDMUIsSUFBSSxFQUFFLENBQUM7UUFFVixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs2R0F2VFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsdUxDeEI3Qiw2QkFDQTsyRkR1QmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNFLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTTtrSUFHMUIsU0FBUztzQkFBN0IsU0FBUzt1QkFBQyxRQUFRO2dCQW1CTixNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgT3JiaXRDb250cm9scyB9IGZyb20gJ3RocmVlL2V4YW1wbGVzL2pzbS9jb250cm9scy9PcmJpdENvbnRyb2xzJztcbmltcG9ydCAqIGFzIGQzIGZyb20gJ2QzJztcbmltcG9ydCB7IENoYXJ0M2RPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWwvY2hhcnQtM2Qtb3B0aW9ucyc7XG5pbXBvcnQgeyBCYXNlM2RQb2ludCB9IGZyb20gJy4uL21vZGVsL2Jhc2UtM2QtcG9pbnQnO1xuaW1wb3J0IHsgU2VyaWVzM2QgfSBmcm9tICcuLi9tb2RlbC9zZXJpZXMtM2QnO1xuaW1wb3J0IHsgVGhlbWVTd2l0Y2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGhlbWUtc3dpdGNoL3RoZW1lLXN3aXRjaC5zZXJ2aWNlJztcbmltcG9ydCB7IHRha2VXaGlsZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWNoYXJ0M2QnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQzZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYXJ0M2QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENoYXJ0M2RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2NhbnZhcycpIGNhbnZhc1JlZjogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9zY2VuZTogVEhSRUUuU2NlbmU7XG4gIHByaXZhdGUgX2NhbWVyYTogVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmE7XG4gIHByaXZhdGUgX3JlbmRlcmVyOiBUSFJFRS5SZW5kZXJlcjtcbiAgcHJpdmF0ZSBfY29udHJvbHM6IE9yYml0Q29udHJvbHM7XG4gIHByaXZhdGUgX29iczogUmVzaXplT2JzZXJ2ZXI7XG4gIHByaXZhdGUgX2NvbmZpZzogQ2hhcnQzZE9wdGlvbnM7XG5cbiAgcHJpdmF0ZSBTSURFX1NJWkUgPSAxMDA7XG4gIHByaXZhdGUgZ3JpZENvbG9yOiBhbnk7XG5cbiAgcHJpdmF0ZSBfYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfdGhlbWVTZXJ2aWNlOiBUaGVtZVN3aXRjaFNlcnZpY2VcbiAgKSB7fVxuXG4gIEBJbnB1dCgpIHNldCBjb25maWcoY29uZmlnOiBDaGFydDNkT3B0aW9ucykge1xuICAgIGlmIChjb25maWcpIHtcbiAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjb25maWcoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGNhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuY2FudmFzUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl90aGVtZVNlcnZpY2UudGhlbWVcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlV2hpbGUoKF8pID0+IHRoaXMuX2FsaXZlKSxcbiAgICAgICAgdGFwKChfKSA9PiB7XG4gICAgICAgICAgdGhpcy5ncmlkQ29sb3IgPSBfID8gJyM0NzQ3NTEnIDogJyNkN2RlZTMnO1xuICAgICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuYWRkUmVzaXplT2JzZXJ2ZXIoKTtcbiAgICB0aGlzLmNyZWF0ZVNjZW5lKCk7XG4gICAgdGhpcy5zdGFydFJlbmRlcmluZ0xvb3AoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2FsaXZlID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGluaXQoKSB7XG4gICAgaWYgKCF0aGlzLl9zY2VuZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHdoaWxlICh0aGlzLl9zY2VuZS5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9zY2VuZS5yZW1vdmUodGhpcy5fc2NlbmUuY2hpbGRyZW5bMF0pO1xuICAgIH1cblxuICAgIGNvbnN0IHsgeCwgeSwgeiB9ID0gdGhpcy5nZXRTY2FsZXModGhpcy5fY29uZmlnLnNlcmllcyk7XG5cbiAgICB0aGlzLmNvbmZpZy5zZXJpZXMuZm9yRWFjaCgoZGF0YSwgaWR4KSA9PiB7XG4gICAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5CdWZmZXJHZW9tZXRyeSgpLnNldEZyb21Qb2ludHMoXG4gICAgICAgIGRhdGEucG9pbnRzLm1hcCgoXykgPT4gbmV3IFRIUkVFLlZlY3RvcjMoeChfLngpLCB6KF8ueiksIHkoXy55KSkpXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjb2xvciA9IGQzLnNjYWxlT3JkaW5hbChkMy5zY2hlbWVUYWJsZWF1MTApO1xuXG4gICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5MaW5lQmFzaWNNYXRlcmlhbCh7XG4gICAgICAgIGNvbG9yOiBkYXRhPy5jb2xvciA/PyBjb2xvcihpZHgudG9TdHJpbmcoKSksXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbGluZSA9IG5ldyBUSFJFRS5MaW5lKGdlb21ldHJ5LCBtYXRlcmlhbCk7XG5cbiAgICAgIGxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTtcbiAgICAgIGxpbmUuc2NhbGUuc2V0KDEsIDEsIDEpO1xuICAgICAgdGhpcy5fc2NlbmUuYWRkKGxpbmUpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcGxhbmUgPSBuZXcgVEhSRUUuR3JpZEhlbHBlcihcbiAgICAgIHRoaXMuU0lERV9TSVpFLFxuICAgICAgdGhpcy5TSURFX1NJWkUgLyAxMCxcbiAgICAgIHRoaXMuZ3JpZENvbG9yLFxuICAgICAgdGhpcy5ncmlkQ29sb3JcbiAgICApO1xuXG4gICAgcGxhbmUucG9zaXRpb24uc2V0KHRoaXMuU0lERV9TSVpFIC8gMiwgMCwgdGhpcy5TSURFX1NJWkUgLyAyKTtcbiAgICB0aGlzLl9zY2VuZS5hZGQocGxhbmUpO1xuXG4gICAgY29uc3QgZ3JpZFggPSBuZXcgVEhSRUUuR3JpZEhlbHBlcihcbiAgICAgIHRoaXMuU0lERV9TSVpFLFxuICAgICAgdGhpcy5TSURFX1NJWkUgLyAxMCxcbiAgICAgIHRoaXMuZ3JpZENvbG9yLFxuICAgICAgdGhpcy5ncmlkQ29sb3JcbiAgICApO1xuICAgIGdyaWRYLmdlb21ldHJ5LnJvdGF0ZVgoLU1hdGguUEkgLyAyKTtcbiAgICBncmlkWC5wb3NpdGlvbi5zZXQodGhpcy5TSURFX1NJWkUgLyAyLCB0aGlzLlNJREVfU0laRSAvIDIsIDApO1xuICAgIHRoaXMuX3NjZW5lLmFkZChncmlkWCk7XG5cbiAgICBjb25zdCBncmlkWSA9IG5ldyBUSFJFRS5HcmlkSGVscGVyKFxuICAgICAgdGhpcy5TSURFX1NJWkUsXG4gICAgICB0aGlzLlNJREVfU0laRSAvIDEwLFxuICAgICAgdGhpcy5ncmlkQ29sb3IsXG4gICAgICB0aGlzLmdyaWRDb2xvclxuICAgICk7XG4gICAgZ3JpZFkuZ2VvbWV0cnkucm90YXRlWihNYXRoLlBJIC8gMik7XG4gICAgZ3JpZFkucG9zaXRpb24uc2V0KDAsIHRoaXMuU0lERV9TSVpFIC8gMiwgdGhpcy5TSURFX1NJWkUgLyAyKTtcbiAgICB0aGlzLl9zY2VuZS5hZGQoZ3JpZFkpO1xuXG4gICAgdGhpcy5kcmF3VGlja3MoeCwgeSwgeik7XG5cbiAgICB0aGlzLl9jb250cm9scyA9IG5ldyBPcmJpdENvbnRyb2xzKHRoaXMuX2NhbWVyYSwgdGhpcy5fcmVuZGVyZXIuZG9tRWxlbWVudCk7XG5cbiAgICB0aGlzLl9jb250cm9scy5lbmFibGVEYW1waW5nID0gdHJ1ZTtcbiAgICB0aGlzLl9jb250cm9scy5lbmFibGVQYW4gPSB0cnVlO1xuICAgIHRoaXMuX2NvbnRyb2xzLmRhbXBpbmdGYWN0b3IgPSAwLjI1O1xuICAgIHRoaXMuX2NvbnRyb2xzLnNjcmVlblNwYWNlUGFubmluZyA9IHRydWU7XG4gICAgdGhpcy5fY29udHJvbHMubWluRGlzdGFuY2UgPSAwO1xuICAgIHRoaXMuX2NvbnRyb2xzLm1heERpc3RhbmNlID0gMTAwMDA7XG4gICAgdGhpcy5fY29udHJvbHMubWF4UG9sYXJBbmdsZSA9IE1hdGguUEkgLyAyO1xuXG4gICAgdGhpcy5fY29udHJvbHMuZW5hYmxlWm9vbSA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVNjZW5lKCkge1xuICAgIHRoaXMuX3NjZW5lID0gbmV3IFRIUkVFLlNjZW5lKCk7XG5cbiAgICBjb25zdCBhc3BlY3RSYXRpbyA9XG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggL1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcblxuICAgIGNvbnN0IGZpZWxkT2ZWaWV3ID0gMTA7XG4gICAgY29uc3QgbmVhckNsaXBwaW5nUGFuZSA9IDE7XG4gICAgY29uc3QgZmFyQ2xpcHBpbmdQYW5lID0gMTAwMDA7XG5cbiAgICB0aGlzLl9jYW1lcmEgPSBuZXcgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEoXG4gICAgICBmaWVsZE9mVmlldyxcbiAgICAgIGFzcGVjdFJhdGlvLFxuICAgICAgbmVhckNsaXBwaW5nUGFuZSxcbiAgICAgIGZhckNsaXBwaW5nUGFuZVxuICAgICk7XG5cbiAgICB0aGlzLl9jYW1lcmEucG9zaXRpb24uc2V0KDEzMDAsIDEzMDAsIDEzMDApLnNldExlbmd0aCgxMzAwKTtcbiAgICB0aGlzLl9zY2VuZS5hZGQodGhpcy5fY2FtZXJhKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2l6ZSh3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcikge1xuICAgIHRoaXMuX2NhbWVyYS5hc3BlY3QgPSB3aWR0aCAvIGhlaWdodDtcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRTaXplKHdpZHRoLCBoZWlnaHQpO1xuXG4gICAgdGhpcy5fY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyKCkge1xuICAgIHRoaXMuX3JlbmRlcmVyLnJlbmRlcih0aGlzLl9zY2VuZSwgdGhpcy5fY2FtZXJhKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRSZW5kZXJpbmdMb29wKCkge1xuICAgIHRoaXMuX3JlbmRlcmVyID0gbmV3IFRIUkVFLldlYkdMUmVuZGVyZXIoe1xuICAgICAgYW50aWFsaWFzOiB0cnVlLFxuICAgICAgY2FudmFzOiB0aGlzLmNhbnZhcyxcbiAgICAgIGFscGhhOiB0cnVlLFxuICAgICAgcHJlc2VydmVEcmF3aW5nQnVmZmVyOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYW5pbWF0ZSA9ICgpID0+IHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShhbmltYXRlKTtcbiAgICAgIHRoaXMuX2NvbnRyb2xzPy51cGRhdGUoKTtcbiAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgfTtcblxuICAgIGFuaW1hdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkUmVzaXplT2JzZXJ2ZXIoKSB7XG4gICAgdGhpcy5fb2JzID0gbmV3IFJlc2l6ZU9ic2VydmVyKChfKSA9PiB7XG4gICAgICB0aGlzLnNldFNpemUoX1swXT8uY29udGVudFJlY3Qud2lkdGgsIF9bMF0/LmNvbnRlbnRSZWN0LmhlaWdodCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9vYnMub2JzZXJ2ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlU3ByaXRlKHRleHQ6IHN0cmluZywgb3B0cz86IHsgZm9udFNpemU/OiBudW1iZXIgfSk6IFRIUkVFLlNwcml0ZSB7XG4gICAgY29uc3QgZm9udFNpemUgPSAyMDtcblxuICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgIGNvbnN0IHRleHRXaWR0aCA9IHRleHQubGVuZ3RoICogNTA7XG4gICAgY2FudmFzLmhlaWdodCA9IDUwO1xuICAgIGNhbnZhcy53aWR0aCA9IDUwO1xuXG4gICAgaWYoY3R4KSB7XG4gICAgICBjdHguZm9udCA9IGAke2ZvbnRTaXplfXB4IEFyaWFsYDtcbiAgICAgIGN0eC50ZXh0QWxpZ24gPSAnY2VudGVyJztcbiAgICAgIGN0eC50ZXh0QmFzZWxpbmUgPSAnbWlkZGxlJztcbiAgICAgIGN0eC5maWxsU3R5bGUgPSAnI0EwQTBBMCc7XG4gICAgICBjdHguZmlsbFRleHQodGV4dCwgMjUsIDI1KTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXh0dXJlID0gbmV3IFRIUkVFLlRleHR1cmUoY2FudmFzKTtcbiAgICB0ZXh0dXJlLm1pbkZpbHRlciA9IFRIUkVFLkxpbmVhckZpbHRlcjtcbiAgICB0ZXh0dXJlLm5lZWRzVXBkYXRlID0gdHJ1ZTtcbiAgICBjb25zdCBzcHJpdGVNYXRlcmlhbCA9IG5ldyBUSFJFRS5TcHJpdGVNYXRlcmlhbCh7XG4gICAgICBtYXA6IHRleHR1cmUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzcHJpdGUgPSBuZXcgVEhSRUUuU3ByaXRlKHNwcml0ZU1hdGVyaWFsKTtcbiAgICBzcHJpdGUuc2NhbGUuc2V0KDUsIDUsIDUpO1xuXG4gICAgcmV0dXJuIHNwcml0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd1RpY2tzKHg6IGFueSwgeTogYW55LCB6OiBhbnkpIHtcbiAgICBjb25zdCB0aWNrcyA9IG5ldyBUSFJFRS5PYmplY3QzRCgpO1xuICAgIGNvbnN0IHNjYWxlc0V4dHJlbXM6IGFueVtdID0gW107XG5cbiAgICBbeCwgeSwgel0uZm9yRWFjaCgoc2NhbGUsIGlkeCkgPT4ge1xuICAgICAgY29uc3QgZ2VuZXJhdGVkVGlja3MgPSBzY2FsZS50aWNrcyh0aGlzLlNJREVfU0laRSAvIDEwKTtcblxuICAgICAgc2NhbGVzRXh0cmVtcy5wdXNoKGQzLm1heChnZW5lcmF0ZWRUaWNrcykpO1xuXG4gICAgICBnZW5lcmF0ZWRUaWNrcy5mb3JFYWNoKChfOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3Qgc3ByaXRlID0gdGhpcy5tYWtlU3ByaXRlKF8pO1xuXG4gICAgICAgIGlmIChpZHggPT09IDApIHtcbiAgICAgICAgICBzcHJpdGUucG9zaXRpb24uc2V0KHgoXyksIHooMCksIC01KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpZHggPT09IDEpIHtcbiAgICAgICAgICBzcHJpdGUucG9zaXRpb24uc2V0KC01LCB6KDApLCB5KF8pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpZHggPT09IDIpIHtcbiAgICAgICAgICBzcHJpdGUucG9zaXRpb24uc2V0KDAsIHooXyksIC01KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRpY2tzLmFkZChzcHJpdGUpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBub3J0aExhYmVsID0gdGhpcy5tYWtlU3ByaXRlKCdOb3J0aCcsIHsgZm9udFNpemU6IDI4IH0pO1xuICAgIGNvbnN0IHdlc3RMYWJlbCA9IHRoaXMubWFrZVNwcml0ZSgnV2VzdCcsIHsgZm9udFNpemU6IDI4IH0pO1xuICAgIGNvbnN0IHR2ZExhYmVsID0gdGhpcy5tYWtlU3ByaXRlKCdUVkQnLCB7IGZvbnRTaXplOiAyOCB9KTtcblxuICAgIG5vcnRoTGFiZWwucG9zaXRpb24uc2V0KHgoc2NhbGVzRXh0cmVtc1swXSkgKyAxMCwgMCwgMCk7XG4gICAgd2VzdExhYmVsLnBvc2l0aW9uLnNldCgwLCAwLCB5KHNjYWxlc0V4dHJlbXNbMV0pICsgMTApO1xuICAgIHR2ZExhYmVsLnBvc2l0aW9uLnNldCgwLCB6KHNjYWxlc0V4dHJlbXNbMl0pLCAwKTtcblxuICAgIHRpY2tzLmFkZChub3J0aExhYmVsLCB3ZXN0TGFiZWwsIHR2ZExhYmVsKTtcblxuICAgIHRoaXMuX3NjZW5lLmFkZCh0aWNrcyk7XG4gIH1cblxuICBwcml2YXRlIGdldFNjYWxlcyhzZXJpZXM6IFNlcmllczNkPEJhc2UzZFBvaW50PltdKSB7XG4gICAgY29uc3QgZXh0cmVtcyA9IHNlcmllcy5tYXAoKF8pID0+ICh7XG4gICAgICB4OiBkMy5leHRlbnQoXy5wb2ludHMsIChwOiBhbnkpID0+IHAueCksXG4gICAgICB5OiBkMy5leHRlbnQoXy5wb2ludHMsIChwOiBhbnkpID0+IHAueSksXG4gICAgICB6OiBkMy5leHRlbnQoXy5wb2ludHMsIChwOiBhbnkpID0+IHAueiksXG4gICAgfSkpO1xuXG4gICAgY29uc3QgZmxhdHRlbkV4dHJlbXMgPSBleHRyZW1zLnJlZHVjZShcbiAgICAgIChhY2M6IGFueSwgXyk6IHsgeDogW251bWJlcl07IHk6IFtudW1iZXJdOyB6OiBbbnVtYmVyXSB9ID0+IHtcbiAgICAgICAgYWNjLnggPSBhY2MueC5jb25jYXQoXy54KTtcbiAgICAgICAgYWNjLnkgPSBhY2MueS5jb25jYXQoXy55KTtcbiAgICAgICAgYWNjLnogPSBhY2Muei5jb25jYXQoXy56KTtcbiAgICAgICAgcmV0dXJuIGFjYyBhcyBhbnk7XG4gICAgICB9LFxuICAgICAgeyB4OiBbXSwgeTogW10sIHo6IFtdIH1cbiAgICApO1xuXG4gICAgY29uc3QgeCA9IGQzXG4gICAgICAuc2NhbGVMaW5lYXIoKVxuICAgICAgLmRvbWFpbihbXG4gICAgICAgIGQzLm1pbihmbGF0dGVuRXh0cmVtcy54KSBhcyBhbnksXG4gICAgICAgIHRoaXMuX2NvbmZpZz8uYXhlcz8ubWF4ID09IG51bGxcbiAgICAgICAgICA/IGQzLm1heChmbGF0dGVuRXh0cmVtcy54KVxuICAgICAgICAgIDogdGhpcy5fY29uZmlnLmF4ZXMubWF4LFxuICAgICAgXSlcbiAgICAgIC5yYW5nZShbMCwgdGhpcy5TSURFX1NJWkVdKVxuICAgICAgLm5pY2UoKTtcblxuICAgIGNvbnN0IHkgPSBkM1xuICAgICAgLnNjYWxlTGluZWFyKClcbiAgICAgIC5kb21haW4oW1xuICAgICAgICBkMy5taW4oZmxhdHRlbkV4dHJlbXMueSkgYXMgYW55LFxuICAgICAgICB0aGlzLl9jb25maWc/LmF4ZXM/Lm1heCA9PSBudWxsXG4gICAgICAgICAgPyBkMy5tYXgoZmxhdHRlbkV4dHJlbXMueSlcbiAgICAgICAgICA6IHRoaXMuX2NvbmZpZy5heGVzLm1heCxcbiAgICAgIF0pXG4gICAgICAucmFuZ2UoWzAsIHRoaXMuU0lERV9TSVpFXSlcbiAgICAgIC5uaWNlKCk7XG5cbiAgICBjb25zdCB6ID0gZDNcbiAgICAgIC5zY2FsZUxpbmVhcigpXG4gICAgICAuZG9tYWluKFtcbiAgICAgICAgZDMubWluKGZsYXR0ZW5FeHRyZW1zLnopIGFzIGFueSxcbiAgICAgICAgdGhpcy5fY29uZmlnPy5heGVzPy5tYXggPT0gbnVsbFxuICAgICAgICAgID8gZDMubWF4KGZsYXR0ZW5FeHRyZW1zLnopXG4gICAgICAgICAgOiB0aGlzLl9jb25maWcuYXhlcy5tYXgsXG4gICAgICBdKVxuICAgICAgLnJhbmdlKFt0aGlzLlNJREVfU0laRSwgMF0pXG4gICAgICAubmljZSgpO1xuXG4gICAgcmV0dXJuIHsgeCwgeSwgeiB9O1xuICB9XG59XG4iLCI8Y2FudmFzICNjYW52YXM+PC9jYW52YXM+XG4iXX0=
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQzZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0LTNkL2NoYXJ0M2QvY2hhcnQzZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoYXJ0LTNkL2NoYXJ0M2QvY2hhcnQzZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsdUJBQXVCLEVBQ3RDLFNBQVMsRUFFVCxLQUFLLEVBR0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUt6QixPQUFPLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7QUFROUMsTUFBTSxPQUFPLGdCQUFnQjtJQWdCM0IsWUFDVSxXQUF1QixFQUN2QixhQUFpQztRQURqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBb0I7UUFSbkMsY0FBUyxHQUFHLEdBQUcsQ0FBQztRQUloQixXQUFNLEdBQUcsSUFBSSxDQUFDO0lBTXRCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUFzQjtRQUN4QyxJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO0lBQ0gsQ0FBQztJQUVELElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7SUFDdEMsQ0FBQztJ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RCxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXBCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBQyxRQUFRLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQztRQUV4RCxVQUFVLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRCxTQUFTLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuRCxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVsRCxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFHM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFD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LEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7UUFHcEMsT0FBTyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUM7SUFDbkIsQ0FBQzs7NkdBalZVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLHVMQ3hCN0IsNkJBQ0E7MkZEdUJhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU07a0lBRzFCLFNBQVM7c0JBQTdCLFNBQVM7dUJBQUMsUUFBUTtnQkFxQk4sTUFBTTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7T3JiaXRDb250cm9sc30gZnJvbSAndGhyZWUvZXhhbXBsZXMvanNtL2NvbnRyb2xzL09yYml0Q29udHJvbHMnO1xuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xuaW1wb3J0IHtDaGFydDNkT3B0aW9uc30gZnJvbSAnLi4vbW9kZWwvY2hhcnQtM2Qtb3B0aW9ucyc7XG5pbXBvcnQge0Jhc2UzZFBvaW50fSBmcm9tICcuLi9tb2RlbC9iYXNlLTNkLXBvaW50JztcbmltcG9ydCB7U2VyaWVzM2R9IGZyb20gJy4uL21vZGVsL3Nlcmllcy0zZCc7XG5pbXBvcnQge1RoZW1lU3dpdGNoU2VydmljZX0gZnJvbSAnLi4vLi4vdGhlbWUtc3dpdGNoL3RoZW1lLXN3aXRjaC5zZXJ2aWNlJztcbmltcG9ydCB7dGFrZVdoaWxlLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1jaGFydDNkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoYXJ0M2QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGFydDNkLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydDNkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdjYW52YXMnKSBjYW52YXNSZWY6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSBfc2NlbmU6IFRIUkVFLlNjZW5lO1xuICBwcml2YXRlIF9jYW1lcmE6IFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhO1xuICBwcml2YXRlIF9yZW5kZXJlcjogVEhSRUUuUmVuZGVyZXI7XG4gIHByaXZhdGUgX2NvbnRyb2xzOiBPcmJpdENvbnRyb2xzO1xuICBwcml2YXRlIF9vYnM6IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIF9jb25maWc6IENoYXJ0M2RPcHRpb25zO1xuXG4gIHByaXZhdGUgU0lERV9TSVpFID0gMTAwO1xuICBwcml2YXRlIGdyaWRDb2xvcjogYW55O1xuICBwcml2YXRlIGF4ZXNDb2xvcjogYW55O1xuXG4gIHByaXZhdGUgX2FsaXZlID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX3RoZW1lU2VydmljZTogVGhlbWVTd2l0Y2hTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGNvbmZpZyhjb25maWc6IENoYXJ0M2RPcHRpb25zKSB7XG4gICAgaWYgKGNvbmZpZykge1xuICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY2FudmFzKCk6IEhUTUxDYW52YXNFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5jYW52YXNSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3RoZW1lU2VydmljZS50aGVtZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoXykgPT4gdGhpcy5fYWxpdmUpLFxuICAgICAgICB0YXAoKF8pID0+IHtcbiAgICAgICAgICB0aGlzLmdyaWRDb2xvciA9IF8gPyAnIzVkNmE3MycgOiAnI2JkYmRjNic7XG4gICAgICAgICAgdGhpcy5heGVzQ29sb3IgPSAgXyA/ICcjOGU4ZjlkJyA6ICcjN2Q4ZjlhJztcbiAgICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmFkZFJlc2l6ZU9ic2VydmVyKCk7XG4gICAgdGhpcy5jcmVhdGVTY2VuZSgpO1xuICAgIHRoaXMuc3RhcnRSZW5kZXJpbmdMb29wKCk7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9hbGl2ZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0KCkge1xuICAgIGlmICghdGhpcy5fc2NlbmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB3aGlsZSAodGhpcy5fc2NlbmUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5fc2NlbmUucmVtb3ZlKHRoaXMuX3NjZW5lLmNoaWxkcmVuWzBdKTtcbiAgICB9XG5cbiAgICBjb25zdCB7eCwgeSwgen0gPSB0aGlzLmdldFNjYWxlcyh0aGlzLl9jb25maWcuc2VyaWVzKTtcblxuICAgIHRoaXMuY29uZmlnLnNlcmllcy5mb3JFYWNoKChkYXRhLCBpZHgpID0+IHtcblxuICAgICAgaWYgKCFkYXRhLnBvaW50cz8ubGVuZ3RoKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBjb25zdCBwb2ludHMgPSBkYXRhLnBvaW50cy5tYXAoKF8pID0+IG5ldyBUSFJFRS5WZWN0b3IzKHgoXy54KSwgeShfLnkpLCB6KF8ueikpKTtcblxuICAgICAgY29uc3QgY29sb3IgPSBkMy5zY2FsZU9yZGluYWwoZDMuc2NoZW1lVGFibGVhdTEwKTtcblxuICAgICAgY29uc3QgbWF0ZXJpYWwgPSBuZXcgVEhSRUUuTGluZUJhc2ljTWF0ZXJpYWwoe1xuICAgICAgICBjb2xvcjogZGF0YT8uY29sb3IgPz8gY29sb3IoaWR4LnRvU3RyaW5nKCkpLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHR1YmVHZW9tZXRyeSA9IG5ldyBUSFJFRS5UdWJlR2VvbWV0cnkoXG4gICAgICAgIG5ldyBUSFJFRS5DYXRtdWxsUm9tQ3VydmUzKHBvaW50cyksXG4gICAgICAgIDEwMjQsXG4gICAgICAgIDAuNSxcbiAgICAgICAgMjAsXG4gICAgICAgIGZhbHNlXG4gICAgICApO1xuXG4gICAgICBsZXQgdHViZSA9IG5ldyBUSFJFRS5MaW5lKHR1YmVHZW9tZXRyeSwgbWF0ZXJpYWwpO1xuICAgICAgdGhpcy5fc2NlbmUuYWRkKHR1YmUpO1xuXG5cbiAgICB9KTtcblxuXG4gICAgY29uc3QgY2lyY2xlcyA9IHgudGlja3ModGhpcy5TSURFX1NJWkUgLyAxMCk7XG5cblxuICAgIGNvbnN0IG1hdGVyaWFsID0gbmV3IFRIUkVFLkxpbmVCYXNpY01hdGVyaWFsKCB7IGNvbG9yOiB0aGlzLmF4ZXNDb2xvciB9ICk7XG4gICAgY29uc3QgcG9pbnRzTGluZXMgPSBbXTtcbiAgICBwb2ludHNMaW5lcy5wdXNoKG5ldyBUSFJFRS5WZWN0b3IzKDAsIDAgLCAwKSk7XG4gICAgcG9pbnRzTGluZXMucHVzaChuZXcgVEhSRUUuVmVjdG9yMygwLCAwICwgeigtei5kb21haW4oKVsxXSkpKTtcblxuICAgIHBvaW50c0xpbmVzLnB1c2gobmV3IFRIUkVFLlZlY3RvcjMoMCwgMCAsIDApKTtcbiAgICBwb2ludHNMaW5lcy5wdXNoKG5ldyBUSFJFRS5WZWN0b3IzKHgoLXguZG9tYWluKClbMV0pLCAwICwgMCkpO1xuXG4gICAgY29uc3QgZ2VvbWV0cnlMaW5lcyA9IG5ldyBUSFJFRS5CdWZmZXJHZW9tZXRyeSgpLnNldEZyb21Qb2ludHMocG9pbnRzTGluZXMpO1xuICAgIGNvbnN0IGxpbmUgPSBuZXcgVEhSRUUuTGluZShnZW9tZXRyeUxpbmVzLCBtYXRlcmlhbCk7XG5cbiAgICB0aGlzLl9zY2VuZS5hZGQobGluZSlcblxuICAgIGNpcmNsZXMuZm9yRWFjaCgocikgPT4ge1xuXG4gICAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5MaW5lRGFzaGVkTWF0ZXJpYWwoe1xuICAgICAgICBjb2xvcjogdGhpcy5ncmlkQ29sb3IsXG4gICAgICAgIGRhc2hTaXplOiAxLFxuICAgICAgICBnYXBTaXplOiAzXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgY2lyY2xlR2VvbWV0cnkgPSBuZXcgVEhSRUUuQnVmZmVyR2VvbWV0cnkoKS5zZXRGcm9tUG9pbnRzKFxuICAgICAgICBuZXcgVEhSRUUuUGF0aCgpLmFic2FyYygwLCAwLCB4KHIpLCAwLCBNYXRoLlBJICogMiwgZmFsc2UpLmdldFNwYWNlZFBvaW50cygxMDApXG4gICAgICApO1xuXG4gICAgICBjb25zdCBjaXJjbGUgPSBuZXcgVEhSRUUuTGluZVNlZ21lbnRzKGNpcmNsZUdlb21ldHJ5LCBtYXRlcmlhbCk7XG5cbiAgICAgIGNpcmNsZS5nZW9tZXRyeS5yb3RhdGVYKC1NYXRoLlBJIC8gMilcblxuICAgICAgdGhpcy5fc2NlbmUuYWRkKGNpcmNsZSk7XG5cbiAgICB9KTtcblxuICAgIHRoaXMuZHJhd1RpY2tzKHgsIHksIHopO1xuXG4gICAgaWYoIXRoaXMuX2NvbnRyb2xzKSB7XG4gICAgICB0aGlzLl9jb250cm9scyA9IG5ldyBPcmJpdENvbnRyb2xzKHRoaXMuX2NhbWVyYSwgdGhpcy5fcmVuZGVyZXIuZG9tRWxlbWVudCk7XG5cbiAgICAgIHRoaXMuX2NvbnRyb2xzLmVuYWJsZURhbXBpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5fY29udHJvbHMuZW5hYmxlUGFuID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2NvbnRyb2xzLmRhbXBpbmdGYWN0b3IgPSAwLjI1O1xuICAgICAgdGhpcy5fY29udHJvbHMuc2NyZWVuU3BhY2VQYW5uaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2NvbnRyb2xzLm1pbkRpc3RhbmNlID0gMDtcbiAgICAgIHRoaXMuX2NvbnRyb2xzLm1heERpc3RhbmNlID0gMTAwMDA7XG4gICAgICB0aGlzLl9jb250cm9scy5tYXhQb2xhckFuZ2xlID0gTWF0aC5QSSAvIDI7XG5cbiAgICAgIHRoaXMuX2NvbnRyb2xzLmVuYWJsZVpvb20gPSB0cnVlO1xuICAgIH1cblxuXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVNjZW5lKCkge1xuICAgIHRoaXMuX3NjZW5lID0gbmV3IFRIUkVFLlNjZW5lKCk7XG5cbiAgICBjb25zdCBhc3BlY3RSYXRpbyA9XG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggL1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcblxuICAgIGNvbnN0IGZpZWxkT2ZWaWV3ID0gMTA7XG4gICAgY29uc3QgbmVhckNsaXBwaW5nUGFuZSA9IDE7XG4gICAgY29uc3QgZmFyQ2xpcHBpbmdQYW5lID0gMTAwMDA7XG5cbiAgICB0aGlzLl9jYW1lcmEgPSBuZXcgVEhSRUUuUGVyc3BlY3RpdmVDYW1lcmEoXG4gICAgICBmaWVsZE9mVmlldyxcbiAgICAgIGFzcGVjdFJhdGlvLFxuICAgICAgbmVhckNsaXBwaW5nUGFuZSxcbiAgICAgIGZhckNsaXBwaW5nUGFuZVxuICAgICk7XG5cbiAgICB0aGlzLl9jYW1lcmEucG9zaXRpb24uc2V0KDEzMDAsIDEzMDAsIDEzMDApLnNldExlbmd0aCgxMzAwKTtcbiAgICB0aGlzLl9zY2VuZS5hZGQodGhpcy5fY2FtZXJhKTtcblxuXG4gIH1cblxuICBwcml2YXRlIHNldFNpemUod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIpIHtcbiAgICB0aGlzLl9jYW1lcmEuYXNwZWN0ID0gd2lkdGggLyBoZWlnaHQ7XG4gICAgdGhpcy5fcmVuZGVyZXIuc2V0U2l6ZSh3aWR0aCwgaGVpZ2h0KTtcblxuICAgIHRoaXMuX2NhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlcigpIHtcbiAgICB0aGlzLl9yZW5kZXJlci5yZW5kZXIodGhpcy5fc2NlbmUsIHRoaXMuX2NhbWVyYSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXJ0UmVuZGVyaW5nTG9vcCgpIHtcbiAgICB0aGlzLl9yZW5kZXJlciA9IG5ldyBUSFJFRS5XZWJHTFJlbmRlcmVyKHtcbiAgICAgIGFudGlhbGlhczogdHJ1ZSxcbiAgICAgIGNhbnZhczogdGhpcy5jYW52YXMsXG4gICAgICBhbHBoYTogdHJ1ZSxcbiAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFuaW1hdGUgPSAoKSA9PiB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYW5pbWF0ZSk7XG4gICAgICB0aGlzLl9jb250cm9scz8udXBkYXRlKCk7XG4gICAgICB0aGlzLnJlbmRlcigpO1xuICAgIH07XG5cbiAgICBhbmltYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGFkZFJlc2l6ZU9ic2VydmVyKCkge1xuICAgIHRoaXMuX29icyA9IG5ldyBSZXNpemVPYnNlcnZlcigoXykgPT4ge1xuICAgICAgdGhpcy5zZXRTaXplKF9bMF0/LmNvbnRlbnRSZWN0LndpZHRoLCBfWzBdPy5jb250ZW50UmVjdC5oZWlnaHQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fb2JzLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgbWFrZVNwcml0ZSh0ZXh0OiBzdHJpbmcsIG9wdHM/OiB7IGZvbnRTaXplPzogbnVtYmVyIH0pOiBUSFJFRS5TcHJpdGUge1xuICAgIGNvbnN0IGZvbnRTaXplID0gMjA7XG5cbiAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTtcbiAgICBjb25zdCB0ZXh0V2lkdGggPSB0ZXh0Lmxlbmd0aCAqIDUwO1xuICAgIGNhbnZhcy5oZWlnaHQgPSA1MDtcbiAgICBjYW52YXMud2lkdGggPSA1MDtcblxuICAgIGlmIChjdHgpIHtcbiAgICAgIGN0eC5mb250ID0gYCR7Zm9udFNpemV9cHggQXJpYWxgO1xuICAgICAgY3R4LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgY3R4LnRleHRCYXNlbGluZSA9ICdtaWRkbGUnO1xuICAgICAgY3R4LmZpbGxTdHlsZSA9ICcjQTBBMEEwJztcbiAgICAgIGN0eC5maWxsVGV4dCh0ZXh0LCAyNSwgMjUpO1xuICAgIH1cblxuICAgIGNvbnN0IHRleHR1cmUgPSBuZXcgVEhSRUUuVGV4dHVyZShjYW52YXMpO1xuICAgIHRleHR1cmUubWluRmlsdGVyID0gVEhSRUUuTGluZWFyRmlsdGVyO1xuICAgIHRleHR1cmUubmVlZHNVcGRhdGUgPSB0cnVlO1xuICAgIGNvbnN0IHNwcml0ZU1hdGVyaWFsID0gbmV3IFRIUkVFLlNwcml0ZU1hdGVyaWFsKHtcbiAgICAgIG1hcDogdGV4dHVyZSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNwcml0ZSA9IG5ldyBUSFJFRS5TcHJpdGUoc3ByaXRlTWF0ZXJpYWwpO1xuICAgIHNwcml0ZS5zY2FsZS5zZXQoMC40ICogZm9udFNpemUsIDAuNCAqIGZvbnRTaXplLCAwLjQgKiBmb250U2l6ZSk7XG5cblxuXG4gICAgcmV0dXJuIHNwcml0ZTtcbiAgfVxuXG4gIHByaXZhdGUgZHJhd1RpY2tzKHg6IGFueSwgeTogYW55LCB6OiBhbnkpIHtcbiAgICBjb25zdCB0aWNrcyA9IG5ldyBUSFJFRS5PYmplY3QzRCgpO1xuICAgIGNvbnN0IHNjYWxlc0V4dHJlbXM6IGFueVtdID0gW107XG5cbiAgICBbeCwgeSwgel0uZm9yRWFjaCgoc2NhbGUsIGlkeCkgPT4ge1xuICAgICAgY29uc3QgZ2VuZXJhdGVkVGlja3MgPSBzY2FsZS50aWNrcyh0aGlzLlNJREVfU0laRSAvIDEwKVxuXG4gICAgICBzY2FsZXNFeHRyZW1zLnB1c2goZDMubWF4KGdlbmVyYXRlZFRpY2tzKSk7XG5cbiAgICAgIGdlbmVyYXRlZFRpY2tzLmZvckVhY2goKF86IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBzcHJpdGUgPSB0aGlzLm1ha2VTcHJpdGUoXyk7XG5cbiAgICAgICAgaWYgKGlkeCA9PT0gMCkge1xuICAgICAgICAgIHNwcml0ZS5wb3NpdGlvbi5zZXQoeChfKSwgeSh5LmRvbWFpbigpWzFdKSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaWR4ID09PSAxKSB7XG4gICAgICAgICAgc3ByaXRlLnBvc2l0aW9uLnNldCgtMTAsIHkoXyksIDApO1xuXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaWR4ID09PSAyKSB7XG4gICAgICAgICAgc3ByaXRlLnBvc2l0aW9uLnNldCgwLCB5KHkuZG9tYWluKClbMV0pLCB6KF8pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRpY2tzLmFkZChzcHJpdGUpO1xuXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IG5vcnRoTGFiZWwgPSB0aGlzLm1ha2VTcHJpdGUoJ1gnLCB7Zm9udFNpemU6IDI4fSk7XG4gICAgY29uc3Qgd2VzdExhYmVsID0gdGhpcy5tYWtlU3ByaXRlKCdZJywge2ZvbnRTaXplOiAyOH0pO1xuICAgIGNvbnN0IHR2ZExhYmVsID0gdGhpcy5tYWtlU3ByaXRlKCdUVkQnLCB7Zm9udFNpemU6IDI4fSk7XG5cbiAgICBub3J0aExhYmVsLnBvc2l0aW9uLnNldCh4KHguZG9tYWluKClbMV0pICsgNSwgMCwgMCk7XG4gICAgd2VzdExhYmVsLnBvc2l0aW9uLnNldCgwLCAwLCB5KHkuZG9tYWluKClbMF0pICsgNSk7XG4gICAgdHZkTGFiZWwucG9zaXRpb24uc2V0KDAsIHooei5kb21haW4oKVsxXSkgKyA1LCAwKTtcblxuICAgIHRpY2tzLmFkZChub3J0aExhYmVsLCB3ZXN0TGFiZWwsIHR2ZExhYmVsKTtcblxuXG4gICAgY29uc3QgYXhlc0hlbHBlciA9IG5ldyBUSFJFRS5BeGVzSGVscGVyKHRoaXMuU0lERV9TSVpFKTtcbiAgICBheGVzSGVscGVyLnNldENvbG9ycyh0aGlzLmF4ZXNDb2xvciwgdGhpcy5heGVzQ29sb3IsIHRoaXMuYXhlc0NvbG9yKVxuXG4gICAgdGhpcy5fc2NlbmUuYWRkKGF4ZXNIZWxwZXIpO1xuXG4gICAgdGhpcy5fc2NlbmUuYWRkKHRpY2tzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2NhbGVzKHNlcmllczogU2VyaWVzM2Q8QmFzZTNkUG9pbnQ+W10pIHtcbiAgICBjb25zdCBleHRyZW1zID0gc2VyaWVzLm1hcCgoXykgPT4gKHtcbiAgICAgIHg6IGQzLmV4dGVudChfLnBvaW50cywgKHA6IGFueSkgPT4gcC54KSxcbiAgICAgIHk6IGQzLmV4dGVudChfLnBvaW50cywgKHA6IGFueSkgPT4gcC55KSxcbiAgICAgIHo6IGQzLmV4dGVudChfLnBvaW50cywgKHA6IGFueSkgPT4gcC56KSxcbiAgICB9KSk7XG5cbiAgICBjb25zdCBmbGF0dGVuRXh0cmVtcyA9IGV4dHJlbXMucmVkdWNlKFxuICAgICAgKGFjYzogYW55LCBfKTogeyB4OiBbbnVtYmVyXTsgeTogW251bWJlcl07IHo6IFtudW1iZXJdIH0gPT4ge1xuICAgICAgICBhY2MueCA9IGFjYy54LmNvbmNhdChfLngpO1xuICAgICAgICBhY2MueSA9IGFjYy55LmNvbmNhdChfLnkpO1xuICAgICAgICBhY2MueiA9IGFjYy56LmNvbmNhdChfLnopO1xuICAgICAgICByZXR1cm4gYWNjIGFzIGFueTtcbiAgICAgIH0sXG4gICAgICB7eDogW10sIHk6IFtdLCB6OiBbXX1cbiAgICApO1xuXG4gICAgY29uc3QgeCA9IGQzXG4gICAgICAuc2NhbGVMaW5lYXIoKVxuICAgICAgLmRvbWFpbihbMCwgdGhpcy5fY29uZmlnPy5heGVzPy5tYXggPT0gbnVsbFxuICAgICAgICAgID8gcGFyc2VJbnQoZDMubWF4KGZsYXR0ZW5FeHRyZW1zLngpKVxuICAgICAgICAgIDogdGhpcy5fY29uZmlnLmF4ZXMubWF4LFxuICAgICAgXSlcbiAgICAgIC5yYW5nZShbMCwgdGhpcy5TSURFX1NJWkVdKS5uaWNlKClcblxuICAgIGNvbnN0IHkgPSBkM1xuICAgICAgLnNjYWxlTGluZWFyKClcbiAgICAgIC5kb21haW4oWzAsIHBhcnNlSW50KGQzLm1heChmbGF0dGVuRXh0cmVtcy55KSwgMTApXSlcbiAgICAgIC5yYW5nZShbdGhpcy5TSURFX1NJWkUsIDBdKVxuXG4gICAgY29uc3QgeiA9IGQzXG4gICAgICAuc2NhbGVMaW5lYXIoKVxuICAgICAgLmRvbWFpbihbMCxcbiAgICAgICAgdGhpcy5fY29uZmlnPy5heGVzPy5tYXggPT0gbnVsbFxuICAgICAgICAgID8gcGFyc2VJbnQoZDMubWF4KGZsYXR0ZW5FeHRyZW1zLnopKVxuICAgICAgICAgIDogdGhpcy5fY29uZmlnLmF4ZXMubWF4XSlcbiAgICAgIC5yYW5nZShbMCwgdGhpcy5TSURFX1NJWkVdKS5uaWNlKClcblxuXG4gICAgcmV0dXJuIHt4LCB5LCB6fTtcbiAgfVxufVxuIiwiPGNhbnZhcyAjY2FudmFzPjwvY2FudmFzPlxuIl19
@@ -4,4 +4,4 @@ export class Chart3dOptions {
4
4
  this.series = options?.series || [];
5
5
  }
6
6
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtM2Qtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvY2hhcnQtM2QvbW9kZWwvY2hhcnQtM2Qtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sY0FBYztJQU96QixZQUFZLE9BQXdCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2UzZFBvaW50IH0gZnJvbSAnLi9iYXNlLTNkLXBvaW50JztcbmltcG9ydCB7IFNlcmllczNkIH0gZnJvbSAnLi9zZXJpZXMtM2QnO1xuXG5leHBvcnQgY2xhc3MgQ2hhcnQzZE9wdGlvbnMge1xuICBheGVzPzoge1xuICAgIG1heD86IG51bWJlcjtcbiAgfTtcblxuICBzZXJpZXM6IFNlcmllczNkPEJhc2UzZFBvaW50PltdO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBDaGFydDNkT3B0aW9ucykge1xuICAgIHRoaXMuYXhlcyA9IHsgLi4ub3B0aW9ucz8uYXhlcyB9O1xuICAgIHRoaXMuc2VyaWVzID0gb3B0aW9ucz8uc2VyaWVzIHx8IFtdO1xuICB9XG59XG4iXX0=
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtM2Qtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvY2hhcnQtM2QvbW9kZWwvY2hhcnQtM2Qtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sY0FBYztJQVN6QixZQUFZLE9BQXdCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2UzZFBvaW50IH0gZnJvbSAnLi9iYXNlLTNkLXBvaW50JztcbmltcG9ydCB7IFNlcmllczNkIH0gZnJvbSAnLi9zZXJpZXMtM2QnO1xuXG5leHBvcnQgY2xhc3MgQ2hhcnQzZE9wdGlvbnMge1xuICBheGVzPzoge1xuICAgIG1pbj86IG51bWJlcjtcbiAgICBtYXg/OiBudW1iZXI7XG5cbiAgfTtcblxuICBzZXJpZXM6IFNlcmllczNkPEJhc2UzZFBvaW50PltdO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM/OiBDaGFydDNkT3B0aW9ucykge1xuICAgIHRoaXMuYXhlcyA9IHsgLi4ub3B0aW9ucz8uYXhlcyB9O1xuICAgIHRoaXMuc2VyaWVzID0gb3B0aW9ucz8uc2VyaWVzIHx8IFtdO1xuICB9XG59XG4iXX0=
@@ -100,10 +100,10 @@ export class CheckboxComponent {
100
100
  }
101
101
  }
102
102
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
103
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"checkbox__tick\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3 margin-left-1\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""], components: [{ type: i1.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
103
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.1", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""], components: [{ type: i1.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
104
104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImport: i0, type: CheckboxComponent, decorators: [{
105
105
  type: Component,
106
- args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__tick\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3 margin-left-1\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""] }]
106
+ args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'minus'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""] }]
107
107
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tabindex: [{
108
108
  type: HostBinding,
109
109
  args: ['attr.tabindex']
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.1", ngImpor
131
131
  type: HostListener,
132
132
  args: ['click']
133
133
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGVja2JveC9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoZWNrYm94L2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFekUsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDbEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxpQkFBaUI7SUFvRDVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkRaLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFhbEMsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQXNCN0I7O1dBRUc7UUFDSyxXQUFNLEdBQVEsSUFBSSxDQUFDO0lBYWtCLENBQUM7SUEvQzlDLElBQ1ksUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFH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LGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzhHQTFIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1V0FIakIsQ0FBQywrQkFBK0IsQ0FBQywwQkN0QjlDLHlPQU1BOzJGRG1CYSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxhQUdkLENBQUMsK0JBQStCLENBQUMsbUJBQzNCLHVCQUF1QixDQUFDLE1BQU07d0dBR2pCLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFFbkIsS0FBSztzQkFBYixLQUFLO2dCQUdNLFFBQVE7c0JBRG5CLFdBQVc7dUJBQUMsT0FBTztnQkFTWCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQU9OLFFBQVE7c0JBRlAsV0FBVzt1QkFBQyx5QkFBeUI7O3NCQUNyQyxLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkF1Qk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NIRUNLQk9YX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgdGFiaW5kZXggPSAwO1xuXG4gIEBJbnB1dCgpIGNsYXNzO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBnZXRDbGFzcygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBbdGhpcy5jbGFzcywgJ2NoZWNrYm94J107XG4gICAgaWYgKHRoaXMucGFsZXR0ZSkge1xuICAgICAgcmVzdWx0LnB1c2goYGNoZWNrYm94LSR7dGhpcy5wYWxldHRlfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHBhbGV0dGUgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIG5vTGFiZWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINC60L7QvNC/0L7QvdC10L3RgiDQvdC10LDQutGC0LjQstC10L1cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2hlY2tib3hfZGlzYWJsZWQnKVxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUvZmFsc2Ug0LjQu9C4IGxpc3RcbiAgICovXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIC8qKlxuICAgKiB0cnVlL2ZhbHNlINC40LvQuCBsaXN0XG4gICAqL1xuICBASW5wdXQoKSBiaW5hcnk6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYWxsb3dOdWxsOiBib29sZWFuO1xuXG4gIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINCX0L3QsNGH0LXQvdC40LVcbiAgICovXG4gIHByaXZhdGUgbW9kZWwkOiBhbnkgPSBudWxsO1xuXG4gIGdldCBtb2RlbCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJDtcbiAgfVxuXG4gIHNldCBtb2RlbCh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5tb2RlbCQpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gdjtcbiAgICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgY2hhbmdlVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmluYXJ5KSB7XG4gICAgICB0aGlzLm1vZGVsID0gIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5pc0NoZWNrZWQoKSkge1xuICAgICAgICB0aGlzLmFkZFZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMuaXNDaGVja2VkKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG1vZGVsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtb2RlbCAmJiBtb2RlbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGVsJCA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmlzQ2hlY2tlZCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGlzQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFsbG93TnVsbCA/IHRoaXMubW9kZWwgOiAhIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwuaW5kZXhPZih0aGlzLnZhbHVlKSA+PSAwO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbHVlKCkge1xuICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsLmZpbHRlcigodmFsOiBhbnkpID0+IHZhbCAhPT0gdGhpcy52YWx1ZSk7XG4gIH1cblxuICBhZGRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCB0aGlzLnZhbHVlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RlbCA9IFt0aGlzLnZhbHVlXTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgb25DaGFuZ2UoXzogYW55KSB7fVxuXG4gIG9uVG91Y2hlZCgpIHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjaGVja2JveF9fdGlja1wiPlxuICA8dGV0YS1pY29uIFtuYW1lXT1cImNoZWNrZWQgPyAndGljaycgOiBjaGVja2VkID09PSBmYWxzZSA/ICcnIDogJ21pbnVzJ1wiPjwvdGV0YS1pY29uPlxuPC9kaXY+XG48c3BhbiBjbGFzcz1cImZvbnQtYm9keS0zIG1hcmdpbi1sZWZ0LTFcIiAqbmdJZj1cIiFub0xhYmVsXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGVja2JveC9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoZWNrYm94L2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFekUsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDbEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxpQkFBaUI7SUFvRDVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkRaLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFhbEMsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQXNCN0I7O1dBRUc7UUFDSyxXQUFNLEdBQVEsSUFBSSxDQUFDO0lBYWtCLENBQUM7SUEvQzlDLElBQ1ksUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBNkJELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsQ0FBTTtRQUNkLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFLRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDakI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2FBQ3BCO1NBQ0Y7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDckI7YUFBTTtZQUNMLElBQUksS0FBSyxJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2FBQ3JCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO2FBQ2xCO1NBQ0Y7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNuRDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxRQUFRLEtBQUksQ0FBQztJQUViLFFBQVEsQ0FBQyxDQUFNLElBQUcsQ0FBQztJQUVuQixTQUFTLEtBQUksQ0FBQztJQUVkLGdCQUFnQixDQUFDLEVBQW9CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzhHQTFIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1V0FIakIsQ0FBQywrQkFBK0IsQ0FBQywwQkN0QjlDLDhRQU1BOzJGRG1CYSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxhQUdkLENBQUMsK0JBQStCLENBQUMsbUJBQzNCLHVCQUF1QixDQUFDLE1BQU07d0dBR2pCLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFFbkIsS0FBSztzQkFBYixLQUFLO2dCQUdNLFFBQVE7c0JBRG5CLFdBQVc7dUJBQUMsT0FBTztnQkFTWCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQU9OLFFBQVE7c0JBRlAsV0FBVzt1QkFBQyx5QkFBeUI7O3NCQUNyQyxLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkF1Qk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NIRUNLQk9YX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgdGFiaW5kZXggPSAwO1xuXG4gIEBJbnB1dCgpIGNsYXNzO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBnZXRDbGFzcygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBbdGhpcy5jbGFzcywgJ2NoZWNrYm94J107XG4gICAgaWYgKHRoaXMucGFsZXR0ZSkge1xuICAgICAgcmVzdWx0LnB1c2goYGNoZWNrYm94LSR7dGhpcy5wYWxldHRlfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHBhbGV0dGUgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIG5vTGFiZWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINC60L7QvNC/0L7QvdC10L3RgiDQvdC10LDQutGC0LjQstC10L1cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2hlY2tib3hfZGlzYWJsZWQnKVxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUvZmFsc2Ug0LjQu9C4IGxpc3RcbiAgICovXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIC8qKlxuICAgKiB0cnVlL2ZhbHNlINC40LvQuCBsaXN0XG4gICAqL1xuICBASW5wdXQoKSBiaW5hcnk6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYWxsb3dOdWxsOiBib29sZWFuO1xuXG4gIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINCX0L3QsNGH0LXQvdC40LVcbiAgICovXG4gIHByaXZhdGUgbW9kZWwkOiBhbnkgPSBudWxsO1xuXG4gIGdldCBtb2RlbCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJDtcbiAgfVxuXG4gIHNldCBtb2RlbCh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5tb2RlbCQpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gdjtcbiAgICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgY2hhbmdlVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmluYXJ5KSB7XG4gICAgICB0aGlzLm1vZGVsID0gIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5pc0NoZWNrZWQoKSkge1xuICAgICAgICB0aGlzLmFkZFZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMuaXNDaGVja2VkKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG1vZGVsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtb2RlbCAmJiBtb2RlbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGVsJCA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmlzQ2hlY2tlZCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGlzQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFsbG93TnVsbCA/IHRoaXMubW9kZWwgOiAhIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwuaW5kZXhPZih0aGlzLnZhbHVlKSA+PSAwO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbHVlKCkge1xuICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsLmZpbHRlcigodmFsOiBhbnkpID0+IHZhbCAhPT0gdGhpcy52YWx1ZSk7XG4gIH1cblxuICBhZGRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCB0aGlzLnZhbHVlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RlbCA9IFt0aGlzLnZhbHVlXTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgb25DaGFuZ2UoXzogYW55KSB7fVxuXG4gIG9uVG91Y2hlZCgpIHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjaGVja2JveF9fdGlja1wiIFtjbGFzcy5jaGVja2JveF9fdGlja19hY3RpdmVdPVwiY2hlY2tlZCAhPSBmYWxzZVwiPlxuICA8dGV0YS1pY29uIFtuYW1lXT1cImNoZWNrZWQgPyAndGljaycgOiBjaGVja2VkID09PSBmYWxzZSA/ICcnIDogJ21pbnVzJ1wiPjwvdGV0YS1pY29uPlxuPC9kaXY+XG48c3BhbiBjbGFzcz1cImZvbnQtYm9keS0zXCIgKm5nSWY9XCIhbm9MYWJlbFwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3NwYW4+XG4iXX0=