ets-fe-ng-sdk 17.0.322 → 17.0.323

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.
@@ -263,4 +263,7 @@ router-outlet + * {
263
263
  .mat-tooltip,
264
264
  .mat-mdc-tooltip {
265
265
  white-space: pre;
266
+ }
267
+ .text-shadow {
268
+ text-shadow: 0 0 10px #000000bd;
266
269
  }
@@ -1,5 +1,6 @@
1
1
  import { FormArray, FormControl, FormGroup } from '@angular/forms';
2
2
  import { cloneDeep } from 'lodash-es';
3
+ import { EVFunctions } from '../../configs/base-functions';
3
4
  //#region string */
4
5
  String.prototype.stripChar = function (character = '/') {
5
6
  return (this + '').replace(character, '');
@@ -7,6 +8,9 @@ String.prototype.stripChar = function (character = '/') {
7
8
  String.prototype.lastStripChar = function (character = '/') {
8
9
  return this[this?.length - 1] == character ? this.slice(0, this.length - 1) : this;
9
10
  };
11
+ String.prototype.removeNull = function () {
12
+ return EVFunctions.stripNull(this);
13
+ };
10
14
  String.prototype.unChar = function (character = '/', replacement = '') {
11
15
  let te = '';
12
16
  for (let i = 0; i < this.length; i++) {
@@ -214,4 +218,4 @@ FormArray.prototype.getFormattedValue = function () {
214
218
  FormControl.prototype.getFormattedValue = function () {
215
219
  return this.formattedValue;
216
220
  };
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvcHJvdG90eXBlcy9wcm90b3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBaUt0QyxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUcsVUFBd0IsU0FBUyxHQUFHLEdBQUc7SUFDbEUsT0FBTyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxHQUFHLFVBQXdCLFNBQVMsR0FBRyxHQUFHO0lBQ3RFLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDckYsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsVUFBd0IsU0FBUyxHQUFHLEdBQUcsRUFBRSxXQUFXLEdBQUcsRUFBRTtJQUNqRixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENB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SSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDeEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOztRQUVsRyxPQUFPLFFBQVE7WUFDYixDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDeEcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RHLENBQUMsQ0FBQztBQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLFVBQTZCLEtBQWMsRUFBRSxVQUFtQixLQUFLO0lBQzNGLElBQUksUUFBUSxHQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6RixDQUFDLENBQUM7QUFDRixJQUFJLEdBQUcsR0FBRyxZQUFZLENBQUM7QUFDdkIsSUFBSSxHQUFHLEdBQUcsU0FBUyxDQUFDO0FBRXBCLFNBQVMsWUFBWSxDQUFDLENBQVMsRUFBRSxDQUFTO0lBQ3hDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNiLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxJQUFJLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDekM7U0FBTTtRQUNMLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6QjtBQUNILENBQUM7QUFFRCxLQUFLLENBQUMsU0FBUyxDQUFDLGdCQUFnQixHQUFHLFVBRWpDLGNBQTRCLEVBQzVCLE1BR0M7SUFFRCxZQUFZO0lBQ1osTUFBTSxtQkFBbUIsR0FBRyxNQUFNLEVBQUUsbUJBQW1CLElBQUksSUFBSSxDQUFDO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQU0sRUFBRSxVQUFVLElBQUksVUFBVSxDQUFDO0lBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQzlCLElBQUksU0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQVUsSUFBSSxVQUFVO1FBQUUsU0FBUyxHQUFHLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFFLGNBQTJCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEgsSUFBSSxVQUFVLElBQUksVUFBVTtRQUMvQixTQUFTLEdBQUcsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JJLE1BQU0sWUFBWSxHQUFRLEVBQUUsQ0FBQztJQUM3QixJQUFJLFNBQVMsRUFBRTtRQUNiLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksbUJBQW1CLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDO2FBQ3JFO1lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztnQkFBRSxTQUFTO1lBQ3JELFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztTQUNUO0tBQ0Y7SUFDRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDLENBQUM7QUFDRixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxVQUFpQyxRQUFpQixFQUFFLEdBQXFCO0lBQy9GLFlBQVk7SUFDWixNQUFNLEdBQUcsR0FBNEIsRUFBRSxDQUFDO0lBQ3hDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxFQUFFO1FBQzNCLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0tBQ3RFO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFDRixLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxVQUE2QixRQUFpQixFQUFFLE1BQTZCO0lBQ3JHLFlBQVk7SUFDWixNQUFNLEdBQUcsR0FBeUIsRUFBRSxDQUFDO0lBQ3JDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxFQUFFO1FBQzNCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBRSxRQUFRLENBQUMsUUFBUSxDQUFZLENBQUM7UUFDekUsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7WUFDckMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDOUI7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsWUFBWSxHQUFHO0lBQzdCLFlBQVk7SUFDWixNQUFNLEdBQUcsR0FBNkIsRUFBRSxDQUFDO0lBQ3pDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxFQUFFO1FBQzNCLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUM7S0FDdEI7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQztBQUVGLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHO0lBQ3hCLFlBQVk7SUFDWixNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7SUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUM3RTtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLFlBQVk7QUFFWixrQkFBa0I7QUFDbEIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUc7SUFDekIsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLElBQUksSUFBSSxHQUFHLFNBQVMsU0FBUztRQUMzQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUMsQ0FBQztJQUNGLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ3BCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO0tBQ0Y7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUNGLFlBQVk7QUFFWixtQkFBbUI7QUFDbkIsU0FBUyxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFFN0IsS0FBYyxFQUNkLEdBQXNDO0lBRXRDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUMsSUFBSSxHQUFHLEVBQUU7UUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3RCO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekIsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFDRixTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxVQUVoQyxLQUFhLEVBQ2IsYUFBMkQsRUFDM0QsVUFBNkIsRUFDN0IsU0FBUyxHQUFHLElBQUk7SUFFaEIsT0FBTyxJQUFJLE9BQU8sQ0FBc0IsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUM5QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDM0MsWUFBWTtRQUNaLElBQUksRUFBRSxJQUFJLGFBQWEsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsSUFBSSxFQUFFLEdBQWlCLElBQUksQ0FBQztZQUM1QixJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDcEIsRUFBRSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2FBQ3pCO1lBQ0QsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNiLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNaLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQ3BDLElBQUksVUFBVTtnQkFBRSxVQUFVLEVBQUUsQ0FBQzs7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUN0QjthQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQzthQUNwRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFDRixTQUFTLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHO0lBQ3RDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7O1FBRTdDLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN2QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQXlDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMzRztJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBQ0YsU0FBUyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRztJQUN0QyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDOztRQUU3QyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBMkIsT0FBUSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztTQUNuRTtJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBQ0YsV0FBVyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsR0FBRztJQUN4QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7QUFDN0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBTdHJpbmcge1xuICAgIHN0cmlwQ2hhcihjaGFyYWN0ZXI/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgbGFzdFN0cmlwQ2hhcihjaGFyYWN0ZXI/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgdW5DaGFyKGNoYXJhY3Rlcj86IHN0cmluZywgcmVwbGFjZW1lbnQ/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQ29udmVydHMgUGFzY2FsIGNhc2UgdG8gU2VudGVuY2UgY2FzZVxuICAgICAqIEBleGFtcGxlICdzbWFsbEJvb2snLnRvU2VudGVuY2VDYXNlKCkgPSAnU21hbGwgQm9vaydcbiAgICAgKi9cbiAgICB0b1NlbnRlbmNlQ2FzZSgpOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogUmVwbGFjZXMgYWxsIG9jY3VycmVuY2VzIG9mIGEgc3Vic3RyaW5nXG4gICAgICogQHJldHVybnMgVGhlIHN0cmluZyBhZnRlciByZXBsYWNlbWVudFxuICAgICAqL1xuICAgIHJlcGxhY2VBbGxTdWJTdHIoY2hhcmFjdGVyPzogc3RyaW5nLCByZXBsYWNlbWVudD86IHN0cmluZyk6IHN0cmluZztcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjaGFyYWN0ZXIgQ2hhcmFjdGVyIHRvIGFkZCBiZWZvcmUgc3RyaW5nXG4gICAgICogQHBhcmFtIGV4cGVjdGVkTGVuZ3RoIEV4cGVjdGVkIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGFmdGVyIGFkZGl0aW9uIG9mIHRoZSBjaGFyYWN0ZXJcbiAgICAgKi9cbiAgICBhZGRQcmVjZWRpbmdDaGFyKGNoYXJhY3Rlcjogc3RyaW5nLCBleHBlY3RlZExlbmd0aDogbnVtYmVyKTogc3RyaW5nO1xuICB9XG5cbiAgaW50ZXJmYWNlIEFycmF5PFQ+IHtcbiAgICBtZXJnZSgpOiBUO1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggdG8gc2VsZWN0IGZyb20gdGhlIGVuZC5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIDBcbiAgICAgKiBAZXhhbXBsZSBbJ2EnLCdiJywnYyddLnJldmVyc2VJbmRleCgxKSByZXR1cm5zICdiJ1xuICAgICAqIEBleGFtcGxlIFsnYScsJ2InLCdjJywnZCcsJ2UnXS5yZXZlcnNlSW5kZXgoMikgcmV0dXJucyAnYydcbiAgICAgKi9cbiAgICByZXZlcnNlSW5kZXgoaW5kZXg/OiBudW1iZXIpOiBUO1xuICAgIGxhc3RJdGVtKCk6IFQ7XG4gICAgLyoqXG4gICAgICogU2h1ZmZsZXMgdGhlIGNvbnRlbnQgb2YgYW4gYXJyYXlcbiAgICAgKi9cbiAgICBzaHVmZmxlKCk6IFRbXTtcblxuICAgIC8qKlxuICAgICAqIFNvcnQgYnkgdGhlIGxlbmd0aCBvZiB0aGUgZmllbGQgc3BlY2lmaWVkIGluIGFzY2VuZGluZyBvcmRlclxuICAgICAqIEBwYXJhbSBmaWVsZCBGaWVsZCBuYW1lIHRvIGNvbXBhcmUgd2l0aFxuICAgICAqIEBwYXJhbSByZXZlcnNlIFNob3VsZCBpdCBiZSBpbiBhIGRlc2NlbmRpbmcgb3JkZXJcbiAgICAgKi9cbiAgICBzb3J0QnlGaWVsZExlbmd0aChmaWVsZDoga2V5b2YgVCwgcmV2ZXJzZT86IGJvb2xlYW4pOiBUW107XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWVsZCBGaWVsZCBuYW1lIHRvIGNvbXBhcmUgd2l0aFxuICAgICAqIEBwYXJhbSBpc1N0cmluZyBJcyB0aGUgZGF0YSB0eXBlIG9mIHRoZSBmaWVsZCBhIHN0cmluZ1xuICAgICAqIEBwYXJhbSByZXZlcnNlIFNob3VsZCBpdCBiZSBpbiBhIGRlc2NlbmRpbmcgb3JkZXJcbiAgICAgKi9cbiAgICBzb3J0MihmaWVsZDoga2V5b2YgVCwgaXNTdHJpbmc/OiBib29sZWFuLCByZXZlcnNlPzogYm9vbGVhbik6IFRbXTtcbiAgICAvKipcbiAgICAgKiBEZXRlY3RzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGZpZWxkIHRvIHNvcnQgYnlcbiAgICAgKiBAcGFyYW0gZmllbGQgRmllbGQgbmFtZSB0byBjb21wYXJlIHdpdGhcbiAgICAgKiBAcGFyYW0gcmV2ZXJzZSBTaG91bGQgaXQgYmUgaW4gYSBkZXNjZW5kaW5nIG9yZGVyXG4gICAgICovXG4gICAgc29ydDMoZmllbGQ6IGtleW9mIFQsIHJldmVyc2U/OiBib29sZWFuKTogVFtdO1xuICAgIC8qKlxuICAgICAqIFJlbW92ZSBpdGVtcyBmcm9tIGFuIGFycmF5IHRoYXQgZG9uJ3QgaGF2ZSB2YWx1ZXMgaW4gYW55IG9mIGl0cyBmaWVsZHNcbiAgICAgKiBAcGFyYW0gZXhwZWN0ZWRGaWVsZHMgRmllbGRzIHRvIGNoZWNrIGZvciBlbXB0aW5lc3MsIHRoZSBmdW5jdGlvbiB3aWxsIHJlbW92ZSB0aGUgaXRlbXMgdGhhdCBkb24ndCBoYXZlIGFueSB2YWx1ZSBpbiBhbGwgdGhlIGZpZWxkcyBzcGVjaWZpZWRcbiAgICAgKi9cbiAgICByZW1vdmVFbXB0eUl0ZW1zKFxuICAgICAgZXhwZWN0ZWRGaWVsZHM/OiAoa2V5b2YgVClbXSxcbiAgICAgIGNvbmZpZz86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNwZWNpZnkgd2hldGhlciB0byBjaGVjayB0aGUgdmFsdWUgaW4gYm9vbGVhbiBmaWVsZHMuXG4gICAgICAgICAqIEBkZWZhdWx0VmFsdWUgYGZhbHNlYFxuICAgICAgICAgKi9cbiAgICAgICAgaWdub3JlQm9vbGVhbkZpZWxkcz86IGJvb2xlYW47XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTcGVjaWZ5IHdoZXRoZXIgdG8gY2hlY2sgZm9yIGVtcHRpbmVzcyBpbiB0aGUgJ2V4cGVjdGVkRmllbGRzJyBvciBjaGVjayBmb3IgZW1wdGluZXNzIGluIHRoZSBvdGhlciBmaWVsZHMgZXhjbHVkaW5nIHRoZSBmaWVsZHMgc3BlY2lmaWVkXG4gICAgICAgICAqIEBkZWZhdWx0VmFsdWUgYGluY2x1ZGVkYFxuICAgICAgICAgKi9cbiAgICAgICAgZmllbGRzVHlwZT86ICdpbmNsdWRlZCcgfCAnZXhjbHVkZWQnO1xuICAgICAgfSxcbiAgICApOiBUW107XG5cbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBhbiBhcnJheSB0byBhIGtleSB2YWx1ZSBwYWlyLlxuICAgICAqIEBwYXJhbSBhcnIgQXJyYXkgdG8gYmUgY29udmVydGVkXG4gICAgICogQHBhcmFtIGtleUZpZWxkIFRoZSBmaWVsZCB0byBiZSB1c2VkIGFzIHRoZSBrZXlcbiAgICAgKiBAcmV0dXJucyBBbiBpbmRleCBvYmplY3QgY29udGFpbmluZyB0aGUga2V5RmllbGQgYXMgdGhlIGluZGV4IGtleSBhbmQgZWFjaCBpdGVtIG9mIHRoZSBhcnJheSBhcyB2YWx1ZSBhc3NpZ25lZCB0byBlYWNoIGluZGV4XG4gICAgICovXG4gICAgdG9NYXAoa2V5RmllbGQ6IGtleW9mIFQpOiB7IFt4OiBzdHJpbmddOiBUIH07XG4gICAgdG9NYXA8TlQ+KGtleUZpZWxkOiBrZXlvZiBULCBtYXA6IChpdGVtOiBUKSA9PiBOVCk6IHsgW3g6IHN0cmluZ106IE5UIH07XG4gICAgdG9NYXA8TlQ+KGtleUZpZWxkOiBrZXlvZiBULCBtYXA/OiAoaXRlbTogVCkgPT4gTlQpO1xuXG4gICAgLyoqXG4gICAgICogR3JvdXBzIGFuIGFycmF5IGJ5IHVuaXF1ZSBlbnRyaWVzIGluIGEgZmllbGQuXG4gICAgICogQHBhcmFtIGFyciBBcnJheSB0byBiZSBncm91cGVkXG4gICAgICogQHBhcmFtIGtleUZpZWxkIFRoZSBmaWVsZCB0byBiZSB1c2VkIGFzIHRoZSBrZXlcbiAgICAgKi9cbiAgICBncm91cEJ5KGtleUZpZWxkOiBrZXlvZiBULCBrZXlNYXA/OiAodmFsdWU6IFQpID0+IHN0cmluZyk6IHsgW3g6IHN0cmluZ106IFRbXSB9O1xuXG4gICAgLyoqXG4gICAgICogVHVybnMgYW4gYXJyYXkgdG8gYSBtYXAuXG4gICAgICovXG4gICAgdG9Cb29sZWFuTWFwKCk6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfTtcbiAgfVxuICBpbnRlcmZhY2UgRnVuY3Rpb24ge1xuICAgIGNsb25lOiBhbnk7XG4gIH1cbn1cbmRlY2xhcmUgbW9kdWxlICdAYW5ndWxhci9mb3Jtcycge1xuICBpbnRlcmZhY2UgRm9ybUFycmF5PFRDb250cm9sIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPGFueT4gPSBhbnk+XG4gICAgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w8ybVUeXBlZE9yVW50eXBlZDxUQ29udHJvbCwgybVGb3JtQXJyYXlWYWx1ZTxUQ29udHJvbD4sIGFueT4sIMm1VHlwZWRPclVudHlwZWQ8VENvbnRyb2wsIMm1Rm9ybUFycmF5UmF3VmFsdWU8VENvbnRyb2w+LCBhbnk+PiB7XG4gICAgY0Zvcm1TdHJ1Y3R1cmU6IFRDb250cm9sO1xuICAgIGNBZGRJdGVtKGluZGV4PzogbnVtYmVyLCBkYXRhPzogVENvbnRyb2wpOiBGb3JtQXJyYXk8VENvbnRyb2w+O1xuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgdGhlIGRlbGV0aW9uIG9mIHJvd3MgZnJvbSBhIEZvcm1BcnJheVxuICAgICAqIEBwYXJhbSBpbmRleCBJbmRleCBvZiB0aGUgcm93IHRvIGRlbGV0ZVxuICAgICAqIEBwYXJhbSBmYSBUaGUgRm9ybUFycmF5IHRoYXQgaG9sZHMgdGhlIHJvd3NcbiAgICAgKiBAcGFyYW0gZGVsZXRlU2VydmljZSBUaGUgZGVsZXRpb24gc2VydmljZSB0byBiZSBjYWxsZWQgKEl0IHNob3VsZCBiZSBhbiBhbm9ueW1vdXMgZnVuY3Rpb24pXG4gICAgICogQHBhcmFtIGFkZFJvd0Z1bmMgVGhlIGZ1bmN0aW9uIChhbm9ueW1vdXMpIHRoYXQgYWRkcyBhIG5ldyByb3cgdG8gdGhlIEZvcm1BcnJheVxuICAgICAqIEBwYXJhbSBlbWl0RXZlbnQgU3BlY2lmeSB3aGV0aGVyIHRvIGVtaXQgYW4gZXZlbnQgd2hlbiBtYW5pcHVsYXRpbmcgdGhlIEZvcm1BcnJheVxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgY1JlbW92ZUl0ZW0oXG4gICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgZGVsZXRlU2VydmljZT86ICguLi5hcmdzKSA9PiBQcm9taXNlPGFueT4gfCBPYnNlcnZhYmxlPGFueT4sXG4gICAgICBhZGRSb3dGdW5jPzogKC4uLmFyZ3MpID0+IGFueSxcbiAgICAgIGVtaXRFdmVudD86IGJvb2xlYW4sXG4gICAgKTogUHJvbWlzZTxGb3JtQXJyYXk8VENvbnRyb2w+PjtcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0Q29udHJvbCB7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiBhbnk7XG4gICAgbGFiZWxWYWx1ZT86IHN0cmluZztcbiAgICBnZXRGb3JtYXR0ZWRWYWx1ZTogKCkgPT4gYW55O1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgRm9ybUNvbnRyb2wge1xuICAgIGZvcm1hdHRlZFZhbHVlPzogc3RyaW5nO1xuICAgIGxhYmVsVmFsdWU/OiBzdHJpbmc7XG4gICAgZ2V0Rm9ybWF0dGVkVmFsdWU6ICgpID0+IHN0cmluZztcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEZvcm1Hcm91cCB7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiB7IFt4OiBzdHJpbmddOiBzdHJpbmdbXSB8IHsgW3g6IHN0cmluZ106IHN0cmluZyB9W10gfTtcbiAgICBnZXRGb3JtYXR0ZWRWYWx1ZTogKCkgPT4geyBbeDogc3RyaW5nXTogc3RyaW5nW10gfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfVtdIH07XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBGb3JtQXJyYXkge1xuICAgIGZvcm1hdHRlZFZhbHVlPzogc3RyaW5nW10gfCB7IFt4OiBzdHJpbmddOiBzdHJpbmcgfVtdO1xuICAgIGdldEZvcm1hdHRlZFZhbHVlOiAoKSA9PiBzdHJpbmdbXSB8IHsgW3g6IHN0cmluZ106IHN0cmluZyB9W107XG4gIH1cbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0Bhbmd1bGFyL3JvdXRlcicge1xuICBpbnRlcmZhY2UgUm91dGUge1xuICAgIGN1c3RvbURhdGE/OiB7XG4gICAgICBtaUlEPzogc3RyaW5nO1xuICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICBwYWdlQ29tcG9uZW50Pzoge1xuICAgICAgICBjZW50ZXJIZWFkZXI/OiBib29sZWFuO1xuICAgICAgICBoaWRlSGVhZGVyPzogYm9vbGVhbjtcbiAgICAgIH07XG4gICAgfTtcbiAgfVxufVxuXG4vLyNyZWdpb24gIHN0cmluZyAqL1xuU3RyaW5nLnByb3RvdHlwZS5zdHJpcENoYXIgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nLCBjaGFyYWN0ZXIgPSAnLycpIHtcbiAgcmV0dXJuICh0aGlzICsgJycpLnJlcGxhY2UoY2hhcmFjdGVyLCAnJyk7XG59O1xuU3RyaW5nLnByb3RvdHlwZS5sYXN0U3RyaXBDaGFyID0gZnVuY3Rpb24gKHRoaXM6IHN0cmluZywgY2hhcmFjdGVyID0gJy8nKSB7XG4gIHJldHVybiB0aGlzW3RoaXM/Lmxlbmd0aCAtIDFdID09IGNoYXJhY3RlciA/IHRoaXMuc2xpY2UoMCwgdGhpcy5sZW5ndGggLSAxKSA6IHRoaXM7XG59O1xuU3RyaW5nLnByb3RvdHlwZS51bkNoYXIgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nLCBjaGFyYWN0ZXIgPSAnLycsIHJlcGxhY2VtZW50ID0gJycpIHtcbiAgbGV0IHRlID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGUgPSB0aGlzW2ldO1xuICAgIHRlICs9IGUgIT0gY2hhcmFjdGVyID8gZSA6ICcnO1xuICB9XG4gIHJldHVybiB0ZS5zcGxpdChjaGFyYWN0ZXIpLmpvaW4ocmVwbGFjZW1lbnQpO1xufTtcblN0cmluZy5wcm90b3R5cGUudG9TZW50ZW5jZUNhc2UgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nKSB7XG4gIHJldHVybiB0aGlzLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xufTtcblN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbFN1YlN0ciA9IGZ1bmN0aW9uICh0aGlzOiBzdHJpbmcsIGNoYXJhY3RlciA9ICcvJywgcmVwbGFjZW1lbnQgPSAnJykge1xuICByZXR1cm4gdGhpcy5zcGxpdChjaGFyYWN0ZXIpLmpvaW4ocmVwbGFjZW1lbnQpO1xufTtcblN0cmluZy5wcm90b3R5cGUuYWRkUHJlY2VkaW5nQ2hhciA9IGZ1bmN0aW9uICh0aGlzOiBzdHJpbmcsIGNoYXJhY3Rlcjogc3RyaW5nLCBleHBlY3RlZExlbmd0aDogbnVtYmVyKSB7XG4gIGlmICh0aGlzLmxlbmd0aCA+PSBleHBlY3RlZExlbmd0aCkgcmV0dXJuIHRoaXM7XG4gIHJldHVybiBjaGFyYWN0ZXIucmVwZWF0KGV4cGVjdGVkTGVuZ3RoIC0gdGhpcy5sZW5ndGgpICsgdGhpcztcbn07XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uICBhcnJheSAqL1xuQXJyYXkucHJvdG90eXBlLm1lcmdlID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+KSB7XG4gIGxldCByID0gJyc7XG4gIGZvciAoY29uc3QgaSBvZiB0aGlzKSB7XG4gICAgciArPSBpO1xuICB9XG4gIHJldHVybiByO1xufTtcbkFycmF5LnByb3RvdHlwZS5yZXZlcnNlSW5kZXggPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4sIGluZGV4ID0gMCkge1xuICByZXR1cm4gdGhpc1t0aGlzPy5sZW5ndGggLSAoMSArIGluZGV4KV07XG59O1xuQXJyYXkucHJvdG90eXBlLmxhc3RJdGVtID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+KSB7XG4gIHJldHVybiB0aGlzLnJldmVyc2VJbmRleCgpO1xufTtcbkFycmF5LnByb3RvdHlwZS5zb3J0QnlGaWVsZExlbmd0aCA9IGZ1bmN0aW9uIDxUPih0aGlzOiBBcnJheTxUPiwgZmllbGQ6IGtleW9mIFQsIHJldmVyc2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICBpZiAocmV2ZXJzZSkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChiLCBhKSA9PiAoYVtmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkgLSAoYltmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChhLCBiKSA9PiAoYVtmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkgLSAoYltmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkpO1xuICB9XG59O1xuQXJyYXkucHJvdG90eXBlLnNvcnQyID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+LCBmaWVsZDoga2V5b2YgVCwgaXNTdHJpbmc6IGJvb2xlYW4gPSBmYWxzZSwgcmV2ZXJzZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGlmIChyZXZlcnNlKVxuICAgIHJldHVybiBpc1N0cmluZ1xuICAgICAgPyB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChiLCBhKSA9PiBzb3J0QWxwaGFOdW0oYVtmaWVsZF0/LnRvU3RyaW5nKCksIGJbZmllbGRdPy50b1N0cmluZygpKSlcbiAgICAgIDogdGhpcy5maWx0ZXIoKHgpID0+IHggIT0gbnVsbCkuc29ydCgoYiwgYSkgPT4gKGFbZmllbGQgYXMgYW55XSB8fCAwKSAtIChiW2ZpZWxkIGFzIGFueV0gfHwgMCkpO1xuICBlbHNlXG4gICAgcmV0dXJuIGlzU3RyaW5nXG4gICAgICA/IHRoaXMuZmlsdGVyKCh4KSA9PiB4ICE9IG51bGwpLnNvcnQoKGEsIGIpID0+IHNvcnRBbHBoYU51bShhW2ZpZWxkXT8udG9TdHJpbmcoKSwgYltmaWVsZF0/LnRvU3RyaW5nKCkpKVxuICAgICAgOiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChhLCBiKSA9PiAoYVtmaWVsZCBhcyBhbnldIHx8IDApIC0gKGJbZmllbGQgYXMgYW55XSB8fCAwKSk7XG59O1xuQXJyYXkucHJvdG90eXBlLnNvcnQzID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+LCBmaWVsZDoga2V5b2YgVCwgcmV2ZXJzZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGxldCBpc1N0cmluZzogYm9vbGVhbiA9IHRoaXMuc29tZSgoeCkgPT4gaXNOYU4oeFtmaWVsZF0gYXMgYW55KSk7XG4gIHJldHVybiBpc1N0cmluZyA/IHRoaXMuc29ydDIoZmllbGQsIHRydWUsIHJldmVyc2UpIDogdGhpcy5zb3J0MihmaWVsZCwgZmFsc2UsIHJldmVyc2UpO1xufTtcbnZhciByZUEgPSAvW15hLXpBLVpdL2c7XG52YXIgcmVOID0gL1teMC05XS9nO1xuXG5mdW5jdGlvbiBzb3J0QWxwaGFOdW0oYTogc3RyaW5nLCBiOiBzdHJpbmcpIHtcbiAgdmFyIGFBID0gYT8udG9VcHBlckNhc2UoKT8ucmVwbGFjZShyZUEsICcnKTtcbiAgdmFyIGJBID0gYj8udG9VcHBlckNhc2UoKT8ucmVwbGFjZShyZUEsICcnKTtcbiAgaWYgKGFBID09PSBiQSkge1xuICAgIHZhciBhTiA9IHBhcnNlSW50KGE/LnJlcGxhY2UocmVOLCAnJyksIDEwKTtcbiAgICB2YXIgYk4gPSBwYXJzZUludChiPy5yZXBsYWNlKHJlTiwgJycpLCAxMCk7XG4gICAgcmV0dXJuIGFOID09PSBiTiA/IDAgOiBhTiA+IGJOID8gMSA6IC0xO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhQSA+IGJBID8gMSA6IC0xO1xuICB9XG59XG5cbkFycmF5LnByb3RvdHlwZS5yZW1vdmVFbXB0eUl0ZW1zID0gZnVuY3Rpb24gPFQ+KFxuICB0aGlzOiBBcnJheTxUPixcbiAgZXhwZWN0ZWRGaWVsZHM/OiAoa2V5b2YgVClbXSxcbiAgY29uZmlnPzoge1xuICAgIGlnbm9yZUJvb2xlYW5GaWVsZHM/OiBib29sZWFuO1xuICAgIGZpZWxkc1R5cGU/OiAnaW5jbHVkZWQnIHwgJ2V4Y2x1ZGVkJztcbiAgfSxcbikge1xuICAvLyBkZWJ1Z2dlcjtcbiAgY29uc3QgaWdub3JlQm9vbGVhbkZpZWxkcyA9IGNvbmZpZz8uaWdub3JlQm9vbGVhbkZpZWxkcyA9PSB0cnVlO1xuICBjb25zdCBmaWVsZHNUeXBlID0gY29uZmlnPy5maWVsZHNUeXBlIHx8ICdpbmNsdWRlZCc7XG4gIGlmICghdGhpcy5sZW5ndGgpIHJldHVybiB0aGlzO1xuICBsZXQgZmllbGRMaXN0OiBzdHJpbmdbXTtcbiAgaWYgKGZpZWxkc1R5cGUgPT0gJ2luY2x1ZGVkJykgZmllbGRMaXN0ID0gZXhwZWN0ZWRGaWVsZHM/Lmxlbmd0aCA/IChleHBlY3RlZEZpZWxkcyBhcyBzdHJpbmdbXSkgOiBPYmplY3Qua2V5cyh0aGlzWzBdKTtcbiAgZWxzZSBpZiAoZmllbGRzVHlwZSA9PSAnZXhjbHVkZWQnKVxuICAgIGZpZWxkTGlzdCA9IGV4cGVjdGVkRmllbGRzPy5sZW5ndGggPyBPYmplY3Qua2V5cyh0aGlzWzBdKS5maWx0ZXIoKHgpID0+ICFleHBlY3RlZEZpZWxkcy5pbmNsdWRlcyh4IGFzIGFueSkpIDogT2JqZWN0LmtleXModGhpc1swXSk7XG4gIGNvbnN0IHJlbW92ZWRJdGVtczogVFtdID0gW107XG4gIGlmIChmaWVsZExpc3QpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpZ25vcmVCb29sZWFuRmllbGRzICYmIGkgPT0gMCkge1xuICAgICAgICBmaWVsZExpc3QgPSBmaWVsZExpc3QuZmlsdGVyKChmKSA9PiB0eXBlb2YgdGhpc1swXVtmXSAhPSAnYm9vbGVhbicpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXRlbSA9IHRoaXNbaV07XG4gICAgICBpZiAoZmllbGRMaXN0LnNvbWUoKGYpID0+IGl0ZW1bZl0gIT0gbnVsbCkpIGNvbnRpbnVlO1xuICAgICAgcmVtb3ZlZEl0ZW1zLnB1c2goLi4udGhpcy5zcGxpY2UoaSwgMSkpO1xuICAgICAgaSA9IGktLTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlbW92ZWRJdGVtcztcbn07XG5BcnJheS5wcm90b3R5cGUudG9NYXAgPSBmdW5jdGlvbiA8VCwgTlQ+KHRoaXM6IEFycmF5PFQ+LCBrZXlGaWVsZDoga2V5b2YgVCwgbWFwPzogKGl0ZW06IFQpID0+IE5UKSB7XG4gIC8vIGRlYnVnZ2VyO1xuICBjb25zdCByZXQ6IHsgW3g6IHN0cmluZ106IFQgfCBOVCB9ID0ge307XG4gIGZvciAoY29uc3QgaXRlcmF0b3Igb2YgdGhpcykge1xuICAgIHJldFtpdGVyYXRvcltrZXlGaWVsZD8udG9TdHJpbmcoKV1dID0gbWFwID8gbWFwKGl0ZXJhdG9yKSA6IGl0ZXJhdG9yO1xuICB9XG4gIHJldHVybiByZXQ7XG59O1xuQXJyYXkucHJvdG90eXBlLmdyb3VwQnkgPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4sIGtleUZpZWxkOiBrZXlvZiBULCBrZXlNYXA/OiAodmFsdWU6IFQpID0+IHN0cmluZyk6IHsgW3g6IHN0cmluZ106IFRbXSB9IHtcbiAgLy8gZGVidWdnZXI7XG4gIGNvbnN0IHJldDogeyBbeDogc3RyaW5nXTogVFtdIH0gPSB7fTtcbiAgZm9yIChjb25zdCBpdGVyYXRvciBvZiB0aGlzKSB7XG4gICAgY29uc3QgZ3JvdXAgPSBrZXlNYXAgPyBrZXlNYXAoaXRlcmF0b3IpIDogKGl0ZXJhdG9yW2tleUZpZWxkXSBhcyBzdHJpbmcpO1xuICAgIGlmIChyZXRbZ3JvdXBdKSByZXRbZ3JvdXBdLnB1c2goaXRlcmF0b3IpO1xuICAgIGVsc2UgcmV0W2dyb3VwXSA9IFtpdGVyYXRvcl07XG4gIH1cblxuICByZXR1cm4gcmV0O1xufTtcbkFycmF5LnByb3RvdHlwZS50b0Jvb2xlYW5NYXAgPSBmdW5jdGlvbiAodGhpczogQXJyYXk8YW55Pik6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gIC8vIGRlYnVnZ2VyO1xuICBjb25zdCByZXQ6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBmb3IgKGNvbnN0IGl0ZXJhdG9yIG9mIHRoaXMpIHtcbiAgICByZXRbaXRlcmF0b3JdID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gcmV0O1xufTtcblxuQXJyYXkucHJvdG90eXBlLnNodWZmbGUgPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4pIHtcbiAgLy8gZGVidWdnZXI7XG4gIGNvbnN0IG5ld0FycjogVFtdID0gW107XG4gIHdoaWxlICh0aGlzLmxlbmd0aCkge1xuICAgIG5ld0Fyci5wdXNoKC4uLnRoaXMuc3BsaWNlKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubGVuZ3RoIC0gMSksIDEpKTtcbiAgfVxuICByZXR1cm4gbmV3QXJyO1xufTtcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiBGdW5jdGlvblxuRnVuY3Rpb24ucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdGhhdCA9IHRoaXM7XG4gIHZhciB0ZW1wID0gZnVuY3Rpb24gdGVtcG9yYXJ5KCkge1xuICAgIHJldHVybiB0aGF0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG4gIGZvciAodmFyIGtleSBpbiB0aGlzKSB7XG4gICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgdGVtcFtrZXldID0gdGhpc1trZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGVtcDtcbn07XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIEZPUk1BUlJBWVxuRm9ybUFycmF5LnByb3RvdHlwZS5jQWRkSXRlbSA9IGZ1bmN0aW9uIDxUQ29udHJvbCBleHRlbmRzIEFic3RyYWN0Q29udHJvbDxhbnk+ID0gYW55PihcbiAgdGhpczogRm9ybUFycmF5PFRDb250cm9sPixcbiAgaW5kZXg/OiBudW1iZXIsXG4gIHZhbD86IHR5cGVvZiB0aGlzLmNGb3JtU3RydWN0dXJlLnZhbHVlLFxuKSB7XG4gIGNvbnN0IGZvcm0gPSBjbG9uZURlZXAodGhpcy5jRm9ybVN0cnVjdHVyZSk7XG4gIGlmICh2YWwpIHtcbiAgICBmb3JtLnBhdGNoVmFsdWUodmFsKTtcbiAgfVxuICB0aGlzLmluc2VydChpbmRleCwgZm9ybSk7XG4gIHJldHVybiB0aGlzO1xufTtcbkZvcm1BcnJheS5wcm90b3R5cGUuY1JlbW92ZUl0ZW0gPSBmdW5jdGlvbiA8VENvbnRyb2wgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w8YW55PiA9IGFueT4oXG4gIHRoaXM6IEZvcm1BcnJheTxUQ29udHJvbD4sXG4gIGluZGV4OiBudW1iZXIsXG4gIGRlbGV0ZVNlcnZpY2U/OiAoLi4uYXJncykgPT4gUHJvbWlzZTxhbnk+IHwgT2JzZXJ2YWJsZTxhbnk+LFxuICBhZGRSb3dGdW5jPzogKC4uLmFyZ3MpID0+IGFueSxcbiAgZW1pdEV2ZW50ID0gdHJ1ZSxcbikge1xuICByZXR1cm4gbmV3IFByb21pc2U8Rm9ybUFycmF5PFRDb250cm9sPj4oKHN1YikgPT4ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5jb250cm9sc1tpbmRleF0/LnZhbHVlPy5pZDtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAoaWQgJiYgZGVsZXRlU2VydmljZSkge1xuICAgICAgY29uc3QgcmVxID0gZGVsZXRlU2VydmljZShpZCk7XG4gICAgICBsZXQgcHM6IFByb21pc2U8YW55PiA9IG51bGw7XG4gICAgICBpZiAocmVxWyd0b1Byb21pc2UnXSkge1xuICAgICAgICBwcyA9IHJlcVsndG9Qcm9taXNlJ10oKTtcbiAgICAgIH1cbiAgICAgIHBzPy50aGVuKChyKSA9PiB7XG4gICAgICAgIHN1Yih0aGlzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2xzLmxlbmd0aCA9PSAxICYmIGlkKSB7XG4gICAgICB0aGlzLnJlbW92ZUF0KGluZGV4LCB7IGVtaXRFdmVudCB9KTtcbiAgICAgIGlmIChhZGRSb3dGdW5jKSBhZGRSb3dGdW5jKCk7XG4gICAgICBlbHNlIHRoaXMuY0FkZEl0ZW0oKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udHJvbHMubGVuZ3RoID4gMSkgdGhpcy5yZW1vdmVBdChpbmRleCwgeyBlbWl0RXZlbnQgfSk7XG4gICAgZWxzZSBpZiAodGhpcy5jb250cm9scy5sZW5ndGggPT0gMSkge1xuICAgICAgdGhpcy5jb250cm9sc1swXS5yZXNldCgpO1xuICAgIH1cbiAgfSk7XG59O1xuRm9ybUdyb3VwLnByb3RvdHlwZS5nZXRGb3JtYXR0ZWRWYWx1ZSA9IGZ1bmN0aW9uICh0aGlzOiBGb3JtR3JvdXApIHtcbiAgY29uc3QgZGF0YSA9IHt9O1xuICBpZiAoIXRoaXMuY29udHJvbHMpIHJldHVybiB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICBlbHNlXG4gICAgZm9yIChjb25zdCBjb250cm9sTmFtZSBpbiB0aGlzLmNvbnRyb2xzKSB7XG4gICAgICBkYXRhW2NvbnRyb2xOYW1lXSA9ICg8Rm9ybUNvbnRyb2wgfCBGb3JtR3JvdXAgfCBGb3JtQXJyYXk+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLmdldEZvcm1hdHRlZFZhbHVlKCk7XG4gICAgfVxuICByZXR1cm4gZGF0YTtcbn07XG5Gb3JtQXJyYXkucHJvdG90eXBlLmdldEZvcm1hdHRlZFZhbHVlID0gZnVuY3Rpb24gKHRoaXM6IEZvcm1BcnJheSkge1xuICBjb25zdCBkYXRhID0gW107XG4gIGlmICghdGhpcy5jb250cm9scykgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gIGVsc2VcbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5jb250cm9scykge1xuICAgICAgZGF0YS5wdXNoKCg8Rm9ybUNvbnRyb2wgfCBGb3JtR3JvdXA+Y29udHJvbCkuZ2V0Rm9ybWF0dGVkVmFsdWUoKSk7XG4gICAgfVxuICByZXR1cm4gZGF0YTtcbn07XG5Gb3JtQ29udHJvbC5wcm90b3R5cGUuZ2V0Rm9ybWF0dGVkVmFsdWUgPSBmdW5jdGlvbiAodGhpczogRm9ybUNvbnRyb2wpIHtcbiAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG59O1xuLy8jZW5kcmVnaW9uXG5cbmV4cG9ydCB7fTtcbiJdfQ==
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvcHJvdG90eXBlcy9wcm90b3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQWtLM0Qsb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLFVBQXdCLFNBQVMsR0FBRyxHQUFHO0lBQ2xFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM1QyxDQUFDLENBQUM7QUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxVQUF3QixTQUFTLEdBQUcsR0FBRztJQUN0RSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3JGLENBQUMsQ0FBQztBQUNGLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHO0lBQzVCLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNyQyxDQUFDLENBQUM7QUFDRixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUF3QixTQUFTLEdBQUcsR0FBRyxFQUFFLFdBQVcsR0FBRyxFQUFFO0lBQ2pGLElBQUksRUFB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Q0gsQ0FBQyxDQUFDO0FBQ0YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsVUFBNkIsS0FBYyxFQUFFLFdBQW9CLEtBQUssRUFBRSxVQUFtQixLQUFLO0lBQ3RILElBQUksT0FBTztRQUNULE9BQU8sUUFBUTtZQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN4RyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7O1FBRWxHLE9BQU8sUUFBUTtZQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN4RyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFD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UUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQzs7UUFFN0MsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBeUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzNHO0lBQ0gsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFDRixTQUFTLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHO0lBQ3RDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7O1FBRTdDLEtBQUssTUFBTSxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUEyQixPQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFDRixXQUFXLENBQUMsU0FBUyxDQUFDLGlCQUFpQixHQUFHO0lBQ3hDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztBQUM3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFVkZ1bmN0aW9ucyB9IGZyb20gJy4uLy4uL2NvbmZpZ3MvYmFzZS1mdW5jdGlvbnMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBTdHJpbmcge1xuICAgIHN0cmlwQ2hhcihjaGFyYWN0ZXI/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgbGFzdFN0cmlwQ2hhcihjaGFyYWN0ZXI/OiBzdHJpbmcpOiBzdHJpbmc7XG4gICAgLyoqUmVtb3ZlIG51bGwgZnJvbSBzdHJpbmcgY29udGVudC4gKi9cbiAgICByZW1vdmVOdWxsKCk6IHN0cmluZztcbiAgICB1bkNoYXIoY2hhcmFjdGVyPzogc3RyaW5nLCByZXBsYWNlbWVudD86IHN0cmluZyk6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBDb252ZXJ0cyBQYXNjYWwgY2FzZSB0byBTZW50ZW5jZSBjYXNlXG4gICAgICogQGV4YW1wbGUgJ3NtYWxsQm9vaycudG9TZW50ZW5jZUNhc2UoKSA9ICdTbWFsbCBCb29rJ1xuICAgICAqL1xuICAgIHRvU2VudGVuY2VDYXNlKCk6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBSZXBsYWNlcyBhbGwgb2NjdXJyZW5jZXMgb2YgYSBzdWJzdHJpbmdcbiAgICAgKiBAcmV0dXJucyBUaGUgc3RyaW5nIGFmdGVyIHJlcGxhY2VtZW50XG4gICAgICovXG4gICAgcmVwbGFjZUFsbFN1YlN0cihjaGFyYWN0ZXI/OiBzdHJpbmcsIHJlcGxhY2VtZW50Pzogc3RyaW5nKTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGNoYXJhY3RlciBDaGFyYWN0ZXIgdG8gYWRkIGJlZm9yZSBzdHJpbmdcbiAgICAgKiBAcGFyYW0gZXhwZWN0ZWRMZW5ndGggRXhwZWN0ZWQgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgYWZ0ZXIgYWRkaXRpb24gb2YgdGhlIGNoYXJhY3RlclxuICAgICAqL1xuICAgIGFkZFByZWNlZGluZ0NoYXIoY2hhcmFjdGVyOiBzdHJpbmcsIGV4cGVjdGVkTGVuZ3RoOiBudW1iZXIpOiBzdHJpbmc7XG4gIH1cblxuICBpbnRlcmZhY2UgQXJyYXk8VD4ge1xuICAgIG1lcmdlKCk6IFQ7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIGluZGV4IFRoZSBpbmRleCB0byBzZWxlY3QgZnJvbSB0aGUgZW5kLlxuICAgICAqIEBkZWZhdWx0VmFsdWUgMFxuICAgICAqIEBleGFtcGxlIFsnYScsJ2InLCdjJ10ucmV2ZXJzZUluZGV4KDEpIHJldHVybnMgJ2InXG4gICAgICogQGV4YW1wbGUgWydhJywnYicsJ2MnLCdkJywnZSddLnJldmVyc2VJbmRleCgyKSByZXR1cm5zICdjJ1xuICAgICAqL1xuICAgIHJldmVyc2VJbmRleChpbmRleD86IG51bWJlcik6IFQ7XG4gICAgbGFzdEl0ZW0oKTogVDtcbiAgICAvKipcbiAgICAgKiBTaHVmZmxlcyB0aGUgY29udGVudCBvZiBhbiBhcnJheVxuICAgICAqL1xuICAgIHNodWZmbGUoKTogVFtdO1xuXG4gICAgLyoqXG4gICAgICogU29ydCBieSB0aGUgbGVuZ3RoIG9mIHRoZSBmaWVsZCBzcGVjaWZpZWQgaW4gYXNjZW5kaW5nIG9yZGVyXG4gICAgICogQHBhcmFtIGZpZWxkIEZpZWxkIG5hbWUgdG8gY29tcGFyZSB3aXRoXG4gICAgICogQHBhcmFtIHJldmVyc2UgU2hvdWxkIGl0IGJlIGluIGEgZGVzY2VuZGluZyBvcmRlclxuICAgICAqL1xuICAgIHNvcnRCeUZpZWxkTGVuZ3RoKGZpZWxkOiBrZXlvZiBULCByZXZlcnNlPzogYm9vbGVhbik6IFRbXTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIGZpZWxkIEZpZWxkIG5hbWUgdG8gY29tcGFyZSB3aXRoXG4gICAgICogQHBhcmFtIGlzU3RyaW5nIElzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGZpZWxkIGEgc3RyaW5nXG4gICAgICogQHBhcmFtIHJldmVyc2UgU2hvdWxkIGl0IGJlIGluIGEgZGVzY2VuZGluZyBvcmRlclxuICAgICAqL1xuICAgIHNvcnQyKGZpZWxkOiBrZXlvZiBULCBpc1N0cmluZz86IGJvb2xlYW4sIHJldmVyc2U/OiBib29sZWFuKTogVFtdO1xuICAgIC8qKlxuICAgICAqIERldGVjdHMgdGhlIGRhdGEgdHlwZSBvZiB0aGUgZmllbGQgdG8gc29ydCBieVxuICAgICAqIEBwYXJhbSBmaWVsZCBGaWVsZCBuYW1lIHRvIGNvbXBhcmUgd2l0aFxuICAgICAqIEBwYXJhbSByZXZlcnNlIFNob3VsZCBpdCBiZSBpbiBhIGRlc2NlbmRpbmcgb3JkZXJcbiAgICAgKi9cbiAgICBzb3J0MyhmaWVsZDoga2V5b2YgVCwgcmV2ZXJzZT86IGJvb2xlYW4pOiBUW107XG4gICAgLyoqXG4gICAgICogUmVtb3ZlIGl0ZW1zIGZyb20gYW4gYXJyYXkgdGhhdCBkb24ndCBoYXZlIHZhbHVlcyBpbiBhbnkgb2YgaXRzIGZpZWxkc1xuICAgICAqIEBwYXJhbSBleHBlY3RlZEZpZWxkcyBGaWVsZHMgdG8gY2hlY2sgZm9yIGVtcHRpbmVzcywgdGhlIGZ1bmN0aW9uIHdpbGwgcmVtb3ZlIHRoZSBpdGVtcyB0aGF0IGRvbid0IGhhdmUgYW55IHZhbHVlIGluIGFsbCB0aGUgZmllbGRzIHNwZWNpZmllZFxuICAgICAqL1xuICAgIHJlbW92ZUVtcHR5SXRlbXMoXG4gICAgICBleHBlY3RlZEZpZWxkcz86IChrZXlvZiBUKVtdLFxuICAgICAgY29uZmlnPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogU3BlY2lmeSB3aGV0aGVyIHRvIGNoZWNrIHRoZSB2YWx1ZSBpbiBib29sZWFuIGZpZWxkcy5cbiAgICAgICAgICogQGRlZmF1bHRWYWx1ZSBgZmFsc2VgXG4gICAgICAgICAqL1xuICAgICAgICBpZ25vcmVCb29sZWFuRmllbGRzPzogYm9vbGVhbjtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNwZWNpZnkgd2hldGhlciB0byBjaGVjayBmb3IgZW1wdGluZXNzIGluIHRoZSAnZXhwZWN0ZWRGaWVsZHMnIG9yIGNoZWNrIGZvciBlbXB0aW5lc3MgaW4gdGhlIG90aGVyIGZpZWxkcyBleGNsdWRpbmcgdGhlIGZpZWxkcyBzcGVjaWZpZWRcbiAgICAgICAgICogQGRlZmF1bHRWYWx1ZSBgaW5jbHVkZWRgXG4gICAgICAgICAqL1xuICAgICAgICBmaWVsZHNUeXBlPzogJ2luY2x1ZGVkJyB8ICdleGNsdWRlZCc7XG4gICAgICB9LFxuICAgICk6IFRbXTtcblxuICAgIC8qKlxuICAgICAqIENvbnZlcnRzIGFuIGFycmF5IHRvIGEga2V5IHZhbHVlIHBhaXIuXG4gICAgICogQHBhcmFtIGFyciBBcnJheSB0byBiZSBjb252ZXJ0ZWRcbiAgICAgKiBAcGFyYW0ga2V5RmllbGQgVGhlIGZpZWxkIHRvIGJlIHVzZWQgYXMgdGhlIGtleVxuICAgICAqIEByZXR1cm5zIEFuIGluZGV4IG9iamVjdCBjb250YWluaW5nIHRoZSBrZXlGaWVsZCBhcyB0aGUgaW5kZXgga2V5IGFuZCBlYWNoIGl0ZW0gb2YgdGhlIGFycmF5IGFzIHZhbHVlIGFzc2lnbmVkIHRvIGVhY2ggaW5kZXhcbiAgICAgKi9cbiAgICB0b01hcChrZXlGaWVsZDoga2V5b2YgVCk6IHsgW3g6IHN0cmluZ106IFQgfTtcbiAgICB0b01hcDxOVD4oa2V5RmllbGQ6IGtleW9mIFQsIG1hcDogKGl0ZW06IFQpID0+IE5UKTogeyBbeDogc3RyaW5nXTogTlQgfTtcbiAgICB0b01hcDxOVD4oa2V5RmllbGQ6IGtleW9mIFQsIG1hcD86IChpdGVtOiBUKSA9PiBOVCk7XG5cbiAgICAvKipcbiAgICAgKiBHcm91cHMgYW4gYXJyYXkgYnkgdW5pcXVlIGVudHJpZXMgaW4gYSBmaWVsZC5cbiAgICAgKiBAcGFyYW0gYXJyIEFycmF5IHRvIGJlIGdyb3VwZWRcbiAgICAgKiBAcGFyYW0ga2V5RmllbGQgVGhlIGZpZWxkIHRvIGJlIHVzZWQgYXMgdGhlIGtleVxuICAgICAqL1xuICAgIGdyb3VwQnkoa2V5RmllbGQ6IGtleW9mIFQsIGtleU1hcD86ICh2YWx1ZTogVCkgPT4gc3RyaW5nKTogeyBbeDogc3RyaW5nXTogVFtdIH07XG5cbiAgICAvKipcbiAgICAgKiBUdXJucyBhbiBhcnJheSB0byBhIG1hcC5cbiAgICAgKi9cbiAgICB0b0Jvb2xlYW5NYXAoKTogeyBbeDogc3RyaW5nXTogYm9vbGVhbiB9O1xuICB9XG4gIGludGVyZmFjZSBGdW5jdGlvbiB7XG4gICAgY2xvbmU6IGFueTtcbiAgfVxufVxuZGVjbGFyZSBtb2R1bGUgJ0Bhbmd1bGFyL2Zvcm1zJyB7XG4gIGludGVyZmFjZSBGb3JtQXJyYXk8VENvbnRyb2wgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w8YW55PiA9IGFueT5cbiAgICBleHRlbmRzIEFic3RyYWN0Q29udHJvbDzJtVR5cGVkT3JVbnR5cGVkPFRDb250cm9sLCDJtUZvcm1BcnJheVZhbHVlPFRDb250cm9sPiwgYW55PiwgybVUeXBlZE9yVW50eXBlZDxUQ29udHJvbCwgybVGb3JtQXJyYXlSYXdWYWx1ZTxUQ29udHJvbD4sIGFueT4+IHtcbiAgICBjRm9ybVN0cnVjdHVyZTogVENvbnRyb2w7XG4gICAgY0FkZEl0ZW0oaW5kZXg/OiBudW1iZXIsIGRhdGE/OiBUQ29udHJvbCk6IEZvcm1BcnJheTxUQ29udHJvbD47XG4gICAgLyoqXG4gICAgICogSGFuZGxlcyB0aGUgZGVsZXRpb24gb2Ygcm93cyBmcm9tIGEgRm9ybUFycmF5XG4gICAgICogQHBhcmFtIGluZGV4IEluZGV4IG9mIHRoZSByb3cgdG8gZGVsZXRlXG4gICAgICogQHBhcmFtIGZhIFRoZSBGb3JtQXJyYXkgdGhhdCBob2xkcyB0aGUgcm93c1xuICAgICAqIEBwYXJhbSBkZWxldGVTZXJ2aWNlIFRoZSBkZWxldGlvbiBzZXJ2aWNlIHRvIGJlIGNhbGxlZCAoSXQgc2hvdWxkIGJlIGFuIGFub255bW91cyBmdW5jdGlvbilcbiAgICAgKiBAcGFyYW0gYWRkUm93RnVuYyBUaGUgZnVuY3Rpb24gKGFub255bW91cykgdGhhdCBhZGRzIGEgbmV3IHJvdyB0byB0aGUgRm9ybUFycmF5XG4gICAgICogQHBhcmFtIGVtaXRFdmVudCBTcGVjaWZ5IHdoZXRoZXIgdG8gZW1pdCBhbiBldmVudCB3aGVuIG1hbmlwdWxhdGluZyB0aGUgRm9ybUFycmF5XG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBjUmVtb3ZlSXRlbShcbiAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICBkZWxldGVTZXJ2aWNlPzogKC4uLmFyZ3MpID0+IFByb21pc2U8YW55PiB8IE9ic2VydmFibGU8YW55PixcbiAgICAgIGFkZFJvd0Z1bmM/OiAoLi4uYXJncykgPT4gYW55LFxuICAgICAgZW1pdEV2ZW50PzogYm9vbGVhbixcbiAgICApOiBQcm9taXNlPEZvcm1BcnJheTxUQ29udHJvbD4+O1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgQWJzdHJhY3RDb250cm9sIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZT86IGFueTtcbiAgICBsYWJlbFZhbHVlPzogc3RyaW5nO1xuICAgIGdldEZvcm1hdHRlZFZhbHVlOiAoKSA9PiBhbnk7XG4gIH1cbiAgZXhwb3J0IGludGVyZmFjZSBGb3JtQ29udHJvbCB7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiBzdHJpbmc7XG4gICAgbGFiZWxWYWx1ZT86IHN0cmluZztcbiAgICBnZXRGb3JtYXR0ZWRWYWx1ZTogKCkgPT4gc3RyaW5nO1xuICB9XG4gIGV4cG9ydCBpbnRlcmZhY2UgRm9ybUdyb3VwIHtcbiAgICBmb3JtYXR0ZWRWYWx1ZT86IHsgW3g6IHN0cmluZ106IHN0cmluZ1tdIHwgeyBbeDogc3RyaW5nXTogc3RyaW5nIH1bXSB9O1xuICAgIGdldEZvcm1hdHRlZFZhbHVlOiAoKSA9PiB7IFt4OiBzdHJpbmddOiBzdHJpbmdbXSB8IHsgW3g6IHN0cmluZ106IHN0cmluZyB9W10gfTtcbiAgfVxuICBleHBvcnQgaW50ZXJmYWNlIEZvcm1BcnJheSB7XG4gICAgZm9ybWF0dGVkVmFsdWU/OiBzdHJpbmdbXSB8IHsgW3g6IHN0cmluZ106IHN0cmluZyB9W107XG4gICAgZ2V0Rm9ybWF0dGVkVmFsdWU6ICgpID0+IHN0cmluZ1tdIHwgeyBbeDogc3RyaW5nXTogc3RyaW5nIH1bXTtcbiAgfVxufVxuXG5kZWNsYXJlIG1vZHVsZSAnQGFuZ3VsYXIvcm91dGVyJyB7XG4gIGludGVyZmFjZSBSb3V0ZSB7XG4gICAgY3VzdG9tRGF0YT86IHtcbiAgICAgIG1pSUQ/OiBzdHJpbmc7XG4gICAgICB0aXRsZT86IHN0cmluZztcbiAgICAgIHBhZ2VDb21wb25lbnQ/OiB7XG4gICAgICAgIGNlbnRlckhlYWRlcj86IGJvb2xlYW47XG4gICAgICAgIGhpZGVIZWFkZXI/OiBib29sZWFuO1xuICAgICAgfTtcbiAgICB9O1xuICB9XG59XG5cbi8vI3JlZ2lvbiAgc3RyaW5nICovXG5TdHJpbmcucHJvdG90eXBlLnN0cmlwQ2hhciA9IGZ1bmN0aW9uICh0aGlzOiBzdHJpbmcsIGNoYXJhY3RlciA9ICcvJykge1xuICByZXR1cm4gKHRoaXMgKyAnJykucmVwbGFjZShjaGFyYWN0ZXIsICcnKTtcbn07XG5TdHJpbmcucHJvdG90eXBlLmxhc3RTdHJpcENoYXIgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nLCBjaGFyYWN0ZXIgPSAnLycpIHtcbiAgcmV0dXJuIHRoaXNbdGhpcz8ubGVuZ3RoIC0gMV0gPT0gY2hhcmFjdGVyID8gdGhpcy5zbGljZSgwLCB0aGlzLmxlbmd0aCAtIDEpIDogdGhpcztcbn07XG5TdHJpbmcucHJvdG90eXBlLnJlbW92ZU51bGwgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nKSB7XG4gIHJldHVybiBFVkZ1bmN0aW9ucy5zdHJpcE51bGwodGhpcyk7XG59O1xuU3RyaW5nLnByb3RvdHlwZS51bkNoYXIgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nLCBjaGFyYWN0ZXIgPSAnLycsIHJlcGxhY2VtZW50ID0gJycpIHtcbiAgbGV0IHRlID0gJyc7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGUgPSB0aGlzW2ldO1xuICAgIHRlICs9IGUgIT0gY2hhcmFjdGVyID8gZSA6ICcnO1xuICB9XG4gIHJldHVybiB0ZS5zcGxpdChjaGFyYWN0ZXIpLmpvaW4ocmVwbGFjZW1lbnQpO1xufTtcblN0cmluZy5wcm90b3R5cGUudG9TZW50ZW5jZUNhc2UgPSBmdW5jdGlvbiAodGhpczogc3RyaW5nKSB7XG4gIHJldHVybiB0aGlzLnJlcGxhY2UoLyhbQS1aXSkvZywgJyAkMScpO1xufTtcblN0cmluZy5wcm90b3R5cGUucmVwbGFjZUFsbFN1YlN0ciA9IGZ1bmN0aW9uICh0aGlzOiBzdHJpbmcsIGNoYXJhY3RlciA9ICcvJywgcmVwbGFjZW1lbnQgPSAnJykge1xuICByZXR1cm4gdGhpcy5zcGxpdChjaGFyYWN0ZXIpLmpvaW4ocmVwbGFjZW1lbnQpO1xufTtcblN0cmluZy5wcm90b3R5cGUuYWRkUHJlY2VkaW5nQ2hhciA9IGZ1bmN0aW9uICh0aGlzOiBzdHJpbmcsIGNoYXJhY3Rlcjogc3RyaW5nLCBleHBlY3RlZExlbmd0aDogbnVtYmVyKSB7XG4gIGlmICh0aGlzLmxlbmd0aCA+PSBleHBlY3RlZExlbmd0aCkgcmV0dXJuIHRoaXM7XG4gIHJldHVybiBjaGFyYWN0ZXIucmVwZWF0KGV4cGVjdGVkTGVuZ3RoIC0gdGhpcy5sZW5ndGgpICsgdGhpcztcbn07XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uICBhcnJheSAqL1xuQXJyYXkucHJvdG90eXBlLm1lcmdlID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+KSB7XG4gIGxldCByID0gJyc7XG4gIGZvciAoY29uc3QgaSBvZiB0aGlzKSB7XG4gICAgciArPSBpO1xuICB9XG4gIHJldHVybiByO1xufTtcbkFycmF5LnByb3RvdHlwZS5yZXZlcnNlSW5kZXggPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4sIGluZGV4ID0gMCkge1xuICByZXR1cm4gdGhpc1t0aGlzPy5sZW5ndGggLSAoMSArIGluZGV4KV07XG59O1xuQXJyYXkucHJvdG90eXBlLmxhc3RJdGVtID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+KSB7XG4gIHJldHVybiB0aGlzLnJldmVyc2VJbmRleCgpO1xufTtcbkFycmF5LnByb3RvdHlwZS5zb3J0QnlGaWVsZExlbmd0aCA9IGZ1bmN0aW9uIDxUPih0aGlzOiBBcnJheTxUPiwgZmllbGQ6IGtleW9mIFQsIHJldmVyc2U6IGJvb2xlYW4gPSBmYWxzZSkge1xuICBpZiAocmV2ZXJzZSkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChiLCBhKSA9PiAoYVtmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkgLSAoYltmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChhLCBiKSA9PiAoYVtmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkgLSAoYltmaWVsZCBhcyBhbnldPy5sZW5ndGggfHwgMCkpO1xuICB9XG59O1xuQXJyYXkucHJvdG90eXBlLnNvcnQyID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+LCBmaWVsZDoga2V5b2YgVCwgaXNTdHJpbmc6IGJvb2xlYW4gPSBmYWxzZSwgcmV2ZXJzZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGlmIChyZXZlcnNlKVxuICAgIHJldHVybiBpc1N0cmluZ1xuICAgICAgPyB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChiLCBhKSA9PiBzb3J0QWxwaGFOdW0oYVtmaWVsZF0/LnRvU3RyaW5nKCksIGJbZmllbGRdPy50b1N0cmluZygpKSlcbiAgICAgIDogdGhpcy5maWx0ZXIoKHgpID0+IHggIT0gbnVsbCkuc29ydCgoYiwgYSkgPT4gKGFbZmllbGQgYXMgYW55XSB8fCAwKSAtIChiW2ZpZWxkIGFzIGFueV0gfHwgMCkpO1xuICBlbHNlXG4gICAgcmV0dXJuIGlzU3RyaW5nXG4gICAgICA/IHRoaXMuZmlsdGVyKCh4KSA9PiB4ICE9IG51bGwpLnNvcnQoKGEsIGIpID0+IHNvcnRBbHBoYU51bShhW2ZpZWxkXT8udG9TdHJpbmcoKSwgYltmaWVsZF0/LnRvU3RyaW5nKCkpKVxuICAgICAgOiB0aGlzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKS5zb3J0KChhLCBiKSA9PiAoYVtmaWVsZCBhcyBhbnldIHx8IDApIC0gKGJbZmllbGQgYXMgYW55XSB8fCAwKSk7XG59O1xuQXJyYXkucHJvdG90eXBlLnNvcnQzID0gZnVuY3Rpb24gPFQ+KHRoaXM6IEFycmF5PFQ+LCBmaWVsZDoga2V5b2YgVCwgcmV2ZXJzZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIGxldCBpc1N0cmluZzogYm9vbGVhbiA9IHRoaXMuc29tZSgoeCkgPT4gaXNOYU4oeFtmaWVsZF0gYXMgYW55KSk7XG4gIHJldHVybiBpc1N0cmluZyA/IHRoaXMuc29ydDIoZmllbGQsIHRydWUsIHJldmVyc2UpIDogdGhpcy5zb3J0MihmaWVsZCwgZmFsc2UsIHJldmVyc2UpO1xufTtcbnZhciByZUEgPSAvW15hLXpBLVpdL2c7XG52YXIgcmVOID0gL1teMC05XS9nO1xuXG5mdW5jdGlvbiBzb3J0QWxwaGFOdW0oYTogc3RyaW5nLCBiOiBzdHJpbmcpIHtcbiAgdmFyIGFBID0gYT8udG9VcHBlckNhc2UoKT8ucmVwbGFjZShyZUEsICcnKTtcbiAgdmFyIGJBID0gYj8udG9VcHBlckNhc2UoKT8ucmVwbGFjZShyZUEsICcnKTtcbiAgaWYgKGFBID09PSBiQSkge1xuICAgIHZhciBhTiA9IHBhcnNlSW50KGE/LnJlcGxhY2UocmVOLCAnJyksIDEwKTtcbiAgICB2YXIgYk4gPSBwYXJzZUludChiPy5yZXBsYWNlKHJlTiwgJycpLCAxMCk7XG4gICAgcmV0dXJuIGFOID09PSBiTiA/IDAgOiBhTiA+IGJOID8gMSA6IC0xO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhQSA+IGJBID8gMSA6IC0xO1xuICB9XG59XG5cbkFycmF5LnByb3RvdHlwZS5yZW1vdmVFbXB0eUl0ZW1zID0gZnVuY3Rpb24gPFQ+KFxuICB0aGlzOiBBcnJheTxUPixcbiAgZXhwZWN0ZWRGaWVsZHM/OiAoa2V5b2YgVClbXSxcbiAgY29uZmlnPzoge1xuICAgIGlnbm9yZUJvb2xlYW5GaWVsZHM/OiBib29sZWFuO1xuICAgIGZpZWxkc1R5cGU/OiAnaW5jbHVkZWQnIHwgJ2V4Y2x1ZGVkJztcbiAgfSxcbikge1xuICAvLyBkZWJ1Z2dlcjtcbiAgY29uc3QgaWdub3JlQm9vbGVhbkZpZWxkcyA9IGNvbmZpZz8uaWdub3JlQm9vbGVhbkZpZWxkcyA9PSB0cnVlO1xuICBjb25zdCBmaWVsZHNUeXBlID0gY29uZmlnPy5maWVsZHNUeXBlIHx8ICdpbmNsdWRlZCc7XG4gIGlmICghdGhpcy5sZW5ndGgpIHJldHVybiB0aGlzO1xuICBsZXQgZmllbGRMaXN0OiBzdHJpbmdbXTtcbiAgaWYgKGZpZWxkc1R5cGUgPT0gJ2luY2x1ZGVkJykgZmllbGRMaXN0ID0gZXhwZWN0ZWRGaWVsZHM/Lmxlbmd0aCA/IChleHBlY3RlZEZpZWxkcyBhcyBzdHJpbmdbXSkgOiBPYmplY3Qua2V5cyh0aGlzWzBdKTtcbiAgZWxzZSBpZiAoZmllbGRzVHlwZSA9PSAnZXhjbHVkZWQnKVxuICAgIGZpZWxkTGlzdCA9IGV4cGVjdGVkRmllbGRzPy5sZW5ndGggPyBPYmplY3Qua2V5cyh0aGlzWzBdKS5maWx0ZXIoKHgpID0+ICFleHBlY3RlZEZpZWxkcy5pbmNsdWRlcyh4IGFzIGFueSkpIDogT2JqZWN0LmtleXModGhpc1swXSk7XG4gIGNvbnN0IHJlbW92ZWRJdGVtczogVFtdID0gW107XG4gIGlmIChmaWVsZExpc3QpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpZ25vcmVCb29sZWFuRmllbGRzICYmIGkgPT0gMCkge1xuICAgICAgICBmaWVsZExpc3QgPSBmaWVsZExpc3QuZmlsdGVyKChmKSA9PiB0eXBlb2YgdGhpc1swXVtmXSAhPSAnYm9vbGVhbicpO1xuICAgICAgfVxuICAgICAgY29uc3QgaXRlbSA9IHRoaXNbaV07XG4gICAgICBpZiAoZmllbGRMaXN0LnNvbWUoKGYpID0+IGl0ZW1bZl0gIT0gbnVsbCkpIGNvbnRpbnVlO1xuICAgICAgcmVtb3ZlZEl0ZW1zLnB1c2goLi4udGhpcy5zcGxpY2UoaSwgMSkpO1xuICAgICAgaSA9IGktLTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlbW92ZWRJdGVtcztcbn07XG5BcnJheS5wcm90b3R5cGUudG9NYXAgPSBmdW5jdGlvbiA8VCwgTlQ+KHRoaXM6IEFycmF5PFQ+LCBrZXlGaWVsZDoga2V5b2YgVCwgbWFwPzogKGl0ZW06IFQpID0+IE5UKSB7XG4gIC8vIGRlYnVnZ2VyO1xuICBjb25zdCByZXQ6IHsgW3g6IHN0cmluZ106IFQgfCBOVCB9ID0ge307XG4gIGZvciAoY29uc3QgaXRlcmF0b3Igb2YgdGhpcykge1xuICAgIHJldFtpdGVyYXRvcltrZXlGaWVsZD8udG9TdHJpbmcoKV1dID0gbWFwID8gbWFwKGl0ZXJhdG9yKSA6IGl0ZXJhdG9yO1xuICB9XG4gIHJldHVybiByZXQ7XG59O1xuQXJyYXkucHJvdG90eXBlLmdyb3VwQnkgPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4sIGtleUZpZWxkOiBrZXlvZiBULCBrZXlNYXA/OiAodmFsdWU6IFQpID0+IHN0cmluZyk6IHsgW3g6IHN0cmluZ106IFRbXSB9IHtcbiAgLy8gZGVidWdnZXI7XG4gIGNvbnN0IHJldDogeyBbeDogc3RyaW5nXTogVFtdIH0gPSB7fTtcbiAgZm9yIChjb25zdCBpdGVyYXRvciBvZiB0aGlzKSB7XG4gICAgY29uc3QgZ3JvdXAgPSBrZXlNYXAgPyBrZXlNYXAoaXRlcmF0b3IpIDogKGl0ZXJhdG9yW2tleUZpZWxkXSBhcyBzdHJpbmcpO1xuICAgIGlmIChyZXRbZ3JvdXBdKSByZXRbZ3JvdXBdLnB1c2goaXRlcmF0b3IpO1xuICAgIGVsc2UgcmV0W2dyb3VwXSA9IFtpdGVyYXRvcl07XG4gIH1cblxuICByZXR1cm4gcmV0O1xufTtcbkFycmF5LnByb3RvdHlwZS50b0Jvb2xlYW5NYXAgPSBmdW5jdGlvbiAodGhpczogQXJyYXk8YW55Pik6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gIC8vIGRlYnVnZ2VyO1xuICBjb25zdCByZXQ6IHsgW3g6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuICBmb3IgKGNvbnN0IGl0ZXJhdG9yIG9mIHRoaXMpIHtcbiAgICByZXRbaXRlcmF0b3JdID0gdHJ1ZTtcbiAgfVxuICByZXR1cm4gcmV0O1xufTtcblxuQXJyYXkucHJvdG90eXBlLnNodWZmbGUgPSBmdW5jdGlvbiA8VD4odGhpczogQXJyYXk8VD4pIHtcbiAgLy8gZGVidWdnZXI7XG4gIGNvbnN0IG5ld0FycjogVFtdID0gW107XG4gIHdoaWxlICh0aGlzLmxlbmd0aCkge1xuICAgIG5ld0Fyci5wdXNoKC4uLnRoaXMuc3BsaWNlKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMubGVuZ3RoIC0gMSksIDEpKTtcbiAgfVxuICByZXR1cm4gbmV3QXJyO1xufTtcblxuLy8jZW5kcmVnaW9uXG5cbi8vI3JlZ2lvbiBGdW5jdGlvblxuRnVuY3Rpb24ucHJvdG90eXBlLmNsb25lID0gZnVuY3Rpb24gKCkge1xuICB2YXIgdGhhdCA9IHRoaXM7XG4gIHZhciB0ZW1wID0gZnVuY3Rpb24gdGVtcG9yYXJ5KCkge1xuICAgIHJldHVybiB0aGF0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH07XG4gIGZvciAodmFyIGtleSBpbiB0aGlzKSB7XG4gICAgaWYgKHRoaXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgdGVtcFtrZXldID0gdGhpc1trZXldO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdGVtcDtcbn07XG4vLyNlbmRyZWdpb25cblxuLy8jcmVnaW9uIEZPUk1BUlJBWVxuRm9ybUFycmF5LnByb3RvdHlwZS5jQWRkSXRlbSA9IGZ1bmN0aW9uIDxUQ29udHJvbCBleHRlbmRzIEFic3RyYWN0Q29udHJvbDxhbnk+ID0gYW55PihcbiAgdGhpczogRm9ybUFycmF5PFRDb250cm9sPixcbiAgaW5kZXg/OiBudW1iZXIsXG4gIHZhbD86IHR5cGVvZiB0aGlzLmNGb3JtU3RydWN0dXJlLnZhbHVlLFxuKSB7XG4gIGNvbnN0IGZvcm0gPSBjbG9uZURlZXAodGhpcy5jRm9ybVN0cnVjdHVyZSk7XG4gIGlmICh2YWwpIHtcbiAgICBmb3JtLnBhdGNoVmFsdWUodmFsKTtcbiAgfVxuICB0aGlzLmluc2VydChpbmRleCwgZm9ybSk7XG4gIHJldHVybiB0aGlzO1xufTtcbkZvcm1BcnJheS5wcm90b3R5cGUuY1JlbW92ZUl0ZW0gPSBmdW5jdGlvbiA8VENvbnRyb2wgZXh0ZW5kcyBBYnN0cmFjdENvbnRyb2w8YW55PiA9IGFueT4oXG4gIHRoaXM6IEZvcm1BcnJheTxUQ29udHJvbD4sXG4gIGluZGV4OiBudW1iZXIsXG4gIGRlbGV0ZVNlcnZpY2U/OiAoLi4uYXJncykgPT4gUHJvbWlzZTxhbnk+IHwgT2JzZXJ2YWJsZTxhbnk+LFxuICBhZGRSb3dGdW5jPzogKC4uLmFyZ3MpID0+IGFueSxcbiAgZW1pdEV2ZW50ID0gdHJ1ZSxcbikge1xuICByZXR1cm4gbmV3IFByb21pc2U8Rm9ybUFycmF5PFRDb250cm9sPj4oKHN1YikgPT4ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5jb250cm9sc1tpbmRleF0/LnZhbHVlPy5pZDtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICBpZiAoaWQgJiYgZGVsZXRlU2VydmljZSkge1xuICAgICAgY29uc3QgcmVxID0gZGVsZXRlU2VydmljZShpZCk7XG4gICAgICBsZXQgcHM6IFByb21pc2U8YW55PiA9IG51bGw7XG4gICAgICBpZiAocmVxWyd0b1Byb21pc2UnXSkge1xuICAgICAgICBwcyA9IHJlcVsndG9Qcm9taXNlJ10oKTtcbiAgICAgIH1cbiAgICAgIHBzPy50aGVuKChyKSA9PiB7XG4gICAgICAgIHN1Yih0aGlzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2xzLmxlbmd0aCA9PSAxICYmIGlkKSB7XG4gICAgICB0aGlzLnJlbW92ZUF0KGluZGV4LCB7IGVtaXRFdmVudCB9KTtcbiAgICAgIGlmIChhZGRSb3dGdW5jKSBhZGRSb3dGdW5jKCk7XG4gICAgICBlbHNlIHRoaXMuY0FkZEl0ZW0oKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udHJvbHMubGVuZ3RoID4gMSkgdGhpcy5yZW1vdmVBdChpbmRleCwgeyBlbWl0RXZlbnQgfSk7XG4gICAgZWxzZSBpZiAodGhpcy5jb250cm9scy5sZW5ndGggPT0gMSkge1xuICAgICAgdGhpcy5jb250cm9sc1swXS5yZXNldCgpO1xuICAgIH1cbiAgfSk7XG59O1xuRm9ybUdyb3VwLnByb3RvdHlwZS5nZXRGb3JtYXR0ZWRWYWx1ZSA9IGZ1bmN0aW9uICh0aGlzOiBGb3JtR3JvdXApIHtcbiAgY29uc3QgZGF0YSA9IHt9O1xuICBpZiAoIXRoaXMuY29udHJvbHMpIHJldHVybiB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICBlbHNlXG4gICAgZm9yIChjb25zdCBjb250cm9sTmFtZSBpbiB0aGlzLmNvbnRyb2xzKSB7XG4gICAgICBkYXRhW2NvbnRyb2xOYW1lXSA9ICg8Rm9ybUNvbnRyb2wgfCBGb3JtR3JvdXAgfCBGb3JtQXJyYXk+dGhpcy5jb250cm9sc1tjb250cm9sTmFtZV0pLmdldEZvcm1hdHRlZFZhbHVlKCk7XG4gICAgfVxuICByZXR1cm4gZGF0YTtcbn07XG5Gb3JtQXJyYXkucHJvdG90eXBlLmdldEZvcm1hdHRlZFZhbHVlID0gZnVuY3Rpb24gKHRoaXM6IEZvcm1BcnJheSkge1xuICBjb25zdCBkYXRhID0gW107XG4gIGlmICghdGhpcy5jb250cm9scykgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gIGVsc2VcbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5jb250cm9scykge1xuICAgICAgZGF0YS5wdXNoKCg8Rm9ybUNvbnRyb2wgfCBGb3JtR3JvdXA+Y29udHJvbCkuZ2V0Rm9ybWF0dGVkVmFsdWUoKSk7XG4gICAgfVxuICByZXR1cm4gZGF0YTtcbn07XG5Gb3JtQ29udHJvbC5wcm90b3R5cGUuZ2V0Rm9ybWF0dGVkVmFsdWUgPSBmdW5jdGlvbiAodGhpczogRm9ybUNvbnRyb2wpIHtcbiAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkVmFsdWU7XG59O1xuLy8jZW5kcmVnaW9uXG5cbmV4cG9ydCB7fTtcbiJdfQ==
@@ -1,6 +1,18 @@
1
1
  import { EPageType } from '../Shared/models/index.model';
2
2
  export var EVFunctions;
3
3
  (function (EVFunctions) {
4
+ function stripNull(text) {
5
+ return text
6
+ ? text == 'null'
7
+ ? null
8
+ : text.slice(-5) == ' null'
9
+ ? stripNull(text.slice(0, -5))
10
+ : text.slice(0, 5) == 'null '
11
+ ? stripNull(text.slice(5))
12
+ : text.replace(' null ', ' ')
13
+ : text;
14
+ }
15
+ EVFunctions.stripNull = stripNull;
4
16
  function routeRedirects(route, redirects) {
5
17
  return [...redirects.map((r) => ({ ...r, redirectTo: route.path })), route];
6
18
  }
@@ -245,4 +257,4 @@ export var EVFunctions;
245
257
  }
246
258
  EVFunctions.typeCaster = typeCaster;
247
259
  })(EVFunctions || (EVFunctions = {}));
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvY29uZmlncy9iYXNlLWZ1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFekQsTUFBTSxLQUFXLFdBQVcsQ0EyUjNCO0FBM1JELFdBQWlCLFdBQVc7SUFDMUIsU0FBZ0IsY0FBYyxDQUM1QixLQUFZLEVBQ1osU0E2Qkc7UUFFSCxPQUFPLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQWxDZSwwQkFBYyxpQkFrQzdCLENBQUE7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW1CRztJQUNILFNBQWdCLFdBQVcsQ0FBQyxLQUFZLEVBQUUsY0FBMEIsRUFBRSxlQUFzQztRQUMxRyxNQUFNLE1BQU0sR0FBVztZQUNyQjtnQkFDRSxJQUFJLEVBQUUsRUFBRTtnQkFDUixJQUFJLEVBQUU7b0JBQ0osR0FBRyxLQUFLLENBQUMsSUFBSTtvQkFDYixLQUFLLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLO29CQUN4QixJQUFJLEVBQUUsU0FBUyxDQUFDLFNBQVM7aUJBQzFCO2dCQUNELFNBQVMsRUFBRSxjQUFjO2dCQUN6QixZQUFZLEVBQUUsZUFBZTthQUM5QjtZQUNEO2dCQUNFLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRTtvQkFDSixHQUFHLEtBQUssQ0FBQyxJQUFJO29CQUNiLEtBQUssRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUs7b0JBQ3hCLElBQUksRUFBRSxT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QztJQUZlLHNCQUFVLGFBRXpCLENBQUE7QUFDSCxDQUFDLEVBM1JnQixXQUFXLEtBQVgsV0FBVyxRQTJSM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWZhdWx0RXhwb3J0LCBMb2FkQ2hpbGRyZW5DYWxsYmFjaywgUm91dGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFUGFnZVR5cGUgfSBmcm9tICcuLi9TaGFyZWQvbW9kZWxzL2luZGV4Lm1vZGVsJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmV4cG9ydCBuYW1lc3BhY2UgRVZGdW5jdGlvbnMge1xuICBleHBvcnQgZnVuY3Rpb24gcm91dGVSZWRpcmVjdHMoXG4gICAgcm91dGU6IFJvdXRlLFxuICAgIHJlZGlyZWN0czoge1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgcGF0aCB0byBtYXRjaCBhZ2FpbnN0LiBDYW5ub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoIGEgY3VzdG9tIGBtYXRjaGVyYCBmdW5jdGlvbi5cbiAgICAgICAqIEEgVVJMIHN0cmluZyB0aGF0IHVzZXMgcm91dGVyIG1hdGNoaW5nIG5vdGF0aW9uLlxuICAgICAgICogQ2FuIGJlIGEgd2lsZCBjYXJkIChgKipgKSB0aGF0IG1hdGNoZXMgYW55IFVSTCAoc2VlIFVzYWdlIE5vdGVzIGJlbG93KS5cbiAgICAgICAqIERlZmF1bHQgaXMgXCIvXCIgKHRoZSByb290IHBhdGgpLlxuICAgICAgICpcbiAgICAgICAqL1xuICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgcGF0aC1tYXRjaGluZyBzdHJhdGVneSwgb25lIG9mICdwcmVmaXgnIG9yICdmdWxsJy5cbiAgICAgICAqIERlZmF1bHQgaXMgJ3ByZWZpeCcuXG4gICAgICAgKlxuICAgICAgICogQnkgZGVmYXVsdCwgdGhlIHJvdXRlciBjaGVja3MgVVJMIGVsZW1lbnRzIGZyb20gdGhlIGxlZnQgdG8gc2VlIGlmIHRoZSBVUkxcbiAgICAgICAqIG1hdGNoZXMgYSBnaXZlbiBwYXRoIGFuZCBzdG9wcyB3aGVuIHRoZXJlIGlzIGEgY29uZmlnIG1hdGNoLiBJbXBvcnRhbnRseSB0aGVyZSBtdXN0IHN0aWxsIGJlIGFcbiAgICAgICAqIGNvbmZpZyBtYXRjaCBmb3IgZWFjaCBzZWdtZW50IG9mIHRoZSBVUkwuIEZvciBleGFtcGxlLCAnL3RlYW0vMTEvdXNlcicgbWF0Y2hlcyB0aGUgcHJlZml4XG4gICAgICAgKiAndGVhbS86aWQnIGlmIG9uZSBvZiB0aGUgcm91dGUncyBjaGlsZHJlbiBtYXRjaGVzIHRoZSBzZWdtZW50ICd1c2VyJy4gVGhhdCBpcywgdGhlIFVSTFxuICAgICAgICogJy90ZWFtLzExL3VzZXInIG1hdGNoZXMgdGhlIGNvbmZpZ1xuICAgICAgICogYHtwYXRoOiAndGVhbS86aWQnLCBjaGlsZHJlbjogW3twYXRoOiAnOnVzZXInLCBjb21wb25lbnQ6IFVzZXJ9XX1gXG4gICAgICAgKiBidXQgZG9lcyBub3QgbWF0Y2ggd2hlbiB0aGVyZSBhcmUgbm8gY2hpbGRyZW4gYXMgaW4gYHtwYXRoOiAndGVhbS86aWQnLCBjb21wb25lbnQ6IFRlYW19YC5cbiAgICAgICAqXG4gICAgICAgKiBUaGUgcGF0aC1tYXRjaCBzdHJhdGVneSAnZnVsbCcgbWF0Y2hlcyBhZ2FpbnN0IHRoZSBlbnRpcmUgVVJMLlxuICAgICAgICogSXQgaXMgaW1wb3J0YW50IHRvIGRvIHRoaXMgd2hlbiByZWRpcmVjdGluZyBlbXB0eS1wYXRoIHJvdXRlcy5cbiAgICAgICAqIE90aGVyd2lzZSwgYmVjYXVzZSBhbiBlbXB0eSBwYXRoIGlzIGEgcHJlZml4IG9mIGFueSBVUkwsXG4gICAgICAgKiB0aGUgcm91dGVyIHdvdWxkIGFwcGx5IHRoZSByZWRpcmVjdCBldmVuIHdoZW4gbmF2aWdhdGluZ1xuICAgICAgICogdG8gdGhlIHJlZGlyZWN0IGRlc3RpbmF0aW9uLCBjcmVhdGluZyBhbiBlbmRsZXNzIGxvb3AuXG4gICAgICAgKlxuICAgICAgICovXG4gICAgICBwYXRoTWF0Y2g/OiAncHJlZml4JyB8ICdmdWxsJztcbiAgICB9W10sXG4gICkge1xuICAgIHJldHVybiBbLi4ucmVkaXJlY3RzLm1hcCgocikgPT4gPFJvdXRlPnsgLi4uciwgcmVkaXJlY3RUbzogcm91dGUucGF0aCB9KSwgcm91dGVdO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgZXh0ZW5kUm91dGUyIGluc3RlYWRcbiAgICogQHBhcmFtIHJvdXRlXG4gICAqIEBwYXJhbSBpbmRleENvbXBvbmVudFxuICAgKiBAcGFyYW0gaW5kZXhMYXp5TW9kdWxlXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIEVWRnVuY3Rpb25zLmV4dGVuZFJvdXRlKFxuICAgKiAge1xuICAgKiAgICAgcGF0aDogJycsXG4gICAqICAgICBkYXRhOiB7IHRpdGxlOiAnQ1JNIC8gU2V0dXBzIC8gU2VnbWVudCcgfSxcbiAgICogICAgIGxvYWRDaGlsZHJlbjogKCkgPT4gaW1wb3J0KCcuL2NyZWF0ZS1zZWdtZW50L2NyZWF0ZS1zZWdtZW50Lm1vZHVsZScpXG4gICAqICAgICAgIC50aGVuKChtKSA9PiBtLkNyZWF0ZVNlZ21lbnRNb2R1bGUpLFxuICAgKiAgfSxcbiAgICogIG51bGwsXG4gICAqICAoKSA9PiBpbXBvcnQoJy4vc2VnbWVudHMtaW5kZXgvc2VnbWVudHMtaW5kZXgubW9kdWxlJylcbiAgICogICAgIC50aGVuKChtKSA9PiBtLlNlZ21lbnRzSW5kZXhNb2R1bGUpKTtcbiAgICogYGBgXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gZXh0ZW5kUm91dGUocm91dGU6IFJvdXRlLCBpbmRleENvbXBvbmVudD86IFR5cGU8YW55PiwgaW5kZXhMYXp5TW9kdWxlPzogTG9hZENoaWxkcmVuQ2FsbGJhY2spIHtcbiAgICBjb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiByb3V0ZS5kYXRhPy50aXRsZSxcbiAgICAgICAgICB0eXBlOiBFUGFnZVR5cGUuaW5kZXhQYWdlLFxuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnQ6IGluZGV4Q29tcG9uZW50LFxuICAgICAgICBsb2FkQ2hpbGRyZW46IGluZGV4TGF6eU1vZHVsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdpbmRleCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiByb3V0ZS5kYXRhPy50aXRsZSxcbiAgICAgICAgICB0eXBlOiBFUGFnZVR5cGUuaW5kZXhQYWdlLFxuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnQ6IGluZGV4Q29tcG9uZW50LFxuICAgICAgICBsb2FkQ2hpbGRyZW46IGluZGV4TGF6eU1vZHVsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdjbG9uZScsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiBwYWdlVGl0bGVyKHJvdXRlLmRhdGE/LnRpdGxlLCAnQ2xvbmUnKSxcbiAgICAgICAgICB0eXBlOiBFUGFnZVR5cGUuY2xvbmVQYWdlLFxuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnQ6IHJvdXRlLmNvbXBvbmVudCxcbiAgICAgICAgbG9hZENoaWxkcmVuOiByb3V0ZS5sb2FkQ2hpbGRyZW4sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnY3JlYXRlJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIC4uLnJvdXRlLmRhdGEsXG4gICAgICAgICAgdGl0bGU6IHBhZ2VUaXRsZXIocm91dGUuZGF0YT8udGl0bGUsICdDcmVhdGUnKSxcbiAgICAgICAgICB0eXBlOiBFUGFnZVR5cGUuY3JlYXRlUGFnZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcG9uZW50OiByb3V0ZS5jb21wb25lbnQsXG4gICAgICAgIGxvYWRDaGlsZHJlbjogcm91dGUubG9hZENoaWxkcmVuLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ2VkaXQnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4ucm91dGUuZGF0YSxcbiAgICAgICAgICB0aXRsZTogcGFnZVRpdGxlcihyb3V0ZS5kYXRhPy50aXRsZSwgJ0VkaXQnKSxcbiAgICAgICAgICB0eXBlOiBFUGFnZVR5cGUuZWRpdFBhZ2UsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBvbmVudDogcm91dGUuY29tcG9uZW50LFxuICAgICAgICBsb2FkQ2hpbGRyZW46IHJvdXRlLmxvYWRDaGlsZHJlbixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdzaG93JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIC4uLnJvdXRlLmRhdGEsXG4gICAgICAgICAgdGl0bGU6IHBhZ2VUaXRsZXIocm91dGUuZGF0YT8udGl0bGUsICdTaG93JyksXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLnNob3dQYWdlLFxuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnQ6IHJvdXRlLmNvbXBvbmVudCxcbiAgICAgICAgbG9hZENoaWxkcmVuOiByb3V0ZS5sb2FkQ2hpbGRyZW4sXG4gICAgICB9LFxuICAgIF07XG4gICAgaWYgKCFpbmRleENvbXBvbmVudCAmJiAhaW5kZXhMYXp5TW9kdWxlKSB7XG4gICAgICByb3V0ZXMuc3BsaWNlKDAsIDIpO1xuICAgIH1cbiAgICByZXR1cm4gcm91dGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFxuICAgKiBAcGFyYW0gcm91dGUgXG4gICAqIEBwYXJhbSBpbmRleFBhZ2UgXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIEVWRnVuY3Rpb25zLmV4dGVuZFJvdXRlMihcbiAgICB7XG4gICAgICBwYXRoOiAnJyxcbiAgICAgIGRhdGE6IHsgdGl0bGU6ICcgUHJvY2VzcyBBY3Rpb25zJyB9LFxuICAgICAgbG9hZENvbXBvbmVudDogKCkgPT5cbiAgICAgICAgaW1wb3J0KCcuL2NyZWF0ZS1wcm9jZXNzLWFjdGlvbnMvY3JlYXRlLXByb2Nlc3MtYWN0aW9ucy5jb21wb25lbnQnKS50aGVuKFxuICAgICAgICAgIChjKSA9PiBjLkNyZWF0ZVByb2Nlc3NBY3Rpb25zQ29tcG9uZW50XG4gICAgICAgICksXG4gICAgfSxcbiAgICB7IGNvbXBvbmVudDogSW5kZXhQcm9jZXNzQWN0aW9uc0NvbXBvbmVudCB9XG4gIClcbiAgICogYGBgXG4gICAqIEByZXR1cm5zIFxuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGV4dGVuZFJvdXRlMihcbiAgICByb3V0ZTogUm91dGUsXG4gICAgaW5kZXhQYWdlPzoge1xuICAgICAgY29tcG9uZW50PzogVHlwZTxhbnk+O1xuICAgICAgbGF6eUNvbXBvbmVudD86ICgpID0+XG4gICAgICAgIHwgVHlwZTx1bmtub3duPlxuICAgICAgICB8IE9ic2VydmFibGU8VHlwZTx1bmtub3duPiB8IERlZmF1bHRFeHBvcnQ8VHlwZTx1bmtub3duPj4+XG4gICAgICAgIHwgUHJvbWlzZTxUeXBlPHVua25vd24+IHwgRGVmYXVsdEV4cG9ydDxUeXBlPHVua25vd24+Pj47XG4gICAgICBsYXp5TW9kdWxlPzogTG9hZENoaWxkcmVuQ2FsbGJhY2s7XG4gICAgICByZWRpcmVjdFRvSW5kZXg/OiBib29sZWFuO1xuICAgICAgdGl0bGU/OiBzdHJpbmc7XG4gICAgICBoaWRlVGl0bGU/OiBib29sZWFuO1xuICAgIH0sXG4gICkge1xuICAgIGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICAgICAgaW5kZXhQYWdlPy5yZWRpcmVjdFRvSW5kZXhcbiAgICAgICAgPyB7IHBhdGg6ICcnLCByZWRpcmVjdFRvOiAnaW5kZXgnLCBwYXRoTWF0Y2g6ICdmdWxsJyB9XG4gICAgICAgIDoge1xuICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIC4uLnJvdXRlLmRhdGEsXG4gICAgICAgICAgICAgIHRpdGxlOiBpbmRleFBhZ2U/LmhpZGVUaXRsZSA/IHVuZGVmaW5lZCA6IGluZGV4UGFnZT8udGl0bGUgfHwgcm91dGUuZGF0YT8udGl0bGUsXG4gICAgICAgICAgICAgIHR5cGU6IEVQYWdlVHlwZS5pbmRleFBhZ2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tcG9uZW50OiBpbmRleFBhZ2U/LmNvbXBvbmVudCxcbiAgICAgICAgICAgIGxvYWRDaGlsZHJlbjogaW5kZXhQYWdlPy5sYXp5TW9kdWxlLFxuICAgICAgICAgICAgbG9hZENvbXBvbmVudDogaW5kZXhQYWdlPy5sYXp5Q29tcG9uZW50LFxuICAgICAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdpbmRleCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiByb3V0ZS5kYXRhPy50aXRsZSxcbiAgICAgICAgICB0eXBlOiBFUGFnZVR5cGUuaW5kZXhQYWdlLFxuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnQ6IGluZGV4UGFnZT8uY29tcG9uZW50LFxuICAgICAgICBsb2FkQ2hpbGRyZW46IGluZGV4UGFnZT8ubGF6eU1vZHVsZSxcbiAgICAgICAgbG9hZENvbXBvbmVudDogaW5kZXhQYWdlPy5sYXp5Q29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLi4ucm91dGUsXG4gICAgICAgIHBhdGg6ICdjbG9uZScsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiBwYWdlVGl0bGVyKHJvdXRlLmRhdGE/LnRpdGxlLCAnQ2xvbmUnKSxcbiAgICAgICAgICB0eXBlOiBFUGFnZVR5cGUuY2xvbmVQYWdlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLi4ucm91dGUsXG4gICAgICAgIHBhdGg6ICdjcmVhdGUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4ucm91dGUuZGF0YSxcbiAgICAgICAgICB0aXRsZTogcGFnZVRpdGxlcihyb3V0ZS5kYXRhPy50aXRsZSwgJ0NyZWF0ZScpLFxuICAgICAgICAgIHR5cGU6IEVQYWdlVHlwZS5jcmVhdGVQYWdlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLi4ucm91dGUsXG4gICAgICAgIHBhdGg6ICdlZGl0JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIC4uLnJvdXRlLmRhdGEsXG4gICAgICAgICAgdGl0bGU6IHBhZ2VUaXRsZXIocm91dGUuZGF0YT8udGl0bGUsICdFZGl0JyksXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLmVkaXRQYWdlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgLi4ucm91dGUsXG4gICAgICAgIHBhdGg6ICdzaG93JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIC4uLnJvdXRlLmRhdGEsXG4gICAgICAgICAgdGl0bGU6IHBhZ2VUaXRsZXIocm91dGUuZGF0YT8udGl0bGUsICdTaG93JyksXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLnNob3dQYWdlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICAgIGlmICghaW5kZXhQYWdlIHx8ICEoT2JqZWN0LmtleXMoaW5kZXhQYWdlKS5sZW5ndGggPiAwKSkge1xuICAgICAgcm91dGVzLnNwbGljZSgwLCAyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25jYXRlbmF0ZXMgdHdvIHN0cmluZ3MgYW5kIGFjY291bnRzIGZvciBudWxsIHZhbHVlc1xuICAgKiBAcGFyYW0gdGV4dDEgRmlyc3Qgc3RyaW5nIHRvIGNvbmNhdGVuYXRlXG4gICAqIEBwYXJhbSB0ZXh0MiBTZWNvbmQgc3RyaW5nIHRvIGNvbmNhdGVuYXRlXG4gICAqIEBwYXJhbSBqb2luZXJUZXh0IFN0cmluZyB0byBwbGFjZSBpbiBiZXR3ZWVuIHRoZSB0d28gdGV4dHNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBzdHJDb25jYXRlbmF0b3IodGV4dDE/OiBzdHJpbmcsIHRleHQyPzogc3RyaW5nLCBqb2luZXJUZXh0ID0gJyAtICcpIHtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIC8vIGNvbnNvbGUubG9nKCdmaWVsZDEnLGZpZWxkMSlcbiAgICB0ZXh0MSA9IHRleHQxPy50b1N0cmluZygpPy50cmltKCk7XG4gICAgdGV4dDIgPSB0ZXh0Mj8udG9TdHJpbmcoKT8udHJpbSgpO1xuICAgIGlmICh0ZXh0MSAhPSBudWxsICYmIHRleHQyICE9IG51bGwpIHJldHVybiB7IHZhbHVlOiB0ZXh0MSwgbGFiZWw6IHRleHQxICsgam9pbmVyVGV4dCArIHRleHQyIH07XG4gICAgZWxzZSByZXR1cm4geyB2YWx1ZTogdGV4dDEsIGxhYmVsOiB0ZXh0MSB8fCB0ZXh0MiB9O1xuICB9XG4gIC8qKlxuICAgKiBDb25jYXRlbmF0ZXMgdHdvIHN0cmluZ3MgYW5kIGFjY291bnRzIGZvciBudWxsIHZhbHVlc1xuICAgKiBAcGFyYW0gdGV4dDEgRmlyc3Qgc3RyaW5nIHRvIGNvbmNhdGVuYXRlXG4gICAqIEBwYXJhbSB0ZXh0MiBTZWNvbmQgc3RyaW5nIHRvIGNvbmNhdGVuYXRlXG4gICAqIEBwYXJhbSBqb2luZXJUZXh0IFN0cmluZyB0byBwbGFjZSBpbiBiZXR3ZWVuIHRoZSB0d28gdGV4dHNcbiAgICogQHJldHVybnNcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBzdHJDb25jYXRlbmF0b3IyKHRleHQxPzogc3RyaW5nLCB0ZXh0Mj86IHN0cmluZywgam9pbmVyVGV4dCA9ICcgLSAnKSB7XG4gICAgLy8gZGVidWdnZXJcbiAgICAvLyBjb25zb2xlLmxvZygnZmllbGQxJyxmaWVsZDEpXG4gICAgdGV4dDEgPSB0ZXh0MT8udG9TdHJpbmcoKT8udHJpbSgpO1xuICAgIHRleHQyID0gdGV4dDI/LnRvU3RyaW5nKCk/LnRyaW0oKTtcbiAgICBpZiAodGV4dDEgIT0gbnVsbCAmJiB0ZXh0MiAhPSBudWxsKSByZXR1cm4gdGV4dDEgKyBqb2luZXJUZXh0ICsgdGV4dDI7XG4gICAgZWxzZSByZXR1cm4gdGV4dDEgfHwgdGV4dDI7XG4gIH1cbiAgZnVuY3Rpb24gcGFnZVRpdGxlcih0aXRsZTogc3RyaW5nLCBpbmZpeDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aXRsZSkgcmV0dXJuICcnO1xuICAgIGlmICghaW5maXgpIHJldHVybiB0aXRsZTtcbiAgICBjb25zdCBzcGxpdCA9IHRpdGxlLnNwbGl0KCcvJyksXG4gICAgICBsYXN0U3BsaXQgPSBzcGxpdC5wb3AoKSxcbiAgICAgIHByZWZpeCA9IHNwbGl0LmpvaW4oJy8nKTtcbiAgICByZXR1cm4gKHByZWZpeCA/IHByZWZpeCArICcgLyAnIDogJyAnKSArIGluZml4ICsgJyAnICsgbGFzdFNwbGl0O1xuICB9XG4gIGV4cG9ydCBmdW5jdGlvbiByZWRpcmVjdFJvdXRlRm9yVU0ocm91dGU6IFJvdXRlLCBwcmVmaXg6IHN0cmluZykge1xuICAgIGNvbnN0IG9QYXRoID0gcm91dGU/LnBhdGggKyAnJyxcbiAgICAgIG5QYXRoID0gcHJlZml4ICsgb1BhdGg7XG4gICAgcm91dGUucGF0aCA9IG5QYXRoO1xuICAgIGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICAgICAge1xuICAgICAgICBwYXRoOiBvUGF0aCxcbiAgICAgICAgcmVkaXJlY3RUbzogblBhdGgsXG4gICAgICB9LFxuICAgICAgcm91dGUsXG4gICAgXTtcbiAgICByZXR1cm4gcm91dGVzO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHR5cGVDYXN0ZXI8VD4odmFsdWU6IFQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1mdW5jdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvY29uZmlncy9iYXNlLWZ1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFekQsTUFBTSxLQUFXLFdBQVcsQ0F1UzNCO0FBdlNELFdBQWlCLFdBQVc7SUFDMUIsU0FBZ0IsU0FBUyxDQUFDLElBQVk7UUFDcEMsT0FBTyxJQUFJO1lBQ1QsQ0FBQyxDQUFDLElBQUksSUFBSSxNQUFNO2dCQUNkLENBQUMsQ0FBQyxJQUFJO2dCQUNOLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTztvQkFDekIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM5QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksT0FBTzt3QkFDM0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDO1lBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBVmUscUJBQVMsWUFVeEIsQ0FBQTtJQUVELFNBQWdCLGNBQWMsQ0FDNUIsS0FBWSxFQUNaLFNBNkJHO1FBRUgsT0FBTyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBTyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUEsQ0FBQyxFQUFF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QU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDO0lBQ25FLENBQUM7SUFDRCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFZLEVBQUUsTUFBYztRQUM3RCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFDNUIsS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDekIsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbkIsTUFBTSxNQUFNLEdBQVc7WUFDckI7Z0JBQ0UsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsVUFBVSxFQUFFLEtBQUs7YUFDbEI7WUFDRCxLQUFLO1NBQ04sQ0FBQztRQUNGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFaZSw4QkFBa0IscUJBWWpDLENBQUE7SUFFRCxTQUFnQixVQUFVLENBQUksS0FBUTtRQUNwQyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFGZSxzQkFBVSxhQUV6QixDQUFBO0FBQ0gsQ0FBQyxFQXZTZ0IsV0FBVyxLQUFYLFdBQVcsUUF1UzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVmYXVsdEV4cG9ydCwgTG9hZENoaWxkcmVuQ2FsbGJhY2ssIFJvdXRlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRVBhZ2VUeXBlIH0gZnJvbSAnLi4vU2hhcmVkL21vZGVscy9pbmRleC5tb2RlbCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5leHBvcnQgbmFtZXNwYWNlIEVWRnVuY3Rpb25zIHtcbiAgZXhwb3J0IGZ1bmN0aW9uIHN0cmlwTnVsbCh0ZXh0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGV4dFxuICAgICAgPyB0ZXh0ID09ICdudWxsJ1xuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB0ZXh0LnNsaWNlKC01KSA9PSAnIG51bGwnXG4gICAgICAgICAgPyBzdHJpcE51bGwodGV4dC5zbGljZSgwLCAtNSkpXG4gICAgICAgICAgOiB0ZXh0LnNsaWNlKDAsIDUpID09ICdudWxsICdcbiAgICAgICAgICAgID8gc3RyaXBOdWxsKHRleHQuc2xpY2UoNSkpXG4gICAgICAgICAgICA6IHRleHQucmVwbGFjZSgnIG51bGwgJywgJyAnKVxuICAgICAgOiB0ZXh0O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHJvdXRlUmVkaXJlY3RzKFxuICAgIHJvdXRlOiBSb3V0ZSxcbiAgICByZWRpcmVjdHM6IHtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIHBhdGggdG8gbWF0Y2ggYWdhaW5zdC4gQ2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBhIGN1c3RvbSBgbWF0Y2hlcmAgZnVuY3Rpb24uXG4gICAgICAgKiBBIFVSTCBzdHJpbmcgdGhhdCB1c2VzIHJvdXRlciBtYXRjaGluZyBub3RhdGlvbi5cbiAgICAgICAqIENhbiBiZSBhIHdpbGQgY2FyZCAoYCoqYCkgdGhhdCBtYXRjaGVzIGFueSBVUkwgKHNlZSBVc2FnZSBOb3RlcyBiZWxvdykuXG4gICAgICAgKiBEZWZhdWx0IGlzIFwiL1wiICh0aGUgcm9vdCBwYXRoKS5cbiAgICAgICAqXG4gICAgICAgKi9cbiAgICAgIHBhdGg6IHN0cmluZztcbiAgICAgIC8qKlxuICAgICAgICogVGhlIHBhdGgtbWF0Y2hpbmcgc3RyYXRlZ3ksIG9uZSBvZiAncHJlZml4JyBvciAnZnVsbCcuXG4gICAgICAgKiBEZWZhdWx0IGlzICdwcmVmaXgnLlxuICAgICAgICpcbiAgICAgICAqIEJ5IGRlZmF1bHQsIHRoZSByb3V0ZXIgY2hlY2tzIFVSTCBlbGVtZW50cyBmcm9tIHRoZSBsZWZ0IHRvIHNlZSBpZiB0aGUgVVJMXG4gICAgICAgKiBtYXRjaGVzIGEgZ2l2ZW4gcGF0aCBhbmQgc3RvcHMgd2hlbiB0aGVyZSBpcyBhIGNvbmZpZyBtYXRjaC4gSW1wb3J0YW50bHkgdGhlcmUgbXVzdCBzdGlsbCBiZSBhXG4gICAgICAgKiBjb25maWcgbWF0Y2ggZm9yIGVhY2ggc2VnbWVudCBvZiB0aGUgVVJMLiBGb3IgZXhhbXBsZSwgJy90ZWFtLzExL3VzZXInIG1hdGNoZXMgdGhlIHByZWZpeFxuICAgICAgICogJ3RlYW0vOmlkJyBpZiBvbmUgb2YgdGhlIHJvdXRlJ3MgY2hpbGRyZW4gbWF0Y2hlcyB0aGUgc2VnbWVudCAndXNlcicuIFRoYXQgaXMsIHRoZSBVUkxcbiAgICAgICAqICcvdGVhbS8xMS91c2VyJyBtYXRjaGVzIHRoZSBjb25maWdcbiAgICAgICAqIGB7cGF0aDogJ3RlYW0vOmlkJywgY2hpbGRyZW46IFt7cGF0aDogJzp1c2VyJywgY29tcG9uZW50OiBVc2VyfV19YFxuICAgICAgICogYnV0IGRvZXMgbm90IG1hdGNoIHdoZW4gdGhlcmUgYXJlIG5vIGNoaWxkcmVuIGFzIGluIGB7cGF0aDogJ3RlYW0vOmlkJywgY29tcG9uZW50OiBUZWFtfWAuXG4gICAgICAgKlxuICAgICAgICogVGhlIHBhdGgtbWF0Y2ggc3RyYXRlZ3kgJ2Z1bGwnIG1hdGNoZXMgYWdhaW5zdCB0aGUgZW50aXJlIFVSTC5cbiAgICAgICAqIEl0IGlzIGltcG9ydGFudCB0byBkbyB0aGlzIHdoZW4gcmVkaXJlY3RpbmcgZW1wdHktcGF0aCByb3V0ZXMuXG4gICAgICAgKiBPdGhlcndpc2UsIGJlY2F1c2UgYW4gZW1wdHkgcGF0aCBpcyBhIHByZWZpeCBvZiBhbnkgVVJMLFxuICAgICAgICogdGhlIHJvdXRlciB3b3VsZCBhcHBseSB0aGUgcmVkaXJlY3QgZXZlbiB3aGVuIG5hdmlnYXRpbmdcbiAgICAgICAqIHRvIHRoZSByZWRpcmVjdCBkZXN0aW5hdGlvbiwgY3JlYXRpbmcgYW4gZW5kbGVzcyBsb29wLlxuICAgICAgICpcbiAgICAgICAqL1xuICAgICAgcGF0aE1hdGNoPzogJ3ByZWZpeCcgfCAnZnVsbCc7XG4gICAgfVtdLFxuICApIHtcbiAgICByZXR1cm4gWy4uLnJlZGlyZWN0cy5tYXAoKHIpID0+IDxSb3V0ZT57IC4uLnIsIHJlZGlyZWN0VG86IHJvdXRlLnBhdGggfSksIHJvdXRlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIGV4dGVuZFJvdXRlMiBpbnN0ZWFkXG4gICAqIEBwYXJhbSByb3V0ZVxuICAgKiBAcGFyYW0gaW5kZXhDb21wb25lbnRcbiAgICogQHBhcmFtIGluZGV4TGF6eU1vZHVsZVxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBFVkZ1bmN0aW9ucy5leHRlbmRSb3V0ZShcbiAgICogIHtcbiAgICogICAgIHBhdGg6ICcnLFxuICAgKiAgICAgZGF0YTogeyB0aXRsZTogJ0NSTSAvIFNldHVwcyAvIFNlZ21lbnQnIH0sXG4gICAqICAgICBsb2FkQ2hpbGRyZW46ICgpID0+IGltcG9ydCgnLi9jcmVhdGUtc2VnbWVudC9jcmVhdGUtc2VnbWVudC5tb2R1bGUnKVxuICAgKiAgICAgICAudGhlbigobSkgPT4gbS5DcmVhdGVTZWdtZW50TW9kdWxlKSxcbiAgICogIH0sXG4gICAqICBudWxsLFxuICAgKiAgKCkgPT4gaW1wb3J0KCcuL3NlZ21lbnRzLWluZGV4L3NlZ21lbnRzLWluZGV4Lm1vZHVsZScpXG4gICAqICAgICAudGhlbigobSkgPT4gbS5TZWdtZW50c0luZGV4TW9kdWxlKSk7XG4gICAqIGBgYFxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgZXhwb3J0IGZ1bmN0aW9uIGV4dGVuZFJvdXRlKHJvdXRlOiBSb3V0ZSwgaW5kZXhDb21wb25lbnQ/OiBUeXBlPGFueT4sIGluZGV4TGF6eU1vZHVsZT86IExvYWRDaGlsZHJlbkNhbGxiYWNrKSB7XG4gICAgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICcnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4ucm91dGUuZGF0YSxcbiAgICAgICAgICB0aXRsZTogcm91dGUuZGF0YT8udGl0bGUsXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLmluZGV4UGFnZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcG9uZW50OiBpbmRleENvbXBvbmVudCxcbiAgICAgICAgbG9hZENoaWxkcmVuOiBpbmRleExhenlNb2R1bGUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnaW5kZXgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4ucm91dGUuZGF0YSxcbiAgICAgICAgICB0aXRsZTogcm91dGUuZGF0YT8udGl0bGUsXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLmluZGV4UGFnZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcG9uZW50OiBpbmRleENvbXBvbmVudCxcbiAgICAgICAgbG9hZENoaWxkcmVuOiBpbmRleExhenlNb2R1bGUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnY2xvbmUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4ucm91dGUuZGF0YSxcbiAgICAgICAgICB0aXRsZTogcGFnZVRpdGxlcihyb3V0ZS5kYXRhPy50aXRsZSwgJ0Nsb25lJyksXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLmNsb25lUGFnZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcG9uZW50OiByb3V0ZS5jb21wb25lbnQsXG4gICAgICAgIGxvYWRDaGlsZHJlbjogcm91dGUubG9hZENoaWxkcmVuLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0aDogJ2NyZWF0ZScsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiBwYWdlVGl0bGVyKHJvdXRlLmRhdGE/LnRpdGxlLCAnQ3JlYXRlJyksXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLmNyZWF0ZVBhZ2UsXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBvbmVudDogcm91dGUuY29tcG9uZW50LFxuICAgICAgICBsb2FkQ2hpbGRyZW46IHJvdXRlLmxvYWRDaGlsZHJlbixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICdlZGl0JyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIC4uLnJvdXRlLmRhdGEsXG4gICAgICAgICAgdGl0bGU6IHBhZ2VUaXRsZXIocm91dGUuZGF0YT8udGl0bGUsICdFZGl0JyksXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLmVkaXRQYWdlLFxuICAgICAgICB9LFxuICAgICAgICBjb21wb25lbnQ6IHJvdXRlLmNvbXBvbmVudCxcbiAgICAgICAgbG9hZENoaWxkcmVuOiByb3V0ZS5sb2FkQ2hpbGRyZW4sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnc2hvdycsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiBwYWdlVGl0bGVyKHJvdXRlLmRhdGE/LnRpdGxlLCAnU2hvdycpLFxuICAgICAgICAgIHR5cGU6IEVQYWdlVHlwZS5zaG93UGFnZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcG9uZW50OiByb3V0ZS5jb21wb25lbnQsXG4gICAgICAgIGxvYWRDaGlsZHJlbjogcm91dGUubG9hZENoaWxkcmVuLFxuICAgICAgfSxcbiAgICBdO1xuICAgIGlmICghaW5kZXhDb21wb25lbnQgJiYgIWluZGV4TGF6eU1vZHVsZSkge1xuICAgICAgcm91dGVzLnNwbGljZSgwLCAyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJvdXRlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBcbiAgICogQHBhcmFtIHJvdXRlIFxuICAgKiBAcGFyYW0gaW5kZXhQYWdlIFxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBFVkZ1bmN0aW9ucy5leHRlbmRSb3V0ZTIoXG4gICAge1xuICAgICAgcGF0aDogJycsXG4gICAgICBkYXRhOiB7IHRpdGxlOiAnIFByb2Nlc3MgQWN0aW9ucycgfSxcbiAgICAgIGxvYWRDb21wb25lbnQ6ICgpID0+XG4gICAgICAgIGltcG9ydCgnLi9jcmVhdGUtcHJvY2Vzcy1hY3Rpb25zL2NyZWF0ZS1wcm9jZXNzLWFjdGlvbnMuY29tcG9uZW50JykudGhlbihcbiAgICAgICAgICAoYykgPT4gYy5DcmVhdGVQcm9jZXNzQWN0aW9uc0NvbXBvbmVudFxuICAgICAgICApLFxuICAgIH0sXG4gICAgeyBjb21wb25lbnQ6IEluZGV4UHJvY2Vzc0FjdGlvbnNDb21wb25lbnQgfVxuICApXG4gICAqIGBgYFxuICAgKiBAcmV0dXJucyBcbiAgICovXG4gIGV4cG9ydCBmdW5jdGlvbiBleHRlbmRSb3V0ZTIoXG4gICAgcm91dGU6IFJvdXRlLFxuICAgIGluZGV4UGFnZT86IHtcbiAgICAgIGNvbXBvbmVudD86IFR5cGU8YW55PjtcbiAgICAgIGxhenlDb21wb25lbnQ/OiAoKSA9PlxuICAgICAgICB8IFR5cGU8dW5rbm93bj5cbiAgICAgICAgfCBPYnNlcnZhYmxlPFR5cGU8dW5rbm93bj4gfCBEZWZhdWx0RXhwb3J0PFR5cGU8dW5rbm93bj4+PlxuICAgICAgICB8IFByb21pc2U8VHlwZTx1bmtub3duPiB8IERlZmF1bHRFeHBvcnQ8VHlwZTx1bmtub3duPj4+O1xuICAgICAgbGF6eU1vZHVsZT86IExvYWRDaGlsZHJlbkNhbGxiYWNrO1xuICAgICAgcmVkaXJlY3RUb0luZGV4PzogYm9vbGVhbjtcbiAgICAgIHRpdGxlPzogc3RyaW5nO1xuICAgICAgaGlkZVRpdGxlPzogYm9vbGVhbjtcbiAgICB9LFxuICApIHtcbiAgICBjb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgICAgIGluZGV4UGFnZT8ucmVkaXJlY3RUb0luZGV4XG4gICAgICAgID8geyBwYXRoOiAnJywgcmVkaXJlY3RUbzogJ2luZGV4JywgcGF0aE1hdGNoOiAnZnVsbCcgfVxuICAgICAgICA6IHtcbiAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgICAgICB0aXRsZTogaW5kZXhQYWdlPy5oaWRlVGl0bGUgPyB1bmRlZmluZWQgOiBpbmRleFBhZ2U/LnRpdGxlIHx8IHJvdXRlLmRhdGE/LnRpdGxlLFxuICAgICAgICAgICAgICB0eXBlOiBFUGFnZVR5cGUuaW5kZXhQYWdlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbXBvbmVudDogaW5kZXhQYWdlPy5jb21wb25lbnQsXG4gICAgICAgICAgICBsb2FkQ2hpbGRyZW46IGluZGV4UGFnZT8ubGF6eU1vZHVsZSxcbiAgICAgICAgICAgIGxvYWRDb21wb25lbnQ6IGluZGV4UGFnZT8ubGF6eUNvbXBvbmVudCxcbiAgICAgICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXRoOiAnaW5kZXgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4ucm91dGUuZGF0YSxcbiAgICAgICAgICB0aXRsZTogcm91dGUuZGF0YT8udGl0bGUsXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLmluZGV4UGFnZSxcbiAgICAgICAgfSxcbiAgICAgICAgY29tcG9uZW50OiBpbmRleFBhZ2U/LmNvbXBvbmVudCxcbiAgICAgICAgbG9hZENoaWxkcmVuOiBpbmRleFBhZ2U/LmxhenlNb2R1bGUsXG4gICAgICAgIGxvYWRDb21wb25lbnQ6IGluZGV4UGFnZT8ubGF6eUNvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLnJvdXRlLFxuICAgICAgICBwYXRoOiAnY2xvbmUnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgLi4ucm91dGUuZGF0YSxcbiAgICAgICAgICB0aXRsZTogcGFnZVRpdGxlcihyb3V0ZS5kYXRhPy50aXRsZSwgJ0Nsb25lJyksXG4gICAgICAgICAgdHlwZTogRVBhZ2VUeXBlLmNsb25lUGFnZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLnJvdXRlLFxuICAgICAgICBwYXRoOiAnY3JlYXRlJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIC4uLnJvdXRlLmRhdGEsXG4gICAgICAgICAgdGl0bGU6IHBhZ2VUaXRsZXIocm91dGUuZGF0YT8udGl0bGUsICdDcmVhdGUnKSxcbiAgICAgICAgICB0eXBlOiBFUGFnZVR5cGUuY3JlYXRlUGFnZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLnJvdXRlLFxuICAgICAgICBwYXRoOiAnZWRpdCcsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiBwYWdlVGl0bGVyKHJvdXRlLmRhdGE/LnRpdGxlLCAnRWRpdCcpLFxuICAgICAgICAgIHR5cGU6IEVQYWdlVHlwZS5lZGl0UGFnZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC4uLnJvdXRlLFxuICAgICAgICBwYXRoOiAnc2hvdycsXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAuLi5yb3V0ZS5kYXRhLFxuICAgICAgICAgIHRpdGxlOiBwYWdlVGl0bGVyKHJvdXRlLmRhdGE/LnRpdGxlLCAnU2hvdycpLFxuICAgICAgICAgIHR5cGU6IEVQYWdlVHlwZS5zaG93UGFnZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgICBpZiAoIWluZGV4UGFnZSB8fCAhKE9iamVjdC5rZXlzKGluZGV4UGFnZSkubGVuZ3RoID4gMCkpIHtcbiAgICAgIHJvdXRlcy5zcGxpY2UoMCwgMik7XG4gICAgfVxuICAgIHJldHVybiByb3V0ZXM7XG4gIH1cblxuICAvKipcbiAgICogQ29uY2F0ZW5hdGVzIHR3byBzdHJpbmdzIGFuZCBhY2NvdW50cyBmb3IgbnVsbCB2YWx1ZXNcbiAgICogQHBhcmFtIHRleHQxIEZpcnN0IHN0cmluZyB0byBjb25jYXRlbmF0ZVxuICAgKiBAcGFyYW0gdGV4dDIgU2Vjb25kIHN0cmluZyB0byBjb25jYXRlbmF0ZVxuICAgKiBAcGFyYW0gam9pbmVyVGV4dCBTdHJpbmcgdG8gcGxhY2UgaW4gYmV0d2VlbiB0aGUgdHdvIHRleHRzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gc3RyQ29uY2F0ZW5hdG9yKHRleHQxPzogc3RyaW5nLCB0ZXh0Mj86IHN0cmluZywgam9pbmVyVGV4dCA9ICcgLSAnKSB7XG4gICAgLy8gZGVidWdnZXJcbiAgICAvLyBjb25zb2xlLmxvZygnZmllbGQxJyxmaWVsZDEpXG4gICAgdGV4dDEgPSB0ZXh0MT8udG9TdHJpbmcoKT8udHJpbSgpO1xuICAgIHRleHQyID0gdGV4dDI/LnRvU3RyaW5nKCk/LnRyaW0oKTtcbiAgICBpZiAodGV4dDEgIT0gbnVsbCAmJiB0ZXh0MiAhPSBudWxsKSByZXR1cm4geyB2YWx1ZTogdGV4dDEsIGxhYmVsOiB0ZXh0MSArIGpvaW5lclRleHQgKyB0ZXh0MiB9O1xuICAgIGVsc2UgcmV0dXJuIHsgdmFsdWU6IHRleHQxLCBsYWJlbDogdGV4dDEgfHwgdGV4dDIgfTtcbiAgfVxuICAvKipcbiAgICogQ29uY2F0ZW5hdGVzIHR3byBzdHJpbmdzIGFuZCBhY2NvdW50cyBmb3IgbnVsbCB2YWx1ZXNcbiAgICogQHBhcmFtIHRleHQxIEZpcnN0IHN0cmluZyB0byBjb25jYXRlbmF0ZVxuICAgKiBAcGFyYW0gdGV4dDIgU2Vjb25kIHN0cmluZyB0byBjb25jYXRlbmF0ZVxuICAgKiBAcGFyYW0gam9pbmVyVGV4dCBTdHJpbmcgdG8gcGxhY2UgaW4gYmV0d2VlbiB0aGUgdHdvIHRleHRzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBleHBvcnQgZnVuY3Rpb24gc3RyQ29uY2F0ZW5hdG9yMih0ZXh0MT86IHN0cmluZywgdGV4dDI/OiBzdHJpbmcsIGpvaW5lclRleHQgPSAnIC0gJykge1xuICAgIC8vIGRlYnVnZ2VyXG4gICAgLy8gY29uc29sZS5sb2coJ2ZpZWxkMScsZmllbGQxKVxuICAgIHRleHQxID0gdGV4dDE/LnRvU3RyaW5nKCk/LnRyaW0oKTtcbiAgICB0ZXh0MiA9IHRleHQyPy50b1N0cmluZygpPy50cmltKCk7XG4gICAgaWYgKHRleHQxICE9IG51bGwgJiYgdGV4dDIgIT0gbnVsbCkgcmV0dXJuIHRleHQxICsgam9pbmVyVGV4dCArIHRleHQyO1xuICAgIGVsc2UgcmV0dXJuIHRleHQxIHx8IHRleHQyO1xuICB9XG4gIGZ1bmN0aW9uIHBhZ2VUaXRsZXIodGl0bGU6IHN0cmluZywgaW5maXg6IHN0cmluZykge1xuICAgIGlmICghdGl0bGUpIHJldHVybiAnJztcbiAgICBpZiAoIWluZml4KSByZXR1cm4gdGl0bGU7XG4gICAgY29uc3Qgc3BsaXQgPSB0aXRsZS5zcGxpdCgnLycpLFxuICAgICAgbGFzdFNwbGl0ID0gc3BsaXQucG9wKCksXG4gICAgICBwcmVmaXggPSBzcGxpdC5qb2luKCcvJyk7XG4gICAgcmV0dXJuIChwcmVmaXggPyBwcmVmaXggKyAnIC8gJyA6ICcgJykgKyBpbmZpeCArICcgJyArIGxhc3RTcGxpdDtcbiAgfVxuICBleHBvcnQgZnVuY3Rpb24gcmVkaXJlY3RSb3V0ZUZvclVNKHJvdXRlOiBSb3V0ZSwgcHJlZml4OiBzdHJpbmcpIHtcbiAgICBjb25zdCBvUGF0aCA9IHJvdXRlPy5wYXRoICsgJycsXG4gICAgICBuUGF0aCA9IHByZWZpeCArIG9QYXRoO1xuICAgIHJvdXRlLnBhdGggPSBuUGF0aDtcbiAgICBjb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgcGF0aDogb1BhdGgsXG4gICAgICAgIHJlZGlyZWN0VG86IG5QYXRoLFxuICAgICAgfSxcbiAgICAgIHJvdXRlLFxuICAgIF07XG4gICAgcmV0dXJuIHJvdXRlcztcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiB0eXBlQ2FzdGVyPFQ+KHZhbHVlOiBUKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=