@cqa-lib/cqa-ui 1.1.216 → 1.1.218

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.
@@ -69,8 +69,9 @@ export class AddPrerequisiteCasesSectionComponent {
69
69
  }
70
70
  onRemoveRow(index) {
71
71
  this.removeRow.emit(index);
72
- // Don't auto-close when removing rows - let parent component handle closing logic
73
- // Parent can decide to reset the last row instead of removing it
72
+ if (this.rows.length <= 1) {
73
+ this.toggleExpanded(false);
74
+ }
74
75
  }
75
76
  onDndDrop(event) {
76
77
  if (event.data == null || event.index == null)
@@ -184,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
184
185
  }], prerequisitesChange: [{
185
186
  type: Output
186
187
  }] } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXByZXJlcXVpc2l0ZS1jYXNlcy1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYWRkLXByZXJlcXVpc2l0ZS1jYXNlcy1zZWN0aW9uL2FkZC1wcmVyZXF1aXNpdGUtY2FzZXMtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FkZC1wcmVyZXF1aXNpdGUtY2FzZXMtc2VjdGlvbi9hZGQtcHJlcmVxdWlzaXRlLWNhc2VzLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLFdBQVcsR0FFWixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQXNCdkIsTUFBTSxPQUFPLG9DQUFvQztJQXdFL0MsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF2RTFDLHlEQUF5RDtRQUNoRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSzFCLHVEQUF1RDtRQUM5QyxTQUFJLEdBQXNCLEVBQUUsQ0FBQztRQUV0Qzs7O1dBR0c7UUFDTSxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQVV0QyxnREFBZ0Q7UUFDdkMsVUFBSyxHQUFHLG9CQUFvQixDQUFDO1FBRXRDLGdDQUFnQztRQUN2QixnQkFBVyxHQUFHLGlFQUFpRSxDQUFDO1FBRXpGLHdDQUF3QztRQUMvQixtQkFBYyxHQUFHLGFBQWEsQ0FBQztRQUV4QyxpQ0FBaUM7UUFDeEIsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUUvQixpQ0FBaUM7UUFDeEIsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUUvQiwyQ0FBMkM7UUFDbEMsbUJBQWMsR0FBRyxrQkFBa0IsQ0FBQztRQUU3QyxxSUFBcUk7UUFDNUgsd0JBQW1CLEdBQUcsS0FBSyxDQUFD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O3NCQUFsQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBR0csNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUc2QyxhQUFhO3NCQUEvRCxZQUFZO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBT3ZDLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUVHLGVBQWU7c0JBQXhCLE1BQU07Z0JBRUcsbUJBQW1CO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb250ZW50Q2hpbGQsXG4gIFRlbXBsYXRlUmVmLFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEbmREcm9wRXZlbnQgfSBmcm9tICduZ3gtZHJhZy1kcm9wJztcbmltcG9ydCB7IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZywgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vZHluYW1pYy1zZWxlY3QvZHluYW1pYy1zZWxlY3QtZmllbGQuY29tcG9uZW50JztcblxuZXhwb3J0IGludGVyZmFjZSBQcmVyZXF1aXNpdGVSb3cge1xuICBrZXk6IHN0cmluZztcbn1cblxuLyoqIEVtaXR0ZWQgd2hlbiBhbnkgcHJlcmVxdWlzaXRlIHNlbGVjdCBjaGFuZ2VzIC0gY29udGFpbnMgYWxsIGN1cnJlbnQgc2VsZWN0aW9ucyAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVyZXF1aXNpdGVTZWxlY3Rpb24ge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWU6IHVua25vd247XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1hZGQtcHJlcmVxdWlzaXRlLWNhc2VzLXNlY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLXByZXJlcXVpc2l0ZS1jYXNlcy1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHsgY2xhc3M6ICdjcWEtdWktcm9vdCBjcWEtYWRkLXByZXJlcXVpc2l0ZS1jYXNlcy1zZWN0aW9uLWhvc3QnIH0sXG59KVxuZXhwb3J0IGNsYXNzIEFkZFByZXJlcXVpc2l0ZUNhc2VzU2VjdGlvbkNvbXBvbmVudCB7XG4gIC8qKiBXaGV0aGVyIHRoZSBzZWN0aW9uIGlzIGV4cGFuZGVkIChzaG93aW5nIHRoZSBmb3JtKSAqL1xuICBASW5wdXQoKSBleHBhbmRlZCA9IGZhbHNlO1xuXG4gIC8qKiBGb3JtIGdyb3VwIGNvbnRhaW5pbmcgY29udHJvbHMgZm9yIGVhY2ggcm93IChrZXllZCBieSByb3cua2V5KSAqL1xuICBASW5wdXQoKSBmb3JtITogRm9ybUdyb3VwO1xuXG4gIC8qKiBBcnJheSBvZiByb3cgZGVzY3JpcHRvcnMsIGVhY2ggd2l0aCBhIHVuaXF1ZSBrZXkgKi9cbiAgQElucHV0KCkgcm93czogUHJlcmVxdWlzaXRlUm93W10gPSBbXTtcblxuICAvKipcbiAgICogUHJlcmVxdWlzaXRlIG9wdGlvbnMgZnJvbSBBUEkgKGUuZy4gdGVzdCBjYXNlcyB0byBjaG9vc2UgZnJvbSkuXG4gICAqIFBhc3NlZCB0byBnZXRTZWxlY3RDb25maWcgd2hlbiBidWlsZGluZyB0aGUgY29uZmlnIGZvciBlYWNoIHJvdy5cbiAgICovXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uIHRvIGdldCB0aGUgZHluYW1pYyBzZWxlY3QgY29uZmlnIGZvciBhIGdpdmVuIHJvdyBpbmRleC5cbiAgICogUmVjZWl2ZXMgb3B0aW9uYWwgb3B0aW9ucyAoZnJvbSB0aGlzLm9wdGlvbnMgd2hlbiBwcm92aWRlZCkuXG4gICAqIEVhY2ggcm93IGNhbiBoYXZlIGRpZmZlcmVudCBvcHRpb25zLiBUbyBhdm9pZCBkdXBsaWNhdGVzLCBleGNsdWRlIG9wdGlvbnNcbiAgICogYWxyZWFkeSBzZWxlY3RlZCBpbiBvdGhlciByb3dzIChrZWVwIGN1cnJlbnQgcm93J3Mgc2VsZWN0aW9uIHNvIGl0IGRpc3BsYXlzKS5cbiAgICovXG4gIEBJbnB1dCgpIGdldFNlbGVjdENvbmZpZyE6IChpbmRleDogbnVtYmVyLCBvcHRpb25zPzogU2VsZWN0T3B0aW9uW10pID0+IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZztcblxuICAvKiogU2VjdGlvbiBsYWJlbCAoZS5nLiBcIlByZXJlcXVpc2l0ZSBDYXNlc1wiKSAqL1xuICBASW5wdXQoKSBsYWJlbCA9ICdQcmVyZXF1aXNpdGUgQ2FzZXMnO1xuXG4gIC8qKiBUb29sdGlwIGZvciB0aGUgaW5mbyBpY29uICovXG4gIEBJbnB1dCgpIGluZm9Ub29sdGlwID0gJ0FkZCBwcmVyZXF1aXNpdGUgdGVzdCBjYXNlcyB0aGF0IG11c3QgcnVuIGJlZm9yZSB0aGlzIHRlc3QgY2FzZSc7XG5cbiAgLyoqIFRleHQgZm9yIHRoZSBcIkFkZCBBbm90aGVyXCIgYnV0dG9uICovXG4gIEBJbnB1dCgpIGFkZEFub3RoZXJUZXh0ID0gJ0FkZCBBbm90aGVyJztcblxuICAvKiogVGV4dCBmb3IgdGhlIFVwZGF0ZSBidXR0b24gKi9cbiAgQElucHV0KCkgdXBkYXRlVGV4dCA9ICdVcGRhdGUnO1xuXG4gIC8qKiBUZXh0IGZvciB0aGUgQ2FuY2VsIGJ1dHRvbiAqL1xuICBASW5wdXQoKSBjYW5jZWxUZXh0ID0gJ0NhbmNlbCc7XG5cbiAgLyoqIFRleHQgZm9yIHRoZSBjb2xsYXBzZWQgXCJBZGRcIiB0cmlnZ2VyICovXG4gIEBJbnB1dCgpIGFkZFRyaWdnZXJUZXh0ID0gJ0FkZCBQcmVyZXF1aXNpdGUnO1xuXG4gIC8qKiBXaGVuIHRydWUsIGhpZGUgQWRkIFByZXJlcXVpc2l0ZSBidXR0b24gZXZlbiBpZiByb3dzIGFyZSBlbXB0eSAoZS5nLiB3aGVuIGNvbGxhcHNpbmcgYWZ0ZXIgdXBkYXRlIHdpdGggZXhpc3RpbmcgcHJlcmVxdWlzaXRlcykgKi9cbiAgQElucHV0KCkgaGlkZUFkZFByZXJlcXVpc2l0ZSA9IGZhbHNlO1xuXG4gIC8qKiBWYWxpZGF0aW9uIG1lc3NhZ2Ugc2hvd24gd2hlbiBBZGQgQW5vdGhlci9VcGRhdGUgYXJlIGRpc2FibGVkIChub3QgYWxsIHJvd3MgaGF2ZSB2YWx1ZXMpICovXG4gIEBJbnB1dCgpIHNlbGVjdEZpcnN0VmFsaWRhdGlvbk1lc3NhZ2UgPSAnUGxlYXNlIHNlbGVjdCBhIHByZXJlcXVpc2l0ZSBmb3IgZWFjaCByb3cgZmlyc3QsIHRoZW4gY2xpY2sgQWRkIEFub3RoZXIuJztcblxuICAvKiogT3B0aW9uYWwgY3VzdG9tIHRlbXBsYXRlIGZvciB0aGUgc2VsZWN0IHNsb3QuIFVzZSBuZy10ZW1wbGF0ZSAjc2VsZWN0Qm9keSB3aXRoIGxldC1yb3csIGxldC1pbmRleCwgbGV0LWZvcm0sIGxldC1jb25maWcuICovXG4gIEBDb250ZW50Q2hpbGQoJ3NlbGVjdEJvZHknLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHNlbGVjdEJvZHlUcGw/OiBUZW1wbGF0ZVJlZjx7XG4gICAgJGltcGxpY2l0OiBQcmVyZXF1aXNpdGVSb3c7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICBmb3JtOiBGb3JtR3JvdXA7XG4gICAgY29uZmlnOiBEeW5hbWljU2VsZWN0RmllbGRDb25maWc7XG4gIH0+O1xuXG4gIEBPdXRwdXQoKSBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGFkZFJvdyA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHJlbW92ZVJvdyA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgcm93c1Jlb3JkZXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UHJlcmVxdWlzaXRlUm93W10+KCk7XG4gIC8qKiBFbWl0dGVkIHdoZW4gVXBkYXRlIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSB1cGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIC8qKiBFbWl0dGVkIHdoZW4gQ2FuY2VsIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIC8qKiBFbWl0dGVkIHdoZW4gYSBzaW5nbGUgcm93J3Mgc2VsZWN0aW9uIGNoYW5nZXMgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBrZXk6IHN0cmluZzsgdmFsdWU6IHVua25vd247IGluZGV4OiBudW1iZXIgfT4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhbnkgc2VsZWN0IGNoYW5nZXMgLSByZXR1cm5zIGFsbCBjdXJyZW50IHByZXJlcXVpc2l0ZSBzZWxlY3Rpb25zIGluIG9yZGVyICovXG4gIEBPdXRwdXQoKSBwcmVyZXF1aXNpdGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQcmVyZXF1aXNpdGVTZWxlY3Rpb25bXT4oKTtcblxuICAvKiogU2V0IHRvIHRydWUgd2hlbiB1c2VyIGNsaWNrcyBBZGQgQW5vdGhlciB3aGlsZSBpbnZhbGlkIC0gc2hvd3MgdmFsaWRhdGlvbiBtZXNzYWdlICovXG4gIHNob3dBZGRBbm90aGVyVmFsaWRhdGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICB0b2dnbGVFeHBhbmRlZChzaG93OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5leHBhbmRlZCA9IHNob3c7XG4gICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHNob3cpO1xuICB9XG5cbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgY2xpY2tzIFwiQWRkIFByZXJlcXVpc2l0ZVwiIHdpdGggbm8gcm93cyAtIGV4cGFuZHMgYW5kIGFkZHMgZmlyc3Qgcm93ICovXG4gIG9uQWRkUHJlcmVxdWlzaXRlQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy50b2dnbGVFeHBhbmRlZCh0cnVlKTtcbiAgICB0aGlzLmFkZFJvdy5lbWl0KCk7XG4gIH1cblxuICBvbkFkZFJvdygpOiB2b2lkIHtcbiAgICAvLyBBbGxvdyBhZGRpbmcgZmlyc3Qgcm93IHdoZW4gZW1wdHkgKG5vIHZhbGlkYXRpb24gbmVlZGVkKVxuICAgIGlmICh0aGlzLnJvd3MubGVuZ3RoID4gMCAmJiAhdGhpcy5hbGxSb3dzSGF2ZVZhbHVlcygpKSB7XG4gICAgICB0aGlzLnNob3dBZGRBbm90aGVyVmFsaWRhdGlvbiA9IHRydWU7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zaG93QWRkQW5vdGhlclZhbGlkYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLmFkZFJvdy5lbWl0KCk7XG4gIH1cblxuICBvblJlbW92ZVJvdyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVSb3cuZW1pdChpbmRleCk7XG4gICAgLy8gRG9uJ3QgYXV0by1jbG9zZSB3aGVuIHJlbW92aW5nIHJvd3MgLSBsZXQgcGFyZW50IGNvbXBvbmVudCBoYW5kbGUgY2xvc2luZyBsb2dpY1xuICAgIC8vIFBhcmVudCBjYW4gZGVjaWRlIHRvIHJlc2V0IHRoZSBsYXN0IHJvdyBpbnN0ZWFkIG9mIHJlbW92aW5nIGl0XG4gIH1cblxuICBvbkRuZERyb3AoZXZlbnQ6IERuZERyb3BFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5kYXRhID09IG51bGwgfHwgZXZlbnQuaW5kZXggPT0gbnVsbCkgcmV0dXJuO1xuICAgIGNvbnN0IGRyb3BSb3cgPSBldmVudC5kYXRhIGFzIFByZXJlcXVpc2l0ZVJvdztcbiAgICBsZXQgZHJvcEluZGV4ID0gZXZlbnQuaW5kZXg7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5yb3dzLmZpbmRJbmRleCgocikgPT4gci5rZXkgPT09IGRyb3BSb3cua2V5KTtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgMCkgcmV0dXJuO1xuICAgIGlmIChjdXJyZW50SW5kZXggPT09IGRyb3BJbmRleCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbmV3Um93cyA9IFsuLi50aGlzLnJvd3NdO1xuICAgIG5ld1Jvd3Muc3BsaWNlKGN1cnJlbnRJbmRleCwgMSk7XG4gICAgLy8gSWYgbW92aW5nIGZvcndhcmQsIGRyb3BJbmRleCBzaGlmdHMgYWZ0ZXIgcmVtb3ZhbFxuICAgIGlmIChjdXJyZW50SW5kZXggPCBkcm9wSW5kZXgpIHtcbiAgICAgIGRyb3BJbmRleC0tO1xuICAgIH1cbiAgICBuZXdSb3dzLnNwbGljZShkcm9wSW5kZXgsIDAsIGRyb3BSb3cpO1xuICAgIHRoaXMucm93c1Jlb3JkZXJlZC5lbWl0KG5ld1Jvd3MpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdHJhY2tCeUtleShfaTogbnVtYmVyLCByb3c6IFByZXJlcXVpc2l0ZVJvdyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJvdy5rZXk7XG4gIH1cblxuICBvblVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZS5lbWl0KCk7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBvblNlbGVjdGlvbkNoYW5nZShldmVudDogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoeyAuLi5ldmVudCwgaW5kZXggfSk7XG4gICAgdGhpcy5lbWl0QWxsUHJlcmVxdWlzaXRlcygpO1xuICAgIGlmICh0aGlzLmFsbFJvd3NIYXZlVmFsdWVzKCkpIHtcbiAgICAgIHRoaXMuc2hvd0FkZEFub3RoZXJWYWxpZGF0aW9uID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIFRydWUgd2hlbiBldmVyeSByb3cgaGFzIGEgbm9uLWVtcHR5IHZhbHVlIChubyBwbGFjZWhvbGRlcnMpICovXG4gIGFsbFJvd3NIYXZlVmFsdWVzKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5mb3JtIHx8ICF0aGlzLnJvd3MubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucm93cy5ldmVyeSgocm93KSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB0aGlzLmZvcm0uZ2V0KHJvdy5rZXkpPy52YWx1ZTtcbiAgICAgIHJldHVybiB2YWwgIT0gbnVsbCAmJiB2YWwgIT09ICcnO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEVtaXRzIGFsbCBjdXJyZW50IHByZXJlcXVpc2l0ZSBzZWxlY3Rpb25zIChrZXkgKyB2YWx1ZSkgaW4gcm93IG9yZGVyICovXG4gIHByaXZhdGUgZW1pdEFsbFByZXJlcXVpc2l0ZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZvcm0gfHwgIXRoaXMucm93cy5sZW5ndGgpIHJldHVybjtcbiAgICBjb25zdCBzZWxlY3Rpb25zOiBQcmVyZXF1aXNpdGVTZWxlY3Rpb25bXSA9IHRoaXMucm93cy5tYXAoKHJvdykgPT4gKHtcbiAgICAgIGtleTogcm93LmtleSxcbiAgICAgIHZhbHVlOiB0aGlzLmZvcm0uZ2V0KHJvdy5rZXkpPy52YWx1ZSA/PyBudWxsLFxuICAgIH0pKTtcbiAgICB0aGlzLnByZXJlcXVpc2l0ZXNDaGFuZ2UuZW1pdChzZWxlY3Rpb25zKTtcbiAgfVxuXG4gIGdldENvbmZpZyhpbmRleDogbnVtYmVyKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICBjb25zdCBvcHRzID0gdGhpcy5vcHRpb25zPy5sZW5ndGggPyB0aGlzLm9wdGlvbnMgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0Q29uZmlnPy4oaW5kZXgsIG9wdHMpID8/IHsga2V5OiBgcm93XyR7aW5kZXh9YCwgb3B0aW9uczogdGhpcy5vcHRpb25zID8/IFtdIH07XG4gIH1cbn1cbiIsIjwhLS0gQWRkIFByZXJlcXVpc2l0ZSB0cmlnZ2VyIC0gb25seSB3aGVuIGNvbGxhcHNlZCBhbmQgbm8gcm93cyAodXNlciBtdXN0IGNsaWNrIHRvIGV4cGFuZCk7IGhpZGUgd2hlbiBwYXJlbnQgaGFzIHByZXJlcXVpc2l0ZXMgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwicm93cy5sZW5ndGggPT09IDAgJiYgIWV4cGFuZGVkICYmICFoaWRlQWRkUHJlcmVxdWlzaXRlXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNxYS1ib3JkZXItMiBjcWEtYm9yZGVyLWRhc2hlZCBjcWEtYm9yZGVyLVsjRDhEOUZDXSBjcWEtcm91bmRlZC1sZyBjcWEtcC0xIGNxYS1tdC00IGNxYS1iZy13aGl0ZSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tYWxsIGNxYS1kdXJhdGlvbi0yMDAgY3FhLWVhc2UtaW4tb3V0IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1nYXAtMiAgY3FhLXctZnVsbCBjcWEtaG92ZXI6Y3FhLWJvcmRlci1bIzk5OTllZV0gY3FhLWhvdmVyOmNxYS1iZy1bI2Y4ZjhmZl0gY3FhLWFjdGl2ZTpjcWEtYm9yZGVyLVsjN2M3Y2UwXSBjcWEtYWN0aXZlOmNxYS1iZy1bI2VmZjZmZl1cIlxuICAgIChjbGljayk9XCJvbkFkZFByZXJlcXVpc2l0ZUNsaWNrKClcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLXctWzEycHhdIGNxYS1oLVsxMnB4XSBjcWEtdGV4dC1bIzNGNDNFRV1cIj5hZGQ8L21hdC1pY29uPlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtcmVndWxhciBjcWEtZm9udC1pbnRlciBjcWEtdGV4dC1zbSBjcWEtdGV4dC1bIzNGNDNFRV1cIj57eyBhZGRUcmlnZ2VyVGV4dCB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBDb2xsYXBzZWQgc3VtbWFyeSB3aGVuIHdlIGhhdmUgcm93cyBidXQgZXhwYW5kZWQ9ZmFsc2UgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwicm93cy5sZW5ndGggPiAwICYmICFleHBhbmRlZFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtYm9yZGVyLTIgY3FhLWJvcmRlci1kYXNoZWQgY3FhLWJvcmRlci1bI0Q4RDlGQ10gY3FhLXJvdW5kZWQtbGcgY3FhLXAtMS41IGNxYS1tdC00IGNxYS1iZy13aGl0ZSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tYWxsIGNxYS1kdXJhdGlvbi0yMDAgY3FhLWVhc2UtaW4tb3V0IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtbWluLWgtWzI3cHhdIGNxYS1ob3ZlcjpjcWEtYm9yZGVyLVsjOWNhM2FmXSBjcWEtaG92ZXI6Y3FhLWJnLVsjZjlmYWZiXSBjcWEtYWN0aXZlOmNxYS1ib3JkZXItWyM2MzY2ZjFdIGNxYS1hY3RpdmU6Y3FhLWJnLVsjZWZmNmZmXVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKHRydWUpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzRhNTU2NV0gY3FhLWZvbnQtbm9ybWFsIGNxYS1mb250LWludGVyIGNxYS10ZXh0LXhzXCI+e3sgcm93cy5sZW5ndGggfX0gcHJlcmVxdWlzaXRle3sgcm93cy5sZW5ndGggIT09IDEgPyAncycgOiAnJyB9fTwvc3Bhbj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1bMTRweF0gY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtdGV4dC1bIzRhNTU2NV1cIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjwhLS0gRXhwYW5kZWQgZm9ybSAtIHdoZW4gZXhwYW5kZWQ9dHJ1ZSAod2l0aCBvciB3aXRob3V0IHJvd3M7IG5vIEFkZCBQcmVyZXF1aXNpdGUgdHJpZ2dlcikgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZXhwYW5kZWRcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1tdC00IGNxYS1wLTMgY3FhLWJnLXdoaXRlIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI2U1ZTdlYl0gY3FhLXJvdW5kZWQtbGdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNSBjcWEtbWItM1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbS0wIGNxYS1sZWFkaW5nLW5vbmVcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXctNCBjcWEtaC00IGNxYS10ZXh0LXNtIGNxYS10ZXh0LVsjNmI3MjgwXSBjcWEtY3Vyc29yLWhlbHAgY3FhLWZsZXgtc2hyaW5rLTBcIiBbbWF0VG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjMwMFwiPmluZm88L21hdC1pY29uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtbWwtYXV0byBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdy03IGNxYS1oLTcgY3FhLXAtMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1yb3VuZGVkLW1kIGNxYS10ZXh0LVsjNmI3MjgwXSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLWhvdmVyOmNxYS1iZy1bI2YzZjRmNl0gY3FhLWhvdmVyOmNxYS10ZXh0LVsjMzc0MTUxXVwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZChmYWxzZSlcIlxuICAgICAgICBtYXRUb29sdGlwPVwiQ2xvc2VcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQteGwgY3FhLXctNSBjcWEtaC01XCI+ZXhwYW5kX2xlc3M8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByZXJlcXVpc2l0ZS1kcm9wLWxpc3QgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMiBjcWEtbWItM1wiXG4gICAgICBbZG5kRHJvcHpvbmVdPVwiWydwcmVyZXF1aXNpdGUtcm93J11cIlxuICAgICAgZG5kRWZmZWN0QWxsb3dlZD1cIm1vdmVcIlxuICAgICAgZG5kRHJhZ292ZXJDbGFzcz1cImRuZERyYWdvdmVyXCJcbiAgICAgIChkbmREcm9wKT1cIm9uRG5kRHJvcCgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGRuZFBsYWNlaG9sZGVyUmVmIGNsYXNzPVwicHJlcmVxdWlzaXRlLWRyYWctcGxhY2Vob2xkZXJcIj5Ecm9wIGhlcmU8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5S2V5XCJcbiAgICAgICAgY2xhc3M9XCJwcmVyZXF1aXNpdGUtZHJhZy1pdGVtIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCJcbiAgICAgICAgW2RuZERyYWdnYWJsZV09XCJyb3dcIlxuICAgICAgICBbZG5kRGlzYWJsZUlmXT1cInJvd3MubGVuZ3RoIDw9IDFcIlxuICAgICAgICBkbmRFZmZlY3RBbGxvd2VkPVwibW92ZVwiXG4gICAgICAgIGRuZFR5cGU9XCJwcmVyZXF1aXNpdGUtcm93XCI+XG4gICAgICAgIDwhLS0gOS1kb3QgZ3JpZCBkcmFnIGhhbmRsZSAob25seSB3aGVuIG11bHRpcGxlIHJvd3MgdG8gcmVvcmRlcikgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJyb3dzLmxlbmd0aCA+IDFcIiBkbmRIYW5kbGUgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1zaHJpbmstMCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtY3Vyc29yLWdyYWIgY3FhLXRleHQtWyM2QjcyODBdIGNxYS1ob3ZlcjpjcWEtdGV4dC1bIzExMTgyN10gYWN0aXZlOmNxYS1jdXJzb3ItZ3JhYmJpbmdcIiBtYXRUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiM1wiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxM1wiIGN5PVwiM1wiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjhcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTNcIiBjeT1cIjhcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCIxM1wiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjEzXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTNcIiBjeT1cIjEzXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMFwiPlxuICAgICAgICA8IS0tIEN1c3RvbSB0ZW1wbGF0ZSAoZS5nLiBwYXJlbnQtcHJvdmlkZWQgY3FhLWR5bmFtaWMtc2VsZWN0KSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdEJvZHlUcGxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdEJvZHlUcGw7IGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiByb3csXG4gICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICBmb3JtOiBmb3JtLFxuICAgICAgICAgICAgICBjb25maWc6IGdldENvbmZpZyhpKVxuICAgICAgICAgICAgfVwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSBEZWZhdWx0OiBidWlsdC1pbiBjcWEtZHluYW1pYy1zZWxlY3QgLS0+XG4gICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3RcbiAgICAgICAgICAqbmdJZj1cIiFzZWxlY3RCb2R5VHBsICYmIGZvcm1cIlxuICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgIFtjb25maWddPVwiZ2V0Q29uZmlnKGkpXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudCwgaSlcIj5cbiAgICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdy04IGNxYS1oLTggY3FhLW1pbi13LVszMnB4XSBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1yb3VuZGVkLW1kIGNxYS10ZXh0LVsjNmI3MjgwXSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXAtMCBjcWEtaG92ZXI6Y3FhLWJnLVsjZjNmNGY2XSBjcWEtaG92ZXI6Y3FhLXRleHQtWyMzNzQxNTFdXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlUm93KGkpXCJcbiAgICAgICAgbWF0VG9vbHRpcD1cIkNhbmNlbFwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1sZyBjcWEtdy1bMThweF0gY3FhLWgtWzE4cHhdXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0FkZEFub3RoZXJWYWxpZGF0aW9uICYmICFhbGxSb3dzSGF2ZVZhbHVlcygpXCIgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bI2RjMjYyNl0gY3FhLW1iLTJcIj5cbiAgICAgIHt7IHNlbGVjdEZpcnN0VmFsaWRhdGlvbk1lc3NhZ2UgfX1cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEFkZCBQcmVyZXF1aXNpdGUgYnV0dG9uIG9ubHkgaW4gZW1wdHkgc3RhdGU7IGhpZGUgd2hlbiBwYXJlbnQgaGFzIHByZXJlcXVpc2l0ZXMgKGUuZy4gY29sbGFwc2luZyBhZnRlciB1cGRhdGUpIC0tPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwicm93cy5sZW5ndGggPT09IDAgJiYgIWhpZGVBZGRQcmVyZXF1aXNpdGVcIlxuICAgICAgY2xhc3M9XCJjcWEtYm9yZGVyLTIgY3FhLWJvcmRlci1kYXNoZWQgY3FhLWJvcmRlci1bI2NjY2NmZl0gY3FhLXJvdW5kZWQtbGcgY3FhLXAtMyBjcWEtbWItMyBjcWEtYmctd2hpdGUgY3FhLWN1cnNvci1wb2ludGVyIGNxYS10cmFuc2l0aW9uLWFsbCBjcWEtZHVyYXRpb24tMjAwIGNxYS1lYXNlLWluLW91dCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtZ2FwLTIgY3FhLW1pbi1oLVs0MHB4XSBjcWEtdy1mdWxsIGNxYS1ob3ZlcjpjcWEtYm9yZGVyLVsjOTk5OWVlXSBjcWEtaG92ZXI6Y3FhLWJnLVsjZjhmOGZmXSBjcWEtYWN0aXZlOmNxYS1ib3JkZXItWyM3YzdjZTBdIGNxYS1hY3RpdmU6Y3FhLWJnLVsjZWZmNmZmXVwiXG4gICAgICAoY2xpY2spPVwib25BZGRSb3coKVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS13LVsxOHB4XSBjcWEtaC1bMThweF0gY3FhLXRleHQtWyMzYjgyZjZdXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtbWVkaXVtIGNxYS1mb250LWludGVyIGNxYS10ZXh0LXNtIGNxYS10ZXh0LVsjM2I4MmY2XVwiPnt7IGFkZFRyaWdnZXJUZXh0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gQWRkIEFub3RoZXIgbGluayB3aGVuIHdlIGFscmVhZHkgaGF2ZSBhdCBsZWFzdCBvbmUgcm93IC0tPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwicm93cy5sZW5ndGggPiAwICYmICFoaWRlQWRkUHJlcmVxdWlzaXRlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJjcWEtbWItMyBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1wLTAgY3FhLWN1cnNvci1wb2ludGVyIGNxYS1mb250LWludGVyIGNxYS10ZXh0LXNtIGNxYS10ZXh0LVsjNDI0MkRCXSBjcWEtaG92ZXI6Y3FhLXVuZGVybGluZVwiXG4gICAgICAoY2xpY2spPVwib25BZGRSb3coKVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS13LVsxOHB4XSBjcWEtaC1bMThweF1cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgPHNwYW4+e3sgYWRkQW5vdGhlclRleHQgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1nYXAtMyBjcWEtanVzdGlmeS1lbmRcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY3FhLXB5LTIuNSBjcWEtcHgtNCBjcWEtYmctd2hpdGUgY3FhLXRleHQtWyMzNzQxNTFdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI2QxZDVkYl0gY3FhLXJvdW5kZWQtbWQgY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWN1cnNvci1wb2ludGVyIGNxYS1ob3ZlcjpjcWEtYmctWyNmOWZhZmJdXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5cbiAgICAgICAge3sgY2FuY2VsVGV4dCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImNxYS1weS0yLjUgY3FhLXB4LTQgY3FhLXJvdW5kZWQtbWQgY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWJvcmRlci1ub25lIGNxYS1jdXJzb3ItcG9pbnRlciBkaXNhYmxlZDpjcWEtb3BhY2l0eS01MCBkaXNhYmxlZDpjcWEtY3Vyc29yLW5vdC1hbGxvd2VkIGNxYS1iZy1bIzFhNTZkYl0gY3FhLXRleHQtd2hpdGUgY3FhLWhvdmVyOmNxYS1iZy1bIzE2NDdiOF0gZGlzYWJsZWQ6Y3FhLWJnLVsjMWE1NmRiXVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhYWxsUm93c0hhdmVWYWx1ZXMoKVwiXG4gICAgICAgIChjbGljayk9XCJvblVwZGF0ZSgpXCI+XG4gICAgICAgIHt7IHVwZGF0ZVRleHQgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXByZXJlcXVpc2l0ZS1jYXNlcy1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvYWRkLXByZXJlcXVpc2l0ZS1jYXNlcy1zZWN0aW9uL2FkZC1wcmVyZXF1aXNpdGUtY2FzZXMtc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2FkZC1wcmVyZXF1aXNpdGUtY2FzZXMtc2VjdGlvbi9hZGQtcHJlcmVxdWlzaXRlLWNhc2VzLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLFdBQVcsR0FFWixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQXNCdkIsTUFBTSxPQUFPLG9DQUFvQztJQXdFL0MsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUF2RTFDLHlEQUF5RDtRQUNoRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSzFCLHVEQUF1RDtRQUM5QyxTQUFJLEdBQXNCLEVBQUUsQ0FBQztRQUV0Qzs7O1dBR0c7UUFDTSxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQVV0QyxnREFBZ0Q7UUFDdkMsVUFBSyxHQUFHLG9CQUFvQixDQUFDO1FBRXRDLGdDQUFnQztRQUN2QixnQkFBVyxHQUFHLGlFQUFpRSxDQUFDO1FBRXpGLHdDQUF3QztRQUMvQixtQkFBYyxHQUFHLGFBQWEsQ0FBQztRQUV4QyxpQ0FBaUM7UUFDeEIsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUUvQixpQ0FBaUM7UUFDeEIsZUFBVSxHQUFHLFFBQVEsQ0FBQztRQUUvQiwyQ0FBMkM7UUFDbEMsbUJBQWMsR0FBRyxrQkFBa0IsQ0FBQztRQUU3QyxxSUFBcUk7UUFDNUgsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBRXJDLCtGQUErRjtRQUN0RixpQ0FBNEIsR0FBRywwRUFBMEUsQ0FBQztRQVV6RyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDN0MsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUNoRSw0Q0FBNEM7UUFDbEMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDNUMsNENBQTRDO1FBQ2xDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLG9EQUFvRDtRQUMxQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFrRCxDQUFDO1FBQy9GLDZGQUE2RjtRQUNuRix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUU1RSx3RkFBd0Y7UUFDeEYsNkJBQXdCLEdBQUcsS0FBSyxDQUFDO0lBRVksQ0FBQztJQUU5QyxjQUFjLENBQUMsSUFBYTtRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsMkZBQTJGO0lBQzNGLHNCQUFzQjtRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVE7UUFDTiwyREFBMkQ7UUFDM0QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFtQjtRQUMzQixJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSTtZQUFFLE9BQU87UUFDdEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQXVCLENBQUM7UUFDOUMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUM1QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkUsSUFBSSxZQUFZLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDN0IsSUFBSSxZQUFZLEtBQUssU0FBUztZQUFFLE9BQU87UUFFdkMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoQyxvREFBb0Q7UUFDcEQsSUFBSSxZQUFZLEdBQUcsU0FBUyxFQUFFO1lBQzVCLFNBQVMsRUFBRSxDQUFDO1NBQ2I7UUFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVUsRUFBRSxHQUFvQjtRQUN6QyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBc0MsRUFBRSxLQUFhO1FBQ3JFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7U0FDdkM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDN0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQztZQUMxQyxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCwyRUFBMkU7SUFDbkUsb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUM1QyxNQUFNLFVBQVUsR0FBNEIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHO1lBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLElBQUksSUFBSTtTQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUM7SUFDckcsQ0FBQzs7aUlBcktVLG9DQUFvQztxSEFBcEMsb0NBQW9DLGcyQkFpRFgsV0FBVyw2QkNoRmpELHNpUUFvSUE7MkZEckdhLG9DQUFvQztrQkFQaEQsU0FBUzsrQkFDRSxvQ0FBb0MsbUJBRzdCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUscURBQXFELEVBQUU7d0dBSTdELFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUdHLElBQUk7c0JBQVosS0FBSztnQkFNRyxPQUFPO3NCQUFmLEtBQUs7Z0JBUUcsZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyw0QkFBNEI7c0JBQXBDLEtBQUs7Z0JBRzZDLGFBQWE7c0JBQS9ELFlBQVk7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPdkMsY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUVHLE1BQU07c0JBQWYsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU07Z0JBRUcsZUFBZTtzQkFBeEIsTUFBTTtnQkFFRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbnRlbnRDaGlsZCxcbiAgVGVtcGxhdGVSZWYsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERuZERyb3BFdmVudCB9IGZyb20gJ25neC1kcmFnLWRyb3AnO1xuaW1wb3J0IHsgRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZXJlcXVpc2l0ZVJvdyB7XG4gIGtleTogc3RyaW5nO1xufVxuXG4vKiogRW1pdHRlZCB3aGVuIGFueSBwcmVyZXF1aXNpdGUgc2VsZWN0IGNoYW5nZXMgLSBjb250YWlucyBhbGwgY3VycmVudCBzZWxlY3Rpb25zICovXG5leHBvcnQgaW50ZXJmYWNlIFByZXJlcXVpc2l0ZVNlbGVjdGlvbiB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogdW5rbm93bjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLWFkZC1wcmVyZXF1aXNpdGUtY2FzZXMtc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtcHJlcmVxdWlzaXRlLWNhc2VzLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBjbGFzczogJ2NxYS11aS1yb290IGNxYS1hZGQtcHJlcmVxdWlzaXRlLWNhc2VzLXNlY3Rpb24taG9zdCcgfSxcbn0pXG5leHBvcnQgY2xhc3MgQWRkUHJlcmVxdWlzaXRlQ2FzZXNTZWN0aW9uQ29tcG9uZW50IHtcbiAgLyoqIFdoZXRoZXIgdGhlIHNlY3Rpb24gaXMgZXhwYW5kZWQgKHNob3dpbmcgdGhlIGZvcm0pICovXG4gIEBJbnB1dCgpIGV4cGFuZGVkID0gZmFsc2U7XG5cbiAgLyoqIEZvcm0gZ3JvdXAgY29udGFpbmluZyBjb250cm9scyBmb3IgZWFjaCByb3cgKGtleWVkIGJ5IHJvdy5rZXkpICovXG4gIEBJbnB1dCgpIGZvcm0hOiBGb3JtR3JvdXA7XG5cbiAgLyoqIEFycmF5IG9mIHJvdyBkZXNjcmlwdG9ycywgZWFjaCB3aXRoIGEgdW5pcXVlIGtleSAqL1xuICBASW5wdXQoKSByb3dzOiBQcmVyZXF1aXNpdGVSb3dbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBQcmVyZXF1aXNpdGUgb3B0aW9ucyBmcm9tIEFQSSAoZS5nLiB0ZXN0IGNhc2VzIHRvIGNob29zZSBmcm9tKS5cbiAgICogUGFzc2VkIHRvIGdldFNlbGVjdENvbmZpZyB3aGVuIGJ1aWxkaW5nIHRoZSBjb25maWcgZm9yIGVhY2ggcm93LlxuICAgKi9cbiAgQElucHV0KCkgb3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gZ2V0IHRoZSBkeW5hbWljIHNlbGVjdCBjb25maWcgZm9yIGEgZ2l2ZW4gcm93IGluZGV4LlxuICAgKiBSZWNlaXZlcyBvcHRpb25hbCBvcHRpb25zIChmcm9tIHRoaXMub3B0aW9ucyB3aGVuIHByb3ZpZGVkKS5cbiAgICogRWFjaCByb3cgY2FuIGhhdmUgZGlmZmVyZW50IG9wdGlvbnMuIFRvIGF2b2lkIGR1cGxpY2F0ZXMsIGV4Y2x1ZGUgb3B0aW9uc1xuICAgKiBhbHJlYWR5IHNlbGVjdGVkIGluIG90aGVyIHJvd3MgKGtlZXAgY3VycmVudCByb3cncyBzZWxlY3Rpb24gc28gaXQgZGlzcGxheXMpLlxuICAgKi9cbiAgQElucHV0KCkgZ2V0U2VsZWN0Q29uZmlnITogKGluZGV4OiBudW1iZXIsIG9wdGlvbnM/OiBTZWxlY3RPcHRpb25bXSkgPT4gRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnO1xuXG4gIC8qKiBTZWN0aW9uIGxhYmVsIChlLmcuIFwiUHJlcmVxdWlzaXRlIENhc2VzXCIpICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJ1ByZXJlcXVpc2l0ZSBDYXNlcyc7XG5cbiAgLyoqIFRvb2x0aXAgZm9yIHRoZSBpbmZvIGljb24gKi9cbiAgQElucHV0KCkgaW5mb1Rvb2x0aXAgPSAnQWRkIHByZXJlcXVpc2l0ZSB0ZXN0IGNhc2VzIHRoYXQgbXVzdCBydW4gYmVmb3JlIHRoaXMgdGVzdCBjYXNlJztcblxuICAvKiogVGV4dCBmb3IgdGhlIFwiQWRkIEFub3RoZXJcIiBidXR0b24gKi9cbiAgQElucHV0KCkgYWRkQW5vdGhlclRleHQgPSAnQWRkIEFub3RoZXInO1xuXG4gIC8qKiBUZXh0IGZvciB0aGUgVXBkYXRlIGJ1dHRvbiAqL1xuICBASW5wdXQoKSB1cGRhdGVUZXh0ID0gJ1VwZGF0ZSc7XG5cbiAgLyoqIFRleHQgZm9yIHRoZSBDYW5jZWwgYnV0dG9uICovXG4gIEBJbnB1dCgpIGNhbmNlbFRleHQgPSAnQ2FuY2VsJztcblxuICAvKiogVGV4dCBmb3IgdGhlIGNvbGxhcHNlZCBcIkFkZFwiIHRyaWdnZXIgKi9cbiAgQElucHV0KCkgYWRkVHJpZ2dlclRleHQgPSAnQWRkIFByZXJlcXVpc2l0ZSc7XG5cbiAgLyoqIFdoZW4gdHJ1ZSwgaGlkZSBBZGQgUHJlcmVxdWlzaXRlIGJ1dHRvbiBldmVuIGlmIHJvd3MgYXJlIGVtcHR5IChlLmcuIHdoZW4gY29sbGFwc2luZyBhZnRlciB1cGRhdGUgd2l0aCBleGlzdGluZyBwcmVyZXF1aXNpdGVzKSAqL1xuICBASW5wdXQoKSBoaWRlQWRkUHJlcmVxdWlzaXRlID0gZmFsc2U7XG5cbiAgLyoqIFZhbGlkYXRpb24gbWVzc2FnZSBzaG93biB3aGVuIEFkZCBBbm90aGVyL1VwZGF0ZSBhcmUgZGlzYWJsZWQgKG5vdCBhbGwgcm93cyBoYXZlIHZhbHVlcykgKi9cbiAgQElucHV0KCkgc2VsZWN0Rmlyc3RWYWxpZGF0aW9uTWVzc2FnZSA9ICdQbGVhc2Ugc2VsZWN0IGEgcHJlcmVxdWlzaXRlIGZvciBlYWNoIHJvdyBmaXJzdCwgdGhlbiBjbGljayBBZGQgQW5vdGhlci4nO1xuXG4gIC8qKiBPcHRpb25hbCBjdXN0b20gdGVtcGxhdGUgZm9yIHRoZSBzZWxlY3Qgc2xvdC4gVXNlIG5nLXRlbXBsYXRlICNzZWxlY3RCb2R5IHdpdGggbGV0LXJvdywgbGV0LWluZGV4LCBsZXQtZm9ybSwgbGV0LWNvbmZpZy4gKi9cbiAgQENvbnRlbnRDaGlsZCgnc2VsZWN0Qm9keScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgc2VsZWN0Qm9keVRwbD86IFRlbXBsYXRlUmVmPHtcbiAgICAkaW1wbGljaXQ6IFByZXJlcXVpc2l0ZVJvdztcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGZvcm06IEZvcm1Hcm91cDtcbiAgICBjb25maWc6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZztcbiAgfT47XG5cbiAgQE91dHB1dCgpIGV4cGFuZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgYWRkUm93ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVtb3ZlUm93ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSByb3dzUmVvcmRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxQcmVyZXF1aXNpdGVSb3dbXT4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBVcGRhdGUgYnV0dG9uIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIHVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBDYW5jZWwgYnV0dG9uIGlzIGNsaWNrZWQgKi9cbiAgQE91dHB1dCgpIGNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgLyoqIEVtaXR0ZWQgd2hlbiBhIHNpbmdsZSByb3cncyBzZWxlY3Rpb24gY2hhbmdlcyAqL1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IGtleTogc3RyaW5nOyB2YWx1ZTogdW5rbm93bjsgaW5kZXg6IG51bWJlciB9PigpO1xuICAvKiogRW1pdHRlZCB3aGVuIGFueSBzZWxlY3QgY2hhbmdlcyAtIHJldHVybnMgYWxsIGN1cnJlbnQgcHJlcmVxdWlzaXRlIHNlbGVjdGlvbnMgaW4gb3JkZXIgKi9cbiAgQE91dHB1dCgpIHByZXJlcXVpc2l0ZXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFByZXJlcXVpc2l0ZVNlbGVjdGlvbltdPigpO1xuXG4gIC8qKiBTZXQgdG8gdHJ1ZSB3aGVuIHVzZXIgY2xpY2tzIEFkZCBBbm90aGVyIHdoaWxlIGludmFsaWQgLSBzaG93cyB2YWxpZGF0aW9uIG1lc3NhZ2UgKi9cbiAgc2hvd0FkZEFub3RoZXJWYWxpZGF0aW9uID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIHRvZ2dsZUV4cGFuZGVkKHNob3c6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gc2hvdztcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQoc2hvdyk7XG4gIH1cblxuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBjbGlja3MgXCJBZGQgUHJlcmVxdWlzaXRlXCIgd2l0aCBubyByb3dzIC0gZXhwYW5kcyBhbmQgYWRkcyBmaXJzdCByb3cgKi9cbiAgb25BZGRQcmVyZXF1aXNpdGVDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKHRydWUpO1xuICAgIHRoaXMuYWRkUm93LmVtaXQoKTtcbiAgfVxuXG4gIG9uQWRkUm93KCk6IHZvaWQge1xuICAgIC8vIEFsbG93IGFkZGluZyBmaXJzdCByb3cgd2hlbiBlbXB0eSAobm8gdmFsaWRhdGlvbiBuZWVkZWQpXG4gICAgaWYgKHRoaXMucm93cy5sZW5ndGggPiAwICYmICF0aGlzLmFsbFJvd3NIYXZlVmFsdWVzKCkpIHtcbiAgICAgIHRoaXMuc2hvd0FkZEFub3RoZXJWYWxpZGF0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNob3dBZGRBbm90aGVyVmFsaWRhdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuYWRkUm93LmVtaXQoKTtcbiAgfVxuXG4gIG9uUmVtb3ZlUm93KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVJvdy5lbWl0KGluZGV4KTtcbiAgICBpZiAodGhpcy5yb3dzLmxlbmd0aCA8PSAxKSB7XG4gICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBvbkRuZERyb3AoZXZlbnQ6IERuZERyb3BFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5kYXRhID09IG51bGwgfHwgZXZlbnQuaW5kZXggPT0gbnVsbCkgcmV0dXJuO1xuICAgIGNvbnN0IGRyb3BSb3cgPSBldmVudC5kYXRhIGFzIFByZXJlcXVpc2l0ZVJvdztcbiAgICBsZXQgZHJvcEluZGV4ID0gZXZlbnQuaW5kZXg7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5yb3dzLmZpbmRJbmRleCgocikgPT4gci5rZXkgPT09IGRyb3BSb3cua2V5KTtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgMCkgcmV0dXJuO1xuICAgIGlmIChjdXJyZW50SW5kZXggPT09IGRyb3BJbmRleCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbmV3Um93cyA9IFsuLi50aGlzLnJvd3NdO1xuICAgIG5ld1Jvd3Muc3BsaWNlKGN1cnJlbnRJbmRleCwgMSk7XG4gICAgLy8gSWYgbW92aW5nIGZvcndhcmQsIGRyb3BJbmRleCBzaGlmdHMgYWZ0ZXIgcmVtb3ZhbFxuICAgIGlmIChjdXJyZW50SW5kZXggPCBkcm9wSW5kZXgpIHtcbiAgICAgIGRyb3BJbmRleC0tO1xuICAgIH1cbiAgICBuZXdSb3dzLnNwbGljZShkcm9wSW5kZXgsIDAsIGRyb3BSb3cpO1xuICAgIHRoaXMucm93c1Jlb3JkZXJlZC5lbWl0KG5ld1Jvd3MpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdHJhY2tCeUtleShfaTogbnVtYmVyLCByb3c6IFByZXJlcXVpc2l0ZVJvdyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJvdy5rZXk7XG4gIH1cblxuICBvblVwZGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZS5lbWl0KCk7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbC5lbWl0KCk7XG4gIH1cblxuICBvblNlbGVjdGlvbkNoYW5nZShldmVudDogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoeyAuLi5ldmVudCwgaW5kZXggfSk7XG4gICAgdGhpcy5lbWl0QWxsUHJlcmVxdWlzaXRlcygpO1xuICAgIGlmICh0aGlzLmFsbFJvd3NIYXZlVmFsdWVzKCkpIHtcbiAgICAgIHRoaXMuc2hvd0FkZEFub3RoZXJWYWxpZGF0aW9uID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqIFRydWUgd2hlbiBldmVyeSByb3cgaGFzIGEgbm9uLWVtcHR5IHZhbHVlIChubyBwbGFjZWhvbGRlcnMpICovXG4gIGFsbFJvd3NIYXZlVmFsdWVzKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5mb3JtIHx8ICF0aGlzLnJvd3MubGVuZ3RoKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHRoaXMucm93cy5ldmVyeSgocm93KSA9PiB7XG4gICAgICBjb25zdCB2YWwgPSB0aGlzLmZvcm0uZ2V0KHJvdy5rZXkpPy52YWx1ZTtcbiAgICAgIHJldHVybiB2YWwgIT0gbnVsbCAmJiB2YWwgIT09ICcnO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEVtaXRzIGFsbCBjdXJyZW50IHByZXJlcXVpc2l0ZSBzZWxlY3Rpb25zIChrZXkgKyB2YWx1ZSkgaW4gcm93IG9yZGVyICovXG4gIHByaXZhdGUgZW1pdEFsbFByZXJlcXVpc2l0ZXMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmZvcm0gfHwgIXRoaXMucm93cy5sZW5ndGgpIHJldHVybjtcbiAgICBjb25zdCBzZWxlY3Rpb25zOiBQcmVyZXF1aXNpdGVTZWxlY3Rpb25bXSA9IHRoaXMucm93cy5tYXAoKHJvdykgPT4gKHtcbiAgICAgIGtleTogcm93LmtleSxcbiAgICAgIHZhbHVlOiB0aGlzLmZvcm0uZ2V0KHJvdy5rZXkpPy52YWx1ZSA/PyBudWxsLFxuICAgIH0pKTtcbiAgICB0aGlzLnByZXJlcXVpc2l0ZXNDaGFuZ2UuZW1pdChzZWxlY3Rpb25zKTtcbiAgfVxuXG4gIGdldENvbmZpZyhpbmRleDogbnVtYmVyKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICBjb25zdCBvcHRzID0gdGhpcy5vcHRpb25zPy5sZW5ndGggPyB0aGlzLm9wdGlvbnMgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U2VsZWN0Q29uZmlnPy4oaW5kZXgsIG9wdHMpID8/IHsga2V5OiBgcm93XyR7aW5kZXh9YCwgb3B0aW9uczogdGhpcy5vcHRpb25zID8/IFtdIH07XG4gIH1cbn1cbiIsIjwhLS0gQWRkIFByZXJlcXVpc2l0ZSB0cmlnZ2VyIC0gb25seSB3aGVuIGNvbGxhcHNlZCBhbmQgbm8gcm93cyAodXNlciBtdXN0IGNsaWNrIHRvIGV4cGFuZCk7IGhpZGUgd2hlbiBwYXJlbnQgaGFzIHByZXJlcXVpc2l0ZXMgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwicm93cy5sZW5ndGggPT09IDAgJiYgIWV4cGFuZGVkICYmICFoaWRlQWRkUHJlcmVxdWlzaXRlXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImNxYS1ib3JkZXItMiBjcWEtYm9yZGVyLWRhc2hlZCBjcWEtYm9yZGVyLVsjRDhEOUZDXSBjcWEtcm91bmRlZC1sZyBjcWEtcC0xIGNxYS1tdC00IGNxYS1iZy13aGl0ZSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tYWxsIGNxYS1kdXJhdGlvbi0yMDAgY3FhLWVhc2UtaW4tb3V0IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1nYXAtMiAgY3FhLXctZnVsbCBjcWEtaG92ZXI6Y3FhLWJvcmRlci1bIzk5OTllZV0gY3FhLWhvdmVyOmNxYS1iZy1bI2Y4ZjhmZl0gY3FhLWFjdGl2ZTpjcWEtYm9yZGVyLVsjN2M3Y2UwXSBjcWEtYWN0aXZlOmNxYS1iZy1bI2VmZjZmZl1cIlxuICAgIChjbGljayk9XCJvbkFkZFByZXJlcXVpc2l0ZUNsaWNrKClcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLXctWzEycHhdIGNxYS1oLVsxMnB4XSBjcWEtdGV4dC1bIzNGNDNFRV1cIj5hZGQ8L21hdC1pY29uPlxuICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtcmVndWxhciBjcWEtZm9udC1pbnRlciBjcWEtdGV4dC1zbSBjcWEtdGV4dC1bIzNGNDNFRV1cIj57eyBhZGRUcmlnZ2VyVGV4dCB9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBDb2xsYXBzZWQgc3VtbWFyeSB3aGVuIHdlIGhhdmUgcm93cyBidXQgZXhwYW5kZWQ9ZmFsc2UgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwicm93cy5sZW5ndGggPiAwICYmICFleHBhbmRlZFwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtYm9yZGVyLTIgY3FhLWJvcmRlci1kYXNoZWQgY3FhLWJvcmRlci1bI0Q4RDlGQ10gY3FhLXJvdW5kZWQtbGcgY3FhLXAtMS41IGNxYS1tdC00IGNxYS1iZy13aGl0ZSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXRyYW5zaXRpb24tYWxsIGNxYS1kdXJhdGlvbi0yMDAgY3FhLWVhc2UtaW4tb3V0IGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtbWluLWgtWzI3cHhdIGNxYS1ob3ZlcjpjcWEtYm9yZGVyLVsjOWNhM2FmXSBjcWEtaG92ZXI6Y3FhLWJnLVsjZjlmYWZiXSBjcWEtYWN0aXZlOmNxYS1ib3JkZXItWyM2MzY2ZjFdIGNxYS1hY3RpdmU6Y3FhLWJnLVsjZWZmNmZmXVwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKHRydWUpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzRhNTU2NV0gY3FhLWZvbnQtbm9ybWFsIGNxYS1mb250LWludGVyIGNxYS10ZXh0LXhzXCI+e3sgcm93cy5sZW5ndGggfX0gcHJlcmVxdWlzaXRle3sgcm93cy5sZW5ndGggIT09IDEgPyAncycgOiAnJyB9fTwvc3Bhbj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1bMTRweF0gY3FhLXctWzE0cHhdIGNxYS1oLVsxNHB4XSBjcWEtdGV4dC1bIzRhNTU2NV1cIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjwhLS0gRXhwYW5kZWQgZm9ybSAtIHdoZW4gZXhwYW5kZWQ9dHJ1ZSAod2l0aCBvciB3aXRob3V0IHJvd3M7IG5vIEFkZCBQcmVyZXF1aXNpdGUgdHJpZ2dlcikgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwiZXhwYW5kZWRcIj5cbiAgPGRpdiBjbGFzcz1cImNxYS1tdC00IGNxYS1wLTMgY3FhLWJnLXdoaXRlIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI2U1ZTdlYl0gY3FhLXJvdW5kZWQtbGdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNSBjcWEtbWItM1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbS0wIGNxYS1sZWFkaW5nLW5vbmVcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtaW5saW5lLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXctNCBjcWEtaC00IGNxYS10ZXh0LXNtIGNxYS10ZXh0LVsjNmI3MjgwXSBjcWEtY3Vyc29yLWhlbHAgY3FhLWZsZXgtc2hyaW5rLTBcIiBbbWF0VG9vbHRpcF09XCJpbmZvVG9vbHRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCIgbWF0VG9vbHRpcFNob3dEZWxheT1cIjMwMFwiPmluZm88L21hdC1pY29uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtbWwtYXV0byBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdy03IGNxYS1oLTcgY3FhLXAtMCBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1yb3VuZGVkLW1kIGNxYS10ZXh0LVsjNmI3MjgwXSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLWhvdmVyOmNxYS1iZy1bI2YzZjRmNl0gY3FhLWhvdmVyOmNxYS10ZXh0LVsjMzc0MTUxXVwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZChmYWxzZSlcIlxuICAgICAgICBtYXRUb29sdGlwPVwiQ2xvc2VcIj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQteGwgY3FhLXctNSBjcWEtaC01XCI+ZXhwYW5kX2xlc3M8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByZXJlcXVpc2l0ZS1kcm9wLWxpc3QgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMiBjcWEtbWItM1wiXG4gICAgICBbZG5kRHJvcHpvbmVdPVwiWydwcmVyZXF1aXNpdGUtcm93J11cIlxuICAgICAgZG5kRWZmZWN0QWxsb3dlZD1cIm1vdmVcIlxuICAgICAgZG5kRHJhZ292ZXJDbGFzcz1cImRuZERyYWdvdmVyXCJcbiAgICAgIChkbmREcm9wKT1cIm9uRG5kRHJvcCgkZXZlbnQpXCI+XG4gICAgICA8ZGl2IGRuZFBsYWNlaG9sZGVyUmVmIGNsYXNzPVwicHJlcmVxdWlzaXRlLWRyYWctcGxhY2Vob2xkZXJcIj5Ecm9wIGhlcmU8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5S2V5XCJcbiAgICAgICAgY2xhc3M9XCJwcmVyZXF1aXNpdGUtZHJhZy1pdGVtIGNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0yXCJcbiAgICAgICAgW2RuZERyYWdnYWJsZV09XCJyb3dcIlxuICAgICAgICBbZG5kRGlzYWJsZUlmXT1cInJvd3MubGVuZ3RoIDw9IDFcIlxuICAgICAgICBkbmRFZmZlY3RBbGxvd2VkPVwibW92ZVwiXG4gICAgICAgIGRuZFR5cGU9XCJwcmVyZXF1aXNpdGUtcm93XCI+XG4gICAgICAgIDwhLS0gOS1kb3QgZ3JpZCBkcmFnIGhhbmRsZSAob25seSB3aGVuIG11bHRpcGxlIHJvd3MgdG8gcmVvcmRlcikgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJyb3dzLmxlbmd0aCA+IDFcIiBkbmRIYW5kbGUgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1zaHJpbmstMCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtY3Vyc29yLWdyYWIgY3FhLXRleHQtWyM2QjcyODBdIGNxYS1ob3ZlcjpjcWEtdGV4dC1bIzExMTgyN10gYWN0aXZlOmNxYS1jdXJzb3ItZ3JhYmJpbmdcIiBtYXRUb29sdGlwPVwiRHJhZyB0byByZW9yZGVyXCI+XG4gICAgICAgICAgPHN2ZyB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiM1wiIGN5PVwiM1wiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjNcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIxM1wiIGN5PVwiM1wiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjNcIiBjeT1cIjhcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCI4XCIgY3k9XCI4XCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTNcIiBjeT1cIjhcIiByPVwiMS41XCIgZmlsbD1cImN1cnJlbnRDb2xvclwiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9XCIzXCIgY3k9XCIxM1wiIHI9XCIxLjVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD1cIjhcIiBjeT1cIjEzXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PVwiMTNcIiBjeT1cIjEzXCIgcj1cIjEuNVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMFwiPlxuICAgICAgICA8IS0tIEN1c3RvbSB0ZW1wbGF0ZSAoZS5nLiBwYXJlbnQtcHJvdmlkZWQgY3FhLWR5bmFtaWMtc2VsZWN0KSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdEJvZHlUcGxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInNlbGVjdEJvZHlUcGw7IGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiByb3csXG4gICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICBmb3JtOiBmb3JtLFxuICAgICAgICAgICAgICBjb25maWc6IGdldENvbmZpZyhpKVxuICAgICAgICAgICAgfVwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSBEZWZhdWx0OiBidWlsdC1pbiBjcWEtZHluYW1pYy1zZWxlY3QgLS0+XG4gICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3RcbiAgICAgICAgICAqbmdJZj1cIiFzZWxlY3RCb2R5VHBsICYmIGZvcm1cIlxuICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgIFtjb25maWddPVwiZ2V0Q29uZmlnKGkpXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudCwgaSlcIj5cbiAgICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtdy04IGNxYS1oLTggY3FhLW1pbi13LVszMnB4XSBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1yb3VuZGVkLW1kIGNxYS10ZXh0LVsjNmI3MjgwXSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXAtMCBjcWEtaG92ZXI6Y3FhLWJnLVsjZjNmNGY2XSBjcWEtaG92ZXI6Y3FhLXRleHQtWyMzNzQxNTFdXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlUm93KGkpXCJcbiAgICAgICAgbWF0VG9vbHRpcD1cIkNhbmNlbFwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjcWEtdGV4dC1sZyBjcWEtdy1bMThweF0gY3FhLWgtWzE4cHhdXCI+Y2xvc2U8L21hdC1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0FkZEFub3RoZXJWYWxpZGF0aW9uICYmICFhbGxSb3dzSGF2ZVZhbHVlcygpXCIgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bI2RjMjYyNl0gY3FhLW1iLTJcIj5cbiAgICAgIHt7IHNlbGVjdEZpcnN0VmFsaWRhdGlvbk1lc3NhZ2UgfX1cbiAgICA8L2Rpdj5cbiAgICA8IS0tIEFkZCBQcmVyZXF1aXNpdGUgYnV0dG9uIG9ubHkgaW4gZW1wdHkgc3RhdGU7IGhpZGUgd2hlbiBwYXJlbnQgaGFzIHByZXJlcXVpc2l0ZXMgKGUuZy4gY29sbGFwc2luZyBhZnRlciB1cGRhdGUpIC0tPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwicm93cy5sZW5ndGggPT09IDAgJiYgIWhpZGVBZGRQcmVyZXF1aXNpdGVcIlxuICAgICAgY2xhc3M9XCJjcWEtYm9yZGVyLTIgY3FhLWJvcmRlci1kYXNoZWQgY3FhLWJvcmRlci1bI2NjY2NmZl0gY3FhLXJvdW5kZWQtbGcgY3FhLXAtMyBjcWEtbWItMyBjcWEtYmctd2hpdGUgY3FhLWN1cnNvci1wb2ludGVyIGNxYS10cmFuc2l0aW9uLWFsbCBjcWEtZHVyYXRpb24tMjAwIGNxYS1lYXNlLWluLW91dCBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtZ2FwLTIgY3FhLW1pbi1oLVs0MHB4XSBjcWEtdy1mdWxsIGNxYS1ob3ZlcjpjcWEtYm9yZGVyLVsjOTk5OWVlXSBjcWEtaG92ZXI6Y3FhLWJnLVsjZjhmOGZmXSBjcWEtYWN0aXZlOmNxYS1ib3JkZXItWyM3YzdjZTBdIGNxYS1hY3RpdmU6Y3FhLWJnLVsjZWZmNmZmXVwiXG4gICAgICAoY2xpY2spPVwib25BZGRSb3coKVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS13LVsxOHB4XSBjcWEtaC1bMThweF0gY3FhLXRleHQtWyMzYjgyZjZdXCI+YWRkPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLWZvbnQtbWVkaXVtIGNxYS1mb250LWludGVyIGNxYS10ZXh0LXNtIGNxYS10ZXh0LVsjM2I4MmY2XVwiPnt7IGFkZFRyaWdnZXJUZXh0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gQWRkIEFub3RoZXIgbGluayB3aGVuIHdlIGFscmVhZHkgaGF2ZSBhdCBsZWFzdCBvbmUgcm93IC0tPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0lmPVwicm93cy5sZW5ndGggPiAwICYmICFoaWRlQWRkUHJlcmVxdWlzaXRlXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJjcWEtbWItMyBjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMiBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1wLTAgY3FhLWN1cnNvci1wb2ludGVyIGNxYS1mb250LWludGVyIGNxYS10ZXh0LXNtIGNxYS10ZXh0LVsjNDI0MkRCXSBjcWEtaG92ZXI6Y3FhLXVuZGVybGluZVwiXG4gICAgICAoY2xpY2spPVwib25BZGRSb3coKVwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY3FhLXRleHQtWzE4cHhdIGNxYS13LVsxOHB4XSBjcWEtaC1bMThweF1cIj5hZGQ8L21hdC1pY29uPlxuICAgICAgPHNwYW4+e3sgYWRkQW5vdGhlclRleHQgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1nYXAtMyBjcWEtanVzdGlmeS1lbmRcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY3FhLXB5LTIuNSBjcWEtcHgtNCBjcWEtYmctd2hpdGUgY3FhLXRleHQtWyMzNzQxNTFdIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1bI2QxZDVkYl0gY3FhLXJvdW5kZWQtbWQgY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWN1cnNvci1wb2ludGVyIGNxYS1ob3ZlcjpjcWEtYmctWyNmOWZhZmJdXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIj5cbiAgICAgICAge3sgY2FuY2VsVGV4dCB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImNxYS1weS0yLjUgY3FhLXB4LTQgY3FhLXJvdW5kZWQtbWQgY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLWJvcmRlci1ub25lIGNxYS1jdXJzb3ItcG9pbnRlciBkaXNhYmxlZDpjcWEtb3BhY2l0eS01MCBkaXNhYmxlZDpjcWEtY3Vyc29yLW5vdC1hbGxvd2VkIGNxYS1iZy1bIzFhNTZkYl0gY3FhLXRleHQtd2hpdGUgY3FhLWhvdmVyOmNxYS1iZy1bIzE2NDdiOF0gZGlzYWJsZWQ6Y3FhLWJnLVsjMWE1NmRiXVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhYWxsUm93c0hhdmVWYWx1ZXMoKVwiXG4gICAgICAgIChjbGljayk9XCJvblVwZGF0ZSgpXCI+XG4gICAgICAgIHt7IHVwZGF0ZVRleHQgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -271,24 +271,22 @@ export class StepBuilderDocumentComponent {
271
271
  return false;
272
272
  }
273
273
  // Check template source specific requirements
274
- if (this.selectedTemplateSource === 'existing') {
275
- const templateId = this.documentForm.get('templateId')?.value;
276
- if (!templateId) {
277
- return false;
278
- }
279
- }
280
- else if (this.selectedTemplateSource === 'upload') {
281
- if (!this.uploadedFile) {
282
- return false;
283
- }
284
- }
285
- else if (this.selectedTemplateSource === 'createNew') {
286
- const name = this.documentForm.get('templateName')?.value?.trim();
287
- const desc = this.documentForm.get('templateDescription')?.value?.trim();
288
- if (!name || !desc) {
289
- return false;
290
- }
291
- }
274
+ // if (this.selectedTemplateSource === 'existing') {
275
+ // const templateId = this.documentForm.get('templateId')?.value;
276
+ // if (!templateId) {
277
+ // return false;
278
+ // }
279
+ // } else if (this.selectedTemplateSource === 'upload') {
280
+ // if (!this.uploadedFile) {
281
+ // return false;
282
+ // }
283
+ // } else if (this.selectedTemplateSource === 'createNew') {
284
+ // const name = this.documentForm.get('templateName')?.value?.trim();
285
+ // const desc = this.documentForm.get('templateDescription')?.value?.trim();
286
+ // if (!name || !desc) {
287
+ // return false;
288
+ // }
289
+ // }
292
290
  return true;
293
291
  }
294
292
  onCreateStep() {
@@ -374,4 +372,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
374
372
  }], createTemplate: [{
375
373
  type: Output
376
374
  }] } });
377
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1idWlsZGVyLWRvY3VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlcC1idWlsZGVyL3N0ZXAtYnVpbGRlci1kb2N1bWVudC9zdGVwLWJ1aWxkZXItZG9jdW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWRvY3VtZW50L3N0ZXAtYnVpbGRlci1kb2N1bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQWtELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWtDNUYsTUFBTSxPQUFPLDRCQUE0QjtJQW9GdkMsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFuRm5DLHlDQUF5QztRQUNoQyx3QkFBbUIsR0FBbUIsRUFBRSxDQUFDO1FBRWxELCtFQUErRTtRQUN0RSxvQkFBZSxHQUFtQixFQUFFLENBQUM7UUFFOUMseURBQXlEO1FBQ2hELHFCQUFnQixHQUFtQjtZQUMxQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDMUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ2xFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtZQUNsRixFQUFFLEVBQUUs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QUFlO3NCQUF2QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFNSSxVQUFVO3NCQUFuQixNQUFNO2dCQUdHLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZywgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vZHluYW1pYy1zZWxlY3QvZHluYW1pYy1zZWxlY3QtZmllbGQuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgVGVtcGxhdGVTb3VyY2VUeXBlID0gJ2V4aXN0aW5nJyB8ICd1cGxvYWQnIHwgJ2NyZWF0ZU5ldyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRNYXBwaW5nUm93IHtcbiAga2V5OiBzdHJpbmc7XG4gIHZhbHVlVHlwZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBlbmFibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudEZvcm1EYXRhIHtcbiAgZG9jdW1lbnRUeXBlOiBzdHJpbmc7XG4gIG91dHB1dFZhcmlhYmxlOiBzdHJpbmc7XG4gIGZpbGVOYW1lPzogc3RyaW5nO1xuICBzZXByYXRvcj86IHN0cmluZztcbiAgZGVsaW1ldGVyPzogc3RyaW5nO1xuICBmaWxlRm9ybWF0SGVhZGVyPzogc3RyaW5nO1xuICB0ZW1wbGF0ZVNvdXJjZTogVGVtcGxhdGVTb3VyY2VUeXBlO1xuICB0ZW1wbGF0ZUlkPzogc3RyaW5nO1xuICAvKiogVXBsb2FkZWQgdGVtcGxhdGUgZmlsZSB3aGVuIHRlbXBsYXRlU291cmNlIGlzICd1cGxvYWQnICovXG4gIHVwbG9hZGVkRmlsZT86IEZpbGU7XG4gIC8qKiBUZW1wbGF0ZSBuYW1lIHdoZW4gdGVtcGxhdGVTb3VyY2UgaXMgJ2NyZWF0ZU5ldycgKi9cbiAgdGVtcGxhdGVOYW1lPzogc3RyaW5nO1xuICAvKiogVGVtcGxhdGUgZGVzY3JpcHRpb24gd2hlbiB0ZW1wbGF0ZVNvdXJjZSBpcyAnY3JlYXRlTmV3JyAqL1xuICB0ZW1wbGF0ZURlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBtYXBwaW5nczogRG9jdW1lbnRNYXBwaW5nUm93W107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NxYS1zdGVwLWJ1aWxkZXItZG9jdW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3RlcC1idWlsZGVyLWRvY3VtZW50LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdGVwQnVpbGRlckRvY3VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAvKiogT3B0aW9ucyBmb3IgZG9jdW1lbnQgdHlwZSBkcm9wZG93biAqL1xuICBASW5wdXQoKSBkb2N1bWVudFR5cGVPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xuXG4gIC8qKiBPcHRpb25zIGZvciB0ZW1wbGF0ZSBkcm9wZG93biAod2hlbiBcIlVzZSBFeGlzdGluZyBUZW1wbGF0ZVwiIGlzIHNlbGVjdGVkKSAqL1xuICBASW5wdXQoKSB0ZW1wbGF0ZU9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgLyoqIE9wdGlvbnMgZm9yIHZhbHVlIHR5cGUgZHJvcGRvd24gaW4gZG9jdW1lbnQgbWFwcGVyICovXG4gIEBJbnB1dCgpIHZhbHVlVHlwZU9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW1xuICAgIHsgaWQ6ICd2YXJpYWJsZScsIHZhbHVlOiAndmFyaWFibGUnLCBuYW1lOiAnVmFyaWFibGUnLCBsYWJlbDogJ1ZhcmlhYmxlJyB9LFxuICAgIHsgaWQ6ICdzdGF0aWMnLCB2YWx1ZTogJ3N0YXRpYycsIG5hbWU6ICdTdGF0aWMnLCBsYWJlbDogJ1N0YXRpYycgfSxcbiAgICB7IGlkOiAnZXhwcmVzc2lvbicsIHZhbHVlOiAnZXhwcmVzc2lvbicsIG5hbWU6ICdFeHByZXNzaW9uJywgbGFiZWw6ICdFeHByZXNzaW9uJyB9LFxuICAgIHsgaWQ6ICdyZWZlcmVuY2UnLCB2YWx1ZTogJ3JlZmVyZW5jZScsIG5hbWU6ICdSZWZlcmVuY2UnLCBsYWJlbDogJ1JlZmVyZW5jZScgfVxuICBdO1xuXG4gIC8qKiBPcHRpb25zIGZvciBkZWxpbWV0ZXIgdHlwZSBkcm9wZG93biAoc2hvd24gd2hlbiBkb2N1bWVudFR5cGUgaXMgJ2NzdicpICovXG4gIEBJbnB1dCgpIGRlbGltZXRlclR5cGVPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtcbiAgICB7IGlkOiAnLCcsIHZhbHVlOiAnLCcsIG5hbWU6ICdDb21tYSAoLCknLCBsYWJlbDogJ0NvbW1hICgsKScgfSxcbiAgICB7IGlkOiAnOycsIHZhbHVlOiAnOycsIG5hbWU6ICdTZW1pY29sb24gKDspJywgbGFiZWw6ICdTZW1pY29sb24gKDspJyB9LFxuICAgIHsgaWQ6ICdcXFxcdCcsIHZhbHVlOiAnXFxcXHQnLCBuYW1lOiAnVGFiIChcXFxcdCknLCBsYWJlbDogJ1RhYiAoXFxcXHQpJyB9LFxuICAgIHsgaWQ6ICd8JywgdmFsdWU6ICd8JywgbmFtZTogJ1BpcGUgKHwpJywgbGFiZWw6ICdQaXBlICh8KScgfVxuICBdO1xuXG4gIC8qKiBPcHRpb25hbCBVUkwgZm9yIFwiTmVlZCBoZWxwP1wiIGxpbmsgaW4gRG9jdW1lbnQgTWFwcGVyIHNlY3Rpb24gKi9cbiAgQElucHV0KCkgbWFwcGVySGVscFVybDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIFRvb2x0aXAgdGV4dCB3aGVuIGhvdmVyaW5nIG92ZXIgXCJOZWVkIGhlbHA/XCIgKHNhbWUgYXMgY3VzdG9tLWVkaXQtc3RlcCkgKi9cbiAgQElucHV0KCkgbWFwcGVySGVscFRvb2x0aXBUZXh0OiBzdHJpbmcgPSAnTm90IHN1cmUgd2hhdCB0byBkbz8gQ2xpY2sgdG8gZ28gdG8gb3VyIGRldGFpbGVkIHN0ZXAgY3JlYXRpb24gZG9jdW1lbnRhdGlvbic7XG5cbiAgLyoqIEluaXRpYWwgZG9jdW1lbnQgdHlwZSBmb3IgZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGluaXRpYWxEb2N1bWVudFR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqIEluaXRpYWwgb3V0cHV0IHZhcmlhYmxlIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbE91dHB1dFZhcmlhYmxlPzogc3RyaW5nO1xuXG4gIC8qKiBJbml0aWFsIHRlbXBsYXRlIHNvdXJjZSBmb3IgZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGluaXRpYWxUZW1wbGF0ZVNvdXJjZT86IFRlbXBsYXRlU291cmNlVHlwZTtcblxuICAvKiogSW5pdGlhbCB0ZW1wbGF0ZSBJRCBmb3IgZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGluaXRpYWxUZW1wbGF0ZUlkPzogc3RyaW5nO1xuXG4gIC8qKiBJbml0aWFsIHRlbXBsYXRlIG5hbWUgZm9yIGVkaXQgbW9kZSAod2hlbiB0ZW1wbGF0ZVNvdXJjZSBpcyAnY3JlYXRlTmV3JykgKi9cbiAgQElucHV0KCkgaW5pdGlhbFRlbXBsYXRlTmFtZT86IHN0cmluZztcblxuICAvKiogSW5pdGlhbCB0ZW1wbGF0ZSBkZXNjcmlwdGlvbiBmb3IgZWRpdCBtb2RlICh3aGVuIHRlbXBsYXRlU291cmNlIGlzICdjcmVhdGVOZXcnKSAqL1xuICBASW5wdXQoKSBpbml0aWFsVGVtcGxhdGVEZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKiogSW5pdGlhbCBtYXBwaW5ncyBmb3IgZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGluaXRpYWxNYXBwaW5ncz86IERvY3VtZW50TWFwcGluZ1Jvd1tdO1xuXG4gIC8qKiBJbml0aWFsIGZpbGUgbmFtZSBmb3IgZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGluaXRpYWxGaWxlTmFtZT86IHN0cmluZztcblxuICAvKiogSW5pdGlhbCBzZXByYXRvciBmb3IgZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGluaXRpYWxTZXByYXRvcj86IHN0cmluZztcblxuICAvKiogSW5pdGlhbCBkZWxpbWV0ZXIgZm9yIGVkaXQgbW9kZSAqL1xuICBASW5wdXQoKSBpbml0aWFsRGVsaW1ldGVyPzogc3RyaW5nO1xuXG4gIC8qKiBJbml0aWFsIGZpbGUgZm9ybWF0IGhlYWRlciBmb3IgZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGluaXRpYWxGaWxlRm9ybWF0SGVhZGVyPzogc3RyaW5nO1xuXG4gIC8qKiBXaGV0aGVyIGluIGVkaXQgbW9kZSAqL1xuICBASW5wdXQoKSBlZGl0TW9kZT86IGJvb2xlYW47XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGhlbHAgdG9vbHRpcCBpcyB2aXNpYmxlICovXG4gIHNob3dIZWxwVG9vbHRpcCA9IGZhbHNlO1xuXG4gIC8qKiBFbWl0IHdoZW4gc3RlcCBpcyBjcmVhdGVkICovXG4gIEBPdXRwdXQoKSBjcmVhdGVTdGVwID0gbmV3IEV2ZW50RW1pdHRlcjxEb2N1bWVudEZvcm1EYXRhPigpO1xuXG4gIC8qKiBFbWl0IHdoZW4gY2FuY2VsbGVkICovXG4gIEBPdXRwdXQoKSBjYW5jZWxsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgLyoqIEVtaXQgd2hlbiBcIkNyZWF0ZSBUZW1wbGF0ZVwiIGlzIGNsaWNrZWQgKENyZWF0ZSBOZXcgZmxvdykuIEhvc3QgY2FuIGNyZWF0ZSB0ZW1wbGF0ZSB2aWEgQVBJLiAqL1xuICBAT3V0cHV0KCkgY3JlYXRlVGVtcGxhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGVtcGxhdGVOYW1lOiBzdHJpbmc7IHRlbXBsYXRlRGVzY3JpcHRpb246IHN0cmluZyB9PigpO1xuXG4gIGRvY3VtZW50Rm9ybTogRm9ybUdyb3VwO1xuICBzZWxlY3RlZFRlbXBsYXRlU291cmNlOiBUZW1wbGF0ZVNvdXJjZVR5cGUgPSAnZXhpc3RpbmcnO1xuICAvKiogVXBsb2FkZWQgZmlsZSB3aGVuIFRlbXBsYXRlIFNvdXJjZSBpcyBcIlVwbG9hZCBUZW1wbGF0ZVwiICovXG4gIHVwbG9hZGVkRmlsZTogRmlsZSB8IG51bGwgPSBudWxsO1xuICAvKiogVmlzdWFsIHN0YXRlIGZvciBkcmFnLWFuZC1kcm9wIHpvbmUgKi9cbiAgaXNEcmFnT3ZlciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7XG4gICAgdGhpcy5kb2N1bWVudEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGRvY3VtZW50VHlwZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIG91dHB1dFZhcmlhYmxlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZmlsZU5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBzZXByYXRvcjogWycnXSxcbiAgICAgIGRlbGltZXRlcjogWycnXSxcbiAgICAgIGZpbGVGb3JtYXRIZWFkZXI6IFsnJ10sXG4gICAgICB0ZW1wbGF0ZVNvdXJjZTogWydleGlzdGluZyddLFxuICAgICAgdGVtcGxhdGVJZDogW251bGxdLFxuICAgICAgdGVtcGxhdGVOYW1lOiBbJyddLFxuICAgICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogWycnXSxcbiAgICAgIG1hcHBpbmdzOiB0aGlzLmZiLmFycmF5KFtdKVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlU291cmNlID0gdGhpcy5pbml0aWFsVGVtcGxhdGVTb3VyY2UgfHwgdGhpcy5kb2N1bWVudEZvcm0uZ2V0KCd0ZW1wbGF0ZVNvdXJjZScpPy52YWx1ZSB8fCAnZXhpc3RpbmcnO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1XaXRoSW5pdGlhbFZhbHVlcygpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkb2N1bWVudFR5cGVPcHRpb25zJ10gfHwgY2hhbmdlc1sndGVtcGxhdGVPcHRpb25zJ10gfHwgY2hhbmdlc1sndmFsdWVUeXBlT3B0aW9ucyddIHx8IGNoYW5nZXNbJ2RlbGltZXRlclR5cGVPcHRpb25zJ10pIHtcbiAgICAgIC8vIENvbmZpZ3MgYXJlIGJ1aWx0IGZyb20gaW5wdXRzIGluIGdldHRlcnM7IG5vIG5lZWQgdG8gcmVidWlsZCBmb3JtXG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydpbml0aWFsRG9jdW1lbnRUeXBlJ10gfHwgY2hhbmdlc1snaW5pdGlhbE91dHB1dFZhcmlhYmxlJ10gfHwgY2hhbmdlc1snaW5pdGlhbFRlbXBsYXRlU291cmNlJ10gfHwgXG4gICAgICAgIGNoYW5nZXNbJ2luaXRpYWxUZW1wbGF0ZUlkJ10gfHwgY2hhbmdlc1snaW5pdGlhbE1hcHBpbmdzJ10gfHwgY2hhbmdlc1snaW5pdGlhbFRlbXBsYXRlTmFtZSddIHx8IFxuICAgICAgICBjaGFuZ2VzWydpbml0aWFsVGVtcGxhdGVEZXNjcmlwdGlvbiddIHx8IGNoYW5nZXNbJ2luaXRpYWxGaWxlTmFtZSddIHx8IGNoYW5nZXNbJ2luaXRpYWxTZXByYXRvciddIHx8IFxuICAgICAgICBjaGFuZ2VzWydpbml0aWFsRGVsaW1ldGVyJ10gfHwgY2hhbmdlc1snaW5pdGlhbEZpbGVGb3JtYXRIZWFkZXInXSkge1xuICAgICAgdGhpcy5pbml0aWFsaXplRm9ybVdpdGhJbml0aWFsVmFsdWVzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybVdpdGhJbml0aWFsVmFsdWVzKCk6IHZvaWQge1xuICAgIC8vIENsZWFyIGV4aXN0aW5nIG1hcHBpbmdzXG4gICAgd2hpbGUgKHRoaXMubWFwcGluZ3NGb3JtQXJyYXkubGVuZ3RoICE9PSAwKSB7XG4gICAgICB0aGlzLm1hcHBpbmdzRm9ybUFycmF5LnJlbW92ZUF0KDApO1xuICAgIH1cblxuICAgIC8vIFNldCBpbml0aWFsIHZhbHVlcyBpZiBwcm92aWRlZFxuICAgIGlmICh0aGlzLmluaXRpYWxEb2N1bWVudFR5cGUpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRGb3JtLnBhdGNoVmFsdWUoeyBkb2N1bWVudFR5cGU6IHRoaXMuaW5pdGlhbERvY3VtZW50VHlwZSB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaW5pdGlhbE91dHB1dFZhcmlhYmxlKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Rm9ybS5wYXRjaFZhbHVlKHsgb3V0cHV0VmFyaWFibGU6IHRoaXMuaW5pdGlhbE91dHB1dFZhcmlhYmxlIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbml0aWFsRmlsZU5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kb2N1bWVudEZvcm0ucGF0Y2hWYWx1ZSh7IGZpbGVOYW1lOiB0aGlzLmluaXRpYWxGaWxlTmFtZSB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaW5pdGlhbFNlcHJhdG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRGb3JtLnBhdGNoVmFsdWUoeyBzZXByYXRvcjogdGhpcy5pbml0aWFsU2VwcmF0b3IgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmluaXRpYWxEZWxpbWV0ZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kb2N1bWVudEZvcm0ucGF0Y2hWYWx1ZSh7IGRlbGltZXRlcjogdGhpcy5pbml0aWFsRGVsaW1ldGVyIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbml0aWFsRmlsZUZvcm1hdEhlYWRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Rm9ybS5wYXRjaFZhbHVlKHsgZmlsZUZvcm1hdEhlYWRlcjogdGhpcy5pbml0aWFsRmlsZUZvcm1hdEhlYWRlciB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaW5pdGlhbFRlbXBsYXRlU291cmNlKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgPSB0aGlzLmluaXRpYWxUZW1wbGF0ZVNvdXJjZTtcbiAgICAgIHRoaXMuZG9jdW1lbnRGb3JtLnBhdGNoVmFsdWUoeyB0ZW1wbGF0ZVNvdXJjZTogdGhpcy5pbml0aWFsVGVtcGxhdGVTb3VyY2UgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmluaXRpYWxUZW1wbGF0ZUlkKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Rm9ybS5wYXRjaFZhbHVlKHsgdGVtcGxhdGVJZDogdGhpcy5pbml0aWFsVGVtcGxhdGVJZCB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaW5pdGlhbFRlbXBsYXRlTmFtZSkge1xuICAgICAgdGhpcy5kb2N1bWVudEZvcm0ucGF0Y2hWYWx1ZSh7IHRlbXBsYXRlTmFtZTogdGhpcy5pbml0aWFsVGVtcGxhdGVOYW1lIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbml0aWFsVGVtcGxhdGVEZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kb2N1bWVudEZvcm0ucGF0Y2hWYWx1ZSh7IHRlbXBsYXRlRGVzY3JpcHRpb246IHRoaXMuaW5pdGlhbFRlbXBsYXRlRGVzY3JpcHRpb24gfSk7XG4gICAgfVxuXG4gICAgLy8gTG9hZCBpbml0aWFsIG1hcHBpbmdzXG4gICAgaWYgKHRoaXMuaW5pdGlhbE1hcHBpbmdzICYmIHRoaXMuaW5pdGlhbE1hcHBpbmdzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuaW5pdGlhbE1hcHBpbmdzLmZvckVhY2gobWFwcGluZyA9PiB7XG4gICAgICAgIGNvbnN0IG1hcHBpbmdHcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgIGtleTogW21hcHBpbmcua2V5IHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICB2YWx1ZVR5cGU6IFttYXBwaW5nLnZhbHVlVHlwZSB8fCAndmFyaWFibGUnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICB2YWx1ZTogW21hcHBpbmcudmFsdWUgfHwgJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgIGVuYWJsZWQ6IFttYXBwaW5nLmVuYWJsZWQgPz8gZmFsc2VdXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm1hcHBpbmdzRm9ybUFycmF5LnB1c2gobWFwcGluZ0dyb3VwKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBZGQgb25lIGVtcHR5IG1hcHBpbmcgaWYgbm8gaW5pdGlhbCBtYXBwaW5nc1xuICAgICAgaWYgKHRoaXMubWFwcGluZ3NGb3JtQXJyYXkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuYWRkTWFwcGluZygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBtYXBwaW5nc0Zvcm1BcnJheSgpOiBGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50Rm9ybS5nZXQoJ21hcHBpbmdzJykgYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgZ2V0RG9jdW1lbnRUeXBlQ29uZmlnKCk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogJ2RvY3VtZW50VHlwZScsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlbGVjdCBkb2N1bWVudCB0eXBlJyxcbiAgICAgIG11bHRpcGxlOiBmYWxzZSxcbiAgICAgIHNlYXJjaGFibGU6IGZhbHNlLFxuICAgICAgb3B0aW9uczogdGhpcy5kb2N1bWVudFR5cGVPcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIGdldFRlbXBsYXRlU2VsZWN0Q29uZmlnKCk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogJ3RlbXBsYXRlSWQnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdTZWxlY3QgVGVtcGxhdGUgZHJvcGRvd24nLFxuICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgICBvcHRpb25zOiB0aGlzLnRlbXBsYXRlT3B0aW9uc1xuICAgIH07XG4gIH1cblxuICBnZXRWYWx1ZVR5cGVDb25maWcoaW5kZXg6IG51bWJlcik6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogJ3ZhbHVlVHlwZScsXG4gICAgICBwbGFjZWhvbGRlcjogJ1ZhbHVlIFR5cGUnLFxuICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgICBvcHRpb25zOiB0aGlzLnZhbHVlVHlwZU9wdGlvbnMsXG4gICAgICBvbkNoYW5nZTogKCkgPT4ge31cbiAgICB9O1xuICB9XG5cbiAgZ2V0RGVsaW1ldGVyQ29uZmlnKCk6IER5bmFtaWNTZWxlY3RGaWVsZENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogJ2RlbGltZXRlcicsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlbGVjdCBEZWxpbWV0ZXInLFxuICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgICBvcHRpb25zOiB0aGlzLmRlbGltZXRlclR5cGVPcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIGdldCBpc1R4dFNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50Rm9ybS5nZXQoJ2RvY3VtZW50VHlwZScpPy52YWx1ZSA9PT0gJ3R4dCc7XG4gIH1cblxuICBnZXQgaXNDc3ZTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudEZvcm0uZ2V0KCdkb2N1bWVudFR5cGUnKT8udmFsdWUgPT09ICdjc3YnO1xuICB9XG5cbiAgb25UZW1wbGF0ZVNvdXJjZUNoYW5nZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFRlbXBsYXRlU291cmNlID0gdmFsdWUgYXMgVGVtcGxhdGVTb3VyY2VUeXBlO1xuICAgIHRoaXMuZG9jdW1lbnRGb3JtLnBhdGNoVmFsdWUoeyB0ZW1wbGF0ZVNvdXJjZTogdGhpcy5zZWxlY3RlZFRlbXBsYXRlU291cmNlIH0pO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgIT09ICd1cGxvYWQnKSB7XG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgb25DcmVhdGVUZW1wbGF0ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5kb2N1bWVudEZvcm0uZ2V0KCd0ZW1wbGF0ZU5hbWUnKT8udmFsdWU/LnRyaW0oKSA/PyAnJztcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHRoaXMuZG9jdW1lbnRGb3JtLmdldCgndGVtcGxhdGVEZXNjcmlwdGlvbicpPy52YWx1ZT8udHJpbSgpID8/ICcnO1xuICAgIHRoaXMuY3JlYXRlVGVtcGxhdGUuZW1pdCh7IHRlbXBsYXRlTmFtZTogbmFtZSwgdGVtcGxhdGVEZXNjcmlwdGlvbjogZGVzY3JpcHRpb24gfSk7XG4gIH1cblxuICBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IGZpbGUgPSBpbnB1dC5maWxlcz8uWzBdO1xuICAgIGlmIChmaWxlKSB7XG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZSA9IGZpbGU7XG4gICAgfVxuICAgIGlucHV0LnZhbHVlID0gJyc7XG4gIH1cblxuICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcmFnT3ZlciA9IHRydWU7XG4gIH1cblxuICBvbkRyYWdMZWF2ZShldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJhZ092ZXIgPSBmYWxzZTtcbiAgfVxuXG4gIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmlzRHJhZ092ZXIgPSBmYWxzZTtcbiAgICBjb25zdCBmaWxlID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5maWxlcz8uWzBdO1xuICAgIGlmIChmaWxlICYmIHRoaXMuaXNBY2NlcHRlZFRlbXBsYXRlRmlsZShmaWxlKSkge1xuICAgICAgdGhpcy51cGxvYWRlZEZpbGUgPSBmaWxlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNBY2NlcHRlZFRlbXBsYXRlRmlsZShmaWxlOiBGaWxlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYWNjZXB0ZWQgPSBbJy5wZGYnLCAnLmRvYycsICcuZG9jeCcsICcudHh0J107XG4gICAgY29uc3QgbmFtZSA9IGZpbGUubmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBhY2NlcHRlZC5zb21lKGV4dCA9PiBuYW1lLmVuZHNXaXRoKGV4dCkpO1xuICB9XG5cbiAgYWRkTWFwcGluZygpOiB2b2lkIHtcbiAgICBjb25zdCBtYXBwaW5nR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGtleTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHZhbHVlVHlwZTogWyd2YXJpYWJsZScsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgdmFsdWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBlbmFibGVkOiBbZmFsc2VdXG4gICAgfSk7XG4gICAgdGhpcy5tYXBwaW5nc0Zvcm1BcnJheS5wdXNoKG1hcHBpbmdHcm91cCk7XG4gIH1cblxuICByZW1vdmVNYXBwaW5nKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm1hcHBpbmdzRm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIGdldE1hcHBpbmdGb3JtR3JvdXAoaW5kZXg6IG51bWJlcik6IEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMubWFwcGluZ3NGb3JtQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgfVxuXG4gIC8qKiBUcnVlIHdoZW4gZXZlcnkgbWFwcGluZyByb3cgaGFzIGVuYWJsZWQgPT09IHRydWUgKi9cbiAgZ2V0IGFsbE1hcHBpbmdzU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGVuID0gdGhpcy5tYXBwaW5nc0Zvcm1BcnJheS5sZW5ndGg7XG4gICAgaWYgKGxlbiA9PT0gMCkgcmV0dXJuIGZhbHNlO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGlmICghdGhpcy5nZXRNYXBwaW5nRm9ybUdyb3VwKGkpLmdldCgnZW5hYmxlZCcpPy52YWx1ZSkgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBUcnVlIHdoZW4gYXQgbGVhc3Qgb25lIG1hcHBpbmcgcm93IGhhcyBlbmFibGVkID09PSB0cnVlIChmb3IgaGVhZGVyIGluZGV0ZXJtaW5hdGUpICovXG4gIGdldCBzb21lTWFwcGluZ3NTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubWFwcGluZ3NGb3JtQXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmdldE1hcHBpbmdGb3JtR3JvdXAoaSkuZ2V0KCdlbmFibGVkJyk/LnZhbHVlKSByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb25TZWxlY3RBbGxNYXBwaW5ncyhjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5tYXBwaW5nc0Zvcm1BcnJheS5jb250cm9scy5mb3JFYWNoKChfLCBpKSA9PiB7XG4gICAgICB0aGlzLmdldE1hcHBpbmdGb3JtR3JvdXAoaSkuZ2V0KCdlbmFibGVkJyk/LnNldFZhbHVlKGNoZWNrZWQpO1xuICAgIH0pO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxsZWQuZW1pdCgpO1xuICB9XG5cbiAgaXNGb3JtVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgLy8gQ2hlY2sgaWYgbWFpbiBmb3JtIGlzIHZhbGlkIChkb2N1bWVudFR5cGUsIG91dHB1dFZhcmlhYmxlLCBhbmQgZmlsZU5hbWUgYXJlIHJlcXVpcmVkKVxuICAgIGNvbnN0IGRvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRGb3JtLmdldCgnZG9jdW1lbnRUeXBlJyk/LnZhbHVlO1xuICAgIGNvbnN0IG91dHB1dFZhcmlhYmxlID0gdGhpcy5kb2N1bWVudEZvcm0uZ2V0KCdvdXRwdXRWYXJpYWJsZScpPy52YWx1ZTtcbiAgICBjb25zdCBmaWxlTmFtZSA9IHRoaXMuZG9jdW1lbnRGb3JtLmdldCgnZmlsZU5hbWUnKT8udmFsdWU7XG4gICAgXG4gICAgaWYgKCFkb2N1bWVudFR5cGUgfHwgIW91dHB1dFZhcmlhYmxlIHx8ICFmaWxlTmFtZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIENoZWNrIHRlbXBsYXRlIHNvdXJjZSBzcGVjaWZpYyByZXF1aXJlbWVudHNcbiAgICBpZiAodGhpcy5zZWxlY3RlZFRlbXBsYXRlU291cmNlID09PSAnZXhpc3RpbmcnKSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZUlkID0gdGhpcy5kb2N1bWVudEZvcm0uZ2V0KCd0ZW1wbGF0ZUlkJyk/LnZhbHVlO1xuICAgICAgaWYgKCF0ZW1wbGF0ZUlkKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZVNvdXJjZSA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgIGlmICghdGhpcy51cGxvYWRlZEZpbGUpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZFRlbXBsYXRlU291cmNlID09PSAnY3JlYXRlTmV3Jykge1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMuZG9jdW1lbnRGb3JtLmdldCgndGVtcGxhdGVOYW1lJyk/LnZhbHVlPy50cmltKCk7XG4gICAgICBjb25zdCBkZXNjID0gdGhpcy5kb2N1bWVudEZvcm0uZ2V0KCd0ZW1wbGF0ZURlc2NyaXB0aW9uJyk/LnZhbHVlPy50cmltKCk7XG4gICAgICBpZiAoIW5hbWUgfHwgIWRlc2MpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb25DcmVhdGVTdGVwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Zvcm1WYWxpZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZG9jdW1lbnRGb3JtLnZhbHVlO1xuICAgIGNvbnN0IHN0ZXBEYXRhOiBEb2N1bWVudEZvcm1EYXRhID0ge1xuICAgICAgZG9jdW1lbnRUeXBlOiBmb3JtVmFsdWUuZG9jdW1lbnRUeXBlLFxuICAgICAgb3V0cHV0VmFyaWFibGU6IGZvcm1WYWx1ZS5vdXRwdXRWYXJpYWJsZSxcbiAgICAgIGZpbGVOYW1lOiBmb3JtVmFsdWUuZmlsZU5hbWUgfHwgdW5kZWZpbmVkLFxuICAgICAgc2VwcmF0b3I6IGZvcm1WYWx1ZS5zZXByYXRvciB8fCB1bmRlZmluZWQsXG4gICAgICBkZWxpbWV0ZXI6IGZvcm1WYWx1ZS5kZWxpbWV0ZXIgfHwgdW5kZWZpbmVkLFxuICAgICAgZmlsZUZvcm1hdEhlYWRlcjogZm9ybVZhbHVlLmZpbGVGb3JtYXRIZWFkZXIgfHwgdW5kZWZpbmVkLFxuICAgICAgdGVtcGxhdGVTb3VyY2U6IHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZVNvdXJjZSxcbiAgICAgIHRlbXBsYXRlSWQ6IGZvcm1WYWx1ZS50ZW1wbGF0ZUlkIHx8IHVuZGVmaW5lZCxcbiAgICAgIC4uLih0aGlzLnNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgPT09ICd1cGxvYWQnICYmIHRoaXMudXBsb2FkZWRGaWxlICYmIHsgdXBsb2FkZWRGaWxlOiB0aGlzLnVwbG9hZGVkRmlsZSB9KSxcbiAgICAgIC4uLih0aGlzLnNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgPT09ICdjcmVhdGVOZXcnICYmIHtcbiAgICAgICAgdGVtcGxhdGVOYW1lOiAoZm9ybVZhbHVlLnRlbXBsYXRlTmFtZSA/PyAnJykudHJpbSgpLFxuICAgICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiAoZm9ybVZhbHVlLnRlbXBsYXRlRGVzY3JpcHRpb24gPz8gJycpLnRyaW0oKVxuICAgICAgfSksXG4gICAgICBtYXBwaW5nczogKGZvcm1WYWx1ZS5tYXBwaW5ncyB8fCBbXSkubWFwKChtOiBhbnkpID0+ICh7XG4gICAgICAgIGtleTogbS5rZXkgfHwgJycsXG4gICAgICAgIHZhbHVlVHlwZTogbS52YWx1ZVR5cGUgfHwgJ3ZhcmlhYmxlJyxcbiAgICAgICAgdmFsdWU6IG0udmFsdWUgfHwgJycsXG4gICAgICAgIGVuYWJsZWQ6IG0uZW5hYmxlZCA/PyBmYWxzZVxuICAgICAgfSkpXG4gICAgfTtcbiAgICB0aGlzLmNyZWF0ZVN0ZXAuZW1pdChzdGVwRGF0YSk7XG4gIH1cblxuICBvbk1hcHBlckhlbHBDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tYXBwZXJIZWxwVXJsKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgd2luZG93Lm9wZW4odGhpcy5tYXBwZXJIZWxwVXJsLCAnX2JsYW5rJyk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY3FhLXVpLXJvb3QgY3FhLWJsb2NrIGNxYS13LWZ1bGwgY3FhLW1pbi13LTAgY3FhLXN0ZXAtYnVpbGRlci1kb2N1bWVudFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO3dpZHRoOiAxMDAlO1wiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLXctZnVsbCBjcWEtbWluLXctMCBjcWEtaC1mdWxsIGNxYS1iZy13aGl0ZSBjcWEtYm9yZGVyIGNxYS1ib3gtYm9yZGVyIGNxYS1tYXgtdy1mdWxsIGNxYS1vcGFjaXR5LTEwMCBjcWEtaC1mdWxsIGNxYS13LWZ1bGxcIj5cbiAgICA8IS0tIENvbnRlbnQgYXJlYTogcGFkZGluZyAxNnB4LCBnYXAgMTJweCBiZXR3ZWVuIHNlY3Rpb25zIChubyBmbGV4LTEgdG8gYXZvaWQgZ2FwIGFib3ZlIGZvb3RlcikgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZmxleC0xIGNxYS1vdmVyZmxvdy15LWF1dG8gY3FhLXAtNCBjcWEtZ2FwLTNcIj5cbiAgPCEtLSBIZWFkZXI6IERvY3VtZW50IEdlbmVyYXRpb24gVGVtcGxhdGUgU3RlcCAobGVmdC1hbGlnbmVkLCBJbnRlciA2MDAgMTJweCBsaW5lLWhlaWdodCAxMDAlKSAtLT5cbiAgPGgyXG4gICAgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzEwMCVdIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMTExODI3XSBjcWEtbS0wIGNxYS10ZXh0LWxlZnQgY3FhLWZsZXgtc2hyaW5rLTAgY3FhLWFsaWduLW1pZGRsZVwiPlxuICAgIERvY3VtZW50IEdlbmVyYXRpb24gVGVtcGxhdGUgU3RlcFxuICA8L2gyPlxuXG4gICAgPCEtLSBGaWxlIE5hbWUgYW5kIERvY3VtZW50IFR5cGUgUm93IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1mbGV4LXNocmluay0wIGNxYS1nYXAtMTRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wIGNxYS1taW4tdy1bY2FsYyg0NSUtNnB4KV1cIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbWItMS41IGNxYS1ibG9ja1wiPlxuICAgICAgICAgIEZpbGUgTmFtZSA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXJlZC01MDBcIj4qPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmlsZSBOYW1lXCJcbiAgICAgICAgICBbdmFsdWVdPVwiZG9jdW1lbnRGb3JtLmdldCgnZmlsZU5hbWUnKT8udmFsdWVcIlxuICAgICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImRvY3VtZW50Rm9ybS5nZXQoJ2ZpbGVOYW1lJyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEEwQTBBXSBjcWEtbXQtMSBjcWEtbS0wXCI+XG4gICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gYmUgZ2VuZXJhdGVkXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTAgY3FhLW1pbi13LVtjYWxjKDQ1JS02cHgpXSBcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbWItMS41IGNxYS1ibG9ja1wiPlxuICAgICAgICAgIERvY3VtZW50IFR5cGUgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50LXR5cGUtc2VsZWN0XCI+XG4gICAgICAgICAgPGNxYS1keW5hbWljLXNlbGVjdFxuICAgICAgICAgICAgW2Zvcm1dPVwiZG9jdW1lbnRGb3JtXCJcbiAgICAgICAgICAgIFtjb25maWddPVwiZ2V0RG9jdW1lbnRUeXBlQ29uZmlnKClcIj5cbiAgICAgICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQTBBMEFdIGNxYS1tdC0xIGNxYS1tLTBcIj5cbiAgICAgICAgICBDaG9vc2UgdGhlIGZpbGUgZm9ybWF0IHlvdSB3YW50IHRvIGdlbmVyYXRlLlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gT3V0cHV0IFZhcmlhYmxlIGFuZCBDb25kaXRpb25hbCBGaWVsZHMgUm93IC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1mbGV4LXNocmluay0wIGNxYS1nYXAtMTRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wIGNxYS1taW4tdy1bY2FsYyg0NSUtNnB4KV1cIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbWItMS41IGNxYS1ibG9ja1wiPlxuICAgICAgICAgIE91dHB1dCBWYXJpYWJsZSA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXJlZC01MDBcIj4qPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiSW5wdXRcIlxuICAgICAgICAgIFt2YWx1ZV09XCJkb2N1bWVudEZvcm0uZ2V0KCdvdXRwdXRWYXJpYWJsZScpPy52YWx1ZVwiXG4gICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZG9jdW1lbnRGb3JtLmdldCgnb3V0cHV0VmFyaWFibGUnKT8uc2V0VmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQTBBMEFdIGNxYS1tdC0xIGNxYS1tLTBcIj5cbiAgICAgICAgICBTdG9yZXMgdGhlIGdlbmVyYXRlZCBmaWxlIHNvIGl0IGNhbiBiZSB1c2VkIGluIGxhdGVyIHN0ZXBzLlxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gU2VwcmF0b3IgKHNob3duIHdoZW4gZG9jdW1lbnRUeXBlIGlzICd0eHQnKSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wIGNxYS1taW4tdy1bY2FsYyg0NSUtNnB4KV1cIiAqbmdJZj1cImlzVHh0U2VsZWN0ZWRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbWItMS41IGNxYS1ibG9ja1wiPlxuICAgICAgICAgIFNlcHJhdG9yXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZXByYXRvclwiXG4gICAgICAgICAgW3ZhbHVlXT1cImRvY3VtZW50Rm9ybS5nZXQoJ3NlcHJhdG9yJyk/LnZhbHVlXCJcbiAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJkb2N1bWVudEZvcm0uZ2V0KCdzZXByYXRvcicpPy5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBBMEEwQV0gY3FhLW10LTEgY3FhLW0tMFwiPlxuICAgICAgICAgIFRoZSBzZXByYXRvciB0byBiZSB1c2VkIHRvIHNlcGFyYXRlIHRoZSB2YWx1ZXMgaW4gdGhlIGdlbmVyYXRlZCBmaWxlXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBEZWxpbWV0ZXIgVHlwZSAoc2hvd24gd2hlbiBkb2N1bWVudFR5cGUgaXMgJ2NzdicpIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTAgY3FhLW1pbi13LVtjYWxjKDQ1JS02cHgpXVwiICpuZ0lmPVwiaXNDc3ZTZWxlY3RlZFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMzNzQxNTFdIGNxYS1tYi0xLjUgY3FhLWJsb2NrXCI+XG4gICAgICAgICAgRGVsaW1ldGVyIFR5cGVcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50LXR5cGUtc2VsZWN0XCI+XG4gICAgICAgICAgPGNxYS1keW5hbWljLXNlbGVjdFxuICAgICAgICAgICAgW2Zvcm1dPVwiZG9jdW1lbnRGb3JtXCJcbiAgICAgICAgICAgIFtjb25maWddPVwiZ2V0RGVsaW1ldGVyQ29uZmlnKClcIj5cbiAgICAgICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQTBBMEFdIGNxYS1tdC0xIGNxYS1tLTBcIj5cbiAgICAgICAgICBDaG9vc2UgdGhlIGRlbGltZXRlciB0eXBlIGZvciB0aGUgQ1NWIGZpbGVcbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEZpbGUgRm9ybWF0IEhlYWRlciAoc2hvd24gd2hlbiBkb2N1bWVudFR5cGUgaXMgJ3R4dCcpIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1mbGV4LXNocmluay0wIGNxYS1nYXAtMTRcIiAqbmdJZj1cImlzVHh0U2VsZWN0ZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wIGNxYS1taW4tdy1bY2FsYyg0NSUtNnB4KV1cIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbWItMS41IGNxYS1ibG9ja1wiPlxuICAgICAgICAgIEZpbGUgRm9ybWF0IEhlYWRlclxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRmlsZSBGb3JtYXQgSGVhZGVyXCJcbiAgICAgICAgICBbdmFsdWVdPVwiZG9jdW1lbnRGb3JtLmdldCgnZmlsZUZvcm1hdEhlYWRlcicpPy52YWx1ZVwiXG4gICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZG9jdW1lbnRGb3JtLmdldCgnZmlsZUZvcm1hdEhlYWRlcicpPy5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBBMEEwQV0gY3FhLW10LTEgY3FhLW0tMFwiPlxuICAgICAgICAgIEhlYWRlciB0ZXh0IGZvciB0aGUgZ2VuZXJhdGVkIHR4dCBmaWxlXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBUZW1wbGF0ZSBTb3VyY2UgU2VjdGlvbjogbGFiZWwgbGVmdCwgdGFicyByaWdodCBvbiBzYW1lIHJvdyAtLT5cbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWZsZXgtc2hyaW5rLTAgY3FhLWdhcC0zXCI+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWJldHdlZW4gY3FhLWdhcC00XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW0tMCBjcWEtZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgIFRlbXBsYXRlIFNvdXJjZVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8Y3FhLXNlZ21lbnQtY29udHJvbFxuICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTBcIlxuICAgICAgICAgIFtzZWdtZW50c109XCJbXG4gICAgICAgICAgICB7IGxhYmVsOiAnVXNlIEV4aXN0aW5nIFRlbXBsYXRlJywgdmFsdWU6ICdleGlzdGluZycgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdVcGxvYWQgVGVtcGxhdGUnLCB2YWx1ZTogJ3VwbG9hZCcgfSxcbiAgICAgICAgICAgIHsgbGFiZWw6ICdDcmVhdGUgTmV3JywgdmFsdWU6ICdjcmVhdGVOZXcnIH1cbiAgICAgICAgICBdXCJcbiAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRUZW1wbGF0ZVNvdXJjZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVGVtcGxhdGVTb3VyY2VDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICA8L2NxYS1zZWdtZW50LWNvbnRyb2w+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkb2N1bWVudC10eXBlLXNlbGVjdFwiICpuZ0lmPVwic2VsZWN0ZWRUZW1wbGF0ZVNvdXJjZSA9PT0gJ2V4aXN0aW5nJ1wiPlxuICAgICAgICA8Y3FhLWR5bmFtaWMtc2VsZWN0XG4gICAgICAgICAgW2Zvcm1dPVwiZG9jdW1lbnRGb3JtXCJcbiAgICAgICAgICBbY29uZmlnXT1cImdldFRlbXBsYXRlU2VsZWN0Q29uZmlnKClcIj5cbiAgICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgPT09ICd1cGxvYWQnXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0xLjVcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbS0wXCI+XG4gICAgICAgICAgQXR0YWNobWVudCA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXJlZC01MDBcIj4qPC9zcGFuPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgIGFjY2VwdD1cIi5wZGYsLmRvYywuZG9jeCwudHh0XCJcbiAgICAgICAgICBjbGFzcz1cImNxYS1oaWRkZW5cIlxuICAgICAgICAgIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjcWEtdy1mdWxsIGNxYS1taW4taC1bMTQwcHhdIGNxYS1yb3VuZGVkIGNxYS1ib3JkZXItMiBjcWEtYm9yZGVyLWRhc2hlZCBjcWEtYm9yZGVyLWdyYXktMzAwIGNxYS1iZy13aGl0ZSBjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLWdhcC0zIGNxYS1wLTYgY3FhLWN1cnNvci1wb2ludGVyIGNxYS10cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgW2NsYXNzLmNxYS1yaW5nLTJdPVwiaXNEcmFnT3ZlclwiXG4gICAgICAgICAgW2NsYXNzLmNxYS1yaW5nLVsjM0Y0M0VFXV09XCJpc0RyYWdPdmVyXCJcbiAgICAgICAgICBbY2xhc3MuY3FhLXJpbmctaW5zZXRdPVwiaXNEcmFnT3ZlclwiXG4gICAgICAgICAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcbiAgICAgICAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcbiAgICAgICAgICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ0xlYXZlKCRldmVudClcIlxuICAgICAgICAgIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cImZpbGVJbnB1dC5jbGljaygpXCJcbiAgICAgICAgICAoa2V5ZG93bi5zcGFjZSk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlVwbG9hZCB0ZW1wbGF0ZSBmaWxlXCI+XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImNxYS13LTggY3FhLWgtOCAgY3FhLWZvbnQtYm9sZFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00XCIvPlxuICAgICAgICAgICAgPHBvbHlsaW5lIHBvaW50cz1cIjE3IDggMTIgMyA3IDhcIi8+XG4gICAgICAgICAgICA8bGluZSB4MT1cIjEyXCIgeTE9XCIzXCIgeDI9XCIxMlwiIHkyPVwiMTVcIi8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC1iYXNlIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbS0wIGNxYS10ZXh0LWNlbnRlciBjcWEtZm9udC1ib2xkXCI+XG4gICAgICAgICAgICBEcmFnIGFuZCBkcm9wIGZpbGVzIGhlcmUgb3IgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLWZvbnQtbWVkaXVtIGhvdmVyOmNxYS11bmRlcmxpbmVcIj5icm93c2U8L3NwYW4+XG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLXRleHQtWyM2QjcyODBdIGNxYS1tLTBcIj5cbiAgICAgICAgICAgIFBERiwgRE9DLCBvciBUWFQgZmlsZXNcbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEEwQTBBXSBjcWEtbS0wXCI+XG4gICAgICAgICAgQ2hvb3NlIHRoZSBmaWxlIGZvcm1hdCB5b3Ugd2FudCB0byBnZW5lcmF0ZS5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRUZW1wbGF0ZVNvdXJjZSA9PT0gJ2NyZWF0ZU5ldydcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZ2FwLTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LXdyYXAgY3FhLWdhcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTAgY3FhLW1pbi13LVtjYWxjKDUwJS02cHgpXVwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbWItMS41IGNxYS1ibG9ja1wiPlxuICAgICAgICAgICAgICBUZW1wbGF0ZSBOYW1lIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtcmVkLTUwMFwiPio8L3NwYW4+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJQREYgRG9jdW1lbnQgKC5wZGYpXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImRvY3VtZW50Rm9ybS5nZXQoJ3RlbXBsYXRlTmFtZScpPy52YWx1ZVwiXG4gICAgICAgICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJkb2N1bWVudEZvcm0uZ2V0KCd0ZW1wbGF0ZU5hbWUnKT8uc2V0VmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wIGNxYS1taW4tdy1bY2FsYyg1MCUtNnB4KV1cIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW1iLTEuNSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICAgICAgVGVtcGxhdGUgRGVzY3JpcHRpb24gPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBERiBEb2N1bWVudCAoLnBkZilcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwiZG9jdW1lbnRGb3JtLmdldCgndGVtcGxhdGVEZXNjcmlwdGlvbicpPy52YWx1ZVwiXG4gICAgICAgICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJkb2N1bWVudEZvcm0uZ2V0KCd0ZW1wbGF0ZURlc2NyaXB0aW9uJyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtanVzdGlmeS1lbmRcIj5cbiAgICAgICAgICA8Y3FhLWJ1dHRvblxuICAgICAgICAgICAgdmFyaWFudD1cImZpbGxlZFwiXG4gICAgICAgICAgICBidG5TaXplPVwibGdcIlxuICAgICAgICAgICAgdGV4dD1cIkNyZWF0ZSBUZW1wbGF0ZVwiXG4gICAgICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiJ2NxYS10ZXh0LVsxNHB4XSBjcWEtcHktWzlweF0gY3FhLWJvcmRlci1bIzNGNDNFRV0gY3FhLWJnLVsjM0Y0M0VFXSdcIlxuICAgICAgICAgICAgKGNsaWNrZWQpPVwib25DcmVhdGVUZW1wbGF0ZSgpXCI+XG4gICAgICAgICAgPC9jcWEtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PiAtLT5cblxuICAgIDwhLS0gRG9jdW1lbnQgTWFwcGVyIFNlY3Rpb246IHRpdGxlICsgc3VidGl0bGUgbGVmdCwgTmVlZCBoZWxwPyByaWdodCAoQ1FBIHRhYmxlIGJlbG93KSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1mbGV4LXNocmluay0wIGNxYS1nYXAtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdGFydCBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1taW4tdy0wXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiY3FhLXRleHQtYmFzZSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzExMTgyN10gY3FhLXRleHQtWzE0cHhdIGNxYS1tLTAgY3FhLWxlYWRpbmctdGlnaHRcIj5cbiAgICAgICAgICAgIERvY3VtZW50IE1hcHBlclxuICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC1bMTJweF0gY3FhLXRleHQtWyM2QjcyODBdIGNxYS1tLTAgY3FhLW10LTAuNVwiPlxuICAgICAgICAgICAgTWFwIHBsYWNlaG9sZGVycyB0byBkeW5hbWljIHZhbHVlcy5cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXJlbGF0aXZlIGNxYS1pbmxpbmUtZmxleCBjcWEtZmxleC1zaHJpbmstMFwiXG4gICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwic2hvd0hlbHBUb29sdGlwID0gdHJ1ZVwiXG4gICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwic2hvd0hlbHBUb29sdGlwID0gZmFsc2VcIj5cbiAgICAgICAgICA8YSAqbmdJZj1cIm1hcHBlckhlbHBVcmxcIlxuICAgICAgICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgICAgICAoY2xpY2spPVwib25NYXBwZXJIZWxwQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtY2VudGVyIGNxYS1nYXAtMSBjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsyMXB4XSBjcWEtbm8tdW5kZXJsaW5lIGNxYS1jdXJzb3ItcG9pbnRlclwiPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMCBjcWEtdGV4dC1bIzNGNDNFRV1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNoZWxwLWljb24tY2xpcC1kb2MpXCI+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjUwMDMzIDE0LjY2NjNDMTIuNDEyMyAxNC42NjYzIDE1LjU4MzcgMTEuNjgxNiAxNS41ODM3IDcuOTk5NjdDMTUuNTgzNyA0LjMxNzc4IDEyLjQxMjMgMS4zMzMwMSA4LjUwMDMzIDEuMzMzMDFDNC41ODgzMSAxLjMzMzAxIDEuNDE2OTkgNC4zMTc3OCAxLjQxNjk5IDcuOTk5NjdDMS40MTY5OSAxMS42ODE2IDQuNTg4MzEgMTQuNjY2MyA4LjUwMDMzIDE0LjY2NjNaXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi40Mzg0OCA2LjAwMDM4QzYuNjA1MDEgNS41NTQ4MyA2LjkzMzcxIDUuMTc5MTIgNy4zNjYzNiA0LjkzOThDNy43OTkwMSA0LjcwMDQ5IDguMzA3NjkgNC42MTMwMSA4LjgwMjMxIDQuNjkyODVDOS4yOTY5MyA0Ljc3MjcgOS43NDU1NiA1LjAxNDczIDEwLjA2ODcgNS4zNzYwN0MxMC4zOTE5IDUuNzM3NCAxMC41Njg4IDYuMTk0NzMgMTAuNTY4MSA2LjY2NzA1QzEwLjU2ODEgOC4wMDAzOCA4LjQ0MzA2IDguNjY3MDUgOC40NDMwNiA4LjY2NzA1XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC41IDExLjMzM0g4LjUwOTY2XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxuICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImhlbHAtaWNvbi1jbGlwLWRvY1wiPlxuICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XG4gICAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgTmVlZCBoZWxwID9cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhbWFwcGVySGVscFVybFwiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEuNSBjcWEtZm9udC1bNTAwXSBjcWEtdGV4dC1bMTBweF0gY3FhLWN1cnNvci1kZWZhdWx0IGNxYS10ZXh0LVsjMzc0MTUxXVwiPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJjcWEtZmxleC1zaHJpbmstMCBjcWEtdGV4dC1bIzNGNDNFRV1cIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNoZWxwLWljb24tY2xpcC1kb2Mtbm9saW5rKVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC41MDAzMyAxNC42NjYzQzEyLjQxMjMgMTQuNjY2MyAxNS41ODM3IDExLjY4MTYgMTUuNTgzNyA3Ljk5OTY3QzE1LjU4MzcgNC4zMTc3OCAxMi40MTIzIDEuMzMzMDEgOC41MDAzMyAxLjMzMzAxQzQuNTg4MzEgMS4zMzMwMSAxLjQxNjk5IDQuMzE3NzggMS40MTY5OSA3Ljk5OTY3QzEuNDE2OTkgMTEuNjgxNiA0LjU4ODMxIDE0LjY2NjMgOC41MDAzMyAxNC42NjYzWlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuNDM4NDggNi4wMDAzOEM2LjYwNTAxIDUuNTU0ODMgNi45MzM3MSA1LjE3OTEyIDcuMzY2MzYgNC45Mzk4QzcuNzk5MDEgNC43MDA0OSA4LjMwNzY5IDQuNjEzMDEgOC44MDIzMSA0LjY5Mjg1QzkuMjk2OTMgNC43NzI3IDkuNzQ1NTYgNS4wMTQ3MyAxMC4wNjg3IDUuMzc2MDdDMTAuMzkxOSA1LjczNzQgMTAuNTY4OCA2LjE5NDczIDEwLjU2ODEgNi42NjcwNUMxMC41NjgxIDguMDAwMzggOC40NDMwNiA4LjY2NzA1IDguNDQzMDYgOC42NjcwNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNSAxMS4zMzNIOC41MDk2NlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJoZWxwLWljb24tY2xpcC1kb2Mtbm9saW5rXCI+XG4gICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIi8+XG4gICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cbiAgICAgICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICBOZWVkIGhlbHAgP1xuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0hlbHBUb29sdGlwXCIgY2xhc3M9XCJjcWEtYWJzb2x1dGUgY3FhLXBvaW50ZXItZXZlbnRzLW5vbmUgY3FhLXotWzEwMF0gY3FhLXRvcC1bLTI0cHhdIGNxYS1sZWZ0LVstMjAzcHhdXCIgcm9sZT1cInRvb2x0aXBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtdGV4dC13aGl0ZSBjcWEtdGV4dC1jZW50ZXIgY3FhLXdoaXRlc3BhY2Utbm93cmFwIGNxYS13LVszMDZweF0gY3FhLW1pbi1oLTUgY3FhLXJvdW5kZWQtWzZweF0gY3FhLW9wYWNpdHktMTAwIGNxYS1weC0yIGNxYS1weS0xIGNxYS1iZy1bIzBBMEEwQV0gY3FhLWxlYWRpbmctNSBjcWEtdGV4dC1bOHB4XVwiPlxuICAgICAgICAgICAgICB7eyBtYXBwZXJIZWxwVG9vbHRpcFRleHQgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBUYWJsZSBvciBlbXB0eSBzdGF0ZTogc2FtZSBjb250YWluZXIsIGhlYWRlciBhbHdheXMgdmlzaWJsZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtcm91bmRlZC1sZyBjcWEtb3ZlcmZsb3ctaGlkZGVuIGNxYS1iZy13aGl0ZSBjcWEtc2hhZG93LXNtIGNxYS1ib3JkZXIgY3FhLWJvcmRlci1zb2xpZCBjcWEtYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgIDx0YWJsZSBjbGFzcz1cImNxYS13LWZ1bGxcIj5cbiAgICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICA8dHIgY2xhc3M9XCJjcWEtaXRlbXMtY2VudGVyIGNxYS1iZy1bI0Q4RDlGQzREXVwiPlxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjcWEtcHktWzEzLjI1cHhdIGNxYS1weC1bMTAuNXB4XSBjcWEtdGV4dC14cyBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtbGVmdCBjcWEtdy1bNDBweF0gY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItZ3JheS0yMDBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IFtjaGVja2VkXT1cImFsbE1hcHBpbmdzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzb21lTWFwcGluZ3NTZWxlY3RlZCAmJiAhYWxsTWFwcGluZ3NTZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3RBbGxNYXBwaW5ncygkZXZlbnQuY2hlY2tlZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IGFsbCBtYXBwaW5nc1wiPlxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjcWEtcHktWzEzLjI1cHhdIGNxYS1weC1bMTAuNXB4XSBjcWEtdGV4dC14cyBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtbGVmdCBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1ncmF5LTIwMFwiPktleTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cImNxYS1weS1bMTMuMjVweF0gY3FhLXB4LVsxMC41cHhdIGNxYS10ZXh0LXhzIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtdGV4dC1sZWZ0IGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwIGNxYS13LVsxMjBweF1cIj5WYWx1ZSBUeXBlPC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3FhLXB5LVsxMy4yNXB4XSBjcWEtcHgtWzEwLjVweF0gY3FhLXRleHQteHMgY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMzNzQxNTFdIGNxYS10ZXh0LWxlZnQgY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItZ3JheS0yMDBcIj5WYWx1ZTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cImNxYS1weS1bMTMuMjVweF0gY3FhLXB4LVsxMC41cHhdIGNxYS10ZXh0LXhzIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtdGV4dC1sZWZ0IGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwIGNxYS13LVs0OHB4XVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3FhLXNyLW9ubHlcIj5EZWxldGU8L3NwYW4+XG4gICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgPHRib2R5IGNsYXNzPVwiY3FhLXctZnVsbFwiPlxuICAgICAgICAgICAgPCEtLSBFbXB0eSBzdGF0ZSB3aGVuIG5vIG1hcHBpbmdzIC0tPlxuICAgICAgICAgICAgPHRyICpuZ0lmPVwibWFwcGluZ3NGb3JtQXJyYXkubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiNVwiIGNsYXNzPVwiY3FhLXAtMCBjcWEtYWxpZ24tbWlkZGxlIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtaXRlbXMtY2VudGVyIGNxYS1qdXN0aWZ5LWNlbnRlciBjcWEtcHktMTIgY3FhLXB4LTQgY3FhLWJnLXdoaXRlXCI+XG4gICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtbS0wIGNxYS1tYi00XCI+U3RhcnQgbWFwcGluZyBwbGFjZWhvbGRlcnMgdG8gdmFsdWVzLjwvcD5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLXJvdW5kZWQtbGcgY3FhLXB4LTQgY3FhLXB5LTIuNSBjcWEtdGV4dC1zbSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC13aGl0ZSBjcWEtYmctWyM0RjQ2RTVdIGNxYS1ib3JkZXItbm9uZSBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktOTAgY3FhLXRyYW5zaXRpb24tb3BhY2l0eVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhZGRNYXBwaW5nKClcIj5cbiAgICAgICAgICAgICAgICAgICAgQWRkIGZpcnN0IG1hcHBpbmdcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwhLS0gRGF0YSByb3dzIHdoZW4gdGhlcmUgYXJlIG1hcHBpbmdzIC0tPlxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBtYXBwaW5nIG9mIG1hcHBpbmdzRm9ybUFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS1iZy13aGl0ZSBob3ZlcjpjcWEtYmctWyNGOUZBRkJdXCI+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNxYS1weC1bMTAuNXB4XSBjcWEtcHktWzExcHhdIGNxYS1hbGlnbi1taWRkbGUgY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItZ3JheS0yMDBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IFtjaGVja2VkXT1cImdldE1hcHBpbmdGb3JtR3JvdXAoaSkuZ2V0KCdlbmFibGVkJyk/LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJnZXRNYXBwaW5nRm9ybUdyb3VwKGkpLmdldCgnZW5hYmxlZCcpPy5zZXRWYWx1ZSgkZXZlbnQuY2hlY2tlZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiRW5hYmxlIG1hcHBpbmdcIj5cbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY3FhLXB4LVsxMC41cHhdIGNxYS1weS1bMTFweF0gY3FhLWFsaWduLW1pZGRsZSBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1ncmF5LTIwMCBcIj5cbiAgICAgICAgICAgICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidLZXknXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJnZXRNYXBwaW5nRm9ybUdyb3VwKGkpLmdldCgna2V5Jyk/LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZ2V0TWFwcGluZ0Zvcm1Hcm91cChpKS5nZXQoJ2tleScpPy5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJjcWEtcHgtWzEwLjVweF0gY3FhLXB5LVsxMXB4XSBjcWEtYWxpZ24tbWlkZGxlIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvY3VtZW50LXR5cGUtc2VsZWN0XCI+XG4gICAgICAgICAgICAgICAgPGNxYS1keW5hbWljLXNlbGVjdFxuICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZ2V0TWFwcGluZ0Zvcm1Hcm91cChpKVwiXG4gICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImdldFZhbHVlVHlwZUNvbmZpZyhpKVwiPlxuICAgICAgICAgICAgICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY3FhLXB4LVsxMC41cHhdIGNxYS1weS1bMTFweF0gY3FhLWFsaWduLW1pZGRsZSBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICAgICAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1ZhbHVlJ1wiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0TWFwcGluZ0Zvcm1Hcm91cChpKS5nZXQoJ3ZhbHVlJyk/LnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZ2V0TWFwcGluZ0Zvcm1Hcm91cChpKS5nZXQoJ3ZhbHVlJyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNxYS1weC1bMTAuNXB4XSBjcWEtcHktWzExcHhdIGNxYS1hbGlnbi1taWRkbGUgY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItZ3JheS0yMDBcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXctOSBjcWEtaC05IGNxYS1yb3VuZGVkIGNxYS10ZXh0LVsjRTU3MzczXSBjcWEtdHJhbnNpdGlvbi1jb2xvcnMgY3FhLWJvcmRlci1ub25lIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtY3Vyc29yLXBvaW50ZXIgaG92ZXI6Y3FhLW9wYWNpdHktODBcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZU1hcHBpbmcoaSlcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInRGVsZXRlIG1hcHBpbmcnXCI+XG4gICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY3FhLXctNSBjcWEtaC01IGNxYS1mbGV4LXNocmluay0wXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMyA2aDE4TTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2Mm0zIDB2MTRhMiAyIDAgMDEtMiAySDdhMiAyIDAgMDEtMi0yVjZoMTR6XCIvPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwIDExdjZNMTQgMTF2NlwiLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgIFxuICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWp1c3RpZnktZW5kXCIgKm5nSWY9XCJtYXBwaW5nc0Zvcm1BcnJheS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImNxYS10ZXh0LVsjM0Y0M0VFXSBjcWEtdGV4dC1bMTJweF0gY3FhLWxlYWRpbmctWzE4cHhdIGNxYS1mb250LW1lZGl1bSBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWJvcmRlci1ub25lIGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtcC0zXCJcbiAgICAgICAgICAgIChjbGljayk9XCJhZGRNYXBwaW5nKClcIj5cbiAgICAgICAgICAgICsgQWRkIE1hcHBpbmdcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1qdXN0aWZ5LWVuZFwiICpuZ0lmPVwibWFwcGluZ3NGb3JtQXJyYXkubGVuZ3RoID4gMFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWJnLXRyYW5zcGFyZW50IGNxYS1ib3JkZXItbm9uZSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXAtMFwiXG4gICAgICAgICAgKGNsaWNrKT1cImFkZE1hcHBpbmcoKVwiPlxuICAgICAgICAgICsgQWRkIE1hcHBpbmdcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj4gLS0+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICBcblxuICA8IS0tIERpdmlkZXIgYWJvdmUgZm9vdGVyIC0tPlxuICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWgtcHggY3FhLXctZnVsbFwiIHJvbGU9XCJwcmVzZW50YXRpb25cIj48L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBBY3Rpb24gQnV0dG9ucyAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1zdHJldGNoIGNxYS13LWZ1bGwgY3FhLXAtNCBjcWEtZ2FwLTNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMFwiPlxuICAgICAgPGNxYS1idXR0b25cbiAgICAgICAgdmFyaWFudD1cIm91dGxpbmVkXCJcbiAgICAgICAgYnRuU2l6ZT1cImxnXCJcbiAgICAgICAgdGV4dD1cIkNhbmNlbFwiXG4gICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLXRleHQtWzE0cHhdIGNxYS1weS1bOXB4XSBjcWEtYm9yZGVyLVsjNDE0MTQ2XSdcIlxuICAgICAgICAoY2xpY2tlZCk9XCJvbkNhbmNlbCgpXCI+XG4gICAgICA8L2NxYS1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTBcIj5cbiAgICAgIDxjcWEtYnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJmaWxsZWRcIlxuICAgICAgICBidG5TaXplPVwibGdcIlxuICAgICAgICBbdGV4dF09XCJlZGl0TW9kZSA/ICdVcGRhdGUgU3RlcCcgOiAnQ3JlYXRlIFN0ZXAnXCJcbiAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZCgpXCJcbiAgICAgICAgW2N1c3RvbUNsYXNzXT1cIidjcWEtdGV4dC1bMTRweF0gY3FhLXB5LVs5cHhdIGNxYS1ib3JkZXItWyMzRjQzRUVdJ1wiXG4gICAgICAgIChjbGlja2VkKT1cIm9uQ3JlYXRlU3RlcCgpXCI+XG4gICAgICA8L2NxYS1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
375
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1idWlsZGVyLWRvY3VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc3RlcC1idWlsZGVyL3N0ZXAtYnVpbGRlci1kb2N1bWVudC9zdGVwLWJ1aWxkZXItZG9jdW1lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zdGVwLWJ1aWxkZXIvc3RlcC1idWlsZGVyLWRvY3VtZW50L3N0ZXAtYnVpbGRlci1kb2N1bWVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUN6RyxPQUFPLEVBQWtELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQWtDNUYsTUFBTSxPQUFPLDRCQUE0QjtJQW9GdkMsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFuRm5DLHlDQUF5QztRQUNoQyx3QkFBbUIsR0FBbUIsRUFBRSxDQUFDO1FBRWxELCtFQUErRTtRQUN0RSxvQkFBZSxHQUFtQixFQUFFLENBQUM7UUFFOUMseURBQXlEO1FBQ2hELHFCQUFnQixHQUFtQjtZQUMxQyxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDMUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ2xFLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtZQUNsRixFQUFFLEVBQUUs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QUN2QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDOzt5SEF0WVUsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsNjZCQ25DekMsK21yQkFrWkE7MkZEL1dhLDRCQUE0QjtrQkFKeEMsU0FBUzsrQkFDRSwyQkFBMkI7a0dBSzVCLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFRRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBUUcsYUFBYTtzQkFBckIsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFHRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUdHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1JLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0csU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9keW5hbWljLXNlbGVjdC9keW5hbWljLXNlbGVjdC1maWVsZC5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVNvdXJjZVR5cGUgPSAnZXhpc3RpbmcnIHwgJ3VwbG9hZCcgfCAnY3JlYXRlTmV3JztcblxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudE1hcHBpbmdSb3cge1xuICBrZXk6IHN0cmluZztcbiAgdmFsdWVUeXBlOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGVuYWJsZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50Rm9ybURhdGEge1xuICBkb2N1bWVudFR5cGU6IHN0cmluZztcbiAgb3V0cHV0VmFyaWFibGU6IHN0cmluZztcbiAgZmlsZU5hbWU/OiBzdHJpbmc7XG4gIHNlcHJhdG9yPzogc3RyaW5nO1xuICBkZWxpbWV0ZXI/OiBzdHJpbmc7XG4gIGZpbGVGb3JtYXRIZWFkZXI/OiBzdHJpbmc7XG4gIHRlbXBsYXRlU291cmNlOiBUZW1wbGF0ZVNvdXJjZVR5cGU7XG4gIHRlbXBsYXRlSWQ/OiBzdHJpbmc7XG4gIC8qKiBVcGxvYWRlZCB0ZW1wbGF0ZSBmaWxlIHdoZW4gdGVtcGxhdGVTb3VyY2UgaXMgJ3VwbG9hZCcgKi9cbiAgdXBsb2FkZWRGaWxlPzogRmlsZTtcbiAgLyoqIFRlbXBsYXRlIG5hbWUgd2hlbiB0ZW1wbGF0ZVNvdXJjZSBpcyAnY3JlYXRlTmV3JyAqL1xuICB0ZW1wbGF0ZU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBUZW1wbGF0ZSBkZXNjcmlwdGlvbiB3aGVuIHRlbXBsYXRlU291cmNlIGlzICdjcmVhdGVOZXcnICovXG4gIHRlbXBsYXRlRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIG1hcHBpbmdzOiBEb2N1bWVudE1hcHBpbmdSb3dbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3FhLXN0ZXAtYnVpbGRlci1kb2N1bWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwLWJ1aWxkZXItZG9jdW1lbnQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBCdWlsZGVyRG9jdW1lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8qKiBPcHRpb25zIGZvciBkb2N1bWVudCB0eXBlIGRyb3Bkb3duICovXG4gIEBJbnB1dCgpIGRvY3VtZW50VHlwZU9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW107XG5cbiAgLyoqIE9wdGlvbnMgZm9yIHRlbXBsYXRlIGRyb3Bkb3duICh3aGVuIFwiVXNlIEV4aXN0aW5nIFRlbXBsYXRlXCIgaXMgc2VsZWN0ZWQpICovXG4gIEBJbnB1dCgpIHRlbXBsYXRlT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcblxuICAvKiogT3B0aW9ucyBmb3IgdmFsdWUgdHlwZSBkcm9wZG93biBpbiBkb2N1bWVudCBtYXBwZXIgKi9cbiAgQElucHV0KCkgdmFsdWVUeXBlT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXG4gICAgeyBpZDogJ3ZhcmlhYmxlJywgdmFsdWU6ICd2YXJpYWJsZScsIG5hbWU6ICdWYXJpYWJsZScsIGxhYmVsOiAnVmFyaWFibGUnIH0sXG4gICAgeyBpZDogJ3N0YXRpYycsIHZhbHVlOiAnc3RhdGljJywgbmFtZTogJ1N0YXRpYycsIGxhYmVsOiAnU3RhdGljJyB9LFxuICAgIHsgaWQ6ICdleHByZXNzaW9uJywgdmFsdWU6ICdleHByZXNzaW9uJywgbmFtZTogJ0V4cHJlc3Npb24nLCBsYWJlbDogJ0V4cHJlc3Npb24nIH0sXG4gICAgeyBpZDogJ3JlZmVyZW5jZScsIHZhbHVlOiAncmVmZXJlbmNlJywgbmFtZTogJ1JlZmVyZW5jZScsIGxhYmVsOiAnUmVmZXJlbmNlJyB9XG4gIF07XG5cbiAgLyoqIE9wdGlvbnMgZm9yIGRlbGltZXRlciB0eXBlIGRyb3Bkb3duIChzaG93biB3aGVuIGRvY3VtZW50VHlwZSBpcyAnY3N2JykgKi9cbiAgQElucHV0KCkgZGVsaW1ldGVyVHlwZU9wdGlvbnM6IFNlbGVjdE9wdGlvbltdID0gW1xuICAgIHsgaWQ6ICcsJywgdmFsdWU6ICcsJywgbmFtZTogJ0NvbW1hICgsKScsIGxhYmVsOiAnQ29tbWEgKCwpJyB9LFxuICAgIHsgaWQ6ICc7JywgdmFsdWU6ICc7JywgbmFtZTogJ1NlbWljb2xvbiAoOyknLCBsYWJlbDogJ1NlbWljb2xvbiAoOyknIH0sXG4gICAgeyBpZDogJ1xcXFx0JywgdmFsdWU6ICdcXFxcdCcsIG5hbWU6ICdUYWIgKFxcXFx0KScsIGxhYmVsOiAnVGFiIChcXFxcdCknIH0sXG4gICAgeyBpZDogJ3wnLCB2YWx1ZTogJ3wnLCBuYW1lOiAnUGlwZSAofCknLCBsYWJlbDogJ1BpcGUgKHwpJyB9XG4gIF07XG5cbiAgLyoqIE9wdGlvbmFsIFVSTCBmb3IgXCJOZWVkIGhlbHA/XCIgbGluayBpbiBEb2N1bWVudCBNYXBwZXIgc2VjdGlvbiAqL1xuICBASW5wdXQoKSBtYXBwZXJIZWxwVXJsOiBzdHJpbmcgPSAnJztcblxuICAvKiogVG9vbHRpcCB0ZXh0IHdoZW4gaG92ZXJpbmcgb3ZlciBcIk5lZWQgaGVscD9cIiAoc2FtZSBhcyBjdXN0b20tZWRpdC1zdGVwKSAqL1xuICBASW5wdXQoKSBtYXBwZXJIZWxwVG9vbHRpcFRleHQ6IHN0cmluZyA9ICdOb3Qgc3VyZSB3aGF0IHRvIGRvPyBDbGljayB0byBnbyB0byBvdXIgZGV0YWlsZWQgc3RlcCBjcmVhdGlvbiBkb2N1bWVudGF0aW9uJztcblxuICAvKiogSW5pdGlhbCBkb2N1bWVudCB0eXBlIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbERvY3VtZW50VHlwZT86IHN0cmluZztcblxuICAvKiogSW5pdGlhbCBvdXRwdXQgdmFyaWFibGUgZm9yIGVkaXQgbW9kZSAqL1xuICBASW5wdXQoKSBpbml0aWFsT3V0cHV0VmFyaWFibGU/OiBzdHJpbmc7XG5cbiAgLyoqIEluaXRpYWwgdGVtcGxhdGUgc291cmNlIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbFRlbXBsYXRlU291cmNlPzogVGVtcGxhdGVTb3VyY2VUeXBlO1xuXG4gIC8qKiBJbml0aWFsIHRlbXBsYXRlIElEIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbFRlbXBsYXRlSWQ/OiBzdHJpbmc7XG5cbiAgLyoqIEluaXRpYWwgdGVtcGxhdGUgbmFtZSBmb3IgZWRpdCBtb2RlICh3aGVuIHRlbXBsYXRlU291cmNlIGlzICdjcmVhdGVOZXcnKSAqL1xuICBASW5wdXQoKSBpbml0aWFsVGVtcGxhdGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBJbml0aWFsIHRlbXBsYXRlIGRlc2NyaXB0aW9uIGZvciBlZGl0IG1vZGUgKHdoZW4gdGVtcGxhdGVTb3VyY2UgaXMgJ2NyZWF0ZU5ldycpICovXG4gIEBJbnB1dCgpIGluaXRpYWxUZW1wbGF0ZURlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBJbml0aWFsIG1hcHBpbmdzIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbE1hcHBpbmdzPzogRG9jdW1lbnRNYXBwaW5nUm93W107XG5cbiAgLyoqIEluaXRpYWwgZmlsZSBuYW1lIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbEZpbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBJbml0aWFsIHNlcHJhdG9yIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbFNlcHJhdG9yPzogc3RyaW5nO1xuXG4gIC8qKiBJbml0aWFsIGRlbGltZXRlciBmb3IgZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGluaXRpYWxEZWxpbWV0ZXI/OiBzdHJpbmc7XG5cbiAgLyoqIEluaXRpYWwgZmlsZSBmb3JtYXQgaGVhZGVyIGZvciBlZGl0IG1vZGUgKi9cbiAgQElucHV0KCkgaW5pdGlhbEZpbGVGb3JtYXRIZWFkZXI/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgaW4gZWRpdCBtb2RlICovXG4gIEBJbnB1dCgpIGVkaXRNb2RlPzogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciB0aGUgaGVscCB0b29sdGlwIGlzIHZpc2libGUgKi9cbiAgc2hvd0hlbHBUb29sdGlwID0gZmFsc2U7XG5cbiAgLyoqIEVtaXQgd2hlbiBzdGVwIGlzIGNyZWF0ZWQgKi9cbiAgQE91dHB1dCgpIGNyZWF0ZVN0ZXAgPSBuZXcgRXZlbnRFbWl0dGVyPERvY3VtZW50Rm9ybURhdGE+KCk7XG5cbiAgLyoqIEVtaXQgd2hlbiBjYW5jZWxsZWQgKi9cbiAgQE91dHB1dCgpIGNhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogRW1pdCB3aGVuIFwiQ3JlYXRlIFRlbXBsYXRlXCIgaXMgY2xpY2tlZCAoQ3JlYXRlIE5ldyBmbG93KS4gSG9zdCBjYW4gY3JlYXRlIHRlbXBsYXRlIHZpYSBBUEkuICovXG4gIEBPdXRwdXQoKSBjcmVhdGVUZW1wbGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0ZW1wbGF0ZU5hbWU6IHN0cmluZzsgdGVtcGxhdGVEZXNjcmlwdGlvbjogc3RyaW5nIH0+KCk7XG5cbiAgZG9jdW1lbnRGb3JtOiBGb3JtR3JvdXA7XG4gIHNlbGVjdGVkVGVtcGxhdGVTb3VyY2U6IFRlbXBsYXRlU291cmNlVHlwZSA9ICdleGlzdGluZyc7XG4gIC8qKiBVcGxvYWRlZCBmaWxlIHdoZW4gVGVtcGxhdGUgU291cmNlIGlzIFwiVXBsb2FkIFRlbXBsYXRlXCIgKi9cbiAgdXBsb2FkZWRGaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XG4gIC8qKiBWaXN1YWwgc3RhdGUgZm9yIGRyYWctYW5kLWRyb3Agem9uZSAqL1xuICBpc0RyYWdPdmVyID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmRvY3VtZW50Rm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZG9jdW1lbnRUeXBlOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgb3V0cHV0VmFyaWFibGU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBmaWxlTmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHNlcHJhdG9yOiBbJyddLFxuICAgICAgZGVsaW1ldGVyOiBbJyddLFxuICAgICAgZmlsZUZvcm1hdEhlYWRlcjogWycnXSxcbiAgICAgIHRlbXBsYXRlU291cmNlOiBbJ2V4aXN0aW5nJ10sXG4gICAgICB0ZW1wbGF0ZUlkOiBbbnVsbF0sXG4gICAgICB0ZW1wbGF0ZU5hbWU6IFsnJ10sXG4gICAgICB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBbJyddLFxuICAgICAgbWFwcGluZ3M6IHRoaXMuZmIuYXJyYXkoW10pXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgPSB0aGlzLmluaXRpYWxUZW1wbGF0ZVNvdXJjZSB8fCB0aGlzLmRvY3VtZW50Rm9ybS5nZXQoJ3RlbXBsYXRlU291cmNlJyk/LnZhbHVlIHx8ICdleGlzdGluZyc7XG4gICAgdGhpcy5pbml0aWFsaXplRm9ybVdpdGhJbml0aWFsVmFsdWVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RvY3VtZW50VHlwZU9wdGlvbnMnXSB8fCBjaGFuZ2VzWyd0ZW1wbGF0ZU9wdGlvbnMnXSB8fCBjaGFuZ2VzWyd2YWx1ZVR5cGVPcHRpb25zJ10gfHwgY2hhbmdlc1snZGVsaW1ldGVyVHlwZU9wdGlvbnMnXSkge1xuICAgICAgLy8gQ29uZmlncyBhcmUgYnVpbHQgZnJvbSBpbnB1dHMgaW4gZ2V0dGVyczsgbm8gbmVlZCB0byByZWJ1aWxkIGZvcm1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2luaXRpYWxEb2N1bWVudFR5cGUnXSB8fCBjaGFuZ2VzWydpbml0aWFsT3V0cHV0VmFyaWFibGUnXSB8fCBjaGFuZ2VzWydpbml0aWFsVGVtcGxhdGVTb3VyY2UnXSB8fCBcbiAgICAgICAgY2hhbmdlc1snaW5pdGlhbFRlbXBsYXRlSWQnXSB8fCBjaGFuZ2VzWydpbml0aWFsTWFwcGluZ3MnXSB8fCBjaGFuZ2VzWydpbml0aWFsVGVtcGxhdGVOYW1lJ10gfHwgXG4gICAgICAgIGNoYW5nZXNbJ2luaXRpYWxUZW1wbGF0ZURlc2NyaXB0aW9uJ10gfHwgY2hhbmdlc1snaW5pdGlhbEZpbGVOYW1lJ10gfHwgY2hhbmdlc1snaW5pdGlhbFNlcHJhdG9yJ10gfHwgXG4gICAgICAgIGNoYW5nZXNbJ2luaXRpYWxEZWxpbWV0ZXInXSB8fCBjaGFuZ2VzWydpbml0aWFsRmlsZUZvcm1hdEhlYWRlciddKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVGb3JtV2l0aEluaXRpYWxWYWx1ZXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVGb3JtV2l0aEluaXRpYWxWYWx1ZXMoKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgZXhpc3RpbmcgbWFwcGluZ3NcbiAgICB3aGlsZSAodGhpcy5tYXBwaW5nc0Zvcm1BcnJheS5sZW5ndGggIT09IDApIHtcbiAgICAgIHRoaXMubWFwcGluZ3NGb3JtQXJyYXkucmVtb3ZlQXQoMCk7XG4gICAgfVxuXG4gICAgLy8gU2V0IGluaXRpYWwgdmFsdWVzIGlmIHByb3ZpZGVkXG4gICAgaWYgKHRoaXMuaW5pdGlhbERvY3VtZW50VHlwZSkge1xuICAgICAgdGhpcy5kb2N1bWVudEZvcm0ucGF0Y2hWYWx1ZSh7IGRvY3VtZW50VHlwZTogdGhpcy5pbml0aWFsRG9jdW1lbnRUeXBlIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbml0aWFsT3V0cHV0VmFyaWFibGUpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRGb3JtLnBhdGNoVmFsdWUoeyBvdXRwdXRWYXJpYWJsZTogdGhpcy5pbml0aWFsT3V0cHV0VmFyaWFibGUgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmluaXRpYWxGaWxlTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Rm9ybS5wYXRjaFZhbHVlKHsgZmlsZU5hbWU6IHRoaXMuaW5pdGlhbEZpbGVOYW1lIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbml0aWFsU2VwcmF0b3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kb2N1bWVudEZvcm0ucGF0Y2hWYWx1ZSh7IHNlcHJhdG9yOiB0aGlzLmluaXRpYWxTZXByYXRvciB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaW5pdGlhbERlbGltZXRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Rm9ybS5wYXRjaFZhbHVlKHsgZGVsaW1ldGVyOiB0aGlzLmluaXRpYWxEZWxpbWV0ZXIgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmluaXRpYWxGaWxlRm9ybWF0SGVhZGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRGb3JtLnBhdGNoVmFsdWUoeyBmaWxlRm9ybWF0SGVhZGVyOiB0aGlzLmluaXRpYWxGaWxlRm9ybWF0SGVhZGVyIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbml0aWFsVGVtcGxhdGVTb3VyY2UpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZVNvdXJjZSA9IHRoaXMuaW5pdGlhbFRlbXBsYXRlU291cmNlO1xuICAgICAgdGhpcy5kb2N1bWVudEZvcm0ucGF0Y2hWYWx1ZSh7IHRlbXBsYXRlU291cmNlOiB0aGlzLmluaXRpYWxUZW1wbGF0ZVNvdXJjZSB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaW5pdGlhbFRlbXBsYXRlSWQpIHtcbiAgICAgIHRoaXMuZG9jdW1lbnRGb3JtLnBhdGNoVmFsdWUoeyB0ZW1wbGF0ZUlkOiB0aGlzLmluaXRpYWxUZW1wbGF0ZUlkIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbml0aWFsVGVtcGxhdGVOYW1lKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Rm9ybS5wYXRjaFZhbHVlKHsgdGVtcGxhdGVOYW1lOiB0aGlzLmluaXRpYWxUZW1wbGF0ZU5hbWUgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmluaXRpYWxUZW1wbGF0ZURlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmRvY3VtZW50Rm9ybS5wYXRjaFZhbHVlKHsgdGVtcGxhdGVEZXNjcmlwdGlvbjogdGhpcy5pbml0aWFsVGVtcGxhdGVEZXNjcmlwdGlvbiB9KTtcbiAgICB9XG5cbiAgICAvLyBMb2FkIGluaXRpYWwgbWFwcGluZ3NcbiAgICBpZiAodGhpcy5pbml0aWFsTWFwcGluZ3MgJiYgdGhpcy5pbml0aWFsTWFwcGluZ3MubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pbml0aWFsTWFwcGluZ3MuZm9yRWFjaChtYXBwaW5nID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ0dyb3VwID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAga2V5OiBbbWFwcGluZy5rZXkgfHwgJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgIHZhbHVlVHlwZTogW21hcHBpbmcudmFsdWVUeXBlIHx8ICd2YXJpYWJsZScsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICAgIHZhbHVlOiBbbWFwcGluZy52YWx1ZSB8fCAnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgZW5hYmxlZDogW21hcHBpbmcuZW5hYmxlZCA/PyBmYWxzZV1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWFwcGluZ3NGb3JtQXJyYXkucHVzaChtYXBwaW5nR3JvdXApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEFkZCBvbmUgZW1wdHkgbWFwcGluZyBpZiBubyBpbml0aWFsIG1hcHBpbmdzXG4gICAgICBpZiAodGhpcy5tYXBwaW5nc0Zvcm1BcnJheS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5hZGRNYXBwaW5nKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1hcHBpbmdzRm9ybUFycmF5KCk6IEZvcm1BcnJheSB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRGb3JtLmdldCgnbWFwcGluZ3MnKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBnZXREb2N1bWVudFR5cGVDb25maWcoKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAnZG9jdW1lbnRUeXBlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IGRvY3VtZW50IHR5cGUnLFxuICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgc2VhcmNoYWJsZTogZmFsc2UsXG4gICAgICBvcHRpb25zOiB0aGlzLmRvY3VtZW50VHlwZU9wdGlvbnNcbiAgICB9O1xuICB9XG5cbiAgZ2V0VGVtcGxhdGVTZWxlY3RDb25maWcoKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAndGVtcGxhdGVJZCcsXG4gICAgICBwbGFjZWhvbGRlcjogJ1NlbGVjdCBUZW1wbGF0ZSBkcm9wZG93bicsXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBzZWFyY2hhYmxlOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMudGVtcGxhdGVPcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIGdldFZhbHVlVHlwZUNvbmZpZyhpbmRleDogbnVtYmVyKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAndmFsdWVUeXBlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnVmFsdWUgVHlwZScsXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBzZWFyY2hhYmxlOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMudmFsdWVUeXBlT3B0aW9ucyxcbiAgICAgIG9uQ2hhbmdlOiAoKSA9PiB7fVxuICAgIH07XG4gIH1cblxuICBnZXREZWxpbWV0ZXJDb25maWcoKTogRHluYW1pY1NlbGVjdEZpZWxkQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiAnZGVsaW1ldGVyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IERlbGltZXRlcicsXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICBzZWFyY2hhYmxlOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHRoaXMuZGVsaW1ldGVyVHlwZU9wdGlvbnNcbiAgICB9O1xuICB9XG5cbiAgZ2V0IGlzVHh0U2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRGb3JtLmdldCgnZG9jdW1lbnRUeXBlJyk/LnZhbHVlID09PSAndHh0JztcbiAgfVxuXG4gIGdldCBpc0NzdlNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50Rm9ybS5nZXQoJ2RvY3VtZW50VHlwZScpPy52YWx1ZSA9PT0gJ2Nzdic7XG4gIH1cblxuICBvblRlbXBsYXRlU291cmNlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgPSB2YWx1ZSBhcyBUZW1wbGF0ZVNvdXJjZVR5cGU7XG4gICAgdGhpcy5kb2N1bWVudEZvcm0ucGF0Y2hWYWx1ZSh7IHRlbXBsYXRlU291cmNlOiB0aGlzLnNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgfSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZVNvdXJjZSAhPT0gJ3VwbG9hZCcpIHtcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBvbkNyZWF0ZVRlbXBsYXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmRvY3VtZW50Rm9ybS5nZXQoJ3RlbXBsYXRlTmFtZScpPy52YWx1ZT8udHJpbSgpID8/ICcnO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gdGhpcy5kb2N1bWVudEZvcm0uZ2V0KCd0ZW1wbGF0ZURlc2NyaXB0aW9uJyk/LnZhbHVlPy50cmltKCkgPz8gJyc7XG4gICAgdGhpcy5jcmVhdGVUZW1wbGF0ZS5lbWl0KHsgdGVtcGxhdGVOYW1lOiBuYW1lLCB0ZW1wbGF0ZURlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiB9KTtcbiAgfVxuXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzPy5bMF07XG4gICAgaWYgKGZpbGUpIHtcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlID0gZmlsZTtcbiAgICB9XG4gICAgaW5wdXQudmFsdWUgPSAnJztcbiAgfVxuXG4gIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0RyYWdPdmVyID0gdHJ1ZTtcbiAgfVxuXG4gIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcmFnT3ZlciA9IGZhbHNlO1xuICB9XG5cbiAgb25Ecm9wKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXNEcmFnT3ZlciA9IGZhbHNlO1xuICAgIGNvbnN0IGZpbGUgPSBldmVudC5kYXRhVHJhbnNmZXI/LmZpbGVzPy5bMF07XG4gICAgaWYgKGZpbGUgJiYgdGhpcy5pc0FjY2VwdGVkVGVtcGxhdGVGaWxlKGZpbGUpKSB7XG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZSA9IGZpbGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0FjY2VwdGVkVGVtcGxhdGVGaWxlKGZpbGU6IEZpbGUpOiBib29sZWFuIHtcbiAgICBjb25zdCBhY2NlcHRlZCA9IFsnLnBkZicsICcuZG9jJywgJy5kb2N4JywgJy50eHQnXTtcbiAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIGFjY2VwdGVkLnNvbWUoZXh0ID0+IG5hbWUuZW5kc1dpdGgoZXh0KSk7XG4gIH1cblxuICBhZGRNYXBwaW5nKCk6IHZvaWQge1xuICAgIGNvbnN0IG1hcHBpbmdHcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAga2V5OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgdmFsdWVUeXBlOiBbJ3ZhcmlhYmxlJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICB2YWx1ZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGVuYWJsZWQ6IFtmYWxzZV1cbiAgICB9KTtcbiAgICB0aGlzLm1hcHBpbmdzRm9ybUFycmF5LnB1c2gobWFwcGluZ0dyb3VwKTtcbiAgfVxuXG4gIHJlbW92ZU1hcHBpbmcoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMubWFwcGluZ3NGb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgZ2V0TWFwcGluZ0Zvcm1Hcm91cChpbmRleDogbnVtYmVyKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5tYXBwaW5nc0Zvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgLyoqIFRydWUgd2hlbiBldmVyeSBtYXBwaW5nIHJvdyBoYXMgZW5hYmxlZCA9PT0gdHJ1ZSAqL1xuICBnZXQgYWxsTWFwcGluZ3NTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsZW4gPSB0aGlzLm1hcHBpbmdzRm9ybUFycmF5Lmxlbmd0aDtcbiAgICBpZiAobGVuID09PSAwKSByZXR1cm4gZmFsc2U7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmdldE1hcHBpbmdGb3JtR3JvdXAoaSkuZ2V0KCdlbmFibGVkJyk/LnZhbHVlKSByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIFRydWUgd2hlbiBhdCBsZWFzdCBvbmUgbWFwcGluZyByb3cgaGFzIGVuYWJsZWQgPT09IHRydWUgKGZvciBoZWFkZXIgaW5kZXRlcm1pbmF0ZSkgKi9cbiAgZ2V0IHNvbWVNYXBwaW5nc1NlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5tYXBwaW5nc0Zvcm1BcnJheS5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKHRoaXMuZ2V0TWFwcGluZ0Zvcm1Hcm91cChpKS5nZXQoJ2VuYWJsZWQnKT8udmFsdWUpIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBvblNlbGVjdEFsbE1hcHBpbmdzKGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm1hcHBpbmdzRm9ybUFycmF5LmNvbnRyb2xzLmZvckVhY2goKF8sIGkpID0+IHtcbiAgICAgIHRoaXMuZ2V0TWFwcGluZ0Zvcm1Hcm91cChpKS5nZXQoJ2VuYWJsZWQnKT8uc2V0VmFsdWUoY2hlY2tlZCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbGxlZC5lbWl0KCk7XG4gIH1cblxuICBpc0Zvcm1WYWxpZCgpOiBib29sZWFuIHtcbiAgICAvLyBDaGVjayBpZiBtYWluIGZvcm0gaXMgdmFsaWQgKGRvY3VtZW50VHlwZSwgb3V0cHV0VmFyaWFibGUsIGFuZCBmaWxlTmFtZSBhcmUgcmVxdWlyZWQpXG4gICAgY29uc3QgZG9jdW1lbnRUeXBlID0gdGhpcy5kb2N1bWVudEZvcm0uZ2V0KCdkb2N1bWVudFR5cGUnKT8udmFsdWU7XG4gICAgY29uc3Qgb3V0cHV0VmFyaWFibGUgPSB0aGlzLmRvY3VtZW50Rm9ybS5nZXQoJ291dHB1dFZhcmlhYmxlJyk/LnZhbHVlO1xuICAgIGNvbnN0IGZpbGVOYW1lID0gdGhpcy5kb2N1bWVudEZvcm0uZ2V0KCdmaWxlTmFtZScpPy52YWx1ZTtcblxuICAgIGlmICghZG9jdW1lbnRUeXBlIHx8ICFvdXRwdXRWYXJpYWJsZSB8fCAhZmlsZU5hbWUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayB0ZW1wbGF0ZSBzb3VyY2Ugc3BlY2lmaWMgcmVxdWlyZW1lbnRzXG4gICAgLy8gaWYgKHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZVNvdXJjZSA9PT0gJ2V4aXN0aW5nJykge1xuICAgIC8vICAgY29uc3QgdGVtcGxhdGVJZCA9IHRoaXMuZG9jdW1lbnRGb3JtLmdldCgndGVtcGxhdGVJZCcpPy52YWx1ZTtcbiAgICAvLyAgIGlmICghdGVtcGxhdGVJZCkge1xuICAgIC8vICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gICB9XG4gICAgLy8gfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgPT09ICd1cGxvYWQnKSB7XG4gICAgLy8gICBpZiAoIXRoaXMudXBsb2FkZWRGaWxlKSB7XG4gICAgLy8gICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyAgIH1cbiAgICAvLyB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRUZW1wbGF0ZVNvdXJjZSA9PT0gJ2NyZWF0ZU5ldycpIHtcbiAgICAvLyAgIGNvbnN0IG5hbWUgPSB0aGlzLmRvY3VtZW50Rm9ybS5nZXQoJ3RlbXBsYXRlTmFtZScpPy52YWx1ZT8udHJpbSgpO1xuICAgIC8vICAgY29uc3QgZGVzYyA9IHRoaXMuZG9jdW1lbnRGb3JtLmdldCgndGVtcGxhdGVEZXNjcmlwdGlvbicpPy52YWx1ZT8udHJpbSgpO1xuICAgIC8vICAgaWYgKCFuYW1lIHx8ICFkZXNjKSB7XG4gICAgLy8gICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyAgIH1cbiAgICAvLyB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIG9uQ3JlYXRlU3RlcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNGb3JtVmFsaWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmRvY3VtZW50Rm9ybS52YWx1ZTtcbiAgICBjb25zdCBzdGVwRGF0YTogRG9jdW1lbnRGb3JtRGF0YSA9IHtcbiAgICAgIGRvY3VtZW50VHlwZTogZm9ybVZhbHVlLmRvY3VtZW50VHlwZSxcbiAgICAgIG91dHB1dFZhcmlhYmxlOiBmb3JtVmFsdWUub3V0cHV0VmFyaWFibGUsXG4gICAgICBmaWxlTmFtZTogZm9ybVZhbHVlLmZpbGVOYW1lIHx8IHVuZGVmaW5lZCxcbiAgICAgIHNlcHJhdG9yOiBmb3JtVmFsdWUuc2VwcmF0b3IgfHwgdW5kZWZpbmVkLFxuICAgICAgZGVsaW1ldGVyOiBmb3JtVmFsdWUuZGVsaW1ldGVyIHx8IHVuZGVmaW5lZCxcbiAgICAgIGZpbGVGb3JtYXRIZWFkZXI6IGZvcm1WYWx1ZS5maWxlRm9ybWF0SGVhZGVyIHx8IHVuZGVmaW5lZCxcbiAgICAgIHRlbXBsYXRlU291cmNlOiB0aGlzLnNlbGVjdGVkVGVtcGxhdGVTb3VyY2UsXG4gICAgICB0ZW1wbGF0ZUlkOiBmb3JtVmFsdWUudGVtcGxhdGVJZCB8fCB1bmRlZmluZWQsXG4gICAgICAuLi4odGhpcy5zZWxlY3RlZFRlbXBsYXRlU291cmNlID09PSAndXBsb2FkJyAmJiB0aGlzLnVwbG9hZGVkRmlsZSAmJiB7IHVwbG9hZGVkRmlsZTogdGhpcy51cGxvYWRlZEZpbGUgfSksXG4gICAgICAuLi4odGhpcy5zZWxlY3RlZFRlbXBsYXRlU291cmNlID09PSAnY3JlYXRlTmV3JyAmJiB7XG4gICAgICAgIHRlbXBsYXRlTmFtZTogKGZvcm1WYWx1ZS50ZW1wbGF0ZU5hbWUgPz8gJycpLnRyaW0oKSxcbiAgICAgICAgdGVtcGxhdGVEZXNjcmlwdGlvbjogKGZvcm1WYWx1ZS50ZW1wbGF0ZURlc2NyaXB0aW9uID8/ICcnKS50cmltKClcbiAgICAgIH0pLFxuICAgICAgbWFwcGluZ3M6IChmb3JtVmFsdWUubWFwcGluZ3MgfHwgW10pLm1hcCgobTogYW55KSA9PiAoe1xuICAgICAgICBrZXk6IG0ua2V5IHx8ICcnLFxuICAgICAgICB2YWx1ZVR5cGU6IG0udmFsdWVUeXBlIHx8ICd2YXJpYWJsZScsXG4gICAgICAgIHZhbHVlOiBtLnZhbHVlIHx8ICcnLFxuICAgICAgICBlbmFibGVkOiBtLmVuYWJsZWQgPz8gZmFsc2VcbiAgICAgIH0pKVxuICAgIH07XG4gICAgdGhpcy5jcmVhdGVTdGVwLmVtaXQoc3RlcERhdGEpO1xuICB9XG5cbiAgb25NYXBwZXJIZWxwQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubWFwcGVySGVscFVybCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHdpbmRvdy5vcGVuKHRoaXMubWFwcGVySGVscFVybCwgJ19ibGFuaycpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNxYS11aS1yb290IGNxYS1ibG9jayBjcWEtdy1mdWxsIGNxYS1taW4tdy0wIGNxYS1zdGVwLWJ1aWxkZXItZG9jdW1lbnRcIiBzdHlsZT1cImhlaWdodDogMTAwJTt3aWR0aDogMTAwJTtcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS13LWZ1bGwgY3FhLW1pbi13LTAgY3FhLWgtZnVsbCBjcWEtYmctd2hpdGUgY3FhLWJvcmRlciBjcWEtYm94LWJvcmRlciBjcWEtbWF4LXctZnVsbCBjcWEtb3BhY2l0eS0xMDAgY3FhLWgtZnVsbCBjcWEtdy1mdWxsXCI+XG4gICAgPCEtLSBDb250ZW50IGFyZWE6IHBhZGRpbmcgMTZweCwgZ2FwIDEycHggYmV0d2VlbiBzZWN0aW9ucyAobm8gZmxleC0xIHRvIGF2b2lkIGdhcCBhYm92ZSBmb290ZXIpIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWZsZXgtMSBjcWEtb3ZlcmZsb3cteS1hdXRvIGNxYS1wLTQgY3FhLWdhcC0zXCI+XG4gIDwhLS0gSGVhZGVyOiBEb2N1bWVudCBHZW5lcmF0aW9uIFRlbXBsYXRlIFN0ZXAgKGxlZnQtYWxpZ25lZCwgSW50ZXIgNjAwIDEycHggbGluZS1oZWlnaHQgMTAwJSkgLS0+XG4gIDxoMlxuICAgIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxMDAlXSBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzExMTgyN10gY3FhLW0tMCBjcWEtdGV4dC1sZWZ0IGNxYS1mbGV4LXNocmluay0wIGNxYS1hbGlnbi1taWRkbGVcIj5cbiAgICBEb2N1bWVudCBHZW5lcmF0aW9uIFRlbXBsYXRlIFN0ZXBcbiAgPC9oMj5cblxuICAgIDwhLS0gRmlsZSBOYW1lIGFuZCBEb2N1bWVudCBUeXBlIFJvdyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtZmxleC1zaHJpbmstMCBjcWEtZ2FwLTE0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMCBjcWEtbWluLXctW2NhbGMoNDUlLTZweCldXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW1iLTEuNSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICBGaWxlIE5hbWUgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbGUgTmFtZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cImRvY3VtZW50Rm9ybS5nZXQoJ2ZpbGVOYW1lJyk/LnZhbHVlXCJcbiAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJkb2N1bWVudEZvcm0uZ2V0KCdmaWxlTmFtZScpPy5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBBMEEwQV0gY3FhLW10LTEgY3FhLW0tMFwiPlxuICAgICAgICAgIFRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvIGJlIGdlbmVyYXRlZFxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wIGNxYS1taW4tdy1bY2FsYyg0NSUtNnB4KV0gXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW1iLTEuNSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICBEb2N1bWVudCBUeXBlIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtcmVkLTUwMFwiPio8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkb2N1bWVudC10eXBlLXNlbGVjdFwiPlxuICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3RcbiAgICAgICAgICAgIFtmb3JtXT1cImRvY3VtZW50Rm9ybVwiXG4gICAgICAgICAgICBbY29uZmlnXT1cImdldERvY3VtZW50VHlwZUNvbmZpZygpXCI+XG4gICAgICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEEwQTBBXSBjcWEtbXQtMSBjcWEtbS0wXCI+XG4gICAgICAgICAgQ2hvb3NlIHRoZSBmaWxlIGZvcm1hdCB5b3Ugd2FudCB0byBnZW5lcmF0ZS5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIE91dHB1dCBWYXJpYWJsZSBhbmQgQ29uZGl0aW9uYWwgRmllbGRzIFJvdyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtZmxleC1zaHJpbmstMCBjcWEtZ2FwLTE0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMCBjcWEtbWluLXctW2NhbGMoNDUlLTZweCldXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW1iLTEuNSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICBPdXRwdXQgVmFyaWFibGUgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIklucHV0XCJcbiAgICAgICAgICBbdmFsdWVdPVwiZG9jdW1lbnRGb3JtLmdldCgnb3V0cHV0VmFyaWFibGUnKT8udmFsdWVcIlxuICAgICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImRvY3VtZW50Rm9ybS5nZXQoJ291dHB1dFZhcmlhYmxlJyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEEwQTBBXSBjcWEtbXQtMSBjcWEtbS0wXCI+XG4gICAgICAgICAgU3RvcmVzIHRoZSBnZW5lcmF0ZWQgZmlsZSBzbyBpdCBjYW4gYmUgdXNlZCBpbiBsYXRlciBzdGVwcy5cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIFNlcHJhdG9yIChzaG93biB3aGVuIGRvY3VtZW50VHlwZSBpcyAndHh0JykgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMCBjcWEtbWluLXctW2NhbGMoNDUlLTZweCldXCIgKm5nSWY9XCJpc1R4dFNlbGVjdGVkXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW1iLTEuNSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICBTZXByYXRvclxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VwcmF0b3JcIlxuICAgICAgICAgIFt2YWx1ZV09XCJkb2N1bWVudEZvcm0uZ2V0KCdzZXByYXRvcicpPy52YWx1ZVwiXG4gICAgICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZG9jdW1lbnRGb3JtLmdldCgnc2VwcmF0b3InKT8uc2V0VmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQTBBMEFdIGNxYS1tdC0xIGNxYS1tLTBcIj5cbiAgICAgICAgICBUaGUgc2VwcmF0b3IgdG8gYmUgdXNlZCB0byBzZXBhcmF0ZSB0aGUgdmFsdWVzIGluIHRoZSBnZW5lcmF0ZWQgZmlsZVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gRGVsaW1ldGVyIFR5cGUgKHNob3duIHdoZW4gZG9jdW1lbnRUeXBlIGlzICdjc3YnKSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wIGNxYS1taW4tdy1bY2FsYyg0NSUtNnB4KV1cIiAqbmdJZj1cImlzQ3N2U2VsZWN0ZWRcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiY3FhLXRleHQtc20gY3FhLWZvbnQtbWVkaXVtIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtbWItMS41IGNxYS1ibG9ja1wiPlxuICAgICAgICAgIERlbGltZXRlciBUeXBlXG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkb2N1bWVudC10eXBlLXNlbGVjdFwiPlxuICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3RcbiAgICAgICAgICAgIFtmb3JtXT1cImRvY3VtZW50Rm9ybVwiXG4gICAgICAgICAgICBbY29uZmlnXT1cImdldERlbGltZXRlckNvbmZpZygpXCI+XG4gICAgICAgICAgPC9jcWEtZHluYW1pYy1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LXhzIGNxYS10ZXh0LVsjMEEwQTBBXSBjcWEtbXQtMSBjcWEtbS0wXCI+XG4gICAgICAgICAgQ2hvb3NlIHRoZSBkZWxpbWV0ZXIgdHlwZSBmb3IgdGhlIENTViBmaWxlXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBGaWxlIEZvcm1hdCBIZWFkZXIgKHNob3duIHdoZW4gZG9jdW1lbnRUeXBlIGlzICd0eHQnKSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtd3JhcCBjcWEtZmxleC1zaHJpbmstMCBjcWEtZ2FwLTE0XCIgKm5nSWY9XCJpc1R4dFNlbGVjdGVkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMCBjcWEtbWluLXctW2NhbGMoNDUlLTZweCldXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW1iLTEuNSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICBGaWxlIEZvcm1hdCBIZWFkZXJcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZpbGUgRm9ybWF0IEhlYWRlclwiXG4gICAgICAgICAgW3ZhbHVlXT1cImRvY3VtZW50Rm9ybS5nZXQoJ2ZpbGVGb3JtYXRIZWFkZXInKT8udmFsdWVcIlxuICAgICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImRvY3VtZW50Rm9ybS5nZXQoJ2ZpbGVGb3JtYXRIZWFkZXInKT8uc2V0VmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQteHMgY3FhLXRleHQtWyMwQTBBMEFdIGNxYS1tdC0xIGNxYS1tLTBcIj5cbiAgICAgICAgICBIZWFkZXIgdGV4dCBmb3IgdGhlIGdlbmVyYXRlZCB0eHQgZmlsZVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gVGVtcGxhdGUgU291cmNlIFNlY3Rpb246IGxhYmVsIGxlZnQsIHRhYnMgcmlnaHQgb24gc2FtZSByb3cgLS0+XG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1mbGV4LXNocmluay0wIGNxYS1nYXAtM1wiPlxuICAgICAgXG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1iZXR3ZWVuIGNxYS1nYXAtNFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMzNzQxNTFdIGNxYS1tLTAgY3FhLWZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICBUZW1wbGF0ZSBTb3VyY2VcbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGNxYS1zZWdtZW50LWNvbnRyb2xcbiAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4LXNocmluay0wXCJcbiAgICAgICAgICBbc2VnbWVudHNdPVwiW1xuICAgICAgICAgICAgeyBsYWJlbDogJ1VzZSBFeGlzdGluZyBUZW1wbGF0ZScsIHZhbHVlOiAnZXhpc3RpbmcnIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiAnVXBsb2FkIFRlbXBsYXRlJywgdmFsdWU6ICd1cGxvYWQnIH0sXG4gICAgICAgICAgICB7IGxhYmVsOiAnQ3JlYXRlIE5ldycsIHZhbHVlOiAnY3JlYXRlTmV3JyB9XG4gICAgICAgICAgXVwiXG4gICAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkVGVtcGxhdGVTb3VyY2VcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblRlbXBsYXRlU291cmNlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPC9jcWEtc2VnbWVudC1jb250cm9sPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnQtdHlwZS1zZWxlY3RcIiAqbmdJZj1cInNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgPT09ICdleGlzdGluZydcIj5cbiAgICAgICAgPGNxYS1keW5hbWljLXNlbGVjdFxuICAgICAgICAgIFtmb3JtXT1cImRvY3VtZW50Rm9ybVwiXG4gICAgICAgICAgW2NvbmZpZ109XCJnZXRUZW1wbGF0ZVNlbGVjdENvbmZpZygpXCI+XG4gICAgICAgIDwvY3FhLWR5bmFtaWMtc2VsZWN0PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFRlbXBsYXRlU291cmNlID09PSAndXBsb2FkJ1wiIGNsYXNzPVwiY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1nYXAtMS41XCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW0tMFwiPlxuICAgICAgICAgIEF0dGFjaG1lbnQgPHNwYW4gY2xhc3M9XCJjcWEtdGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgI2ZpbGVJbnB1dFxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBhY2NlcHQ9XCIucGRmLC5kb2MsLmRvY3gsLnR4dFwiXG4gICAgICAgICAgY2xhc3M9XCJjcWEtaGlkZGVuXCJcbiAgICAgICAgICAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiY3FhLXctZnVsbCBjcWEtbWluLWgtWzE0MHB4XSBjcWEtcm91bmRlZCBjcWEtYm9yZGVyLTIgY3FhLWJvcmRlci1kYXNoZWQgY3FhLWJvcmRlci1ncmF5LTMwMCBjcWEtYmctd2hpdGUgY3FhLWZsZXggY3FhLWZsZXgtY29sIGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS1nYXAtMyBjcWEtcC02IGNxYS1jdXJzb3ItcG9pbnRlciBjcWEtdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgIFtjbGFzcy5jcWEtcmluZy0yXT1cImlzRHJhZ092ZXJcIlxuICAgICAgICAgIFtjbGFzcy5jcWEtcmluZy1bIzNGNDNFRV1dPVwiaXNEcmFnT3ZlclwiXG4gICAgICAgICAgW2NsYXNzLmNxYS1yaW5nLWluc2V0XT1cImlzRHJhZ092ZXJcIlxuICAgICAgICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgICAgICAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICAgICAgICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwiZmlsZUlucHV0LmNsaWNrKClcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJVcGxvYWQgdGVtcGxhdGUgZmlsZVwiPlxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJjcWEtdy04IGNxYS1oLTggIGNxYS1mb250LWJvbGRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNFwiLz5cbiAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9XCIxNyA4IDEyIDMgNyA4XCIvPlxuICAgICAgICAgICAgPGxpbmUgeDE9XCIxMlwiIHkxPVwiM1wiIHgyPVwiMTJcIiB5Mj1cIjE1XCIvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQtYmFzZSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW0tMCBjcWEtdGV4dC1jZW50ZXIgY3FhLWZvbnQtYm9sZFwiPlxuICAgICAgICAgICAgRHJhZyBhbmQgZHJvcCBmaWxlcyBoZXJlIG9yIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtWyMzRjQzRUVdIGNxYS1mb250LW1lZGl1bSBob3ZlcjpjcWEtdW5kZXJsaW5lXCI+YnJvd3NlPC9zcGFuPlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8cCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtbS0wXCI+XG4gICAgICAgICAgICBQREYsIERPQywgb3IgVFhUIGZpbGVzXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC14cyBjcWEtdGV4dC1bIzBBMEEwQV0gY3FhLW0tMFwiPlxuICAgICAgICAgIENob29zZSB0aGUgZmlsZSBmb3JtYXQgeW91IHdhbnQgdG8gZ2VuZXJhdGUuXG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkVGVtcGxhdGVTb3VyY2UgPT09ICdjcmVhdGVOZXcnXCIgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWdhcC0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC13cmFwIGNxYS1nYXAtM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wIGNxYS1taW4tdy1bY2FsYyg1MCUtNnB4KV1cIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNxYS10ZXh0LXNtIGNxYS1mb250LW1lZGl1bSBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLW1iLTEuNSBjcWEtYmxvY2tcIj5cbiAgICAgICAgICAgICAgVGVtcGxhdGUgTmFtZSA8c3BhbiBjbGFzcz1cImNxYS10ZXh0LXJlZC01MDBcIj4qPC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxjcWEtY3VzdG9tLWlucHV0XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUERGIERvY3VtZW50ICgucGRmKVwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJkb2N1bWVudEZvcm0uZ2V0KCd0ZW1wbGF0ZU5hbWUnKT8udmFsdWVcIlxuICAgICAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZG9jdW1lbnRGb3JtLmdldCgndGVtcGxhdGVOYW1lJyk/LnNldFZhbHVlKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXgtMSBjcWEtbWluLXctMCBjcWEtbWluLXctW2NhbGMoNTAlLTZweCldXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtZm9udC1tZWRpdW0gY3FhLXRleHQtWyMzNzQxNTFdIGNxYS1tYi0xLjUgY3FhLWJsb2NrXCI+XG4gICAgICAgICAgICAgIFRlbXBsYXRlIERlc2NyaXB0aW9uIDxzcGFuIGNsYXNzPVwiY3FhLXRleHQtcmVkLTUwMFwiPio8L3NwYW4+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJQREYgRG9jdW1lbnQgKC5wZGYpXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImRvY3VtZW50Rm9ybS5nZXQoJ3RlbXBsYXRlRGVzY3JpcHRpb24nKT8udmFsdWVcIlxuICAgICAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwiZG9jdW1lbnRGb3JtLmdldCgndGVtcGxhdGVEZXNjcmlwdGlvbicpPy5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8L2NxYS1jdXN0b20taW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLWZsZXggY3FhLWp1c3RpZnktZW5kXCI+XG4gICAgICAgICAgPGNxYS1idXR0b25cbiAgICAgICAgICAgIHZhcmlhbnQ9XCJmaWxsZWRcIlxuICAgICAgICAgICAgYnRuU2l6ZT1cImxnXCJcbiAgICAgICAgICAgIHRleHQ9XCJDcmVhdGUgVGVtcGxhdGVcIlxuICAgICAgICAgICAgW2N1c3RvbUNsYXNzXT1cIidjcWEtdGV4dC1bMTRweF0gY3FhLXB5LVs5cHhdIGNxYS1ib3JkZXItWyMzRjQzRUVdIGNxYS1iZy1bIzNGNDNFRV0nXCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ3JlYXRlVGVtcGxhdGUoKVwiPlxuICAgICAgICAgIDwvY3FhLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4gLS0+XG5cbiAgICA8IS0tIERvY3VtZW50IE1hcHBlciBTZWN0aW9uOiB0aXRsZSArIHN1YnRpdGxlIGxlZnQsIE5lZWQgaGVscD8gcmlnaHQgKENRQSB0YWJsZSBiZWxvdykgLS0+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtZmxleC1zaHJpbmstMCBjcWEtZ2FwLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RhcnQgY3FhLWp1c3RpZnktYmV0d2VlbiBjcWEtZ2FwLTRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1mbGV4LWNvbCBjcWEtbWluLXctMFwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cImNxYS10ZXh0LWJhc2UgY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMxMTE4MjddIGNxYS10ZXh0LVsxNHB4XSBjcWEtbS0wIGNxYS1sZWFkaW5nLXRpZ2h0XCI+XG4gICAgICAgICAgICBEb2N1bWVudCBNYXBwZXJcbiAgICAgICAgICA8L2gzPlxuICAgICAgICAgIDxwIGNsYXNzPVwiY3FhLXRleHQtWzEycHhdIGNxYS10ZXh0LVsjNkI3MjgwXSBjcWEtbS0wIGNxYS1tdC0wLjVcIj5cbiAgICAgICAgICAgIE1hcCBwbGFjZWhvbGRlcnMgdG8gZHluYW1pYyB2YWx1ZXMuXG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1yZWxhdGl2ZSBjcWEtaW5saW5lLWZsZXggY3FhLWZsZXgtc2hyaW5rLTBcIlxuICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cInNob3dIZWxwVG9vbHRpcCA9IHRydWVcIlxuICAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInNob3dIZWxwVG9vbHRpcCA9IGZhbHNlXCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCJtYXBwZXJIZWxwVXJsXCJcbiAgICAgICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWFwcGVySGVscENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgIGNsYXNzPVwiY3FhLWZsZXggY3FhLWl0ZW1zLWNlbnRlciBjcWEtZ2FwLTEgY3FhLXRleHQtWyMzRjQzRUVdIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMjFweF0gY3FhLW5vLXVuZGVybGluZSBjcWEtY3Vyc29yLXBvaW50ZXJcIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTAgY3FhLXRleHQtWyMzRjQzRUVdXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjaGVscC1pY29uLWNsaXAtZG9jKVwiPlxuICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC41MDAzMyAxNC42NjYzQzEyLjQxMjMgMTQuNjY2MyAxNS41ODM3IDExLjY4MTYgMTUuNTgzNyA3Ljk5OTY3QzE1LjU4MzcgNC4zMTc3OCAxMi40MTIzIDEuMzMzMDEgOC41MDAzMyAxLjMzMzAxQzQuNTg4MzEgMS4zMzMwMSAxLjQxNjk5IDQuMzE3NzggMS40MTY5OSA3Ljk5OTY3QzEuNDE2OTkgMTEuNjgxNiA0LjU4ODMxIDE0LjY2NjMgOC41MDAzMyAxNC42NjYzWlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuNDM4NDggNi4wMDAzOEM2LjYwNTAxIDUuNTU0ODMgNi45MzM3MSA1LjE3OTEyIDcuMzY2MzYgNC45Mzk4QzcuNzk5MDEgNC43MDA0OSA4LjMwNzY5IDQuNjEzMDEgOC44MDIzMSA0LjY5Mjg1QzkuMjk2OTMgNC43NzI3IDkuNzQ1NTYgNS4wMTQ3MyAxMC4wNjg3IDUuMzc2MDdDMTAuMzkxOSA1LjczNzQgMTAuNTY4OCA2LjE5NDczIDEwLjU2ODEgNi42NjcwNUMxMC41NjgxIDguMDAwMzggOC40NDMwNiA4LjY2NzA1IDguNDQzMDYgOC42NjcwNVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNSAxMS4zMzNIOC41MDk2NlwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cbiAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJoZWxwLWljb24tY2xpcC1kb2NcIj5cbiAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTdcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiLz5cbiAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxuICAgICAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIE5lZWQgaGVscCA/XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIW1hcHBlckhlbHBVcmxcIiBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWdhcC0xLjUgY3FhLWZvbnQtWzUwMF0gY3FhLXRleHQtWzEwcHhdIGNxYS1jdXJzb3ItZGVmYXVsdCBjcWEtdGV4dC1bIzM3NDE1MV1cIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiY3FhLWZsZXgtc2hyaW5rLTAgY3FhLXRleHQtWyMzRjQzRUVdXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjaGVscC1pY29uLWNsaXAtZG9jLW5vbGluaylcIj5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTguNTAwMzMgMTQuNjY2M0MxMi40MTIzIDE0LjY2NjMgMTUuNTgzNyAxMS42ODE2IDE1LjU4MzcgNy45OTk2N0MxNS41ODM3IDQuMzE3NzggMTIuNDEyMyAxLjMzMzAxIDguNTAwMzMgMS4zMzMwMUM0LjU4ODMxIDEuMzMzMDEgMS40MTY5OSA0LjMxNzc4IDEuNDE2OTkgNy45OTk2N0MxLjQxNjk5IDExLjY4MTYgNC41ODgzMSAxNC42NjYzIDguNTAwMzMgMTQuNjY2M1pcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjQzODQ4IDYuMDAwMzhDNi42MDUwMSA1LjU1NDgzIDYuOTMzNzEgNS4xNzkxMiA3LjM2NjM2IDQuOTM5OEM3Ljc5OTAxIDQuNzAwNDkgOC4zMDc2OSA0LjYxMzAxIDguODAyMzEgNC42OTI4NUM5LjI5NjkzIDQuNzcyNyA5Ljc0NTU2IDUuMDE0NzMgMTAuMDY4NyA1LjM3NjA3QzEwLjM5MTkgNS43Mzc0IDEwLjU2ODggNi4xOTQ3MyAxMC41NjgxIDYuNjY3MDVDMTAuNTY4MSA4LjAwMDM4IDguNDQzMDYgOC42NjcwNSA4LjQ0MzA2IDguNjY3MDVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD1cIk04LjUgMTEuMzMzSDguNTA5NjZcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiaGVscC1pY29uLWNsaXAtZG9jLW5vbGlua1wiPlxuICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIvPlxuICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XG4gICAgICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgTmVlZCBoZWxwID9cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dIZWxwVG9vbHRpcFwiIGNsYXNzPVwiY3FhLWFic29sdXRlIGNxYS1wb2ludGVyLWV2ZW50cy1ub25lIGNxYS16LVsxMDBdIGNxYS10b3AtWy0yNHB4XSBjcWEtbGVmdC1bLTIwM3B4XVwiIHJvbGU9XCJ0b29sdGlwXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3FhLXRleHQtd2hpdGUgY3FhLXRleHQtY2VudGVyIGNxYS13aGl0ZXNwYWNlLW5vd3JhcCBjcWEtdy1bMzA2cHhdIGNxYS1taW4taC01IGNxYS1yb3VuZGVkLVs2cHhdIGNxYS1vcGFjaXR5LTEwMCBjcWEtcHgtMiBjcWEtcHktMSBjcWEtYmctWyMwQTBBMEFdIGNxYS1sZWFkaW5nLTUgY3FhLXRleHQtWzhweF1cIj5cbiAgICAgICAgICAgICAge3sgbWFwcGVySGVscFRvb2x0aXBUZXh0IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDwhLS0gVGFibGUgb3IgZW1wdHkgc3RhdGU6IHNhbWUgY29udGFpbmVyLCBoZWFkZXIgYWx3YXlzIHZpc2libGUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiY3FhLXJvdW5kZWQtbGcgY3FhLW92ZXJmbG93LWhpZGRlbiBjcWEtYmctd2hpdGUgY3FhLXNoYWRvdy1zbSBjcWEtYm9yZGVyIGNxYS1ib3JkZXItc29saWQgY3FhLWJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJjcWEtdy1mdWxsXCI+XG4gICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgPHRyIGNsYXNzPVwiY3FhLWl0ZW1zLWNlbnRlciBjcWEtYmctWyNEOEQ5RkM0RF1cIj5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3FhLXB5LVsxMy4yNXB4XSBjcWEtcHgtWzEwLjVweF0gY3FhLXRleHQteHMgY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMzNzQxNTFdIGNxYS10ZXh0LWxlZnQgY3FhLXctWzQwcHhdIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJhbGxNYXBwaW5nc1NlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic29tZU1hcHBpbmdzU2VsZWN0ZWQgJiYgIWFsbE1hcHBpbmdzU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsTWFwcGluZ3MoJGV2ZW50LmNoZWNrZWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjdCBhbGwgbWFwcGluZ3NcIj5cbiAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3FhLXB5LVsxMy4yNXB4XSBjcWEtcHgtWzEwLjVweF0gY3FhLXRleHQteHMgY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtWyMzNzQxNTFdIGNxYS10ZXh0LWxlZnQgY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItZ3JheS0yMDBcIj5LZXk8L3RoPlxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjcWEtcHktWzEzLjI1cHhdIGNxYS1weC1bMTAuNXB4XSBjcWEtdGV4dC14cyBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtbGVmdCBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1ncmF5LTIwMCBjcWEtdy1bMTIwcHhdXCI+VmFsdWUgVHlwZTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBjbGFzcz1cImNxYS1weS1bMTMuMjVweF0gY3FhLXB4LVsxMC41cHhdIGNxYS10ZXh0LXhzIGNxYS1mb250LXNlbWlib2xkIGNxYS10ZXh0LVsjMzc0MTUxXSBjcWEtdGV4dC1sZWZ0IGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwXCI+VmFsdWU8L3RoPlxuICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjcWEtcHktWzEzLjI1cHhdIGNxYS1weC1bMTAuNXB4XSBjcWEtdGV4dC14cyBjcWEtZm9udC1zZW1pYm9sZCBjcWEtdGV4dC1bIzM3NDE1MV0gY3FhLXRleHQtbGVmdCBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1ncmF5LTIwMCBjcWEtdy1bNDhweF1cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNxYS1zci1vbmx5XCI+RGVsZXRlPC9zcGFuPlxuICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImNxYS13LWZ1bGxcIj5cbiAgICAgICAgICAgIDwhLS0gRW1wdHkgc3RhdGUgd2hlbiBubyBtYXBwaW5ncyAtLT5cbiAgICAgICAgICAgIDx0ciAqbmdJZj1cIm1hcHBpbmdzRm9ybUFycmF5Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjVcIiBjbGFzcz1cImNxYS1wLTAgY3FhLWFsaWduLW1pZGRsZSBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtZmxleC1jb2wgY3FhLWl0ZW1zLWNlbnRlciBjcWEtanVzdGlmeS1jZW50ZXIgY3FhLXB5LTEyIGNxYS1weC00IGNxYS1iZy13aGl0ZVwiPlxuICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJjcWEtdGV4dC1zbSBjcWEtdGV4dC1bIzZCNzI4MF0gY3FhLW0tMCBjcWEtbWItNFwiPlN0YXJ0IG1hcHBpbmcgcGxhY2Vob2xkZXJzIHRvIHZhbHVlcy48L3A+XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS1yb3VuZGVkLWxnIGNxYS1weC00IGNxYS1weS0yLjUgY3FhLXRleHQtc20gY3FhLWZvbnQtc2VtaWJvbGQgY3FhLXRleHQtd2hpdGUgY3FhLWJnLVsjNEY0NkU1XSBjcWEtYm9yZGVyLW5vbmUgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTkwIGNxYS10cmFuc2l0aW9uLW9wYWNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTWFwcGluZygpXCI+XG4gICAgICAgICAgICAgICAgICAgIEFkZCBmaXJzdCBtYXBwaW5nXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8IS0tIERhdGEgcm93cyB3aGVuIHRoZXJlIGFyZSBtYXBwaW5ncyAtLT5cbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgbWFwcGluZyBvZiBtYXBwaW5nc0Zvcm1BcnJheS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjcWEtYmctd2hpdGUgaG92ZXI6Y3FhLWJnLVsjRjlGQUZCXVwiPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJjcWEtcHgtWzEwLjVweF0gY3FhLXB5LVsxMXB4XSBjcWEtYWxpZ24tbWlkZGxlIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJnZXRNYXBwaW5nRm9ybUdyb3VwKGkpLmdldCgnZW5hYmxlZCcpPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiZ2V0TWFwcGluZ0Zvcm1Hcm91cChpKS5nZXQoJ2VuYWJsZWQnKT8uc2V0VmFsdWUoJGV2ZW50LmNoZWNrZWQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkVuYWJsZSBtYXBwaW5nXCI+XG4gICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNxYS1weC1bMTAuNXB4XSBjcWEtcHktWzExcHhdIGNxYS1hbGlnbi1taWRkbGUgY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItZ3JheS0yMDAgXCI+XG4gICAgICAgICAgICAgICAgPGNxYS1jdXN0b20taW5wdXRcbiAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInS2V5J1wiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZ2V0TWFwcGluZ0Zvcm1Hcm91cChpKS5nZXQoJ2tleScpPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImdldE1hcHBpbmdGb3JtR3JvdXAoaSkuZ2V0KCdrZXknKT8uc2V0VmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvY3FhLWN1c3RvbS1pbnB1dD5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiY3FhLXB4LVsxMC41cHhdIGNxYS1weS1bMTFweF0gY3FhLWFsaWduLW1pZGRsZSBjcWEtYm9yZGVyLWIgY3FhLWJvcmRlci1ncmF5LTIwMFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb2N1bWVudC10eXBlLXNlbGVjdFwiPlxuICAgICAgICAgICAgICAgIDxjcWEtZHluYW1pYy1zZWxlY3RcbiAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImdldE1hcHBpbmdGb3JtR3JvdXAoaSlcIlxuICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJnZXRWYWx1ZVR5cGVDb25maWcoaSlcIj5cbiAgICAgICAgICAgICAgICA8L2NxYS1keW5hbWljLXNlbGVjdD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImNxYS1weC1bMTAuNXB4XSBjcWEtcHktWzExcHhdIGNxYS1hbGlnbi1taWRkbGUgY3FhLWJvcmRlci1iIGNxYS1ib3JkZXItZ3JheS0yMDBcIj5cbiAgICAgICAgICAgICAgICA8Y3FhLWN1c3RvbS1pbnB1dFxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidWYWx1ZSdcIlxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImdldE1hcHBpbmdGb3JtR3JvdXAoaSkuZ2V0KCd2YWx1ZScpPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImdldE1hcHBpbmdGb3JtR3JvdXAoaSkuZ2V0KCd2YWx1ZScpPy5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPC9jcWEtY3VzdG9tLWlucHV0PlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJjcWEtcHgtWzEwLjVweF0gY3FhLXB5LVsxMXB4XSBjcWEtYWxpZ24tbWlkZGxlIGNxYS1ib3JkZXItYiBjcWEtYm9yZGVyLWdyYXktMjAwXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNxYS1mbGV4IGNxYS1pdGVtcy1jZW50ZXIgY3FhLWp1c3RpZnktY2VudGVyIGNxYS13LTkgY3FhLWgtOSBjcWEtcm91bmRlZCBjcWEtdGV4dC1bI0U1NzM3M10gY3FhLXRyYW5zaXRpb24tY29sb3JzIGNxYS1ib3JkZXItbm9uZSBjcWEtYmctdHJhbnNwYXJlbnQgY3FhLWN1cnNvci1wb2ludGVyIGhvdmVyOmNxYS1vcGFjaXR5LTgwXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVNYXBwaW5nKGkpXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0RlbGV0ZSBtYXBwaW5nJ1wiPlxuICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNxYS13LTUgY3FhLWgtNSBjcWEtZmxleC1zaHJpbmstMFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMgNmgxOE04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjJtMyAwdjE0YTIgMiAwIDAxLTIgMkg3YTIgMiAwIDAxLTItMlY2aDE0elwiLz5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMCAxMXY2TTE0IDExdjZcIi8+XG4gICAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICBcbiAgICAgICAgPC90YWJsZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4IGNxYS1qdXN0aWZ5LWVuZFwiICpuZ0lmPVwibWFwcGluZ3NGb3JtQXJyYXkubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJjcWEtdGV4dC1bIzNGNDNFRV0gY3FhLXRleHQtWzEycHhdIGNxYS1sZWFkaW5nLVsxOHB4XSBjcWEtZm9udC1tZWRpdW0gY3FhLWJnLXRyYW5zcGFyZW50IGNxYS1ib3JkZXItbm9uZSBjcWEtY3Vyc29yLXBvaW50ZXIgY3FhLXAtM1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkTWFwcGluZygpXCI+XG4gICAgICAgICAgICArIEFkZCBNYXBwaW5nXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtanVzdGlmeS1lbmRcIiAqbmdJZj1cIm1hcHBpbmdzRm9ybUFycmF5Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwiY3FhLXRleHQtWyMzRjQzRUVdIGNxYS10ZXh0LVsxMnB4XSBjcWEtbGVhZGluZy1bMThweF0gY3FhLWZvbnQtbWVkaXVtIGNxYS1iZy10cmFuc3BhcmVudCBjcWEtYm9yZGVyLW5vbmUgY3FhLWN1cnNvci1wb2ludGVyIGNxYS1wLTBcIlxuICAgICAgICAgIChjbGljayk9XCJhZGRNYXBwaW5nKClcIj5cbiAgICAgICAgICArIEFkZCBNYXBwaW5nXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+IC0tPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgXG5cbiAgPCEtLSBEaXZpZGVyIGFib3ZlIGZvb3RlciAtLT5cbiAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LXNocmluay0wXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1oLXB4IGNxYS13LWZ1bGxcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQWN0aW9uIEJ1dHRvbnMgLS0+XG4gIDxkaXYgY2xhc3M9XCJjcWEtZmxleCBjcWEtaXRlbXMtc3RyZXRjaCBjcWEtdy1mdWxsIGNxYS1wLTQgY3FhLWdhcC0zXCI+XG4gICAgPGRpdiBjbGFzcz1cImNxYS1mbGV4LTEgY3FhLW1pbi13LTBcIj5cbiAgICAgIDxjcWEtYnV0dG9uXG4gICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICAgIGJ0blNpemU9XCJsZ1wiXG4gICAgICAgIHRleHQ9XCJDYW5jZWxcIlxuICAgICAgICBbZnVsbFdpZHRoXT1cInRydWVcIlxuICAgICAgICBbY3VzdG9tQ2xhc3NdPVwiJ2NxYS10ZXh0LVsxNHB4XSBjcWEtcHktWzlweF0gY3FhLWJvcmRlci1bIzQxNDE0Nl0nXCJcbiAgICAgICAgKGNsaWNrZWQpPVwib25DYW5jZWwoKVwiPlxuICAgICAgPC9jcWEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjcWEtZmxleC0xIGNxYS1taW4tdy0wXCI+XG4gICAgICA8Y3FhLWJ1dHRvblxuICAgICAgICB2YXJpYW50PVwiZmlsbGVkXCJcbiAgICAgICAgYnRuU2l6ZT1cImxnXCJcbiAgICAgICAgW3RleHRdPVwiZWRpdE1vZGUgPyAnVXBkYXRlIFN0ZXAnIDogJ0NyZWF0ZSBTdGVwJ1wiXG4gICAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhaXNGb3JtVmFsaWQoKVwiXG4gICAgICAgIFtjdXN0b21DbGFzc109XCInY3FhLXRleHQtWzE0cHhdIGNxYS1weS1bOXB4XSBjcWEtYm9yZGVyLVsjM0Y0M0VFXSdcIlxuICAgICAgICAoY2xpY2tlZCk9XCJvbkNyZWF0ZVN0ZXAoKVwiPlxuICAgICAgPC9jcWEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19