@firestitch/list 12.13.2 → 12.14.0

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.
@@ -406,7 +406,7 @@ export class PaginationController {
406
406
  * Go to last page
407
407
  */
408
408
  goLast() {
409
- if (this.page < this.pages) {
409
+ if (this.page !== this.pages) {
410
410
  this.page = this.pages;
411
411
  this.updateOffset();
412
412
  this._pageChanged$.next({
@@ -458,4 +458,4 @@ export class PaginationController {
458
458
  this.pages = Math.ceil(this.records / this.limit);
459
459
  }
460
460
  }
461
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL3BhZ2luYXRpb24tY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFaEUsTUFBTSxPQUFPLG9CQUFvQjtJQTBCL0I7UUF4Qk8sVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixTQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUN4QixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLDBCQUEwQjtRQUNuQixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWIsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUV4RCxjQUFTLEdBQXVCLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUN4RCxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUU1QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsV0FBVyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxD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QU0sQ0FBQztRQUU1QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVk7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQge1xuICBGc0xpc3RMb2FkTW9yZUNvbmZpZyxcbiAgRnNQYWdpbmcsXG4gIFBhZ2VDaGFuZ2UsXG4gIFF1ZXJ5T2Zmc2V0U3RyYXRlZ3ksXG4gIFF1ZXJ5UGFnZVN0cmF0ZWd5LFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBhZ2luYXRpb25TdHJhdGVneSB9IGZyb20gJy4uL2VudW1zL3BhZ2luYXRpb24tc3RyYXRlZ3kuZW51bSc7XG5pbXBvcnQgeyBQYWdlQ2hhbmdlVHlwZSB9IGZyb20gJy4uL2VudW1zL3BhZ2UtY2hhbmdlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29udHJvbGxlciB7XG5cbiAgcHVibGljIGxpbWl0ID0gMjU7XG4gIHB1YmxpYyByZWNvcmRzOiBudW1iZXI7XG4gIHB1YmxpYyBtYW51YWwgPSBmYWxzZTtcblxuICBwdWJsaWMgcGFnZSA9IDE7IC8vIEFjdGl2ZSBwYWdlXG4gIHB1YmxpYyBvZmZzZXQgPSAwO1xuXG4gIC8vIHB1YmxpYyBwYWdlc0FycmF5ID0gW107XG4gIHB1YmxpYyBkaXNwbGF5ZWQgPSAwO1xuXG4gIHByaXZhdGUgX3BhZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTsgLy8gVG90YWwgcGFnZXNcblxuICBwcml2YXRlIF9zdHJhdGVneTogUGFnaW5hdGlvblN0cmF0ZWd5ID0gUGFnaW5hdGlvblN0cmF0ZWd5Lk5vbmU7XG4gIHByaXZhdGUgX3JlbW92ZWRSb3dzID0gMDtcblxuICBwcml2YXRlIF9wYWdlQ2hhbmdlZCQgPSBuZXcgU3ViamVjdDxQYWdlQ2hhbmdlPigpO1xuICBwcml2YXRlIF9wYWdlUmVzZXQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfbG9hZE1vcmVFbmFibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2luZmluaXR5U2Nyb2xsRW5hYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9sb2FkTW9yZVRleHQgPSAnTG9hZCBNb3JlJztcbiAgcHJpdmF0ZSBfbGltaXRzID0gWzEwLCAyNSwgNTAsIDEwMCwgMjAwXTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLy8gVG90YWwgcGFnZXNcbiAgc2V0IHBhZ2VzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9wYWdlcyQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgcGFnZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgcGFnZXMkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmUgaWYgcGFnZSB3YXMgY2hhbmdlZFxuICAgKi9cbiAgZ2V0IHBhZ2VDaGFuZ2VkJCgpOiBPYnNlcnZhYmxlPFBhZ2VDaGFuZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZUNoYW5nZWQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgfVxuXG4gIGdldCBwYWdlUmVzZXQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9wYWdlUmVzZXQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBlbmFibGVkXG4gICAqL1xuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaGFzTm9uZVN0cmF0ZWd5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBMaW1pdHNcbiAgICovXG4gIGdldCBsaW1pdHMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLl9saW1pdHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGxpbWl0cywgdXBkYXRlIHBhZ2VzIGFycmF5IGFuZCBzZXQgbmV3IGxpbWl0IHBlciBwYWdlXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgc2V0IGxpbWl0cyh2YWx1ZSkge1xuICAgIHRoaXMuX2xpbWl0cyA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMubGltaXRzLmxlbmd0aCA+IDAgJiYgdGhpcy5saW1pdHMuaW5kZXhPZih0aGlzLmxpbWl0KSA9PT0gLTEpIHtcbiAgICAgIHRoaXMubGltaXQgPSB0aGlzLmxpbWl0c1swXVxuICAgIH0gZWxzZSBpZiAodGhpcy5saW1pdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmxpbWl0ID0gdGhpcy5yZWNvcmRzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcXVlcnkgZm9yIHJlcXVlc3RcbiAgICovXG4gIGdldCBxdWVyeSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U6XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5UGFnZVN0cmF0ZWd5O1xuICAgICAgY2FzZSBQYWdpbmF0aW9uU3RyYXRlZ3kuT2Zmc2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeU9mZnNldFN0cmF0ZWd5O1xuICAgIH1cblxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGdldCBsb2FkTW9yZVF1ZXJ5KCkge1xuICAgIHN3aXRjaCAodGhpcy5zdHJhdGVneSkge1xuICAgICAgY2FzZSBQYWdpbmF0aW9uU3RyYXRlZ3kuUGFnZTpcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnk7XG4gICAgICBjYXNlIFBhZ2luYXRpb25TdHJhdGVneS5PZmZzZXQ6XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xdWVyeU9mZnNldFN0cmF0ZWd5O1xuXG4gICAgICAgIHF1ZXJ5LmxpbWl0ID0gcXVlcnkub2Zmc2V0ICsgcXVlcnkubGltaXQ7XG4gICAgICAgIHF1ZXJ5Lm9mZnNldCA9IDA7XG5cbiAgICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgIH1cblxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyeSBmb3IgUGFnZSBTdHJhdGVneVxuICAgKi9cbiAgZ2V0IHF1ZXJ5UGFnZVN0cmF0ZWd5KCk6IFF1ZXJ5UGFnZVN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5oYXNOb25lU3RyYXRlZ3lcbiAgICAgID8ge31cbiAgICAgIDoge1xuICAgICAgICBwYWdlOiB0aGlzLnBhZ2UgfHwgMSxcbiAgICAgICAgbGltaXQ6IHRoaXMubGltaXQgfHwgMTAsXG4gICAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IGZvciBPZmZzZXQgU3RyYXRlZ3lcbiAgICovXG4gIGdldCBxdWVyeU9mZnNldFN0cmF0ZWd5KCk6IFF1ZXJ5T2Zmc2V0U3RyYXRlZ3kge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnBhZ2UgLSAxIHx8IDA7XG4gICAgY29uc3QgbGltaXQgPSB0aGlzLmxpbWl0IHx8IDU7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb2Zmc2V0OiBwYWdlICogbGltaXQsXG4gICAgICBsaW1pdDogbGltaXQsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBxdWVyeSBmb3IgbG9hZCBvbmx5IGNvdW50IG9mIGRlbGV0ZWQgcm93c1xuICAgKi9cbiAgZ2V0IGxvYWREZWxldGVkT2Zmc2V0UXVlcnkoKSB7XG4gICAgY29uc3QgcGFnaW5hdGlvbk9mZnNldCA9IHRoaXMubGltaXQgKiB0aGlzLnBhZ2U7XG4gICAgY29uc3QgYWN0dWFsT2Zmc2V0ID0gTWF0aC5taW4odGhpcy5yZWNvcmRzLCBwYWdpbmF0aW9uT2Zmc2V0KTtcbiAgICBjb25zdCBvZmZzZXQgPSBNYXRoLm1heCgwLCBhY3R1YWxPZmZzZXQgLSB0aGlzLl9yZW1vdmVkUm93cyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb2Zmc2V0LFxuICAgICAgbGltaXQ6IHRoaXMuX3JlbW92ZWRSb3dzXG4gICAgfVxuICB9XG5cbiAgZ2V0IGluaXRpYWxpemVkKCkge1xuICAgIHJldHVybiAhIXRoaXMucGFnZXM7XG4gIH1cblxuICBnZXQgc3RyYXRlZ3koKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0cmF0ZWd5O1xuICB9XG5cbiAgc2V0IHN0cmF0ZWd5KHN0cmF0ZWd5OiBQYWdpbmF0aW9uU3RyYXRlZ3kpIHtcbiAgICB0aGlzLl9zdHJhdGVneSA9IChzdHJhdGVneSA9PT0gdm9pZCAwKSA/IFBhZ2luYXRpb25TdHJhdGVneS5QYWdlIDogc3RyYXRlZ3k7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgcGFnaW5hdGlvbiBpbiBQYWdlIFN0cmF0ZWd5IE1vZGVcbiAgICovXG4gIGdldCBoYXNQYWdlU3RyYXRlZ3koKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyYXRlZ3kgPT09IFBhZ2luYXRpb25TdHJhdGVneS5QYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHBhZ2luYXRpb24gaW4gT2Zmc2V0IFN0cmF0ZWd5IE1vZGVcbiAgICovXG4gIGdldCBoYXNPZmZzZXRTdHJhdGVneSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBwYWdpbmF0aW9uIGluIE5vbmUgU3RyYXRlZ3kgTW9kZVxuICAgKi9cbiAgZ2V0IGhhc05vbmVTdHJhdGVneSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gUGFnaW5hdGlvblN0cmF0ZWd5Lk5vbmU7XG4gIH1cblxuICAvKipcbiAgICogSWYgcHJldiBwYWdlIGNhbiBiZSBhY3RpdmF0ZWRcbiAgICpcbiAgICovXG4gIGdldCBoYXNQcmV2UGFnZSgpOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U6XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNQcmV2UGFnZVBhZ2VTdHJhdGVneTtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1ByZXZQYWdlT2Zmc2V0U3RyYXRlZ3k7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIG5leHQgcGFnZSBjYW4gYmUgYWN0aXZhdGVkXG4gICAqL1xuICBnZXQgaGFzTmV4dFBhZ2UoKTogYm9vbGVhbiB7IC8vIE5lZWQgdG8gY2hlY2sgaWYgcGFnZXMgPT09IHBhZ2UgJiYgcGFnZSA9PT0gMVxuICAgIHN3aXRjaCAodGhpcy5zdHJhdGVneSkge1xuICAgICAgY2FzZSBQYWdpbmF0aW9uU3RyYXRlZ3kuUGFnZTpcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc05leHRQYWdlUGFnZVN0cmF0ZWd5O1xuICAgICAgY2FzZSBQYWdpbmF0aW9uU3RyYXRlZ3kuT2Zmc2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5faGFzTmV4dFBhZ2VPZmZzZXRTdHJhdGVneTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXQgbG9hZE1vcmVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkTW9yZUVuYWJsZWQ7XG4gIH1cblxuICBnZXQgbG9hZE1vcmVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRNb3JlVGV4dDtcbiAgfVxuXG4gIGdldCBpbmZpbml0eVNjcm9sbEVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luZmluaXR5U2Nyb2xsRW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTUC1UMTk3NFxuICAgKiBTaG93aW5nIDI2LTUwIG9mIDMzMyByZXN1bHRzIHNvcnRlZCBieSBOYW1lLCBBc2NlbmRpbmdcbiAgICogU2hvd2luZyAwIHJlc3VsdHMgc29ydGVkIGJ5IE5hbWUsIEFzY2VuZGluZ1xuICAgKi9cbiAgZ2V0IHN0YXR1c0xhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY3VycmVudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIHRoaXMubGltaXQ7XG4gICAgY29uc3QgZnJvbSA9IGN1cnJlbnQgKyAxO1xuICAgIGNvbnN0IHRvID0gTWF0aC5taW4odGhpcy5yZWNvcmRzLCBjdXJyZW50ICsgdGhpcy5saW1pdCk7XG5cbiAgICByZXR1cm4gYCR7ZnJvbX0tJHt0b31gO1xuICB9XG5cbiAgcHVibGljIGluaXRXaXRoQ29uZmlnKFxuICAgIGNvbmZpZzogRnNQYWdpbmcgfCBmYWxzZSxcbiAgICBsb2FkTW9yZTogRnNMaXN0TG9hZE1vcmVDb25maWcgfCBib29sZWFuLFxuICAgIGluZmluaXR5U2Nyb2xsRW5hYmxlZCA9IGZhbHNlLFxuICApIHtcblxuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGlmIChjb25maWcubGltaXRzKSB7XG4gICAgICAgIHRoaXMubGltaXRzID0gY29uZmlnLmxpbWl0cztcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmZpZy5saW1pdCkge1xuICAgICAgICB0aGlzLmxpbWl0ID0gY29uZmlnLmxpbWl0O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0cmF0ZWd5ID0gY29uZmlnLnN0cmF0ZWd5O1xuICAgIH1cblxuICAgIGlmIChsb2FkTW9yZSkge1xuICAgICAgdGhpcy5zZXRMb2FkTW9yZShsb2FkTW9yZSk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5maW5pdHlTY3JvbGxFbmFibGVkID0gaW5maW5pdHlTY3JvbGxFbmFibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHBhZ2luYXRpb24gaGFzIHByZXYgcGFnZSB3aGVuIFBhZ2UgU3RyYXRlZ3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IF9oYXNQcmV2UGFnZVBhZ2VTdHJhdGVneSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlID4gMSAmJiB0aGlzLnBhZ2VzID4gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwYWdpbmF0aW9uIGhhcyBwcmV2IHBhZ2Ugd2hlbiBPZmZzZXQgU3RyYXRlZ3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IF9oYXNQcmV2UGFnZU9mZnNldFN0cmF0ZWd5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9mZnNldCA+PSB0aGlzLmxpbWl0ICYmIHRoaXMucmVjb3JkcyA+IDE7XG4gIH1cblxuICAvKipcbiAgICogSWYgcGFnaW5hdGlvbiBoYXMgbmV4dCBwYWdlIHdoZW4gUGFnZSBTdHJhdGVneVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgX2hhc05leHRQYWdlUGFnZVN0cmF0ZWd5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhZ2UgPCB0aGlzLnBhZ2VzICYmIHRoaXMucGFnZXMgPiAxO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHBhZ2luYXRpb24gaGFzIG5leHQgcGFnZSB3aGVuIE9mZnNldCBTdHJhdGVneVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgX2hhc05leHRQYWdlT2Zmc2V0U3RyYXRlZ3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLm9mZnNldCArIHRoaXMubGltaXQpIDwgdGhpcy5yZWNvcmRzICYmIHRoaXMucmVjb3JkcyA+IDE7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHBhZ2luZyBjb25maWcgYW5kIGFsbCByZWxhdGVkIGZpZWxkc1xuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqIEBwYXJhbSBkaXNwbGF5ZWRSZWNvcmRzXG4gICAqIEBwYXJhbSBsb2FkTW9yZU9wZXJhdGlvblxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVBhZ2luZyhjb25maWcsIGRpc3BsYXllZFJlY29yZHMgPSAwLCBsb2FkTW9yZU9wZXJhdGlvbiA9IGZhbHNlKSB7XG4gICAgaWYgKCFsb2FkTW9yZU9wZXJhdGlvbikge1xuICAgICAgdGhpcy5fZnJvbVBhcmFtcyhjb25maWcpO1xuICAgICAgdGhpcy5kaXNwbGF5ZWQgPSBkaXNwbGF5ZWRSZWNvcmRzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlY29yZHMgPSBjb25maWcucmVjb3JkcztcblxuICAgICAgaWYgKHRoaXMucmVjb3JkcyA8IHRoaXMuZGlzcGxheWVkKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkID0gdGhpcy5yZWNvcmRzO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9yZW1vdmVkUm93cyA9IDA7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVUb3RhbFBhZ2VzKCk7XG4gIH1cblxuICAvLyAvKipcbiAgLy8gICogVXBkYXRlIHBhZ2luZyB3aGVuIGRhdGEgc291cmNlIG5vdCByZW1vdmVcbiAgLy8gICogQHBhcmFtIHthbnlbXX0gcm93c1xuICAvLyAgKi9cbiAgLypwdWJsaWMgdXBkYXRlUGFnaW5nTWFudWFsKHJvd3M6IGFueVtdKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocm93cykgJiYgcm93cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnJlY29yZHMgPSByb3dzLmxlbmd0aDtcbiAgICAgIHRoaXMucGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyB0aGlzLmxpbWl0KTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVBhZ2VzQXJyYXkoKTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXllZCgpO1xuICB9Ki9cblxuICAvKipcbiAgICogVXBkYXRlIHBhZ2VzIGFycmF5IHdpdGggbmV3IHBhZ2VzIGNvdW50XG4gICAqL1xuICAvLyBwdWJsaWMgdXBkYXRlUGFnZXNBcnJheSgpIHtcbiAgLy8gICBjb25zdCBNSURETEUgPSAyO1xuICAvLyAgIGNvbnN0IHBhZ2VzQXJyID0gW107XG5cbiAgLy8gICBsZXQgZnJvbSA9IDA7XG4gIC8vICAgbGV0IHRvID0gMDtcbiAgLy8gICBpZiAodGhpcy5wYWdlIDwgTUlERExFKSB7XG4gIC8vICAgICBmcm9tID0gTUlERExFIC0gMTtcbiAgLy8gICAgIHRvID0gTUlERExFICsgMTtcbiAgLy8gICB9IGVsc2UgaWYgKHRoaXMucGFnZSA+PSBNSURETEUgJiYgdGhpcy5wYWdlIDw9IHRoaXMucGFnZXMgLSBNSURETEUgKyAxKSB7XG4gIC8vICAgICBmcm9tID0gdGhpcy5wYWdlIC0gMTtcbiAgLy8gICAgIHRvID0gdGhpcy5wYWdlICsgMTtcbiAgLy8gICB9IGVsc2UgaWYgKHRoaXMucGFnZSA+IHRoaXMucGFnZXMgLSBNSURETEUgKyAxKSB7XG4gIC8vICAgICBmcm9tID0gdGhpcy5wYWdlcyAtIE1JRERMRSAtIDE7XG4gIC8vICAgICB0byA9IHRoaXMucGFnZXM7XG4gIC8vICAgfVxuXG4gIC8vICAgaWYgKCF0aGlzLnBhZ2VzIHx8IHRoaXMucGFnZXMgPCA1KSB7XG4gIC8vICAgICBmcm9tID0gMTtcbiAgLy8gICAgIHRvID0gdGhpcy5wYWdlcyB8fCAwO1xuICAvLyAgIH1cblxuICAvLyAgIGZvciAobGV0IGkgPSBmcm9tOyBpIDw9IHRvOyBpKyspIHtcbiAgLy8gICAgIHBhZ2VzQXJyLnB1c2goaSk7XG4gIC8vICAgfVxuXG4gIC8vICAgdGhpcy5wYWdlc0FycmF5ID0gT2JqZWN0LmFzc2lnbihbXSwgcGFnZXNBcnIpO1xuICAvLyB9XG5cbiAgcHVibGljIHNldExvYWRNb3JlKGNvbmZpZzogRnNMaXN0TG9hZE1vcmVDb25maWcgfCBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZE1vcmVFbmFibGVkID0gISFjb25maWc7XG5cbiAgICBpZiAodGhpcy5fbG9hZE1vcmVFbmFibGVkICYmIGlzT2JqZWN0KGNvbmZpZykgJiYgKGNvbmZpZyBhcyBGc0xpc3RMb2FkTW9yZUNvbmZpZykubGFiZWwpIHtcbiAgICAgIHRoaXMuX2xvYWRNb3JlVGV4dCA9IChjb25maWcgYXMgRnNMaXN0TG9hZE1vcmVDb25maWcpLmxhYmVsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZGlzcGF5ZWQgcmVjb3JkcyBjb3VudGVyXG4gICAqL1xuICAvLyBwdWJsaWMgdXBkYXRlRGlzcGxheWVkKCkge1xuICAvLyAgIHRoaXMuZGlzcGxheWVkID0gdGhpcy5nZXRWaXNpYmxlUmVjb3JkcygpO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBjb3VudCBvZiByZWNvcmRzIHRoYXQgY291bGQgYmUgc2hvd24gb24gcGFnZVxuICAgKi9cbiAgLy8gcHVibGljIGdldFZpc2libGVSZWNvcmRzKCkge1xuICAvLyAgIGNvbnN0IGRpZmYgPSB0aGlzLmhhc09mZnNldFN0cmF0ZWd5XG4gIC8vICAgICA/IHRoaXMucmVjb3JkcyAtIHRoaXMub2Zmc2V0XG4gIC8vICAgICA6IHRoaXMubGltaXQ7XG4gIC8vXG4gIC8vICAgcmV0dXJuIGRpZmYgPCB0aGlzLmxpbWl0XG4gIC8vICAgICA/IGRpZmZcbiAgLy8gICAgIDogdGhpcy5kaXNwbGF5ZWQ7XG4gIC8vIH1cblxuICBwdWJsaWMgZ2V0VmlzaWJsZVJlY29yZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheWVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgbGltaXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqL1xuICBwdWJsaWMgc2V0TGltaXQobGltaXQpIHtcbiAgICB0aGlzLmxpbWl0ID0gbGltaXQ7XG4gICAgdGhpcy5yZXNldFBhZ2luZygpO1xuXG4gICAgdGhpcy5fcGFnZUNoYW5nZWQkLm5leHQoe1xuICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuTGltaXRDaGFuZ2VkLFxuICAgICAgcGF5bG9hZDogbGltaXRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwYWdlIGlzIGFjdGl2YXRlIHBhZ2VcbiAgICogQHBhcmFtIHBhZ2VcbiAgICovXG4gIHB1YmxpYyBpc0FjdGl2ZShwYWdlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IHRoaXMucGFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBwYWdlXG4gICAqIEBwYXJhbSBwYWdlXG4gICAqL1xuICBwdWJsaWMgZ29Ub1BhZ2UocGFnZSkge1xuICAgIGlmIChwYWdlID49IDEgJiYgdGhpcy5wYWdlICE9PSBwYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xuXG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIHR5cGU6IFBhZ2VDaGFuZ2VUeXBlLkRlZmF1bHQsXG4gICAgICAgIHBheWxvYWQ6IHBhZ2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBwYWdpbmcgbGlrZSBpdCB3YXMganVzdCBpbml0aWFsaXplZFxuICAgKi9cbiAgcHVibGljIHJlc2V0UGFnaW5nKCkge1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgdGhpcy5vZmZzZXQgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIG5leHQgcGFnZVxuICAgKi9cbiAgcHVibGljIGdvTmV4dCgpIHtcbiAgICBpZiAodGhpcy5oYXNOZXh0UGFnZSkge1xuICAgICAgdGhpcy5wYWdlKys7XG5cbiAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG5cbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkJC5uZXh0KHtcbiAgICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuRGVmYXVsdCxcbiAgICAgICAgcGF5bG9hZDogdGhpcy5wYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIGZpcnN0IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnb0ZpcnN0KCkge1xuICAgIGlmICh0aGlzLnBhZ2UgPiAxKSB7XG4gICAgICB0aGlzLnBhZ2UgPSAxO1xuXG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIHR5cGU6IFBhZ2VDaGFuZ2VUeXBlLkRlZmF1bHQsXG4gICAgICAgIHBheWxvYWQ6IHRoaXMucGFnZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBwcmV2IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnb1ByZXYoKSB7XG4gICAgaWYgKHRoaXMucGFnZSA+IDEpIHtcbiAgICAgIHRoaXMucGFnZS0tO1xuXG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIHR5cGU6IFBhZ2VDaGFuZ2VUeXBlLkRlZmF1bHQsXG4gICAgICAgIHBheWxvYWQ6IHRoaXMucGFnZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBsYXN0IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnb0xhc3QoKSB7XG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMucGFnZXMpIHtcbiAgICAgIHRoaXMucGFnZSA9IHRoaXMucGFnZXM7XG5cbiAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG5cbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkJC5uZXh0KHtcbiAgICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuRGVmYXVsdCxcbiAgICAgICAgcGF5bG9hZDogdGhpcy5wYWdlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNvdW50IG9mIGRlbGV0ZWQgcm93cy4gVGhpcyBjb3VudCB3aWxsIGJlIGFwcGxpZWQgZm9yIG9mZnNldCBjYWxjXG4gICAqIEBwYXJhbSBjb3VudFxuICAgKi9cbiAgcHVibGljIHJlbW92ZVJvd3MoY291bnQ6IG51bWJlcikge1xuICAgIHRoaXMuX3JlbW92ZWRSb3dzICs9IGNvdW50O1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBhZ2luYXRpb24oKSB7XG4gICAgdGhpcy51cGRhdGVUb3RhbFBhZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveVxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fb25EZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBwYWdpbmcgc3RhdGVcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgcHJpdmF0ZSBfZnJvbVBhcmFtcyhwYXJhbXMpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubG9hZE1vcmVFbmFibGVkKSB7XG4gICAgICB0aGlzLmxpbWl0ID0gcGFyYW1zLmxpbWl0ID8/IDI1O1xuICAgIH1cblxuICAgIHRoaXMucmVjb3JkcyA9IHBhcmFtcy5yZWNvcmRzO1xuICAgIHRoaXMubWFudWFsID0gcGFyYW1zLm1hbnVhbDtcblxuICAgIHRoaXMucGFnZXMgPSBwYXJhbXMucGFnZXMgfHwgMFxuICB9XG5cbiAgLyoqXG4gICAqIENhbGMgYW5kIHVwZGF0ZSBvZmZzZXRcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlT2Zmc2V0KCkge1xuICAgIHRoaXMub2Zmc2V0ID0gdGhpcy5saW1pdCAqICh0aGlzLnBhZ2UgLSAxKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjIGFuZCB1cGRhdGUgdG90YWwgY291bnQgb2YgcGFnZXNcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlVG90YWxQYWdlcygpIHtcbiAgICB0aGlzLnBhZ2VzID0gTWF0aC5jZWlsKHRoaXMucmVjb3JkcyAvIHRoaXMubGltaXQpO1xuICB9XG59XG4iXX0=
461
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1jb250cm9sbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jbGFzc2VzL3BhZ2luYXRpb24tY29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFaEUsTUFBTSxPQUFPLG9CQUFvQjtJQTBCL0I7UUF4Qk8sVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFFZixTQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUN4QixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLDBCQUEwQjtRQUNuQixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRWIsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYztRQUV4RCxjQUFTLEdBQXVCLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUN4RCxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQixrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFDMUMsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2xDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUU1QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLGtCQUFhLEdBQUcsV0FBVyxDQUFDO1FBQzVCLFlBQU8sR0FBRyxD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QU0sQ0FBQztRQUU1QixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVk7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQge1xuICBGc0xpc3RMb2FkTW9yZUNvbmZpZyxcbiAgRnNQYWdpbmcsXG4gIFBhZ2VDaGFuZ2UsXG4gIFF1ZXJ5T2Zmc2V0U3RyYXRlZ3ksXG4gIFF1ZXJ5UGFnZVN0cmF0ZWd5LFxufSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBhZ2luYXRpb25TdHJhdGVneSB9IGZyb20gJy4uL2VudW1zL3BhZ2luYXRpb24tc3RyYXRlZ3kuZW51bSc7XG5pbXBvcnQgeyBQYWdlQ2hhbmdlVHlwZSB9IGZyb20gJy4uL2VudW1zL3BhZ2UtY2hhbmdlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uQ29udHJvbGxlciB7XG5cbiAgcHVibGljIGxpbWl0ID0gMjU7XG4gIHB1YmxpYyByZWNvcmRzOiBudW1iZXI7XG4gIHB1YmxpYyBtYW51YWwgPSBmYWxzZTtcblxuICBwdWJsaWMgcGFnZSA9IDE7IC8vIEFjdGl2ZSBwYWdlXG4gIHB1YmxpYyBvZmZzZXQgPSAwO1xuXG4gIC8vIHB1YmxpYyBwYWdlc0FycmF5ID0gW107XG4gIHB1YmxpYyBkaXNwbGF5ZWQgPSAwO1xuXG4gIHByaXZhdGUgX3BhZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTsgLy8gVG90YWwgcGFnZXNcblxuICBwcml2YXRlIF9zdHJhdGVneTogUGFnaW5hdGlvblN0cmF0ZWd5ID0gUGFnaW5hdGlvblN0cmF0ZWd5Lk5vbmU7XG4gIHByaXZhdGUgX3JlbW92ZWRSb3dzID0gMDtcblxuICBwcml2YXRlIF9wYWdlQ2hhbmdlZCQgPSBuZXcgU3ViamVjdDxQYWdlQ2hhbmdlPigpO1xuICBwcml2YXRlIF9wYWdlUmVzZXQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBfbG9hZE1vcmVFbmFibGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2luZmluaXR5U2Nyb2xsRW5hYmxlZCA9IGZhbHNlO1xuICBwcml2YXRlIF9sb2FkTW9yZVRleHQgPSAnTG9hZCBNb3JlJztcbiAgcHJpdmF0ZSBfbGltaXRzID0gWzEwLCAyNSwgNTAsIDEwMCwgMjAwXTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgLy8gVG90YWwgcGFnZXNcbiAgc2V0IHBhZ2VzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9wYWdlcyQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgcGFnZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBnZXQgcGFnZXMkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VzJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmUgaWYgcGFnZSB3YXMgY2hhbmdlZFxuICAgKi9cbiAgZ2V0IHBhZ2VDaGFuZ2VkJCgpOiBPYnNlcnZhYmxlPFBhZ2VDaGFuZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZUNoYW5nZWQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgfVxuXG4gIGdldCBwYWdlUmVzZXQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9wYWdlUmVzZXQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBlbmFibGVkXG4gICAqL1xuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaGFzTm9uZVN0cmF0ZWd5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBMaW1pdHNcbiAgICovXG4gIGdldCBsaW1pdHMoKTogbnVtYmVyW10ge1xuICAgIHJldHVybiB0aGlzLl9saW1pdHM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGxpbWl0cywgdXBkYXRlIHBhZ2VzIGFycmF5IGFuZCBzZXQgbmV3IGxpbWl0IHBlciBwYWdlXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgc2V0IGxpbWl0cyh2YWx1ZSkge1xuICAgIHRoaXMuX2xpbWl0cyA9IHZhbHVlO1xuXG4gICAgaWYgKHRoaXMubGltaXRzLmxlbmd0aCA+IDAgJiYgdGhpcy5saW1pdHMuaW5kZXhPZih0aGlzLmxpbWl0KSA9PT0gLTEpIHtcbiAgICAgIHRoaXMubGltaXQgPSB0aGlzLmxpbWl0c1swXVxuICAgIH0gZWxzZSBpZiAodGhpcy5saW1pdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmxpbWl0ID0gdGhpcy5yZWNvcmRzO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcXVlcnkgZm9yIHJlcXVlc3RcbiAgICovXG4gIGdldCBxdWVyeSgpIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U6XG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5UGFnZVN0cmF0ZWd5O1xuICAgICAgY2FzZSBQYWdpbmF0aW9uU3RyYXRlZ3kuT2Zmc2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeU9mZnNldFN0cmF0ZWd5O1xuICAgIH1cblxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGdldCBsb2FkTW9yZVF1ZXJ5KCkge1xuICAgIHN3aXRjaCAodGhpcy5zdHJhdGVneSkge1xuICAgICAgY2FzZSBQYWdpbmF0aW9uU3RyYXRlZ3kuUGFnZTpcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcnk7XG4gICAgICBjYXNlIFBhZ2luYXRpb25TdHJhdGVneS5PZmZzZXQ6XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5xdWVyeU9mZnNldFN0cmF0ZWd5O1xuXG4gICAgICAgIHF1ZXJ5LmxpbWl0ID0gcXVlcnkub2Zmc2V0ICsgcXVlcnkubGltaXQ7XG4gICAgICAgIHF1ZXJ5Lm9mZnNldCA9IDA7XG5cbiAgICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgIH1cblxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyeSBmb3IgUGFnZSBTdHJhdGVneVxuICAgKi9cbiAgZ2V0IHF1ZXJ5UGFnZVN0cmF0ZWd5KCk6IFF1ZXJ5UGFnZVN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5oYXNOb25lU3RyYXRlZ3lcbiAgICAgID8ge31cbiAgICAgIDoge1xuICAgICAgICBwYWdlOiB0aGlzLnBhZ2UgfHwgMSxcbiAgICAgICAgbGltaXQ6IHRoaXMubGltaXQgfHwgMTAsXG4gICAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFF1ZXJ5IGZvciBPZmZzZXQgU3RyYXRlZ3lcbiAgICovXG4gIGdldCBxdWVyeU9mZnNldFN0cmF0ZWd5KCk6IFF1ZXJ5T2Zmc2V0U3RyYXRlZ3kge1xuICAgIGNvbnN0IHBhZ2UgPSB0aGlzLnBhZ2UgLSAxIHx8IDA7XG4gICAgY29uc3QgbGltaXQgPSB0aGlzLmxpbWl0IHx8IDU7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb2Zmc2V0OiBwYWdlICogbGltaXQsXG4gICAgICBsaW1pdDogbGltaXQsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBxdWVyeSBmb3IgbG9hZCBvbmx5IGNvdW50IG9mIGRlbGV0ZWQgcm93c1xuICAgKi9cbiAgZ2V0IGxvYWREZWxldGVkT2Zmc2V0UXVlcnkoKSB7XG4gICAgY29uc3QgcGFnaW5hdGlvbk9mZnNldCA9IHRoaXMubGltaXQgKiB0aGlzLnBhZ2U7XG4gICAgY29uc3QgYWN0dWFsT2Zmc2V0ID0gTWF0aC5taW4odGhpcy5yZWNvcmRzLCBwYWdpbmF0aW9uT2Zmc2V0KTtcbiAgICBjb25zdCBvZmZzZXQgPSBNYXRoLm1heCgwLCBhY3R1YWxPZmZzZXQgLSB0aGlzLl9yZW1vdmVkUm93cyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb2Zmc2V0LFxuICAgICAgbGltaXQ6IHRoaXMuX3JlbW92ZWRSb3dzXG4gICAgfVxuICB9XG5cbiAgZ2V0IGluaXRpYWxpemVkKCkge1xuICAgIHJldHVybiAhIXRoaXMucGFnZXM7XG4gIH1cblxuICBnZXQgc3RyYXRlZ3koKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0cmF0ZWd5O1xuICB9XG5cbiAgc2V0IHN0cmF0ZWd5KHN0cmF0ZWd5OiBQYWdpbmF0aW9uU3RyYXRlZ3kpIHtcbiAgICB0aGlzLl9zdHJhdGVneSA9IChzdHJhdGVneSA9PT0gdm9pZCAwKSA/IFBhZ2luYXRpb25TdHJhdGVneS5QYWdlIDogc3RyYXRlZ3k7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgcGFnaW5hdGlvbiBpbiBQYWdlIFN0cmF0ZWd5IE1vZGVcbiAgICovXG4gIGdldCBoYXNQYWdlU3RyYXRlZ3koKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyYXRlZ3kgPT09IFBhZ2luYXRpb25TdHJhdGVneS5QYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHBhZ2luYXRpb24gaW4gT2Zmc2V0IFN0cmF0ZWd5IE1vZGVcbiAgICovXG4gIGdldCBoYXNPZmZzZXRTdHJhdGVneSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBwYWdpbmF0aW9uIGluIE5vbmUgU3RyYXRlZ3kgTW9kZVxuICAgKi9cbiAgZ2V0IGhhc05vbmVTdHJhdGVneSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdHJhdGVneSA9PT0gUGFnaW5hdGlvblN0cmF0ZWd5Lk5vbmU7XG4gIH1cblxuICAvKipcbiAgICogSWYgcHJldiBwYWdlIGNhbiBiZSBhY3RpdmF0ZWRcbiAgICpcbiAgICovXG4gIGdldCBoYXNQcmV2UGFnZSgpOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKHRoaXMuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5LlBhZ2U6XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNQcmV2UGFnZVBhZ2VTdHJhdGVneTtcbiAgICAgIGNhc2UgUGFnaW5hdGlvblN0cmF0ZWd5Lk9mZnNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1ByZXZQYWdlT2Zmc2V0U3RyYXRlZ3k7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIG5leHQgcGFnZSBjYW4gYmUgYWN0aXZhdGVkXG4gICAqL1xuICBnZXQgaGFzTmV4dFBhZ2UoKTogYm9vbGVhbiB7IC8vIE5lZWQgdG8gY2hlY2sgaWYgcGFnZXMgPT09IHBhZ2UgJiYgcGFnZSA9PT0gMVxuICAgIHN3aXRjaCAodGhpcy5zdHJhdGVneSkge1xuICAgICAgY2FzZSBQYWdpbmF0aW9uU3RyYXRlZ3kuUGFnZTpcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc05leHRQYWdlUGFnZVN0cmF0ZWd5O1xuICAgICAgY2FzZSBQYWdpbmF0aW9uU3RyYXRlZ3kuT2Zmc2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5faGFzTmV4dFBhZ2VPZmZzZXRTdHJhdGVneTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBnZXQgbG9hZE1vcmVFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkTW9yZUVuYWJsZWQ7XG4gIH1cblxuICBnZXQgbG9hZE1vcmVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2xvYWRNb3JlVGV4dDtcbiAgfVxuXG4gIGdldCBpbmZpbml0eVNjcm9sbEVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luZmluaXR5U2Nyb2xsRW5hYmxlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTUC1UMTk3NFxuICAgKiBTaG93aW5nIDI2LTUwIG9mIDMzMyByZXN1bHRzIHNvcnRlZCBieSBOYW1lLCBBc2NlbmRpbmdcbiAgICogU2hvd2luZyAwIHJlc3VsdHMgc29ydGVkIGJ5IE5hbWUsIEFzY2VuZGluZ1xuICAgKi9cbiAgZ2V0IHN0YXR1c0xhYmVsKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY3VycmVudCA9ICh0aGlzLnBhZ2UgLSAxKSAqIHRoaXMubGltaXQ7XG4gICAgY29uc3QgZnJvbSA9IGN1cnJlbnQgKyAxO1xuICAgIGNvbnN0IHRvID0gTWF0aC5taW4odGhpcy5yZWNvcmRzLCBjdXJyZW50ICsgdGhpcy5saW1pdCk7XG5cbiAgICByZXR1cm4gYCR7ZnJvbX0tJHt0b31gO1xuICB9XG5cbiAgcHVibGljIGluaXRXaXRoQ29uZmlnKFxuICAgIGNvbmZpZzogRnNQYWdpbmcgfCBmYWxzZSxcbiAgICBsb2FkTW9yZTogRnNMaXN0TG9hZE1vcmVDb25maWcgfCBib29sZWFuLFxuICAgIGluZmluaXR5U2Nyb2xsRW5hYmxlZCA9IGZhbHNlLFxuICApIHtcblxuICAgIGlmIChjb25maWcpIHtcbiAgICAgIGlmIChjb25maWcubGltaXRzKSB7XG4gICAgICAgIHRoaXMubGltaXRzID0gY29uZmlnLmxpbWl0cztcbiAgICAgIH1cblxuICAgICAgaWYgKGNvbmZpZy5saW1pdCkge1xuICAgICAgICB0aGlzLmxpbWl0ID0gY29uZmlnLmxpbWl0O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0cmF0ZWd5ID0gY29uZmlnLnN0cmF0ZWd5O1xuICAgIH1cblxuICAgIGlmIChsb2FkTW9yZSkge1xuICAgICAgdGhpcy5zZXRMb2FkTW9yZShsb2FkTW9yZSk7XG4gICAgfVxuXG4gICAgdGhpcy5faW5maW5pdHlTY3JvbGxFbmFibGVkID0gaW5maW5pdHlTY3JvbGxFbmFibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHBhZ2luYXRpb24gaGFzIHByZXYgcGFnZSB3aGVuIFBhZ2UgU3RyYXRlZ3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IF9oYXNQcmV2UGFnZVBhZ2VTdHJhdGVneSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wYWdlID4gMSAmJiB0aGlzLnBhZ2VzID4gMTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwYWdpbmF0aW9uIGhhcyBwcmV2IHBhZ2Ugd2hlbiBPZmZzZXQgU3RyYXRlZ3lcbiAgICovXG4gIHByaXZhdGUgZ2V0IF9oYXNQcmV2UGFnZU9mZnNldFN0cmF0ZWd5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9mZnNldCA+PSB0aGlzLmxpbWl0ICYmIHRoaXMucmVjb3JkcyA+IDE7XG4gIH1cblxuICAvKipcbiAgICogSWYgcGFnaW5hdGlvbiBoYXMgbmV4dCBwYWdlIHdoZW4gUGFnZSBTdHJhdGVneVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgX2hhc05leHRQYWdlUGFnZVN0cmF0ZWd5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBhZ2UgPCB0aGlzLnBhZ2VzICYmIHRoaXMucGFnZXMgPiAxO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHBhZ2luYXRpb24gaGFzIG5leHQgcGFnZSB3aGVuIE9mZnNldCBTdHJhdGVneVxuICAgKi9cbiAgcHJpdmF0ZSBnZXQgX2hhc05leHRQYWdlT2Zmc2V0U3RyYXRlZ3koKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLm9mZnNldCArIHRoaXMubGltaXQpIDwgdGhpcy5yZWNvcmRzICYmIHRoaXMucmVjb3JkcyA+IDE7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHBhZ2luZyBjb25maWcgYW5kIGFsbCByZWxhdGVkIGZpZWxkc1xuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqIEBwYXJhbSBkaXNwbGF5ZWRSZWNvcmRzXG4gICAqIEBwYXJhbSBsb2FkTW9yZU9wZXJhdGlvblxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVBhZ2luZyhjb25maWcsIGRpc3BsYXllZFJlY29yZHMgPSAwLCBsb2FkTW9yZU9wZXJhdGlvbiA9IGZhbHNlKSB7XG4gICAgaWYgKCFsb2FkTW9yZU9wZXJhdGlvbikge1xuICAgICAgdGhpcy5fZnJvbVBhcmFtcyhjb25maWcpO1xuICAgICAgdGhpcy5kaXNwbGF5ZWQgPSBkaXNwbGF5ZWRSZWNvcmRzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlY29yZHMgPSBjb25maWcucmVjb3JkcztcblxuICAgICAgaWYgKHRoaXMucmVjb3JkcyA8IHRoaXMuZGlzcGxheWVkKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheWVkID0gdGhpcy5yZWNvcmRzO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9yZW1vdmVkUm93cyA9IDA7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVUb3RhbFBhZ2VzKCk7XG4gIH1cblxuICAvLyAvKipcbiAgLy8gICogVXBkYXRlIHBhZ2luZyB3aGVuIGRhdGEgc291cmNlIG5vdCByZW1vdmVcbiAgLy8gICogQHBhcmFtIHthbnlbXX0gcm93c1xuICAvLyAgKi9cbiAgLypwdWJsaWMgdXBkYXRlUGFnaW5nTWFudWFsKHJvd3M6IGFueVtdKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocm93cykgJiYgcm93cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnJlY29yZHMgPSByb3dzLmxlbmd0aDtcbiAgICAgIHRoaXMucGFnZXMgPSBNYXRoLmNlaWwocm93cy5sZW5ndGggLyB0aGlzLmxpbWl0KTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVBhZ2VzQXJyYXkoKTtcbiAgICB0aGlzLnVwZGF0ZURpc3BsYXllZCgpO1xuICB9Ki9cblxuICAvKipcbiAgICogVXBkYXRlIHBhZ2VzIGFycmF5IHdpdGggbmV3IHBhZ2VzIGNvdW50XG4gICAqL1xuICAvLyBwdWJsaWMgdXBkYXRlUGFnZXNBcnJheSgpIHtcbiAgLy8gICBjb25zdCBNSURETEUgPSAyO1xuICAvLyAgIGNvbnN0IHBhZ2VzQXJyID0gW107XG5cbiAgLy8gICBsZXQgZnJvbSA9IDA7XG4gIC8vICAgbGV0IHRvID0gMDtcbiAgLy8gICBpZiAodGhpcy5wYWdlIDwgTUlERExFKSB7XG4gIC8vICAgICBmcm9tID0gTUlERExFIC0gMTtcbiAgLy8gICAgIHRvID0gTUlERExFICsgMTtcbiAgLy8gICB9IGVsc2UgaWYgKHRoaXMucGFnZSA+PSBNSURETEUgJiYgdGhpcy5wYWdlIDw9IHRoaXMucGFnZXMgLSBNSURETEUgKyAxKSB7XG4gIC8vICAgICBmcm9tID0gdGhpcy5wYWdlIC0gMTtcbiAgLy8gICAgIHRvID0gdGhpcy5wYWdlICsgMTtcbiAgLy8gICB9IGVsc2UgaWYgKHRoaXMucGFnZSA+IHRoaXMucGFnZXMgLSBNSURETEUgKyAxKSB7XG4gIC8vICAgICBmcm9tID0gdGhpcy5wYWdlcyAtIE1JRERMRSAtIDE7XG4gIC8vICAgICB0byA9IHRoaXMucGFnZXM7XG4gIC8vICAgfVxuXG4gIC8vICAgaWYgKCF0aGlzLnBhZ2VzIHx8IHRoaXMucGFnZXMgPCA1KSB7XG4gIC8vICAgICBmcm9tID0gMTtcbiAgLy8gICAgIHRvID0gdGhpcy5wYWdlcyB8fCAwO1xuICAvLyAgIH1cblxuICAvLyAgIGZvciAobGV0IGkgPSBmcm9tOyBpIDw9IHRvOyBpKyspIHtcbiAgLy8gICAgIHBhZ2VzQXJyLnB1c2goaSk7XG4gIC8vICAgfVxuXG4gIC8vICAgdGhpcy5wYWdlc0FycmF5ID0gT2JqZWN0LmFzc2lnbihbXSwgcGFnZXNBcnIpO1xuICAvLyB9XG5cbiAgcHVibGljIHNldExvYWRNb3JlKGNvbmZpZzogRnNMaXN0TG9hZE1vcmVDb25maWcgfCBib29sZWFuKSB7XG4gICAgdGhpcy5fbG9hZE1vcmVFbmFibGVkID0gISFjb25maWc7XG5cbiAgICBpZiAodGhpcy5fbG9hZE1vcmVFbmFibGVkICYmIGlzT2JqZWN0KGNvbmZpZykgJiYgKGNvbmZpZyBhcyBGc0xpc3RMb2FkTW9yZUNvbmZpZykubGFiZWwpIHtcbiAgICAgIHRoaXMuX2xvYWRNb3JlVGV4dCA9IChjb25maWcgYXMgRnNMaXN0TG9hZE1vcmVDb25maWcpLmxhYmVsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZGlzcGF5ZWQgcmVjb3JkcyBjb3VudGVyXG4gICAqL1xuICAvLyBwdWJsaWMgdXBkYXRlRGlzcGxheWVkKCkge1xuICAvLyAgIHRoaXMuZGlzcGxheWVkID0gdGhpcy5nZXRWaXNpYmxlUmVjb3JkcygpO1xuICAvLyB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBjb3VudCBvZiByZWNvcmRzIHRoYXQgY291bGQgYmUgc2hvd24gb24gcGFnZVxuICAgKi9cbiAgLy8gcHVibGljIGdldFZpc2libGVSZWNvcmRzKCkge1xuICAvLyAgIGNvbnN0IGRpZmYgPSB0aGlzLmhhc09mZnNldFN0cmF0ZWd5XG4gIC8vICAgICA/IHRoaXMucmVjb3JkcyAtIHRoaXMub2Zmc2V0XG4gIC8vICAgICA6IHRoaXMubGltaXQ7XG4gIC8vXG4gIC8vICAgcmV0dXJuIGRpZmYgPCB0aGlzLmxpbWl0XG4gIC8vICAgICA/IGRpZmZcbiAgLy8gICAgIDogdGhpcy5kaXNwbGF5ZWQ7XG4gIC8vIH1cblxuICBwdWJsaWMgZ2V0VmlzaWJsZVJlY29yZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheWVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBuZXcgbGltaXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqL1xuICBwdWJsaWMgc2V0TGltaXQobGltaXQpIHtcbiAgICB0aGlzLmxpbWl0ID0gbGltaXQ7XG4gICAgdGhpcy5yZXNldFBhZ2luZygpO1xuXG4gICAgdGhpcy5fcGFnZUNoYW5nZWQkLm5leHQoe1xuICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuTGltaXRDaGFuZ2VkLFxuICAgICAgcGF5bG9hZDogbGltaXRcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiBwYWdlIGlzIGFjdGl2YXRlIHBhZ2VcbiAgICogQHBhcmFtIHBhZ2VcbiAgICovXG4gIHB1YmxpYyBpc0FjdGl2ZShwYWdlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHBhZ2UgPT09IHRoaXMucGFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBwYWdlXG4gICAqIEBwYXJhbSBwYWdlXG4gICAqL1xuICBwdWJsaWMgZ29Ub1BhZ2UocGFnZSkge1xuICAgIGlmIChwYWdlID49IDEgJiYgdGhpcy5wYWdlICE9PSBwYWdlKSB7XG4gICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xuXG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIHR5cGU6IFBhZ2VDaGFuZ2VUeXBlLkRlZmF1bHQsXG4gICAgICAgIHBheWxvYWQ6IHBhZ2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBwYWdpbmcgbGlrZSBpdCB3YXMganVzdCBpbml0aWFsaXplZFxuICAgKi9cbiAgcHVibGljIHJlc2V0UGFnaW5nKCkge1xuICAgIHRoaXMucGFnZSA9IDE7XG4gICAgdGhpcy5vZmZzZXQgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIG5leHQgcGFnZVxuICAgKi9cbiAgcHVibGljIGdvTmV4dCgpIHtcbiAgICBpZiAodGhpcy5oYXNOZXh0UGFnZSkge1xuICAgICAgdGhpcy5wYWdlKys7XG5cbiAgICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG5cbiAgICAgIHRoaXMuX3BhZ2VDaGFuZ2VkJC5uZXh0KHtcbiAgICAgICAgdHlwZTogUGFnZUNoYW5nZVR5cGUuRGVmYXVsdCxcbiAgICAgICAgcGF5bG9hZDogdGhpcy5wYWdlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdvIHRvIGZpcnN0IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnb0ZpcnN0KCkge1xuICAgIGlmICh0aGlzLnBhZ2UgPiAxKSB7XG4gICAgICB0aGlzLnBhZ2UgPSAxO1xuXG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIHR5cGU6IFBhZ2VDaGFuZ2VUeXBlLkRlZmF1bHQsXG4gICAgICAgIHBheWxvYWQ6IHRoaXMucGFnZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBwcmV2IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnb1ByZXYoKSB7XG4gICAgaWYgKHRoaXMucGFnZSA+IDEpIHtcbiAgICAgIHRoaXMucGFnZS0tO1xuXG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuXG4gICAgICB0aGlzLl9wYWdlQ2hhbmdlZCQubmV4dCh7XG4gICAgICAgIHR5cGU6IFBhZ2VDaGFuZ2VUeXBlLkRlZmF1bHQsXG4gICAgICAgIHBheWxvYWQ6IHRoaXMucGFnZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBsYXN0IHBhZ2VcbiAgICovXG4gIHB1YmxpYyBnb0xhc3QoKSB7XG4gICAgaWYgKHRoaXMucGFnZSAhPT0gdGhpcy5wYWdlcykge1xuICAgICAgdGhpcy5wYWdlID0gdGhpcy5wYWdlcztcblxuICAgICAgdGhpcy51cGRhdGVPZmZzZXQoKTtcblxuICAgICAgdGhpcy5fcGFnZUNoYW5nZWQkLm5leHQoe1xuICAgICAgICB0eXBlOiBQYWdlQ2hhbmdlVHlwZS5EZWZhdWx0LFxuICAgICAgICBwYXlsb2FkOiB0aGlzLnBhZ2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgY291bnQgb2YgZGVsZXRlZCByb3dzLiBUaGlzIGNvdW50IHdpbGwgYmUgYXBwbGllZCBmb3Igb2Zmc2V0IGNhbGNcbiAgICogQHBhcmFtIGNvdW50XG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlUm93cyhjb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy5fcmVtb3ZlZFJvd3MgKz0gY291bnQ7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUGFnaW5hdGlvbigpIHtcbiAgICB0aGlzLnVwZGF0ZVRvdGFsUGFnZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0cm95XG4gICAqL1xuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9vbkRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHBhZ2luZyBzdGF0ZVxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBwcml2YXRlIF9mcm9tUGFyYW1zKHBhcmFtcyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5sb2FkTW9yZUVuYWJsZWQpIHtcbiAgICAgIHRoaXMubGltaXQgPSBwYXJhbXMubGltaXQgPz8gMjU7XG4gICAgfVxuXG4gICAgdGhpcy5yZWNvcmRzID0gcGFyYW1zLnJlY29yZHM7XG4gICAgdGhpcy5tYW51YWwgPSBwYXJhbXMubWFudWFsO1xuXG4gICAgdGhpcy5wYWdlcyA9IHBhcmFtcy5wYWdlcyB8fCAwXG4gIH1cblxuICAvKipcbiAgICogQ2FsYyBhbmQgdXBkYXRlIG9mZnNldFxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVPZmZzZXQoKSB7XG4gICAgdGhpcy5vZmZzZXQgPSB0aGlzLmxpbWl0ICogKHRoaXMucGFnZSAtIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGMgYW5kIHVwZGF0ZSB0b3RhbCBjb3VudCBvZiBwYWdlc1xuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVUb3RhbFBhZ2VzKCkge1xuICAgIHRoaXMucGFnZXMgPSBNYXRoLmNlaWwodGhpcy5yZWNvcmRzIC8gdGhpcy5saW1pdCk7XG4gIH1cbn1cbiJdfQ==
@@ -35,7 +35,7 @@ export class FsCellComponent {
35
35
  if (this.row.isGroup) {
36
36
  this.cellContext.groupIndex = this.row.index;
37
37
  }
38
- else if (this.row.isChild || this.row.isGroupFooter) {
38
+ else if (this.row.isGroupChild || this.row.isGroupFooter) {
39
39
  this.cellContext.groupIndex = this.row.index;
40
40
  this.cellContext.groupRow = this.row.parent.data;
41
41
  this.cellContext.group = this.row.parent.data;
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
104
104
  }], rowIndex: [{
105
105
  type: Input
106
106
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvY2VsbC9jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L3Jvdy9jZWxsL2NlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFRN0MsTUFBTSxPQUFPLGVBQWU7SUFjMUI7UUFia0MsV0FBTSxHQUFHLElBQUksQ0FBQztRQUV0QixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBTXJDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBR3JCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXpCLENBQUM7SUFFVCxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjs7UUFDdkMsSUFBSSxDQUFBLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsWUFBWSxPQUFLLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN4QztRQUVELElBQUksQ0FBQSxNQUFBLE9BQU8sQ0FBQyxNQUFNLDBDQUFFLFlBQVksT0FBSyxNQUFBLE9BQU8sQ0FBQyxNQUFNLDBDQUFFLGFBQWEsQ0FBQSxFQUFFO1lBQ2xFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUV2QyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQzthQUM5QztpQkFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDL0M7WUFFRCxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRO3FCQUNoRCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUM5QjtpQkFBTSxJQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFO2dCQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO2dCQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRO3FCQUN0RCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvQjtTQUNGO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1NBQy9DO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQjs7UUFDdkIsSUFBSSxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLE9BQU8sRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7U0FDakY7YUFBTSxJQUFJLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsYUFBYSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNqRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUM5QztJQUNILENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUztpQkFDZixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7aUJBQ0EsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQTtTQUNMO0lBQ0gsQ0FBQzs7NkdBekZVLGVBQWU7aUdBQWYsZUFBZSw4TkNwQjVCLHFPQUtBOzRGRGVhLGVBQWU7a0JBTDNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFdBQVcsRUFBRSxxQkFBcUI7b0JBQ2xDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDswRUFFbUMsTUFBTTtzQkFBdkMsV0FBVzt1QkFBQyxtQkFBbUI7Z0JBRU4sSUFBSTtzQkFBN0IsV0FBVzt1QkFBQyxXQUFXO2dCQUVSLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsR0FBRztzQkFBbEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSxcbiAgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcm93JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbZnMtY2VsbF0nLFxuICB0ZW1wbGF0ZVVybDogJ2NlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGc0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1saXN0LWNvbCcpIGlzQ29sbCA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2dyaWRjZWxsJztcblxuICBASW5wdXQoKSBwdWJsaWMgY29sdW1uOiBDb2x1bW47XG4gIEBJbnB1dCgpIHB1YmxpYyByb3c6IFJvdztcbiAgQElucHV0KCkgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG5cbiAgcHVibGljIGNlbGxDb250ZXh0OiBhbnkgPSB7fTtcbiAgcHVibGljIGNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9saXN0ZW5Hcm91cE9wZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucm93SW5kZXg/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5yb3dJbmRleD8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuY29sdW1uPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29sdW1uPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLl9pbml0Q2VsbENvbnRleHQoKTtcbiAgICAgIHRoaXMuX2luaXRDZWxsVGVtcGxhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q2VsbENvbnRleHQoKSB7XG4gICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG5cbiAgICBpZiAodGhpcy5yb3cpIHtcbiAgICAgIGlmICh0aGlzLnJvdy5pc0dyb3VwKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBJbmRleCA9IHRoaXMucm93LmluZGV4O1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnJvdy5pc0NoaWxkIHx8IHRoaXMucm93LmlzR3JvdXBGb290ZXIpIHtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cEluZGV4ID0gdGhpcy5yb3cuaW5kZXg7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBSb3cgPSB0aGlzLnJvdy5wYXJlbnQuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cCA9IHRoaXMucm93LnBhcmVudC5kYXRhO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5yb3cuaXNHcm91cCkge1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwID0gdGhpcy5yb3cuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cENoaWxkcmVuID0gdGhpcy5yb3cuY2hpbGRyZW5cbiAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiBjaGlsZC5kYXRhKTtcbiAgICAgIH0gZWxzZSBpZih0aGlzLnJvdy5pc0dyb3VwRm9vdGVyKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXAgPSB0aGlzLnJvdy5wYXJlbnQuZGF0YTtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cEluZGV4ID0gdGhpcy5yb3cuaW5kZXg7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBDaGlsZHJlbiA9IHRoaXMucm93LnBhcmVudC5jaGlsZHJlblxuICAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiBjaGlsZC5kYXRhKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNlbGxDb250ZXh0LmNvbHVtbiA9IHRoaXMuY29sdW1uO1xuICAgIGlmICh0aGlzLnJvdykge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC4kaW1wbGljaXQgPSB0aGlzLnJvdy5kYXRhO1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC5yb3cgPSB0aGlzLnJvdy5kYXRhO1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC52YWx1ZSA9IHRoaXMucm93LmRhdGFbdGhpcy5jb2x1bW4ubmFtZV07XG4gICAgICB0aGlzLmNlbGxDb250ZXh0LmV4cGFuZGVkID0gdGhpcy5yb3cuZXhwYW5kZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdENlbGxUZW1wbGF0ZSgpIHtcbiAgICBpZiAodGhpcy5yb3c/LmlzR3JvdXApIHtcbiAgICAgIHRoaXMuY2VsbFRlbXBsYXRlID0gdGhpcy5jb2x1bW4uZ3JvdXBIZWFkZXJUZW1wbGF0ZSB8fCB0aGlzLmNvbHVtbi5jZWxsVGVtcGxhdGU7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJvdz8uaXNHcm91cEZvb3Rlcikge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5ncm91cEZvb3RlclRlbXBsYXRlIHx8IHRoaXMuY29sdW1uLmNlbGxUZW1wbGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5jZWxsVGVtcGxhdGU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuR3JvdXBPcGVuKCkge1xuICAgIGlmICh0aGlzLnJvdyAmJiB0aGlzLnJvdy5pc0dyb3VwKSB7XG4gICAgICB0aGlzLnJvdy5leHBhbmRlZCRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICB0aGlzLmNlbGxDb250ZXh0LmV4cGFuZGVkID0gc3RhdHVzO1xuICAgICAgICB9KVxuICAgIH1cbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNlbGxUZW1wbGF0ZSB8fCBkZWZhdWx0Q2VsbFRlbXBsYXRlXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cImNlbGxDb250ZXh0XCI+PC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENlbGxUZW1wbGF0ZSBsZXQtdmFsdWU9XCJ2YWx1ZVwiPlxyXG4gIHt7dmFsdWV9fVxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvYm9keS9yb3cvY2VsbC9jZWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L3Jvdy9jZWxsL2NlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsV0FBVyxFQUNYLEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFRN0MsTUFBTSxPQUFPLGVBQWU7SUFjMUI7UUFia0MsV0FBTSxHQUFHLElBQUksQ0FBQztRQUV0QixTQUFJLEdBQUcsVUFBVSxDQUFDO1FBTXJDLGdCQUFXLEdBQVEsRUFBRSxDQUFDO1FBR3JCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXpCLENBQUM7SUFFVCxRQUFRO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjs7UUFDdkMsSUFBSSxDQUFBLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsWUFBWSxPQUFLLE1BQUEsT0FBTyxDQUFDLFFBQVEsMENBQUUsYUFBYSxDQUFBLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN4QztRQUVELElBQUksQ0FBQSxNQUFBLE9BQU8sQ0FBQyxN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biAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSxcbiAgT25Jbml0LCBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcm93JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbZnMtY2VsbF0nLFxuICB0ZW1wbGF0ZVVybDogJ2NlbGwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGc0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5mcy1saXN0LWNvbCcpIGlzQ29sbCA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2dyaWRjZWxsJztcblxuICBASW5wdXQoKSBwdWJsaWMgY29sdW1uOiBDb2x1bW47XG4gIEBJbnB1dCgpIHB1YmxpYyByb3c6IFJvdztcbiAgQElucHV0KCkgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG5cbiAgcHVibGljIGNlbGxDb250ZXh0OiBhbnkgPSB7fTtcbiAgcHVibGljIGNlbGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9saXN0ZW5Hcm91cE9wZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucm93SW5kZXg/LmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlcy5yb3dJbmRleD8ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuY29sdW1uPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXMuY29sdW1uPy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICB0aGlzLl9pbml0Q2VsbENvbnRleHQoKTtcbiAgICAgIHRoaXMuX2luaXRDZWxsVGVtcGxhdGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q2VsbENvbnRleHQoKSB7XG4gICAgdGhpcy5jZWxsQ29udGV4dC5pbmRleCA9IHRoaXMucm93SW5kZXg7XG5cbiAgICBpZiAodGhpcy5yb3cpIHtcbiAgICAgIGlmICh0aGlzLnJvdy5pc0dyb3VwKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXBJbmRleCA9IHRoaXMucm93LmluZGV4O1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnJvdy5pc0dyb3VwQ2hpbGQgfHwgdGhpcy5yb3cuaXNHcm91cEZvb3Rlcikge1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwSW5kZXggPSB0aGlzLnJvdy5pbmRleDtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cFJvdyA9IHRoaXMucm93LnBhcmVudC5kYXRhO1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwID0gdGhpcy5yb3cucGFyZW50LmRhdGE7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnJvdy5pc0dyb3VwKSB7XG4gICAgICAgIHRoaXMuY2VsbENvbnRleHQuZ3JvdXAgPSB0aGlzLnJvdy5kYXRhO1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwQ2hpbGRyZW4gPSB0aGlzLnJvdy5jaGlsZHJlblxuICAgICAgICAgLm1hcCgoY2hpbGQpID0+IGNoaWxkLmRhdGEpO1xuICAgICAgfSBlbHNlIGlmKHRoaXMucm93LmlzR3JvdXBGb290ZXIpIHtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cCA9IHRoaXMucm93LnBhcmVudC5kYXRhO1xuICAgICAgICB0aGlzLmNlbGxDb250ZXh0Lmdyb3VwSW5kZXggPSB0aGlzLnJvdy5pbmRleDtcbiAgICAgICAgdGhpcy5jZWxsQ29udGV4dC5ncm91cENoaWxkcmVuID0gdGhpcy5yb3cucGFyZW50LmNoaWxkcmVuXG4gICAgICAgICAgLm1hcCgoY2hpbGQpID0+IGNoaWxkLmRhdGEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2VsbENvbnRleHQuY29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgaWYgKHRoaXMucm93KSB7XG4gICAgICB0aGlzLmNlbGxDb250ZXh0LiRpbXBsaWNpdCA9IHRoaXMucm93LmRhdGE7XG4gICAgICB0aGlzLmNlbGxDb250ZXh0LnJvdyA9IHRoaXMucm93LmRhdGE7XG4gICAgICB0aGlzLmNlbGxDb250ZXh0LnZhbHVlID0gdGhpcy5yb3cuZGF0YVt0aGlzLmNvbHVtbi5uYW1lXTtcbiAgICAgIHRoaXMuY2VsbENvbnRleHQuZXhwYW5kZWQgPSB0aGlzLnJvdy5leHBhbmRlZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q2VsbFRlbXBsYXRlKCkge1xuICAgIGlmICh0aGlzLnJvdz8uaXNHcm91cCkge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGUgPSB0aGlzLmNvbHVtbi5ncm91cEhlYWRlclRlbXBsYXRlIHx8IHRoaXMuY29sdW1uLmNlbGxUZW1wbGF0ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucm93Py5pc0dyb3VwRm9vdGVyKSB7XG4gICAgICB0aGlzLmNlbGxUZW1wbGF0ZSA9IHRoaXMuY29sdW1uLmdyb3VwRm9vdGVyVGVtcGxhdGUgfHwgdGhpcy5jb2x1bW4uY2VsbFRlbXBsYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNlbGxUZW1wbGF0ZSA9IHRoaXMuY29sdW1uLmNlbGxUZW1wbGF0ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5Hcm91cE9wZW4oKSB7XG4gICAgaWYgKHRoaXMucm93ICYmIHRoaXMucm93LmlzR3JvdXApIHtcbiAgICAgIHRoaXMucm93LmV4cGFuZGVkJFxuICAgICAgICAucGlwZShcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICAgIHRoaXMuY2VsbENvbnRleHQuZXhwYW5kZWQgPSBzdGF0dXM7XG4gICAgICAgIH0pXG4gICAgfVxuICB9XG59XG4iLCI8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2VsbFRlbXBsYXRlIHx8IGRlZmF1bHRDZWxsVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiY2VsbENvbnRleHRcIj48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q2VsbFRlbXBsYXRlIGxldC12YWx1ZT1cInZhbHVlXCI+XHJcbiAge3t2YWx1ZX19XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -40,8 +40,8 @@ export class FsRowComponent {
40
40
  get isGroupRow() {
41
41
  return this.row.isGroup;
42
42
  }
43
- get isChildRow() {
44
- return this.row.isChild;
43
+ get isGroupChildRow() {
44
+ return this.row.isGroupChild;
45
45
  }
46
46
  get isGroupFooterRow() {
47
47
  return this.row.isGroupFooter;
@@ -63,7 +63,7 @@ export class FsRowComponent {
63
63
  if ((_a = this.row) === null || _a === void 0 ? void 0 : _a.isGroup) {
64
64
  cls += ' fs-list-row-group';
65
65
  }
66
- else if ((_b = this.row) === null || _b === void 0 ? void 0 : _b.isChild) {
66
+ else if ((_b = this.row) === null || _b === void 0 ? void 0 : _b.isGroupChild) {
67
67
  cls += ' fs-list-row-group-child';
68
68
  }
69
69
  else if ((_c = this.row) === null || _c === void 0 ? void 0 : _c.isGroupFooter) {
@@ -72,12 +72,13 @@ export class FsRowComponent {
72
72
  if (this.rowClass) {
73
73
  const options = {
74
74
  index: this.rowIndex,
75
+ type: this.row.type,
75
76
  };
76
77
  if (this.row.isGroup) {
77
78
  options.groupIndex = this.row.index;
78
79
  }
79
- else if (this.row.isChild) {
80
- options.groupIndex = this.row.index;
80
+ else if (this.row.isGroupChild || this.row.isGroupFooter) {
81
+ options.groupIndex = this.row.parent.index;
81
82
  }
82
83
  const resultClass = this.rowClass(this.row.data, options);
83
84
  if (typeof resultClass === 'string') {
@@ -290,4 +291,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
290
291
  type: HostBinding,
291
292
  args: ['class']
292
293
  }] } });
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L3Jvdy9yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2JvZHkvcm93L3Jvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBSUwsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFFTCxlQUFlLEVBQ2YsZUFBZSxFQUNoQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkRBQTZELENBQUM7Ozs7Ozs7O0FBUTNHLE1BQU0sT0FBTyxjQUFjO0lBbUR6QixZQUNTLEVBQWMsRUFDYixNQUF5QixFQUN6QixRQUF5QixFQUN6QixTQUFvQixFQUNwQixjQUE0QztRQUo3QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2IsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixtQkFBYyxHQUFkLGNBQWMsQ0FBOEI7UUFy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QUFhO3NCQUE1QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFFVSxVQUFVO3NCQUF6QixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFJQyxjQUFjO3NCQUZwQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGdCQUFnQjtnQkFHcEIsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLElBQUk7Z0JBZ0RkLG1CQUFtQjtzQkFEdEIsV0FBVzt1QkFBQywwQkFBMEI7Z0JBUW5DLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEtleVZhbHVlRGlmZmVycyxcbiAgUmVuZGVyZXIyLFxuICBDb21wb25lbnQsXG4gIERvQ2hlY2ssXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgS2V5VmFsdWVEaWZmZXIsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5pbXBvcnQge1xuICBSZW9yZGVyQ29udHJvbGxlcixcbiAgUmVvcmRlclBvc2l0aW9uLFxuICBSZW9yZGVyU3RyYXRlZ3lcbn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9yZW9yZGVyLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgU2VsZWN0aW9uQ29udHJvbGxlciB9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvc2VsZWN0aW9uLWNvbnRyb2xsZXInO1xuaW1wb3J0IHsgUm93QWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jvdy1hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3Jvdyc7XG5pbXBvcnQgeyBGc0xpc3REcmFnZ2FibGVMaXN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9kcmFnZ2FibGUtbGlzdC9kcmFnZ2FibGUtbGlzdC5kaXJlY3RpdmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1tmcy1saXN0LXJvd10nLFxuICB0ZW1wbGF0ZVVybDogJ3Jvdy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZzUm93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgcHVibGljIHJvbGUgPSAncm93JztcblxuICBASW5wdXQoKSBwdWJsaWMgcm93OiBSb3c7XG4gIEBJbnB1dCgpIHB1YmxpYyByb3dBY3Rpb25zUmF3OiBhbnkgW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGdyb3VwQWN0aW9uc1JhdzogYW55IFtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBoYXNSb3dBY3Rpb25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyByb3dFdmVudHMgPSB7fTtcbiAgQElucHV0KCkgcHVibGljIHJvd0NsYXNzO1xuICBASW5wdXQoKSBwdWJsaWMgcmVzdG9yZU1vZGUgPSBmYWxzZTtcblxuICBASW5wdXQoKSBwdWJsaWMgcm93SW5kZXg6IG51bWJlcjtcbiAgQElucHV0KCkgcHVibGljIGNvbHVtbnM6IENvbHVtbltdO1xuICBASW5wdXQoKSBwdWJsaWMgc2VsZWN0aW9uOiBTZWxlY3Rpb25Db250cm9sbGVyO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyByb3dSZW1vdmVkOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICBASW5wdXQoKSBhY3RpdmVGaWx0ZXJzQ291bnQ6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRyYWctcm93JylcbiAgcHVibGljIHJlb3JkZXJFbmFibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJlb3JkZXJQb3NpdGlvbjogUmVvcmRlclBvc2l0aW9uIHwgbnVsbDtcbiAgQElucHV0KCkgcmVvcmRlclN0cmF0ZWd5OiBSZW9yZGVyU3RyYXRlZ3kgfCBudWxsO1xuICBASW5wdXQoKSByZW9yZGVyTXVsdGlwbGU6IGJvb2xlYW47XG5cblxuICBAVmlld0NoaWxkcmVuKCd0ZCcpXG4gIHB1YmxpYyBjZWxsUmVmcztcblxuICBwdWJsaWMgcmVhZG9ubHkgUmVvcmRlclBvc2l0aW9uID0gUmVvcmRlclBvc2l0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgUmVvcmRlclN0cmF0ZWd5ID0gUmVvcmRlclN0cmF0ZWd5O1xuXG4gIHB1YmxpYyByb3dBY3Rpb25zOiBSb3dBY3Rpb25bXSA9IFtdO1xuXG4gIHB1YmxpYyBtZW51Um93QWN0aW9uczogUm93QWN0aW9uW10gPSBbXTtcbiAgcHVibGljIGlubGluZVJvd0FjdGlvbnM6IFJvd0FjdGlvbltdID0gW107XG4gIHB1YmxpYyByZXN0b3JlQWN0aW9uOiBSb3dBY3Rpb247XG5cbiAgcHVibGljIHNlbGVjdGVkID0gZmFsc2U7XG4gIHB1YmxpYyBpbmRldGVybWluYXRlU2VsZWN0ZWQ6IGJvb2xlYW4gfCAnaW5kZXRlcm1pbmF0ZScgPSBmYWxzZTtcblxuICBwcml2YXRlIF9yb3dEaWZmZXI6IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PjtcblxuICBwcml2YXRlIF9ldmVudExpc3RlbmVycyA9IFtdO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2RpZmZlcnM6IEtleVZhbHVlRGlmZmVycyxcbiAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgX2RyYWdnYWJsZUxpc3Q6IEZzTGlzdERyYWdnYWJsZUxpc3REaXJlY3RpdmUsXG4gICkge1xuICAgIHRoaXMuX3Jvd0RpZmZlciA9IF9kaWZmZXJzLmZpbmQoe30pLmNyZWF0ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0dyb3VwUm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvdy5pc0dyb3VwO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0NoaWxkUm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvdy5pc0NoaWxkO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0dyb3VwRm9vdGVyUm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvdy5pc0dyb3VwRm9vdGVyO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0RyYWdEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5yZW9yZGVyTXVsdGlwbGUgJiYgISF0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZFJvd3Muc2l6ZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubXVsdGlwbGUtc2VsZWN0aW9uJylcbiAgZ2V0IGlzTXVsdGlwbGVTZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgbXVsdGlwbGUgPSB0aGlzLnJlb3JkZXJNdWx0aXBsZTtcblxuICAgIHJldHVybiBtdWx0aXBsZSAmJiB0aGlzLnNlbGVjdGVkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCByb3dDc3NDbGFzcygpIHtcbiAgICBsZXQgY2xzID0gJ2ZzLWxpc3Qtcm93JztcblxuICAgIGlmICh0aGlzLnJvd0luZGV4ICUgMiAhPT0gMCkgY2xzICs9ICcgZnMtbGlzdC1yb3ctb2RkJztcbiAgICBpZiAodGhpcy5yb3dJbmRleCAlIDIgPT09IDApIGNscyArPSAnIGZzLWxpc3Qtcm93LWV2ZW4nO1xuXG4gICAgaWYgKHRoaXMucm93Py5pc0dyb3VwKSB7XG4gICAgICBjbHMgKz0gJyBmcy1saXN0LXJvdy1ncm91cCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJvdz8uaXNDaGlsZCkge1xuICAgICAgY2xzICs9ICcgZnMtbGlzdC1yb3ctZ3JvdXAtY2hpbGQnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yb3c/LmlzR3JvdXBGb290ZXIpIHtcbiAgICAgIGNscyArPSAnIGZzLWxpc3Qtcm93LWdyb3VwLWZvb3Rlcic7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm93Q2xhc3MpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgaW5kZXg6IHRoaXMucm93SW5kZXgsXG4gICAgICB9O1xuXG4gICAgICBpZiAodGhpcy5yb3cuaXNHcm91cCkge1xuICAgICAgICBvcHRpb25zLmdyb3VwSW5kZXggPSB0aGlzLnJvdy5pbmRleDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5yb3cuaXNDaGlsZCkge1xuICAgICAgICBvcHRpb25zLmdyb3VwSW5kZXggPSB0aGlzLnJvdy5pbmRleDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0Q2xhc3MgPSB0aGlzLnJvd0NsYXNzKHRoaXMucm93LmRhdGEsIG9wdGlvbnMpO1xuXG4gICAgICBpZiAodHlwZW9mIHJlc3VsdENsYXNzID09PSAnc3RyaW5nJykge1xuICAgICAgICBjbHMgKz0gYCAke3Jlc3VsdENsYXNzfWA7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiByZXN1bHRDbGFzcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHJlc3VsdENsYXNzKTtcbiAgICAgICAgZm9yIChjb25zdCBrIG9mIGtleXMpIHtcbiAgICAgICAgICBpZiAocmVzdWx0Q2xhc3Nba10gPT09IHRydWUpIGNscyArPSBgICR7a31gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNscztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZHJhZ0NlbGxWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5yb3cuaXNHcm91cDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGVmdERyYWdEcm9wRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZW9yZGVyRW5hYmxlZFxuICAgICAgJiYgdGhpcy5yZW9yZGVyUG9zaXRpb24gPT09IFJlb3JkZXJQb3NpdGlvbi5MZWZ0XG4gICAgICAmJiB0aGlzLmFjdGl2ZUZpbHRlcnNDb3VudCA9PSAwXG4gIH1cblxuICBwdWJsaWMgZ2V0IHJpZ2h0RHJhZ0Ryb3BFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlb3JkZXJFbmFibGVkXG4gICAgICAmJiB0aGlzLnJlb3JkZXJQb3NpdGlvbiA9PT0gUmVvcmRlclBvc2l0aW9uLlJpZ2h0XG4gICAgICAmJiB0aGlzLmFjdGl2ZUZpbHRlcnNDb3VudCA9PSAwXG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0Um93RXZlbnRzKCk7XG4gICAgdGhpcy5pbml0U2VsZWN0aW9uKCk7XG5cbiAgICBpZiAodGhpcy5yb3cgJiYgdGhpcy5yb3cuaXNHcm91cCkge1xuICAgICAgaWYgKHRoaXMucm93ICYmIHRoaXMucm93LmlzR3JvdXAgJiYgdGhpcy5ncm91cEFjdGlvbnNSYXcpIHtcbiAgICAgICAgdGhpcy5yb3dBY3Rpb25zID0gdGhpcy5ncm91cEFjdGlvbnNSYXcubWFwKChhY3Rpb24pID0+IG5ldyBSb3dBY3Rpb24oYWN0aW9uKSk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJBY3Rpb25zQnlDYXRlZ29yaWVzKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnJvd0FjdGlvbnNSYXcpIHtcbiAgICAgIHRoaXMucm93QWN0aW9ucyA9IHRoaXMucm93QWN0aW9uc1Jhdy5tYXAoKGFjdGlvbikgPT4gbmV3IFJvd0FjdGlvbihhY3Rpb24pKTtcblxuICAgICAgdGhpcy5maWx0ZXJBY3Rpb25zQnlDYXRlZ29yaWVzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nRG9DaGVjaygpIHtcbiAgICBpZiAodGhpcy5fcm93RGlmZmVyLmRpZmYodGhpcy5yb3cpKSB7XG4gICAgICBpZiAodGhpcy5yb3dBY3Rpb25zKSB7XG4gICAgICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgICBhY3Rpb24uY2hlY2tTaG93U3RhdHVzKHRoaXMucm93LmRhdGEsIHRoaXMucm93SW5kZXgpO1xuICAgICAgICAgIGFjdGlvbi51cGRhdGVMaW5rKHRoaXMucm93LmRhdGEpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5maWx0ZXJBY3Rpb25zQnlDYXRlZ29yaWVzKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9ldmVudExpc3RlbmVycy5mb3JFYWNoKChsaXN0ZW5lcikgPT4geyBsaXN0ZW5lcigpIH0pO1xuXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IHJvdyBieSBjaGVja2JveFxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RSb3coZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24ucm93U2VsZWN0aW9uQ2hhbmdlKHRoaXMucm93LCBldmVudC5jaGVja2VkKTtcbiAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFjayBCeSBmb3IgaW1wcm92ZSBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgcHVibGljIHRyYWNrQnlGbihpbmRleCkge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBkcmFnU3RhcnQoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5yZW9yZGVyRW5hYmxlZCAmJiAhdGhpcy5pc0RyYWdEaXNhYmxlZCkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICB0aGlzLl9kcmFnZ2FibGVMaXN0LmRyYWdTdGFydCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgZXZlbnQgbGlzdGVuZXJzIGZvciByb3dcbiAgICovXG4gIHByaXZhdGUgaW5pdFJvd0V2ZW50cygpIHtcbiAgICBmb3IgKGNvbnN0IGV2ZW50IGluIHRoaXMucm93RXZlbnRzKSB7XG4gICAgICBpZiAodGhpcy5yb3dFdmVudHMuaGFzT3duUHJvcGVydHkoZXZlbnQpKSB7XG4gICAgICAgIGNvbnN0IGxpc3RlbmVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgZXZlbnQsIChldnQpID0+IHtcbiAgICAgICAgICAvLyBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAvLyBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMucmVvcmRlckVuYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMucm93RXZlbnRzW2V2ZW50XSh7XG4gICAgICAgICAgICAgIGV2ZW50OiBldnQsXG4gICAgICAgICAgICAgIHJvdzogdGhpcy5yb3cuZGF0YSxcbiAgICAgICAgICAgICAgcm93SW5kZXg6IHRoaXMucm93SW5kZXhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBzZWxlY3Rpb24gY2hhbmdlIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBpbml0U2VsZWN0aW9uKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMucm93ICYmIHRoaXMuc2VsZWN0aW9uLmlzUm93U2VsZWN0ZWQodGhpcy5yb3cuZGF0YSk7XG5cbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvbkNoYW5nZSRcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgLy8gLy8gV291bGQgbGlrZSB0byByZXNwb25kIG9ubHkgd2hlbiBjaGVja2JveCBvbiB0b3AgaXMgY2hhbmdlZFxuICAgICAgICAgIC8vIC8vIG9yIHdhcyBjbGlja2VkIFwiU2VsZWN0IEFsbFwiIGluIHNlbGVjdGlvbiBkaWFsb2dcbiAgICAgICAgICAvLyBmaWx0ZXIoKHt0eXBlfSkgPT4ge1xuICAgICAgICAgIC8vICAgcmV0dXJuIHR5cGUgPT09IFNlbGVjdGlvbkNoYW5nZVR5cGUuQWxsVmlzaWJsZVNlbGVjdGlvbkNoYW5nZVxuICAgICAgICAgIC8vICAgICB8fCB0eXBlID09PSBTZWxlY3Rpb25DaGFuZ2VUeXBlLlNlbGVjdGVkQWxsO1xuICAgICAgICAgIC8vIH0pLFxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMucm93ICYmIHRoaXMuc2VsZWN0aW9uLmlzUm93U2VsZWN0ZWQodGhpcy5yb3cuZGF0YSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5yb3c/LmlzR3JvdXApIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwU2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb24uaXNHcm91cFNlbGVjdGVkKHRoaXMucm93KTtcblxuICAgICAgICAgICAgaWYgKGdyb3VwU2VsZWN0aW9uID09PSAnaW5kZXRlcm1pbmF0ZScpIHtcbiAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZVNlbGVjdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSBncm91cFNlbGVjdGlvbjtcbiAgICAgICAgICAgICAgdGhpcy5pbmRldGVybWluYXRlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJBY3Rpb25zQnlDYXRlZ29yaWVzKCkge1xuICAgIHRoaXMubWVudVJvd0FjdGlvbnMgPSBbXTtcbiAgICB0aGlzLmlubGluZVJvd0FjdGlvbnMgPSBbXTtcbiAgICB0aGlzLnJlc3RvcmVBY3Rpb24gPSBudWxsO1xuXG4gICAgdGhpcy5yb3dBY3Rpb25zLmZvckVhY2goKGFjdGlvbikgPT4ge1xuXG4gICAgICBpZiAoIWFjdGlvbi5pc1Nob3duKSB7IHJldHVybiB9XG5cbiAgICAgIGlmIChhY3Rpb24ubWVudSAmJiAhYWN0aW9uLnJlc3RvcmUpIHtcbiAgICAgICAgdGhpcy5tZW51Um93QWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICB9IGVsc2UgaWYgKCFhY3Rpb24ubWVudSAmJiAhYWN0aW9uLnJlc3RvcmUpIHtcbiAgICAgICAgdGhpcy5pbmxpbmVSb3dBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLnJlc3RvcmUpIHtcbiAgICAgICAgdGhpcy5yZXN0b3JlQWN0aW9uID0gYWN0aW9uO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tIERyYWcgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwibGVmdERyYWdEcm9wRW5hYmxlZFwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJhZ0NlbGxcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIFNlbGVjdGlvbiAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3Rpb24gJiYgIShzZWxlY3Rpb24uZGlzYWJsZWQkIHwgYXN5bmMpXCI+XG4gIDx0ZCBjbGFzcz1cImZzLWxpc3QtY29sIGZzLWxpc3QtY29sLXNlbGVjdGlvblwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcm93LmlzR3JvdXBGb290ZXJcIj5cbiAgICAgIDxtYXQtY2hlY2tib3ggKGNoYW5nZSk9XCJzZWxlY3RSb3coJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaW5kZXRlcm1pbmF0ZVNlbGVjdGVkXCI+XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC90ZD5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIENvbnRlbnQgLS0+XG48bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUZuOyBsZXQgaXNGaXJzdCA9IGZpcnN0XCI+XG4gIDx0ZCBmcy1jZWxsXG4gICAgICAqbmdJZj1cIihpc0dyb3VwUm93ICYmICFjb2x1bW4uZ3JvdXBIZWFkZXJDb2xzcGFubmVkKVxuICAgICAgICB8fCAoaXNHcm91cEZvb3RlclJvdyAmJiAhY29sdW1uLmdyb3VwRm9vdGVyQ29sc3Bhbm5lZClcbiAgICAgICAgfHwgKCFpc0dyb3VwUm93ICYmICFpc0dyb3VwRm9vdGVyUm93ICYmICFjb2x1bW4uY2VsbENvbHNwYW5uZWQpXCJcbiAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgIFtyb3ddPVwicm93XCJcbiAgICAgIFtyb3dJbmRleF09XCJyb3dJbmRleFwiXG4gICAgICBbY2xhc3NdPVwiKGlzR3JvdXBSb3cgJiYgY29sdW1uLmdyb3VwSGVhZGVyQ29uZmlncy5jbGFzc2VzU3RyaW5nKVxuICAgICAgICB8fCAoaXNHcm91cEZvb3RlclJvdyAmJiBjb2x1bW4uZ3JvdXBGb290ZXJDb25maWdzLmNsYXNzZXNTdHJpbmcpXG4gICAgICAgIHx8ICghaXNHcm91cEZvb3RlclJvdyAmJiBjb2x1bW4uY2VsbENvbmZpZ3MuY2xhc3Nlc1N0cmluZylcIlxuICAgICAgW25nQ2xhc3NdPVwieyAncHJpbWFyeS1jb2wnOiBpc0ZpcnN0IH1cIlxuICAgICAgW2F0dHIuY29sc3Bhbl09XCIoaXNHcm91cFJvdyAmJiBjb2x1bW4uZ3JvdXBIZWFkZXJDb25maWdzLmNvbHNwYW4pXG4gICAgICAgIHx8IChpc0dyb3VwRm9vdGVyUm93ICYmIGNvbHVtbi5ncm91cEZvb3RlckNvbmZpZ3MuY29sc3BhbilcbiAgICAgICAgfHwgY29sdW1uLmNlbGxDb25maWdzLmNvbHNwYW5cIlxuICAgICAgW2F0dHIud2lkdGhdPVwiY29sdW1uLndpZHRoXCJcbiAgPlxuICA8L3RkPlxuPC9uZy1jb250YWluZXI+XG5cbjwhLS0gRHJhZyAtLT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJyaWdodERyYWdEcm9wRW5hYmxlZFwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJhZ0NlbGxcIj48L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIFJvdyBBY3Rpb25zIC0tPlxuPHRkICpuZ0lmPVwiaGFzUm93QWN0aW9ucyAmJiAhKHJlb3JkZXJFbmFibGVkICYmIHJlb3JkZXJTdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5Lk1hbnVhbClcIiBjbGFzcz1cImZzLWxpc3QtY29sIHJvdy1hY3Rpb25zXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNHcm91cEZvb3RlclJvd1wiPlxuICAgIDxmcy1saXN0LXJvdy1hY3Rpb25zIFtyb3ddPVwicm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXhdPVwicm93SW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyb3dBY3Rpb25zXT1cInJvd0FjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFttZW51Um93QWN0aW9uc109XCJtZW51Um93QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2lubGluZVJvd0FjdGlvbnNdPVwiaW5saW5lUm93QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc3RvcmVBY3Rpb25dPVwicmVzdG9yZUFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Jlc3RvcmVNb2RlXT1cInJlc3RvcmVNb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcm93UmVtb3ZlZF09XCJyb3dSZW1vdmVkXCJcbiAgICA+PC9mcy1saXN0LXJvdy1hY3Rpb25zPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvdGQ+XG5cbjxuZy10ZW1wbGF0ZSAjZHJhZ0NlbGw+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJkcmFnQ2VsbFZpc2libGUgJiYgIWlzR3JvdXBGb290ZXJSb3c7IGVsc2UgZW1wdHlDZWxsXCI+XG4gICAgPHRkIGNsYXNzPVwiZnMtbGlzdC1jb2wgZHJhZy1jb2xcIlxuICAgICAgICBbY2xhc3MuZHJhZy1kaXNhYmxlZF09XCJpc0RyYWdEaXNhYmxlZFwiXG4gICAgICAgIChtb3VzZWRvd24pPVwiZHJhZ1N0YXJ0KCRldmVudClcIlxuICAgICAgICAodG91Y2hzdGFydCk9XCJkcmFnU3RhcnQoJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uPmRyYWdfaGFuZGxlPC9tYXQtaWNvbj5cbiAgICA8L3RkPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNlbXB0eUNlbGw+XG4gICAgPHRkIGNsYXNzPVwiZnMtbGlzdC1jb2wgZHJhZy1jb2xcIj48L3RkPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9ib2R5L3Jvdy9yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2JvZHkvcm93L3Jvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsWUFBWSxFQUNaLGVBQWUsRUFDZixTQUFTLEVBQ1QsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBSUwsWUFBWSxHQUNiLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNoQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDMUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkRBQTZELENBQUM7Ozs7Ozs7O0FBUzNHLE1BQU0sT0FBTyxjQUFjO0lBMkN6QixZQUNTLEVBQWMsRUFDYixNQUF5QixFQUN6QixRQUF5QixFQUN6QixTQUFvQixFQUNwQixjQUE0QztRQUo3QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2IsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixtQkFBYyxHQUFkLGNBQWMsQ0FBOEI7UUE3Qy9DLFNBQUksR0FBRyxLQUFLLENBQUM7UUFHSixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUMzQixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3QixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFtQnBCLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ2xDLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQzNDLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBQzdCLG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUNqQyxxQkFBZ0IsR0FBZ0IsRUFBRSxDQUFDO1FBRW5DLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsMEJBQXFCLEdBQThCLEtBQUssQ0FBQztRQUd4RCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVNoQyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztJQUN0RixDQUFDO0lBRUQsSUFDSSxtQkFBbUI7UUFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUV0QyxPQUFPLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUNJLFdBQVc7O1FBQ2IsSUFBSSxHQUFHLEdBQUcsYUFBYSxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQztZQUFFLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQztRQUN2RCxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFBRSxHQUFHLElBQUksbUJBQW1CLENBQUM7UUFFeEQsSUFBSSxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLE9BQU8sRUFBRTtZQUNyQixHQUFHLElBQUksb0JBQW9CLENBQUM7U0FDN0I7YUFBTSxJQUFJLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsWUFBWSxFQUFFO1lBQ2pDLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQztTQUNuQzthQUFNLElBQUksTUFBQSxJQUFJLENBQUMsR0FBRywwQ0FBRSxhQUFhLEVBQUU7WUFDbEMsR0FBRyxJQUFJLDJCQUEyQixDQUFDO1NBQ3BDO1FBRUQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE1BQU0sT0FBTyxHQUEwQjtnQkFDckMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRO2dCQUNwQixJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJO2FBQ3BCLENBQUM7WUFFRixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNwQixPQUFPLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO2FBQ3JDO2lCQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUU7Z0JBQzFELE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO2FBQzVDO1lBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUUxRCxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtnQkFDbkMsR0FBRyxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7YUFDMUI7aUJBQU0sSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUU7Z0JBQzFDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3RDLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFO29CQUNwQixJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJO3dCQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO2lCQUM3QzthQUNGO1NBQ0Y7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxjQUFjO2VBQ3JCLElBQUksQ0FBQyxlQUFlLEtBQUssZUFBZSxDQUFDLElBQUk7ZUFDN0MsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsY0FBYztlQUNyQixJQUFJLENBQUMsZUFBZSxLQUFLLGVBQWUsQ0FBQyxLQUFLO2VBQzlDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLENBQUE7SUFDbkMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUNoQyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFFOUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7YUFDbEM7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBRTVFLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNsQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2pDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNyRCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2FBQ2xDO1lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUyxDQUFDLEtBQXdCO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksU0FBUyxDQUFDLEtBQUs7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQUs7UUFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMvQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBRXhCLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ25CLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDM0Usd0JBQXdCO29CQUN4Qix5QkFBeUI7b0JBRXpCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO3dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUNwQixLQUFLLEVBQUUsR0FBRzs0QkFDVixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJOzRCQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7eUJBQ3hCLENBQUMsQ0FBQztxQkFDSjtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUNyQztTQUNGO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFeEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0I7aUJBQzVCLElBQUk7WUFDSCxnRUFBZ0U7WUFDaEUscURBQXFEO1lBQ3JELHVCQUF1QjtZQUN2QixrRUFBa0U7WUFDbEUsbURBQW1EO1lBQ25ELE1BQU07WUFDTixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjtpQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFOztnQkFDZCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFeEUsSUFBSSxNQUFBLElBQUksQ0FBQyxHQUFHLDBDQUFFLE9BQU8sRUFBRTtvQkFDckIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUVoRSxJQUFJLGNBQWMsS0FBSyxlQUFlLEVBQUU7d0JBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO3dCQUNyQixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO3FCQUNuQzt5QkFBTTt3QkFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQzt3QkFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQztxQkFDcEM7aUJBQ0Y7Z0JBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QixDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0gsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTFCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFFakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQUUsT0FBTTthQUFFO1lBRS9CLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDMUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNwQztpQkFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs0R0FwUlUsY0FBYztnR0FBZCxjQUFjLG94QkN0QzNCLDZ1RkF3RUE7NEZEbENhLGNBQWM7a0JBTDFCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFdBQVcsRUFBRSxvQkFBb0I7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDtrT0FJUSxJQUFJO3NCQURWLFdBQVc7dUJBQUMsV0FBVztnQkFHUixHQUFHO3NCQUFsQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUlDLGNBQWM7c0JBRnBCLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsZ0JBQWdCO2dCQUdwQixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFJQyxRQUFRO3NCQURkLFlBQVk7dUJBQUMsSUFBSTtnQkEyQ2QsbUJBQW1CO3NCQUR0QixXQUFXO3VCQUFDLDBCQUEwQjtnQkFRbkMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgS2V5VmFsdWVEaWZmZXJzLFxuICBSZW5kZXJlcjIsXG4gIENvbXBvbmVudCxcbiAgRG9DaGVjayxcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBLZXlWYWx1ZURpZmZlcixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvY29sdW1uLm1vZGVsJztcbmltcG9ydCB7XG4gIFJlb3JkZXJQb3NpdGlvbixcbiAgUmVvcmRlclN0cmF0ZWd5XG59IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvcmVvcmRlci1jb250cm9sbGVyJztcbmltcG9ydCB7IFNlbGVjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL3NlbGVjdGlvbi1jb250cm9sbGVyJztcbmltcG9ydCB7IFJvd0FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yb3ctYWN0aW9uLm1vZGVsJztcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yb3cnO1xuaW1wb3J0IHsgRnNMaXN0RHJhZ2dhYmxlTGlzdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLWxpc3QvZHJhZ2dhYmxlLWxpc3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZzTGlzdFJvd0NsYXNzT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1tmcy1saXN0LXJvd10nLFxuICB0ZW1wbGF0ZVVybDogJ3Jvdy5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZzUm93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgcHVibGljIHJvbGUgPSAncm93JztcblxuICBASW5wdXQoKSBwdWJsaWMgcm93OiBSb3c7XG4gIEBJbnB1dCgpIHB1YmxpYyByb3dBY3Rpb25zUmF3OiBhbnkgW10gPSBbXTtcbiAgQElucHV0KCkgcHVibGljIGdyb3VwQWN0aW9uc1JhdzogYW55IFtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBoYXNSb3dBY3Rpb25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyByb3dFdmVudHMgPSB7fTtcbiAgQElucHV0KCkgcHVibGljIHJvd0NsYXNzO1xuICBASW5wdXQoKSBwdWJsaWMgcmVzdG9yZU1vZGUgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb2x1bW5zOiBDb2x1bW5bXTtcbiAgQElucHV0KCkgcHVibGljIHNlbGVjdGlvbjogU2VsZWN0aW9uQ29udHJvbGxlcjtcbiAgQElucHV0KCkgcHVibGljIHJvd1JlbW92ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBASW5wdXQoKSBhY3RpdmVGaWx0ZXJzQ291bnQ6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRyYWctcm93JylcbiAgcHVibGljIHJlb3JkZXJFbmFibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHJlb3JkZXJQb3NpdGlvbjogUmVvcmRlclBvc2l0aW9uIHwgbnVsbDtcbiAgQElucHV0KCkgcmVvcmRlclN0cmF0ZWd5OiBSZW9yZGVyU3RyYXRlZ3kgfCBudWxsO1xuICBASW5wdXQoKSByZW9yZGVyTXVsdGlwbGU6IGJvb2xlYW47XG5cblxuICBAVmlld0NoaWxkcmVuKCd0ZCcpXG4gIHB1YmxpYyBjZWxsUmVmcztcblxuICBwdWJsaWMgcmVhZG9ubHkgUmVvcmRlclBvc2l0aW9uID0gUmVvcmRlclBvc2l0aW9uO1xuICBwdWJsaWMgcmVhZG9ubHkgUmVvcmRlclN0cmF0ZWd5ID0gUmVvcmRlclN0cmF0ZWd5O1xuICBwdWJsaWMgcm93QWN0aW9uczogUm93QWN0aW9uW10gPSBbXTtcbiAgcHVibGljIG1lbnVSb3dBY3Rpb25zOiBSb3dBY3Rpb25bXSA9IFtdO1xuICBwdWJsaWMgaW5saW5lUm93QWN0aW9uczogUm93QWN0aW9uW10gPSBbXTtcbiAgcHVibGljIHJlc3RvcmVBY3Rpb246IFJvd0FjdGlvbjtcbiAgcHVibGljIHNlbGVjdGVkID0gZmFsc2U7XG4gIHB1YmxpYyBpbmRldGVybWluYXRlU2VsZWN0ZWQ6IGJvb2xlYW4gfCAnaW5kZXRlcm1pbmF0ZScgPSBmYWxzZTtcblxuICBwcml2YXRlIF9yb3dEaWZmZXI6IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PjtcbiAgcHJpdmF0ZSBfZXZlbnRMaXN0ZW5lcnMgPSBbXTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzLFxuICAgIHByaXZhdGUgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBfZHJhZ2dhYmxlTGlzdDogRnNMaXN0RHJhZ2dhYmxlTGlzdERpcmVjdGl2ZSxcbiAgKSB7XG4gICAgdGhpcy5fcm93RGlmZmVyID0gX2RpZmZlcnMuZmluZCh7fSkuY3JlYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzR3JvdXBSb3coKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm93LmlzR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzR3JvdXBDaGlsZFJvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb3cuaXNHcm91cENoaWxkO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0dyb3VwRm9vdGVyUm93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvdy5pc0dyb3VwRm9vdGVyO1xuICB9XG5cbiAgcHVibGljIGdldCBpc0RyYWdEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5yZW9yZGVyTXVsdGlwbGUgJiYgISF0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZFJvd3Muc2l6ZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubXVsdGlwbGUtc2VsZWN0aW9uJylcbiAgZ2V0IGlzTXVsdGlwbGVTZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgbXVsdGlwbGUgPSB0aGlzLnJlb3JkZXJNdWx0aXBsZTtcblxuICAgIHJldHVybiBtdWx0aXBsZSAmJiB0aGlzLnNlbGVjdGVkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCByb3dDc3NDbGFzcygpIHtcbiAgICBsZXQgY2xzID0gJ2ZzLWxpc3Qtcm93JztcblxuICAgIGlmICh0aGlzLnJvd0luZGV4ICUgMiAhPT0gMCkgY2xzICs9ICcgZnMtbGlzdC1yb3ctb2RkJztcbiAgICBpZiAodGhpcy5yb3dJbmRleCAlIDIgPT09IDApIGNscyArPSAnIGZzLWxpc3Qtcm93LWV2ZW4nO1xuXG4gICAgaWYgKHRoaXMucm93Py5pc0dyb3VwKSB7XG4gICAgICBjbHMgKz0gJyBmcy1saXN0LXJvdy1ncm91cCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJvdz8uaXNHcm91cENoaWxkKSB7XG4gICAgICBjbHMgKz0gJyBmcy1saXN0LXJvdy1ncm91cC1jaGlsZCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJvdz8uaXNHcm91cEZvb3Rlcikge1xuICAgICAgY2xzICs9ICcgZnMtbGlzdC1yb3ctZ3JvdXAtZm9vdGVyJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yb3dDbGFzcykge1xuICAgICAgY29uc3Qgb3B0aW9uczogRnNMaXN0Um93Q2xhc3NPcHRpb25zID0ge1xuICAgICAgICBpbmRleDogdGhpcy5yb3dJbmRleCxcbiAgICAgICAgdHlwZTogdGhpcy5yb3cudHlwZSxcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLnJvdy5pc0dyb3VwKSB7XG4gICAgICAgIG9wdGlvbnMuZ3JvdXBJbmRleCA9IHRoaXMucm93LmluZGV4O1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnJvdy5pc0dyb3VwQ2hpbGQgfHwgdGhpcy5yb3cuaXNHcm91cEZvb3Rlcikge1xuICAgICAgICBvcHRpb25zLmdyb3VwSW5kZXggPSB0aGlzLnJvdy5wYXJlbnQuaW5kZXg7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlc3VsdENsYXNzID0gdGhpcy5yb3dDbGFzcyh0aGlzLnJvdy5kYXRhLCBvcHRpb25zKTtcblxuICAgICAgaWYgKHR5cGVvZiByZXN1bHRDbGFzcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY2xzICs9IGAgJHtyZXN1bHRDbGFzc31gO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVzdWx0Q2xhc3MgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhyZXN1bHRDbGFzcyk7XG4gICAgICAgIGZvciAoY29uc3QgayBvZiBrZXlzKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdENsYXNzW2tdID09PSB0cnVlKSBjbHMgKz0gYCAke2t9YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjbHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRyYWdDZWxsVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMucm93LmlzR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxlZnREcmFnRHJvcEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVvcmRlckVuYWJsZWRcbiAgICAgICYmIHRoaXMucmVvcmRlclBvc2l0aW9uID09PSBSZW9yZGVyUG9zaXRpb24uTGVmdFxuICAgICAgJiYgdGhpcy5hY3RpdmVGaWx0ZXJzQ291bnQgPT0gMFxuICB9XG5cbiAgcHVibGljIGdldCByaWdodERyYWdEcm9wRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZW9yZGVyRW5hYmxlZFxuICAgICAgJiYgdGhpcy5yZW9yZGVyUG9zaXRpb24gPT09IFJlb3JkZXJQb3NpdGlvbi5SaWdodFxuICAgICAgJiYgdGhpcy5hY3RpdmVGaWx0ZXJzQ291bnQgPT0gMFxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdFJvd0V2ZW50cygpO1xuICAgIHRoaXMuaW5pdFNlbGVjdGlvbigpO1xuXG4gICAgaWYgKHRoaXMucm93ICYmIHRoaXMucm93LmlzR3JvdXApIHtcbiAgICAgIGlmICh0aGlzLnJvdyAmJiB0aGlzLnJvdy5pc0dyb3VwICYmIHRoaXMuZ3JvdXBBY3Rpb25zUmF3KSB7XG4gICAgICAgIHRoaXMucm93QWN0aW9ucyA9IHRoaXMuZ3JvdXBBY3Rpb25zUmF3Lm1hcCgoYWN0aW9uKSA9PiBuZXcgUm93QWN0aW9uKGFjdGlvbikpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyQWN0aW9uc0J5Q2F0ZWdvcmllcygpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5yb3dBY3Rpb25zUmF3KSB7XG4gICAgICB0aGlzLnJvd0FjdGlvbnMgPSB0aGlzLnJvd0FjdGlvbnNSYXcubWFwKChhY3Rpb24pID0+IG5ldyBSb3dBY3Rpb24oYWN0aW9uKSk7XG5cbiAgICAgIHRoaXMuZmlsdGVyQWN0aW9uc0J5Q2F0ZWdvcmllcygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuX3Jvd0RpZmZlci5kaWZmKHRoaXMucm93KSkge1xuICAgICAgaWYgKHRoaXMucm93QWN0aW9ucykge1xuICAgICAgICB0aGlzLnJvd0FjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgYWN0aW9uLmNoZWNrU2hvd1N0YXR1cyh0aGlzLnJvdy5kYXRhLCB0aGlzLnJvd0luZGV4KTtcbiAgICAgICAgICBhY3Rpb24udXBkYXRlTGluayh0aGlzLnJvdy5kYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZmlsdGVyQWN0aW9uc0J5Q2F0ZWdvcmllcygpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaCgobGlzdGVuZXIpID0+IHsgbGlzdGVuZXIoKSB9KTtcblxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCByb3cgYnkgY2hlY2tib3hcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc2VsZWN0Um93KGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSkge1xuICAgIHRoaXMuc2VsZWN0aW9uLnJvd1NlbGVjdGlvbkNoYW5nZSh0aGlzLnJvdywgZXZlbnQuY2hlY2tlZCk7XG4gICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2sgQnkgZm9yIGltcHJvdmUgY2hhbmdlIGRldGVjdGlvblxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICovXG4gIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXgpIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBwdWJsaWMgZHJhZ1N0YXJ0KGV2ZW50KSB7XG4gICAgaWYgKHRoaXMucmVvcmRlckVuYWJsZWQgJiYgIXRoaXMuaXNEcmFnRGlzYWJsZWQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgICAgdGhpcy5fZHJhZ2dhYmxlTGlzdC5kcmFnU3RhcnQodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IGV2ZW50IGxpc3RlbmVycyBmb3Igcm93XG4gICAqL1xuICBwcml2YXRlIGluaXRSb3dFdmVudHMoKSB7XG4gICAgZm9yIChjb25zdCBldmVudCBpbiB0aGlzLnJvd0V2ZW50cykge1xuICAgICAgaWYgKHRoaXMucm93RXZlbnRzLmhhc093blByb3BlcnR5KGV2ZW50KSkge1xuICAgICAgICBjb25zdCBsaXN0ZW5lciA9IHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIGV2ZW50LCAoZXZ0KSA9PiB7XG4gICAgICAgICAgLy8gZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgLy8gZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgaWYgKCF0aGlzLnJlb3JkZXJFbmFibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnJvd0V2ZW50c1tldmVudF0oe1xuICAgICAgICAgICAgICBldmVudDogZXZ0LFxuICAgICAgICAgICAgICByb3c6IHRoaXMucm93LmRhdGEsXG4gICAgICAgICAgICAgIHJvd0luZGV4OiB0aGlzLnJvd0luZGV4XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gc2VsZWN0aW9uIGNoYW5nZSBldmVudHNcbiAgICovXG4gIHByaXZhdGUgaW5pdFNlbGVjdGlvbigpIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLnJvdyAmJiB0aGlzLnNlbGVjdGlvbi5pc1Jvd1NlbGVjdGVkKHRoaXMucm93LmRhdGEpO1xuXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3Rpb25DaGFuZ2UkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIC8vIC8vIFdvdWxkIGxpa2UgdG8gcmVzcG9uZCBvbmx5IHdoZW4gY2hlY2tib3ggb24gdG9wIGlzIGNoYW5nZWRcbiAgICAgICAgICAvLyAvLyBvciB3YXMgY2xpY2tlZCBcIlNlbGVjdCBBbGxcIiBpbiBzZWxlY3Rpb24gZGlhbG9nXG4gICAgICAgICAgLy8gZmlsdGVyKCh7dHlwZX0pID0+IHtcbiAgICAgICAgICAvLyAgIHJldHVybiB0eXBlID09PSBTZWxlY3Rpb25DaGFuZ2VUeXBlLkFsbFZpc2libGVTZWxlY3Rpb25DaGFuZ2VcbiAgICAgICAgICAvLyAgICAgfHwgdHlwZSA9PT0gU2VsZWN0aW9uQ2hhbmdlVHlwZS5TZWxlY3RlZEFsbDtcbiAgICAgICAgICAvLyB9KSxcbiAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLnJvdyAmJiB0aGlzLnNlbGVjdGlvbi5pc1Jvd1NlbGVjdGVkKHRoaXMucm93LmRhdGEpO1xuXG4gICAgICAgICAgaWYgKHRoaXMucm93Py5pc0dyb3VwKSB7XG4gICAgICAgICAgICBjb25zdCBncm91cFNlbGVjdGlvbiA9IHRoaXMuc2VsZWN0aW9uLmlzR3JvdXBTZWxlY3RlZCh0aGlzLnJvdyk7XG5cbiAgICAgICAgICAgIGlmIChncm91cFNlbGVjdGlvbiA9PT0gJ2luZGV0ZXJtaW5hdGUnKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gZ3JvdXBTZWxlY3Rpb247XG4gICAgICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZVNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyQWN0aW9uc0J5Q2F0ZWdvcmllcygpIHtcbiAgICB0aGlzLm1lbnVSb3dBY3Rpb25zID0gW107XG4gICAgdGhpcy5pbmxpbmVSb3dBY3Rpb25zID0gW107XG4gICAgdGhpcy5yZXN0b3JlQWN0aW9uID0gbnVsbDtcblxuICAgIHRoaXMucm93QWN0aW9ucy5mb3JFYWNoKChhY3Rpb24pID0+IHtcblxuICAgICAgaWYgKCFhY3Rpb24uaXNTaG93bikgeyByZXR1cm4gfVxuXG4gICAgICBpZiAoYWN0aW9uLm1lbnUgJiYgIWFjdGlvbi5yZXN0b3JlKSB7XG4gICAgICAgIHRoaXMubWVudVJvd0FjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgfSBlbHNlIGlmICghYWN0aW9uLm1lbnUgJiYgIWFjdGlvbi5yZXN0b3JlKSB7XG4gICAgICAgIHRoaXMuaW5saW5lUm93QWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICB9IGVsc2UgaWYgKGFjdGlvbi5yZXN0b3JlKSB7XG4gICAgICAgIHRoaXMucmVzdG9yZUFjdGlvbiA9IGFjdGlvbjtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLSBEcmFnIC0tPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxlZnREcmFnRHJvcEVuYWJsZWRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyYWdDZWxsXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBTZWxlY3Rpb24gLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0aW9uICYmICEoc2VsZWN0aW9uLmRpc2FibGVkJCB8IGFzeW5jKVwiPlxuICA8dGQgY2xhc3M9XCJmcy1saXN0LWNvbCBmcy1saXN0LWNvbC1zZWxlY3Rpb25cIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXJvdy5pc0dyb3VwRm9vdGVyXCI+XG4gICAgICA8bWF0LWNoZWNrYm94IChjaGFuZ2UpPVwic2VsZWN0Um93KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVTZWxlY3RlZFwiPlxuICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvdGQ+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBDb250ZW50IC0tPlxuPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGbjsgbGV0IGlzRmlyc3QgPSBmaXJzdFwiPlxuICA8dGQgZnMtY2VsbFxuICAgICAgKm5nSWY9XCIoaXNHcm91cFJvdyAmJiAhY29sdW1uLmdyb3VwSGVhZGVyQ29sc3Bhbm5lZClcbiAgICAgICAgfHwgKGlzR3JvdXBGb290ZXJSb3cgJiYgIWNvbHVtbi5ncm91cEZvb3RlckNvbHNwYW5uZWQpXG4gICAgICAgIHx8ICghaXNHcm91cFJvdyAmJiAhaXNHcm91cEZvb3RlclJvdyAmJiAhY29sdW1uLmNlbGxDb2xzcGFubmVkKVwiXG4gICAgICBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICBbcm93XT1cInJvd1wiXG4gICAgICBbcm93SW5kZXhdPVwicm93SW5kZXhcIlxuICAgICAgW2NsYXNzXT1cIihpc0dyb3VwUm93ICYmIGNvbHVtbi5ncm91cEhlYWRlckNvbmZpZ3MuY2xhc3Nlc1N0cmluZylcbiAgICAgICAgfHwgKGlzR3JvdXBGb290ZXJSb3cgJiYgY29sdW1uLmdyb3VwRm9vdGVyQ29uZmlncy5jbGFzc2VzU3RyaW5nKVxuICAgICAgICB8fCAoIWlzR3JvdXBGb290ZXJSb3cgJiYgY29sdW1uLmNlbGxDb25maWdzLmNsYXNzZXNTdHJpbmcpXCJcbiAgICAgIFtuZ0NsYXNzXT1cInsgJ3ByaW1hcnktY29sJzogaXNGaXJzdCB9XCJcbiAgICAgIFthdHRyLmNvbHNwYW5dPVwiKGlzR3JvdXBSb3cgJiYgY29sdW1uLmdyb3VwSGVhZGVyQ29uZmlncy5jb2xzcGFuKVxuICAgICAgICB8fCAoaXNHcm91cEZvb3RlclJvdyAmJiBjb2x1bW4uZ3JvdXBGb290ZXJDb25maWdzLmNvbHNwYW4pXG4gICAgICAgIHx8IGNvbHVtbi5jZWxsQ29uZmlncy5jb2xzcGFuXCJcbiAgICAgIFthdHRyLndpZHRoXT1cImNvbHVtbi53aWR0aFwiXG4gID5cbiAgPC90ZD5cbjwvbmctY29udGFpbmVyPlxuXG48IS0tIERyYWcgLS0+XG48bmctY29udGFpbmVyICpuZ0lmPVwicmlnaHREcmFnRHJvcEVuYWJsZWRcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRyYWdDZWxsXCI+PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cblxuPCEtLSBSb3cgQWN0aW9ucyAtLT5cbjx0ZCAqbmdJZj1cImhhc1Jvd0FjdGlvbnMgJiYgIShyZW9yZGVyRW5hYmxlZCAmJiByZW9yZGVyU3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneS5NYW51YWwpXCIgY2xhc3M9XCJmcy1saXN0LWNvbCByb3ctYWN0aW9uc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzR3JvdXBGb290ZXJSb3dcIj5cbiAgICA8ZnMtbGlzdC1yb3ctYWN0aW9ucyBbcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV4XT1cInJvd0luZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcm93QWN0aW9uc109XCJyb3dBY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbWVudVJvd0FjdGlvbnNdPVwibWVudVJvd0FjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmxpbmVSb3dBY3Rpb25zXT1cImlubGluZVJvd0FjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXN0b3JlQWN0aW9uXT1cInJlc3RvcmVBY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXN0b3JlTW9kZV09XCJyZXN0b3JlTW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3Jvd1JlbW92ZWRdPVwicm93UmVtb3ZlZFwiXG4gICAgPjwvZnMtbGlzdC1yb3ctYWN0aW9ucz5cbiAgPC9uZy1jb250YWluZXI+XG48L3RkPlxuXG48bmctdGVtcGxhdGUgI2RyYWdDZWxsPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHJhZ0NlbGxWaXNpYmxlICYmICFpc0dyb3VwRm9vdGVyUm93OyBlbHNlIGVtcHR5Q2VsbFwiPlxuICAgIDx0ZCBjbGFzcz1cImZzLWxpc3QtY29sIGRyYWctY29sXCJcbiAgICAgICAgW2NsYXNzLmRyYWctZGlzYWJsZWRdPVwiaXNEcmFnRGlzYWJsZWRcIlxuICAgICAgICAobW91c2Vkb3duKT1cImRyYWdTdGFydCgkZXZlbnQpXCJcbiAgICAgICAgKHRvdWNoc3RhcnQpPVwiZHJhZ1N0YXJ0KCRldmVudClcIlxuICAgID5cbiAgICAgIDxtYXQtaWNvbj5kcmFnX2hhbmRsZTwvbWF0LWljb24+XG4gICAgPC90ZD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjZW1wdHlDZWxsPlxuICAgIDx0ZCBjbGFzcz1cImZzLWxpc3QtY29sIGRyYWctY29sXCI+PC90ZD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -88,7 +88,7 @@ export class FsListDraggableListDirective {
88
88
  // Can not drag before first group and after last group
89
89
  const swapWithBoundaryGroupElement = (elemIndex === 0 || elemIndex === this._rows.length - 1)
90
90
  && targetRow.isGroup
91
- && this.draggableItem.isChild;
91
+ && this.draggableItem.isGroupChild;
92
92
  if (!swapWithBoundaryGroupElement) {
93
93
  if (elemIndex !== null) {
94
94
  if (targetRow.readyToSwap) {
@@ -321,4 +321,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
321
321
  type: Input,
322
322
  args: ['rows']
323
323
  }] } });
324
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kaXJlY3RpdmVzL2RyYWdnYWJsZS1saXN0L2RyYWdnYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFXdEYsTUFBTSxPQUFPLDRCQUE0QjtJQTBCdkMsWUFDVSxNQUF5QixFQUN6QixLQUFhLEVBQ2IsaUJBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxTQUFvQjtRQUpwQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFZO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXRCOUIsV0FBVztRQUNILG1CQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyw0QkFBdUIsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFbkMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHeEIsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBSWhDLGlDQUE0QixHQUFrQyxFQUFFLENBQUM7UUFDakUsNEJBQXVCLEdBQWtDLEVBQUUsQ0FBQztRQUM1RCxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVEvQixDQUFDO0lBRUosSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQVksZUFBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVNLHFCQUFxQixDQUFDLEdBQWdDO1FBQzNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVNLHdCQUF3QixDQUFDLEdBQWdDO1FBQzlELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFM0QsSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsRDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsZ0JBQTZCO1FBQzVDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixPQUFPO1NBQ1I7UUFFRCxJQUNFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhO2VBQ2xDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLE1BQU0sRUFDOUQ7WUFDQSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDekM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUU1QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGdCQUFnQixDQUFDO1FBRTFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBQy9ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxDQUFDLGdCQUFnQixDQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN2RixNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEYsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRSxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBR0Q7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEtBQUs7UUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV4QyxJQUFJLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRTtZQUN6QyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUN4RSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUN4RTtRQUVELHVEQUF1RDtRQUN2RCxNQUFNLDRCQUE0QixHQUNoQyxDQUFDLFNBQVMsS0FBSyxDQUFDLElBQUksU0FBUyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztlQUNyRCxTQUFTLENBQUMsT0FBTztlQUNqQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztRQUdoQyxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDakMsSUFBSSxTQUFTLEtBQUssSUFBSSxFQUFFO2dCQUN0QixJQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQzlCLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFO3dCQUNqQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO3FCQUNuRTtpQkFDRjtxQkFBTTtvQkFDTCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTt3QkFDakMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztxQkFDaEU7aUJBQ0Y7YUFDRjtZQUVELFFBQVE7WUFDUixJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtnQkFDakMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDbEYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUksU0FBUyxHQUFHLElBQUksQ0FBQzthQUM3RDtTQUNGO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTztRQUNaLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdkQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYTtlQUNwQyxJQUFJLENBQUMsMkJBQTJCLEtBQUssSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBRXJFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUNuRCxDQUFDO1NBQ0g7UUFFRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEtBQUssZUFBZSxDQUFDLE1BQU0sRUFBRTtZQUMvRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRTtvQkFDeEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQ25ELENBQUM7b0JBRUYsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNsQztZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCx3RUFBd0U7UUFDeEUsR0FBRztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBRTlCLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2pDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUV2QyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDO1NBQ3RDO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxJQUFJLENBQUM7U0FDOUM7UUFFRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsRUFBRSxDQUFDO1FBRWxDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdkUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RSxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDckUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV6RSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWU7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQzthQUMvRyxNQUFNLENBQUMsQ0FBQyxHQUFVLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3hDLE1BQU0sT0FBTyxHQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBRTVDLElBQUksVUFBVSxLQUFLLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDekMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLEtBQUssQ0FBQztnQkFDcEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7YUFDdkI7WUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWxCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBZ0MsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSyxzQkFBc0I7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0MsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2xCLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUN4QixFQUFFLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssb0JBQW9COztRQUMxQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBZ0IsQ0FBQztRQUNqRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU1RCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDM0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbkMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUM7WUFDL0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFN0UsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUUzQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjthQUFNO1lBQ0wscUJBQXFCO1lBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUVsRSxNQUFNLGFBQWEsR0FBRyxNQUFBLElBQUksQ0FBQyx1QkFBdUIsMENBQUUsTUFBTSxDQUFDO1lBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3pELFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQzNDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBRXpDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsYUFBYSxpQkFBaUIsQ0FBQyxDQUFDO1lBRTFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsZ0NBQWdDLEdBQUcsWUFBWSxDQUFDO1NBQ3REO0lBRUgsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGtCQUFrQixDQUFDLEtBQUs7UUFDOUIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUN4QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFFckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdEQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXJDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFO2dCQUNkLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHNCQUFzQjt1QkFDMUUsTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFLLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFO29CQUNwRixTQUFTLEdBQUcsQ0FBQyxDQUFDO2lCQUNmO2FBQ0Y7U0FDRjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7O09BR0c7SUFDSyxhQUFhLENBQUMsS0FBSztRQUN6QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDaEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHVCQUF1QjthQUM5QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7YUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFaEMsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0I7YUFDcEIsY0FBYzthQUNkLFFBQVEsQ0FDUCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUNqQixZQUFZLEVBQ1osSUFBSSxDQUFDLGVBQWUsQ0FDckIsQ0FBQztRQUVKLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQztZQUU5QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBRW5ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNsRixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztZQUNyRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUM3QztRQUVELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxtQkFBbUI7UUFDekIsTUFBTSxjQUFjLEdBQVEsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUU3RixLQUFLLENBQUMsSUFBSSxDQUNSLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FDckQsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDMUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsVUFBbUI7UUFDN0MsSUFBSSxVQUFVLFlBQVksVUFBVSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBRS9DLFVBQVU7aUJBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDaEQsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFTyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLDRCQUE0QjthQUM5QixPQUFPLENBQUMsQ0FBQyxHQUFnQyxFQUFFLEVBQUU7O1lBQzVDLE1BQU0sYUFBYSxHQUFHLE1BQUEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQiwwQ0FBRSxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUvRixJQUFJLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssUUFBUSxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDMUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUNyRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUM3QixDQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQzthQUNoQztZQUVELENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7OzBIQTVZVSw0QkFBNEI7OEdBQTVCLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUh4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7aUJBQ2xDOzhNQXNCUyxLQUFLO3NCQURaLEtBQUs7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBOZ1pvbmUsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJlb3JkZXJDb250cm9sbGVyLCBSZW9yZGVyU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlcic7XG5pbXBvcnQgeyBTZWxlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9zZWxlY3Rpb24tY29udHJvbGxlcic7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi8uLi9tb2RlbHMvcm93JztcbmltcG9ydCB7IEZzTGlzdERyYWdDaGlsZFJvd0VsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RyYWdnYWJsZS1saXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGc0xpc3RSZW9yZGVyRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRnNMaXN0RHJhZ2dhYmxlUm93RGlyZWN0aXZlIH0gZnJvbSAnLi4vZHJhZ2dhYmxlLXJvdy9kcmFnZ2FibGUtcm93LmRpcmVjdGl2ZSc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZzTGlzdERyYWdnYWJsZUxpc3RdJyxcbn0pXG5leHBvcnQgY2xhc3MgRnNMaXN0RHJhZ2dhYmxlTGlzdERpcmVjdGl2ZSB7XG4gIC8vIERyYWdnYWJsZSBFbGVtZW50XG4gIHByaXZhdGUgX2RyYWdnYWJsZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9kcmFnZ2FibGVFbGVtZW50UHJldmlldzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX211bHRpcGxlRHJhZ2dhYmxlRWxlbWVudFByZXZpZXc6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9kcmFnZ2FibGVFbGVtZW50SGVpZ2h0OiBudW1iZXI7XG4gIHByaXZhdGUgX2RyYWdnYWJsZUVsZW1lbnRJbmRleDogbnVtYmVyO1xuICBwcml2YXRlIF9kcmFnZ2FibGVFbGVtZW50U3RhcnRJbmRleDogbnVtYmVyO1xuXG4gIC8vIEhhbmRsZXJzXG4gIHByaXZhdGUgX2RyYWdUb0hhbmRsZXIgPSB0aGlzLmRyYWdUby5iaW5kKHRoaXMpO1xuICBwcml2YXRlIF9kcmFnRW5kSGFuZGxlciA9IHRoaXMuZHJhZ0VuZC5iaW5kKHRoaXMpO1xuICBwcml2YXRlIF93aW5kb3dUb3VjaE1vdmVIYW5kbGVyID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBfZHJhZ0luUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBwcml2YXRlIF9jaGlsZFJvd0VsZW1lbnRzOiBGc0xpc3REcmFnQ2hpbGRSb3dFbGVtZW50W107XG4gIHByaXZhdGUgX2RyYWdTdGFydCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kcmFnRW5kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KCdyb3dzJylcbiAgcHJpdmF0ZSBfcm93czogUm93W107XG4gIHByaXZhdGUgX2RyYWdnYWJsZUNoaWxkcmVuRGlyZWN0aXZlczogRnNMaXN0RHJhZ2dhYmxlUm93RGlyZWN0aXZlW10gPSBbXTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRSb3dzRGlyZWN0aXZlczogRnNMaXN0RHJhZ2dhYmxlUm93RGlyZWN0aXZlW10gPSBbXTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyRWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9yZW9yZGVyQ29udHJvbGxlcjogUmVvcmRlckNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgZHJhZ1N0YXJ0JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0JC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpO1xuICB9XG5cbiAgcHVibGljIGdldCBkcmFnRW5kJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZHJhZ0VuZCQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZHJhZ2dhYmxlSXRlbSgpOiBSb3cge1xuICAgIHJldHVybiB0aGlzLl9yb3dzW3RoaXMuX2RyYWdnYWJsZUVsZW1lbnRJbmRleF07XG4gIH1cblxuICBwcml2YXRlIGdldCBfaXNNdWx0aXBsZURyYWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLm11bHRpcGxlICYmIHRoaXMuX3NlbGVjdGVkUm93c0RpcmVjdGl2ZXMubGVuZ3RoID4gMTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREcmFnZ2FibGVEaXJlY3RpdmUoZGlyOiBGc0xpc3REcmFnZ2FibGVSb3dEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnZ2FibGVDaGlsZHJlbkRpcmVjdGl2ZXMucHVzaChkaXIpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZURyYWdnYWJsZURpcmVjdGl2ZShkaXI6IEZzTGlzdERyYWdnYWJsZVJvd0RpcmVjdGl2ZSk6IHZvaWQge1xuICAgIGNvbnN0IGlkeCA9IHRoaXMuX2RyYWdnYWJsZUNoaWxkcmVuRGlyZWN0aXZlcy5pbmRleE9mKGRpcik7XG5cbiAgICBpZiAoaWR4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fZHJhZ2dhYmxlQ2hpbGRyZW5EaXJlY3RpdmVzLnNwbGljZShpZHgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGRyYWdnYWJsZSBlbGVtZW50cyBhbmQgYWRkIGV2ZW50c1xuICAgKiBAcGFyYW0gZHJhZ2dhYmxlRWxlbWVudFxuICAgKi9cbiAgcHVibGljIGRyYWdTdGFydChkcmFnZ2FibGVFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIGlmICh0aGlzLl9kcmFnSW5Qcm9ncmVzcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLnN0YXJ0Q2FsbGJhY2tcbiAgICAgICYmIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuQWx3YXlzXG4gICAgKSB7XG4gICAgICB0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5zdGFydENhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fZHJhZ0luUHJvZ3Jlc3MgPSB0cnVlO1xuXG4gICAgd2luZG93LmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgncmVvcmRlci1pbi1wcm9ncmVzcycpO1xuXG4gICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudCA9IGRyYWdnYWJsZUVsZW1lbnQ7XG5cbiAgICB0aGlzLl9kZXRlY3RTZWxlY3RlZFJvd3MoKTtcbiAgICB0aGlzLnByZXBhcmVFbGVtZW50cygpO1xuICAgIHRoaXMuaW5pdERyYWdnYWJsZUVsZW1lbnQoKTtcblxuICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRTdGFydEluZGV4ID0gdGhpcy5fZHJhZ2dhYmxlRWxlbWVudEluZGV4O1xuICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJhZ2dhYmxlLWVsZW0nKTtcblxuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICd0b3VjaG1vdmUnLCB0aGlzLl93aW5kb3dUb3VjaE1vdmVIYW5kbGVyLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICB3aW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5fZHJhZ1RvSGFuZGxlciwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgd2luZG93LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuX2RyYWdUb0hhbmRsZXIsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgfSk7XG5cbiAgICB3aW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuX2RyYWdFbmRIYW5kbGVyKTtcbiAgICB3aW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLl9kcmFnRW5kSGFuZGxlcik7XG4gICAgd2luZG93LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgdGhpcy5fZHJhZ0VuZEhhbmRsZXIpO1xuXG4gICAgdGhpcy5fZHJhZ1N0YXJ0JC5uZXh0KCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBNb3ZlIGRyYWdnYWJsZSBlbGVtZW50cyBhbmQgc3dhcCBpdGVtc1xuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIHB1YmxpYyBkcmFnVG8oZXZlbnQpIHtcbiAgICB0aGlzLnRvdWNoRml4KGV2ZW50KTtcbiAgICBjb25zdCBlbGVtSW5kZXggPSB0aGlzLmxvb2t1cEVsZW1lbnRVbmRlcihldmVudCk7XG4gICAgY29uc3QgdGFyZ2V0Um93ID0gdGhpcy5fcm93c1tlbGVtSW5kZXhdO1xuXG4gICAgaWYgKHRoaXMuX211bHRpcGxlRHJhZ2dhYmxlRWxlbWVudFByZXZpZXcpIHtcbiAgICAgIHRoaXMuX211bHRpcGxlRHJhZ2dhYmxlRWxlbWVudFByZXZpZXcuc3R5bGUubGVmdCA9IGV2ZW50LmNsaWVudFggKyAncHgnO1xuICAgICAgdGhpcy5fbXVsdGlwbGVEcmFnZ2FibGVFbGVtZW50UHJldmlldy5zdHlsZS50b3AgPSBldmVudC5jbGllbnRZICsgJ3B4JztcbiAgICB9XG5cbiAgICAvLyBDYW4gbm90IGRyYWcgYmVmb3JlIGZpcnN0IGdyb3VwIGFuZCBhZnRlciBsYXN0IGdyb3VwXG4gICAgY29uc3Qgc3dhcFdpdGhCb3VuZGFyeUdyb3VwRWxlbWVudCA9XG4gICAgICAoZWxlbUluZGV4ID09PSAwIHx8IGVsZW1JbmRleCA9PT0gdGhpcy5fcm93cy5sZW5ndGggLSAxKVxuICAgICAgJiYgdGFyZ2V0Um93LmlzR3JvdXBcbiAgICAgICYmIHRoaXMuZHJhZ2dhYmxlSXRlbS5pc0NoaWxkO1xuXG5cbiAgICBpZiAoIXN3YXBXaXRoQm91bmRhcnlHcm91cEVsZW1lbnQpIHtcbiAgICAgIGlmIChlbGVtSW5kZXggIT09IG51bGwpIHtcbiAgICAgICAgaWYgKHRhcmdldFJvdy5yZWFkeVRvU3dhcCkge1xuICAgICAgICAgIHRoaXMuc3dhcFdpdGhJbmRleChlbGVtSW5kZXgpO1xuICAgICAgICAgIGlmICh0aGlzLl9kcmFnZ2FibGVFbGVtZW50UHJldmlldykge1xuICAgICAgICAgICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudFByZXZpZXcuY2xhc3NMaXN0LnJlbW92ZSgnZnMtbGlzdC1uby1kcm9wJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmICh0aGlzLl9kcmFnZ2FibGVFbGVtZW50UHJldmlldykge1xuICAgICAgICAgICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudFByZXZpZXcuY2xhc3NMaXN0LmFkZCgnZnMtbGlzdC1uby1kcm9wJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEZJWE1FXG4gICAgICBpZiAodGhpcy5fZHJhZ2dhYmxlRWxlbWVudFByZXZpZXcpIHtcbiAgICAgICAgY29uc3QgdG9wT2Zmc2V0ID0gKGV2ZW50LnkgfHwgZXZlbnQuY2xpZW50WSkgLSAodGhpcy5fZHJhZ2dhYmxlRWxlbWVudEhlaWdodCAvIDIpO1xuICAgICAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50UHJldmlldy5zdHlsZS50b3AgPSAgdG9wT2Zmc2V0ICsgJ3B4JztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGV2ZW50cyBhbmQgY2xhc3NlcyBhZnRlciBkcmFnIGZpbmlzaFxuICAgKi9cbiAgcHVibGljIGRyYWdFbmQoKSB7XG4gICAgdGhpcy5fZHJhZ0luUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5kYXRhQ29udHJvbGxlci5maW5pc2hSZW9yZGVyKCk7XG5cbiAgICBpZiAodGhpcy5fcmVvcmRlckNvbnRyb2xsZXIubW92ZWRDYWxsYmFja1xuICAgICAgJiYgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudFN0YXJ0SW5kZXggIT09IHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRJbmRleCkge1xuXG4gICAgICB0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5tb3ZlZENhbGxiYWNrKFxuICAgICAgICB0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5kYXRhQ29udHJvbGxlci5yZW9yZGVyRGF0YVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcmVvcmRlckNvbnRyb2xsZXIuc3RyYXRlZ3kgPT09IFJlb3JkZXJTdHJhdGVneS5BbHdheXMpIHtcbiAgICAgIHRoaXMuX3pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLmRvbmVDYWxsYmFjaykge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLmRvbmVDYWxsYmFjayhcbiAgICAgICAgICAgIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLmRhdGFDb250cm9sbGVyLnJlb3JkZXJEYXRhXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMuX3dhaXRVbnRpbElzTm90RG9uZShyZXN1bHQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyB0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5kYXRhQ29udHJvbGxlci51cGRhdGVPcmRlckJ5Um93cyh0aGlzLl9yb3dzKTtcbiAgICAvLy9cbiAgICB0aGlzLl9jb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZy1oaWRkZW4nKTtcbiAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWdnYWJsZS1lbGVtJyk7XG4gICAgd2luZG93LmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgncmVvcmRlci1pbi1wcm9ncmVzcycpO1xuICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnQgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRQcmV2aWV3KSB7XG4gICAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50UHJldmlldy5yZW1vdmUoKTtcblxuICAgICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudFByZXZpZXcgPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDaGlsZChkb2N1bWVudC5ib2R5LCB0aGlzLl9tdWx0aXBsZURyYWdnYWJsZUVsZW1lbnRQcmV2aWV3KTtcbiAgICAgIHRoaXMuX211bHRpcGxlRHJhZ2dhYmxlRWxlbWVudFByZXZpZXcgPSBudWxsO1xuICAgIH1cblxuICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRIZWlnaHQgPSBudWxsO1xuICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRJbmRleCA9IG51bGw7XG4gICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudFN0YXJ0SW5kZXggPSBudWxsO1xuICAgIHRoaXMuX3NlbGVjdGVkUm93c0RpcmVjdGl2ZXMgPSBbXTtcblxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCAndG91Y2htb3ZlJywgdGhpcy5fd2luZG93VG91Y2hNb3ZlSGFuZGxlcik7XG4gICAgd2luZG93LmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMuX2RyYWdUb0hhbmRsZXIpO1xuICAgIHdpbmRvdy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLl9kcmFnVG9IYW5kbGVyKTtcbiAgICB3aW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuX2RyYWdFbmRIYW5kbGVyKTtcbiAgICB3aW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLl9kcmFnRW5kSGFuZGxlcik7XG4gICAgd2luZG93LmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgdGhpcy5fZHJhZ0VuZEhhbmRsZXIpO1xuXG4gICAgdGhpcy5fZHJhZ0VuZCQubmV4dCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIGxvb2tpbmcgcm93IGVsZW1lbnRzIGFuZCBzYXZlIHRoZWlyIGRpbXNcbiAgICovXG4gIHByaXZhdGUgcHJlcGFyZUVsZW1lbnRzKCkge1xuICAgIHRoaXMubG9va3VwQ2hpbGRFbGVtZW50cygpO1xuICAgIHRoaXMuY2FsY0VsZW1lbnRzRGltZW5zaW9ucygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3JlIGNoaWxkIHJvd3NcbiAgICovXG4gIHByaXZhdGUgbG9va3VwQ2hpbGRFbGVtZW50cygpIHtcbiAgICB0aGlzLl9jaGlsZFJvd0VsZW1lbnRzID0gQXJyYXkuZnJvbSh0aGlzLl9jb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndHI6bm90KC5kcmFnLWhpZGRlbiknKSlcbiAgICAgIC5yZWR1Y2UoKGFjYzogYW55W10sIHJvd0VsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQ6IGFueSA9IHsgdGFyZ2V0OiByb3dFbGVtZW50IH07XG5cbiAgICAgICAgaWYgKHJvd0VsZW1lbnQgPT09IHRoaXMuX2RyYWdnYWJsZUVsZW1lbnQpIHtcbiAgICAgICAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50SW5kZXggPSBpbmRleDtcbiAgICAgICAgICBlbGVtZW50LmFjdGl2ZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBhY2MucHVzaChlbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwgW10pIGFzIEZzTGlzdERyYWdDaGlsZFJvd0VsZW1lbnRbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxjIGNoaWxkIHJvd3Mgc2l6ZXMvb2Zmc2V0c1xuICAgKi9cbiAgcHJpdmF0ZSBjYWxjRWxlbWVudHNEaW1lbnNpb25zKCkge1xuICAgIHRoaXMuX2NoaWxkUm93RWxlbWVudHMuZm9yRWFjaCgoZWw6IGFueSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGRpbXMgPSBlbC50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBlbC50b3AgPSBkaW1zLnRvcDtcbiAgICAgIGVsLmhlaWdodCA9IGRpbXMuaGVpZ2h0O1xuICAgICAgZWwuY2VudGVyID0gZGltcy50b3AgKyAoZGltcy5oZWlnaHQgLyAyKTtcbiAgICAgIGVsLmluZGV4ID0gaW5kZXg7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdCBkcmFnZ2FibGUgZWxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0RHJhZ2dhYmxlRWxlbWVudCgpIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuX2RyYWdnYWJsZUVsZW1lbnQuY2xvbmVOb2RlKHRydWUpIGFzIEhUTUxFbGVtZW50O1xuICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9kcmFnZ2FibGVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgaWYgKCEodGhpcy5faXNNdWx0aXBsZURyYWcpKSB7XG4gICAgICBlbC5zdHlsZS53aWR0aCA9IGRhdGEud2lkdGggKyAncHgnO1xuICAgICAgZWwuc3R5bGUubGVmdCA9IGRhdGEubGVmdCArICdweCc7XG4gICAgICBlbC5zdHlsZS50b3AgPSBkYXRhLnRvcCArICdweCc7XG4gICAgICBlbC5jbGFzc0xpc3QuYWRkKCdkcmFnZ2FibGUnKTtcblxuICAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50Lmluc2VydEFkamFjZW50RWxlbWVudCgnYWZ0ZXJiZWdpbicsIGVsKTtcblxuICAgICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudFByZXZpZXcgPSBlbDtcbiAgICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRIZWlnaHQgPSBkYXRhLmhlaWdodDtcblxuICAgICAgdGhpcy51cGRhdGVEcmFnZ2FibGVEaW1zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENyZWF0ZSBwcmV2aWV3IERJVlxuICAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2RyYWctaGlkZGVuJyk7XG5cbiAgICAgIGNvbnN0IHNlbGVjdGVkQ291bnQgPSB0aGlzLl9zZWxlY3RlZFJvd3NEaXJlY3RpdmVzPy5sZW5ndGg7XG4gICAgICBjb25zdCBwcmV2aWV3QmxvY2sgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgIHByZXZpZXdCbG9jay5zdHlsZS5sZWZ0ID0gZGF0YS5sZWZ0ICsgJ3B4JztcbiAgICAgIHByZXZpZXdCbG9jay5zdHlsZS50b3AgPSBkYXRhLnRvcCArICdweCc7XG5cbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVUZXh0KGAke3NlbGVjdGVkQ291bnR9IHNlbGVjdGVkIGl0ZW1zYCk7XG5cbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHByZXZpZXdCbG9jaywgdGV4dCk7XG4gICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhwcmV2aWV3QmxvY2ssICdwcmV2aWV3LWJsb2NrJyk7XG4gICAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCBwcmV2aWV3QmxvY2spO1xuICAgICAgdGhpcy5fbXVsdGlwbGVEcmFnZ2FibGVFbGVtZW50UHJldmlldyA9IHByZXZpZXdCbG9jaztcbiAgICB9XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBMb29raW5nIGJ5IHN0b3JlZCByb3cgZWxlbWVudHMgZm9yIG92ZXJsYXBwZWQgcm93XG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBsb29rdXBFbGVtZW50VW5kZXIoZXZlbnQpIHtcbiAgICBjb25zdCB0b3AgPSBldmVudC55IHx8IGV2ZW50LmNsaWVudFk7XG4gICAgY29uc3QgYm90dG9tID0gZXZlbnQueSB8fCBldmVudC5jbGllbnRZO1xuICAgIGxldCBlbGVtSW5kZXggPSBudWxsO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLl9jaGlsZFJvd0VsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXMuX2NoaWxkUm93RWxlbWVudHNbaV07XG5cbiAgICAgIGlmICghZWwuYWN0aXZlKSB7XG4gICAgICAgIGlmICh0b3AgPCBlbC5jZW50ZXIgKyAoZWwuaGVpZ2h0IC8gMikgJiYgZWwuaW5kZXggPCB0aGlzLl9kcmFnZ2FibGVFbGVtZW50SW5kZXhcbiAgICAgICAgICB8fCBib3R0b20gPiBlbC5jZW50ZXIgLSAoZWwuaGVpZ2h0IC8gMikgICYmIGVsLmluZGV4ID4gdGhpcy5fZHJhZ2dhYmxlRWxlbWVudEluZGV4KSB7XG4gICAgICAgICAgZWxlbUluZGV4ID0gaTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlbGVtSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogU3dhcCByb3dzXG4gICAqIEBwYXJhbSBpbmRleFxuICAgKi9cbiAgcHJpdmF0ZSBzd2FwV2l0aEluZGV4KGluZGV4KSB7XG4gICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLl9kcmFnZ2FibGVFbGVtZW50SW5kZXg7XG4gICAgY29uc3Qgc2VsZWN0ZWRSb3dzID0gdGhpcy5fc2VsZWN0ZWRSb3dzRGlyZWN0aXZlc1xuICAgICAgLm1hcCgoZCkgPT4gZC5yb3cpXG4gICAgICAuZmlsdGVyKChkKSA9PiBkLnJlYWR5VG9Td2FwKTtcblxuICAgIC8vIFN3YXAgcm93cyBpbiBnbG9iYWwgcm93cyBzdGFja1xuICAgIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyXG4gICAgICAuZGF0YUNvbnRyb2xsZXJcbiAgICAgIC5zd2FwUm93cyhcbiAgICAgICAgdGhpcy5fcm93c1thY3RpdmVJbmRleF0sXG4gICAgICAgIHRoaXMuX3Jvd3NbaW5kZXhdLFxuICAgICAgICBzZWxlY3RlZFJvd3MsXG4gICAgICAgIHRoaXMuX2lzTXVsdGlwbGVEcmFnLFxuICAgICAgKTtcblxuICAgIC8vIFN3YXAgdmlzaWJsZSByb3dzXG4gICAgaWYgKCF0aGlzLl9pc011bHRpcGxlRHJhZykge1xuICAgICAgY29uc3QgYWN0aXZlUm93ID0gdGhpcy5fcm93c1thY3RpdmVJbmRleF07XG4gICAgICB0aGlzLl9yb3dzW2FjdGl2ZUluZGV4XSA9IHRoaXMuX3Jvd3NbaW5kZXhdO1xuICAgICAgdGhpcy5fcm93c1tpbmRleF0gPSBhY3RpdmVSb3c7XG5cbiAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnQgPSB0aGlzLl9jaGlsZFJvd0VsZW1lbnRzW2FjdGl2ZUluZGV4XS50YXJnZXQ7XG4gICAgICB0aGlzLl9jaGlsZFJvd0VsZW1lbnRzW2FjdGl2ZUluZGV4XS5hY3RpdmUgPSBmYWxzZTtcblxuICAgICAgdGhpcy5fY2hpbGRSb3dFbGVtZW50c1thY3RpdmVJbmRleF0udGFyZ2V0ID0gdGhpcy5fY2hpbGRSb3dFbGVtZW50c1tpbmRleF0udGFyZ2V0O1xuICAgICAgdGhpcy5fY2hpbGRSb3dFbGVtZW50c1tpbmRleF0udGFyZ2V0ID0gYWN0aXZlRWxlbWVudDtcbiAgICAgIHRoaXMuX2NoaWxkUm93RWxlbWVudHNbaW5kZXhdLmFjdGl2ZSA9IHRydWU7XG4gICAgfVxuXG4gICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudEluZGV4ID0gaW5kZXg7XG4gICAgdGhpcy5fY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjZWxsIHdpZHRoIGZvciBkcmFnZ2FibGUgZWxlbVxuICAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVEcmFnZ2FibGVEaW1zKCkge1xuICAgIGNvbnN0IGRyYWdnYWJsZUNlbGxzOiBhbnkgPSBBcnJheS5mcm9tKHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRQcmV2aWV3LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RkJykpO1xuXG4gICAgQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRQcmV2aWV3LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RkJylcbiAgICApLmZvckVhY2goKGVsZW06IGFueSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGRpbXMgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgZHJhZ2dhYmxlQ2VsbHNbaW5kZXhdLnN0eWxlLndpZHRoID0gZGltcy53aWR0aCArICdweCc7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF93YWl0VW50aWxJc05vdERvbmUoZG9uZVJlc3VsdDogdW5rbm93bik6IHZvaWQge1xuICAgIGlmIChkb25lUmVzdWx0IGluc3RhbmNlb2YgT2JzZXJ2YWJsZSkge1xuICAgICAgdGhpcy5fcmVvcmRlckNvbnRyb2xsZXIuZGlzYWJsZVJlb3JkZXJBY3Rpb24oKTtcblxuICAgICAgZG9uZVJlc3VsdFxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5lbmFibGVSZW9yZGVyQWN0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RldGVjdFNlbGVjdGVkUm93cygpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnZ2FibGVDaGlsZHJlbkRpcmVjdGl2ZXNcbiAgICAgIC5mb3JFYWNoKChkaXI6IEZzTGlzdERyYWdnYWJsZVJvd0RpcmVjdGl2ZSkgPT4ge1xuICAgICAgICBjb25zdCBpc1Jvd1NlbGVjdGVkID0gdGhpcy5fcmVvcmRlckNvbnRyb2xsZXIuc2VsZWN0aW9uQ29udHJvbGxlcj8uaXNSb3dTZWxlY3RlZChkaXIucm93LmRhdGEpO1xuXG4gICAgICAgIGlmIChpc1Jvd1NlbGVjdGVkICYmICFkaXIucm93LmlzR3JvdXApIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3RlZFJvd3NEaXJlY3RpdmVzLnB1c2goZGlyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRml4IGJhY2tncm91bmQgd2hlbiBtb2JpbGVcbiAgICogQHBhcmFtIGVcbiAgICovXG4gIHByaXZhdGUgdG91Y2hGaXgoZSkge1xuICAgIGlmICghKCdjbGllbnRYJyBpbiBlKSAmJiAhKCdjbGllbnRZJyBpbiBlKSkge1xuICAgICAgY29uc3QgdG91Y2hlcyA9IGUudG91Y2hlcyB8fCBlLm9yaWdpbmFsRXZlbnQudG91Y2hlcztcbiAgICAgIGlmICh0b3VjaGVzICYmIHRvdWNoZXMubGVuZ3RoKSB7XG4gICAgICAgIGUuY2xpZW50WCA9IHRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICAgICAgZS5jbGllbnRZID0gdG91Y2hlc1swXS5jbGllbnRZO1xuICAgICAgfVxuXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9kaXJlY3RpdmVzL2RyYWdnYWJsZS1saXN0L2RyYWdnYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFXdEYsTUFBTSxPQUFPLDRCQUE0QjtJQTBCdkMsWUFDVSxNQUF5QixFQUN6QixLQUFhLEVBQ2IsaUJBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxTQUFvQjtRQUpwQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFZO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXRCOUIsV0FBVztRQUNILG1CQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQyw0QkFBdUIsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFFbkMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHeEIsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2xD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Q0FBQztZQUUvRixJQUFJLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssUUFBUSxDQUFDLENBQUM7UUFDaEIsSUFBSSxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDMUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQztZQUNyRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUM3QixDQUFDLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQzthQUNoQztZQUVELENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7OzBIQTVZVSw0QkFBNEI7OEdBQTVCLDRCQUE0Qjs0RkFBNUIsNEJBQTRCO2tCQUh4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7aUJBQ2xDOzhNQXNCUyxLQUFLO3NCQURaLEtBQUs7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBOZ1pvbmUsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJlb3JkZXJDb250cm9sbGVyLCBSZW9yZGVyU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9jbGFzc2VzL3Jlb3JkZXItY29udHJvbGxlcic7XG5pbXBvcnQgeyBTZWxlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9zZWxlY3Rpb24tY29udHJvbGxlcic7XG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi8uLi9tb2RlbHMvcm93JztcbmltcG9ydCB7IEZzTGlzdERyYWdDaGlsZFJvd0VsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RyYWdnYWJsZS1saXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBGc0xpc3RSZW9yZGVyRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRnNMaXN0RHJhZ2dhYmxlUm93RGlyZWN0aXZlIH0gZnJvbSAnLi4vZHJhZ2dhYmxlLXJvdy9kcmFnZ2FibGUtcm93LmRpcmVjdGl2ZSc7XG5cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZzTGlzdERyYWdnYWJsZUxpc3RdJyxcbn0pXG5leHBvcnQgY2xhc3MgRnNMaXN0RHJhZ2dhYmxlTGlzdERpcmVjdGl2ZSB7XG4gIC8vIERyYWdnYWJsZSBFbGVtZW50XG4gIHByaXZhdGUgX2RyYWdnYWJsZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9kcmFnZ2FibGVFbGVtZW50UHJldmlldzogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX211bHRpcGxlRHJhZ2dhYmxlRWxlbWVudFByZXZpZXc6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIF9kcmFnZ2FibGVFbGVtZW50SGVpZ2h0OiBudW1iZXI7XG4gIHByaXZhdGUgX2RyYWdnYWJsZUVsZW1lbnRJbmRleDogbnVtYmVyO1xuICBwcml2YXRlIF9kcmFnZ2FibGVFbGVtZW50U3RhcnRJbmRleDogbnVtYmVyO1xuXG4gIC8vIEhhbmRsZXJzXG4gIHByaXZhdGUgX2RyYWdUb0hhbmRsZXIgPSB0aGlzLmRyYWdUby5iaW5kKHRoaXMpO1xuICBwcml2YXRlIF9kcmFnRW5kSGFuZGxlciA9IHRoaXMuZHJhZ0VuZC5iaW5kKHRoaXMpO1xuICBwcml2YXRlIF93aW5kb3dUb3VjaE1vdmVIYW5kbGVyID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBfZHJhZ0luUHJvZ3Jlc3MgPSBmYWxzZTtcblxuICBwcml2YXRlIF9jaGlsZFJvd0VsZW1lbnRzOiBGc0xpc3REcmFnQ2hpbGRSb3dFbGVtZW50W107XG4gIHByaXZhdGUgX2RyYWdTdGFydCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9kcmFnRW5kJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQElucHV0KCdyb3dzJylcbiAgcHJpdmF0ZSBfcm93czogUm93W107XG4gIHByaXZhdGUgX2RyYWdnYWJsZUNoaWxkcmVuRGlyZWN0aXZlczogRnNMaXN0RHJhZ2dhYmxlUm93RGlyZWN0aXZlW10gPSBbXTtcbiAgcHJpdmF0ZSBfc2VsZWN0ZWRSb3dzRGlyZWN0aXZlczogRnNMaXN0RHJhZ2dhYmxlUm93RGlyZWN0aXZlW10gPSBbXTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF96b25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBfY29udGFpbmVyRWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9yZW9yZGVyQ29udHJvbGxlcjogUmVvcmRlckNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgZHJhZ1N0YXJ0JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZHJhZ1N0YXJ0JC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpO1xuICB9XG5cbiAgcHVibGljIGdldCBkcmFnRW5kJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fZHJhZ0VuZCQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZHJhZ2dhYmxlSXRlbSgpOiBSb3cge1xuICAgIHJldHVybiB0aGlzLl9yb3dzW3RoaXMuX2RyYWdnYWJsZUVsZW1lbnRJbmRleF07XG4gIH1cblxuICBwcml2YXRlIGdldCBfaXNNdWx0aXBsZURyYWcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLm11bHRpcGxlICYmIHRoaXMuX3NlbGVjdGVkUm93c0RpcmVjdGl2ZXMubGVuZ3RoID4gMTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREcmFnZ2FibGVEaXJlY3RpdmUoZGlyOiBGc0xpc3REcmFnZ2FibGVSb3dEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICB0aGlzLl9kcmFnZ2FibGVDaGlsZHJlbkRpcmVjdGl2ZXMucHVzaChkaXIpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZURyYWdnYWJsZURpcmVjdGl2ZShkaXI6IEZzTGlzdERyYWdnYWJsZVJvd0RpcmVjdGl2ZSk6IHZvaWQge1xuICAgIGNvbnN0IGlkeCA9IHRoaXMuX2RyYWdnYWJsZUNoaWxkcmVuRGlyZWN0aXZlcy5pbmRleE9mKGRpcik7XG5cbiAgICBpZiAoaWR4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fZHJhZ2dhYmxlQ2hpbGRyZW5EaXJlY3RpdmVzLnNwbGljZShpZHgsIDEpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGRyYWdnYWJsZSBlbGVtZW50cyBhbmQgYWRkIGV2ZW50c1xuICAgKiBAcGFyYW0gZHJhZ2dhYmxlRWxlbWVudFxuICAgKi9cbiAgcHVibGljIGRyYWdTdGFydChkcmFnZ2FibGVFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIGlmICh0aGlzLl9kcmFnSW5Qcm9ncmVzcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLnN0YXJ0Q2FsbGJhY2tcbiAgICAgICYmIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLnN0cmF0ZWd5ID09PSBSZW9yZGVyU3RyYXRlZ3kuQWx3YXlzXG4gICAgKSB7XG4gICAgICB0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5zdGFydENhbGxiYWNrKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fZHJhZ0luUHJvZ3Jlc3MgPSB0cnVlO1xuXG4gICAgd2luZG93LmRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgncmVvcmRlci1pbi1wcm9ncmVzcycpO1xuXG4gICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudCA9IGRyYWdnYWJsZUVsZW1lbnQ7XG5cbiAgICB0aGlzLl9kZXRlY3RTZWxlY3RlZFJvd3MoKTtcbiAgICB0aGlzLnByZXBhcmVFbGVtZW50cygpO1xuICAgIHRoaXMuaW5pdERyYWdnYWJsZUVsZW1lbnQoKTtcblxuICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRTdGFydEluZGV4ID0gdGhpcy5fZHJhZ2dhYmxlRWxlbWVudEluZGV4O1xuICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJhZ2dhYmxlLWVsZW0nKTtcblxuICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoICd0b3VjaG1vdmUnLCB0aGlzLl93aW5kb3dUb3VjaE1vdmVIYW5kbGVyLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICB3aW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5fZHJhZ1RvSGFuZGxlciwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgd2luZG93LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuX2RyYWdUb0hhbmRsZXIsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgfSk7XG5cbiAgICB3aW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMuX2RyYWdFbmRIYW5kbGVyKTtcbiAgICB3aW5kb3cuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLl9kcmFnRW5kSGFuZGxlcik7XG4gICAgd2luZG93LmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoY2FuY2VsJywgdGhpcy5fZHJhZ0VuZEhhbmRsZXIpO1xuXG4gICAgdGhpcy5fZHJhZ1N0YXJ0JC5uZXh0KCk7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBNb3ZlIGRyYWdnYWJsZSBlbGVtZW50cyBhbmQgc3dhcCBpdGVtc1xuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIHB1YmxpYyBkcmFnVG8oZXZlbnQpIHtcbiAgICB0aGlzLnRvdWNoRml4KGV2ZW50KTtcbiAgICBjb25zdCBlbGVtSW5kZXggPSB0aGlzLmxvb2t1cEVsZW1lbnRVbmRlcihldmVudCk7XG4gICAgY29uc3QgdGFyZ2V0Um93ID0gdGhpcy5fcm93c1tlbGVtSW5kZXhdO1xuXG4gICAgaWYgKHRoaXMuX211bHRpcGxlRHJhZ2dhYmxlRWxlbWVudFByZXZpZXcpIHtcbiAgICAgIHRoaXMuX211bHRpcGxlRHJhZ2dhYmxlRWxlbWVudFByZXZpZXcuc3R5bGUubGVmdCA9IGV2ZW50LmNsaWVudFggKyAncHgnO1xuICAgICAgdGhpcy5fbXVsdGlwbGVEcmFnZ2FibGVFbGVtZW50UHJldmlldy5zdHlsZS50b3AgPSBldmVudC5jbGllbnRZICsgJ3B4JztcbiAgICB9XG5cbiAgICAvLyBDYW4gbm90IGRyYWcgYmVmb3JlIGZpcnN0IGdyb3VwIGFuZCBhZnRlciBsYXN0IGdyb3VwXG4gICAgY29uc3Qgc3dhcFdpdGhCb3VuZGFyeUdyb3VwRWxlbWVudCA9XG4gICAgICAoZWxlbUluZGV4ID09PSAwIHx8IGVsZW1JbmRleCA9PT0gdGhpcy5fcm93cy5sZW5ndGggLSAxKVxuICAgICAgJiYgdGFyZ2V0Um93LmlzR3JvdXBcbiAgICAgICYmIHRoaXMuZHJhZ2dhYmxlSXRlbS5pc0dyb3VwQ2hpbGQ7XG5cblxuICAgIGlmICghc3dhcFdpdGhCb3VuZGFyeUdyb3VwRWxlbWVudCkge1xuICAgICAgaWYgKGVsZW1JbmRleCAhPT0gbnVsbCkge1xuICAgICAgICBpZiAodGFyZ2V0Um93LnJlYWR5VG9Td2FwKSB7XG4gICAgICAgICAgdGhpcy5zd2FwV2l0aEluZGV4KGVsZW1JbmRleCk7XG4gICAgICAgICAgaWYgKHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRQcmV2aWV3KSB7XG4gICAgICAgICAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50UHJldmlldy5jbGFzc0xpc3QucmVtb3ZlKCdmcy1saXN0LW5vLWRyb3AnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRQcmV2aWV3KSB7XG4gICAgICAgICAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50UHJldmlldy5jbGFzc0xpc3QuYWRkKCdmcy1saXN0LW5vLWRyb3AnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gRklYTUVcbiAgICAgIGlmICh0aGlzLl9kcmFnZ2FibGVFbGVtZW50UHJldmlldykge1xuICAgICAgICBjb25zdCB0b3BPZmZzZXQgPSAoZXZlbnQueSB8fCBldmVudC5jbGllbnRZKSAtICh0aGlzLl9kcmFnZ2FibGVFbGVtZW50SGVpZ2h0IC8gMik7XG4gICAgICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRQcmV2aWV3LnN0eWxlLnRvcCA9ICB0b3BPZmZzZXQgKyAncHgnO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgZXZlbnRzIGFuZCBjbGFzc2VzIGFmdGVyIGRyYWcgZmluaXNoXG4gICAqL1xuICBwdWJsaWMgZHJhZ0VuZCgpIHtcbiAgICB0aGlzLl9kcmFnSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLmRhdGFDb250cm9sbGVyLmZpbmlzaFJlb3JkZXIoKTtcblxuICAgIGlmICh0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5tb3ZlZENhbGxiYWNrXG4gICAgICAmJiB0aGlzLl9kcmFnZ2FibGVFbGVtZW50U3RhcnRJbmRleCAhPT0gdGhpcy5fZHJhZ2dhYmxlRWxlbWVudEluZGV4KSB7XG5cbiAgICAgIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLm1vdmVkQ2FsbGJhY2soXG4gICAgICAgIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLmRhdGFDb250cm9sbGVyLnJlb3JkZXJEYXRhXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5zdHJhdGVneSA9PT0gUmVvcmRlclN0cmF0ZWd5LkFsd2F5cykge1xuICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fcmVvcmRlckNvbnRyb2xsZXIuZG9uZUNhbGxiYWNrKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fcmVvcmRlckNvbnRyb2xsZXIuZG9uZUNhbGxiYWNrKFxuICAgICAgICAgICAgdGhpcy5fcmVvcmRlckNvbnRyb2xsZXIuZGF0YUNvbnRyb2xsZXIucmVvcmRlckRhdGFcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5fd2FpdFVudGlsSXNOb3REb25lKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLmRhdGFDb250cm9sbGVyLnVwZGF0ZU9yZGVyQnlSb3dzKHRoaXMuX3Jvd3MpO1xuICAgIC8vL1xuICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnLWhpZGRlbicpO1xuICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZHJhZ2dhYmxlLWVsZW0nKTtcbiAgICB3aW5kb3cuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdyZW9yZGVyLWluLXByb2dyZXNzJyk7XG4gICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudCA9IG51bGw7XG5cbiAgICBpZiAodGhpcy5fZHJhZ2dhYmxlRWxlbWVudFByZXZpZXcpIHtcbiAgICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRQcmV2aWV3LnJlbW92ZSgpO1xuXG4gICAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50UHJldmlldyA9IG51bGw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNoaWxkKGRvY3VtZW50LmJvZHksIHRoaXMuX211bHRpcGxlRHJhZ2dhYmxlRWxlbWVudFByZXZpZXcpO1xuICAgICAgdGhpcy5fbXVsdGlwbGVEcmFnZ2FibGVFbGVtZW50UHJldmlldyA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudEhlaWdodCA9IG51bGw7XG4gICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudEluZGV4ID0gbnVsbDtcbiAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50U3RhcnRJbmRleCA9IG51bGw7XG4gICAgdGhpcy5fc2VsZWN0ZWRSb3dzRGlyZWN0aXZlcyA9IFtdO1xuXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoICd0b3VjaG1vdmUnLCB0aGlzLl93aW5kb3dUb3VjaE1vdmVIYW5kbGVyKTtcbiAgICB3aW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5fZHJhZ1RvSGFuZGxlcik7XG4gICAgd2luZG93LmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMuX2RyYWdUb0hhbmRsZXIpO1xuICAgIHdpbmRvdy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5fZHJhZ0VuZEhhbmRsZXIpO1xuICAgIHdpbmRvdy5kb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMuX2RyYWdFbmRIYW5kbGVyKTtcbiAgICB3aW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCB0aGlzLl9kcmFnRW5kSGFuZGxlcik7XG5cbiAgICB0aGlzLl9kcmFnRW5kJC5uZXh0KCk7XG4gIH1cblxuICAvKipcbiAgICogbG9va2luZyByb3cgZWxlbWVudHMgYW5kIHNhdmUgdGhlaXIgZGltc1xuICAgKi9cbiAgcHJpdmF0ZSBwcmVwYXJlRWxlbWVudHMoKSB7XG4gICAgdGhpcy5sb29rdXBDaGlsZEVsZW1lbnRzKCk7XG4gICAgdGhpcy5jYWxjRWxlbWVudHNEaW1lbnNpb25zKCk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcmUgY2hpbGQgcm93c1xuICAgKi9cbiAgcHJpdmF0ZSBsb29rdXBDaGlsZEVsZW1lbnRzKCkge1xuICAgIHRoaXMuX2NoaWxkUm93RWxlbWVudHMgPSBBcnJheS5mcm9tKHRoaXMuX2NvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0cjpub3QoLmRyYWctaGlkZGVuKScpKVxuICAgICAgLnJlZHVjZSgoYWNjOiBhbnlbXSwgcm93RWxlbWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudDogYW55ID0geyB0YXJnZXQ6IHJvd0VsZW1lbnQgfTtcblxuICAgICAgICBpZiAocm93RWxlbWVudCA9PT0gdGhpcy5fZHJhZ2dhYmxlRWxlbWVudCkge1xuICAgICAgICAgIHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRJbmRleCA9IGluZGV4O1xuICAgICAgICAgIGVsZW1lbnQuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFjYy5wdXNoKGVsZW1lbnQpO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSkgYXMgRnNMaXN0RHJhZ0NoaWxkUm93RWxlbWVudFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGMgY2hpbGQgcm93cyBzaXplcy9vZmZzZXRzXG4gICAqL1xuICBwcml2YXRlIGNhbGNFbGVtZW50c0RpbWVuc2lvbnMoKSB7XG4gICAgdGhpcy5fY2hpbGRSb3dFbGVtZW50cy5mb3JFYWNoKChlbDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgZGltcyA9IGVsLnRhcmdldC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIGVsLnRvcCA9IGRpbXMudG9wO1xuICAgICAgZWwuaGVpZ2h0ID0gZGltcy5oZWlnaHQ7XG4gICAgICBlbC5jZW50ZXIgPSBkaW1zLnRvcCArIChkaW1zLmhlaWdodCAvIDIpO1xuICAgICAgZWwuaW5kZXggPSBpbmRleDtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0IGRyYWdnYWJsZSBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIGluaXREcmFnZ2FibGVFbGVtZW50KCkge1xuICAgIGNvbnN0IGVsID0gdGhpcy5fZHJhZ2dhYmxlRWxlbWVudC5jbG9uZU5vZGUodHJ1ZSkgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuX2RyYWdnYWJsZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAoISh0aGlzLl9pc011bHRpcGxlRHJhZykpIHtcbiAgICAgIGVsLnN0eWxlLndpZHRoID0gZGF0YS53aWR0aCArICdweCc7XG4gICAgICBlbC5zdHlsZS5sZWZ0ID0gZGF0YS5sZWZ0ICsgJ3B4JztcbiAgICAgIGVsLnN0eWxlLnRvcCA9IGRhdGEudG9wICsgJ3B4JztcbiAgICAgIGVsLmNsYXNzTGlzdC5hZGQoJ2RyYWdnYWJsZScpO1xuXG4gICAgICB0aGlzLl9jb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCdhZnRlcmJlZ2luJywgZWwpO1xuXG4gICAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50UHJldmlldyA9IGVsO1xuICAgICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudEhlaWdodCA9IGRhdGEuaGVpZ2h0O1xuXG4gICAgICB0aGlzLnVwZGF0ZURyYWdnYWJsZURpbXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ3JlYXRlIHByZXZpZXcgRElWXG4gICAgICB0aGlzLl9jb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJhZy1oaWRkZW4nKTtcblxuICAgICAgY29uc3Qgc2VsZWN0ZWRDb3VudCA9IHRoaXMuX3NlbGVjdGVkUm93c0RpcmVjdGl2ZXM/Lmxlbmd0aDtcbiAgICAgIGNvbnN0IHByZXZpZXdCbG9jayA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgcHJldmlld0Jsb2NrLnN0eWxlLmxlZnQgPSBkYXRhLmxlZnQgKyAncHgnO1xuICAgICAgcHJldmlld0Jsb2NrLnN0eWxlLnRvcCA9IGRhdGEudG9wICsgJ3B4JztcblxuICAgICAgY29uc3QgdGV4dCA9IHRoaXMuX3JlbmRlcmVyLmNyZWF0ZVRleHQoYCR7c2VsZWN0ZWRDb3VudH0gc2VsZWN0ZWQgaXRlbXNgKTtcblxuICAgICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQocHJldmlld0Jsb2NrLCB0ZXh0KTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHByZXZpZXdCbG9jaywgJ3ByZXZpZXctYmxvY2snKTtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIHByZXZpZXdCbG9jayk7XG4gICAgICB0aGlzLl9tdWx0aXBsZURyYWdnYWJsZUVsZW1lbnRQcmV2aWV3ID0gcHJldmlld0Jsb2NrO1xuICAgIH1cblxuICB9XG5cbiAgLyoqXG4gICAqIExvb2tpbmcgYnkgc3RvcmVkIHJvdyBlbGVtZW50cyBmb3Igb3ZlcmxhcHBlZCByb3dcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBwcml2YXRlIGxvb2t1cEVsZW1lbnRVbmRlcihldmVudCkge1xuICAgIGNvbnN0IHRvcCA9IGV2ZW50LnkgfHwgZXZlbnQuY2xpZW50WTtcbiAgICBjb25zdCBib3R0b20gPSBldmVudC55IHx8IGV2ZW50LmNsaWVudFk7XG4gICAgbGV0IGVsZW1JbmRleCA9IG51bGw7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuX2NoaWxkUm93RWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVsID0gdGhpcy5fY2hpbGRSb3dFbGVtZW50c1tpXTtcblxuICAgICAgaWYgKCFlbC5hY3RpdmUpIHtcbiAgICAgICAgaWYgKHRvcCA8IGVsLmNlbnRlciArIChlbC5oZWlnaHQgLyAyKSAmJiBlbC5pbmRleCA8IHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRJbmRleFxuICAgICAgICAgIHx8IGJvdHRvbSA+IGVsLmNlbnRlciAtIChlbC5oZWlnaHQgLyAyKSAgJiYgZWwuaW5kZXggPiB0aGlzLl9kcmFnZ2FibGVFbGVtZW50SW5kZXgpIHtcbiAgICAgICAgICBlbGVtSW5kZXggPSBpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsZW1JbmRleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTd2FwIHJvd3NcbiAgICogQHBhcmFtIGluZGV4XG4gICAqL1xuICBwcml2YXRlIHN3YXBXaXRoSW5kZXgoaW5kZXgpIHtcbiAgICBjb25zdCBhY3RpdmVJbmRleCA9IHRoaXMuX2RyYWdnYWJsZUVsZW1lbnRJbmRleDtcbiAgICBjb25zdCBzZWxlY3RlZFJvd3MgPSB0aGlzLl9zZWxlY3RlZFJvd3NEaXJlY3RpdmVzXG4gICAgICAubWFwKChkKSA9PiBkLnJvdylcbiAgICAgIC5maWx0ZXIoKGQpID0+IGQucmVhZHlUb1N3YXApO1xuXG4gICAgLy8gU3dhcCByb3dzIGluIGdsb2JhbCByb3dzIHN0YWNrXG4gICAgdGhpcy5fcmVvcmRlckNvbnRyb2xsZXJcbiAgICAgIC5kYXRhQ29udHJvbGxlclxuICAgICAgLnN3YXBSb3dzKFxuICAgICAgICB0aGlzLl9yb3dzW2FjdGl2ZUluZGV4XSxcbiAgICAgICAgdGhpcy5fcm93c1tpbmRleF0sXG4gICAgICAgIHNlbGVjdGVkUm93cyxcbiAgICAgICAgdGhpcy5faXNNdWx0aXBsZURyYWcsXG4gICAgICApO1xuXG4gICAgLy8gU3dhcCB2aXNpYmxlIHJvd3NcbiAgICBpZiAoIXRoaXMuX2lzTXVsdGlwbGVEcmFnKSB7XG4gICAgICBjb25zdCBhY3RpdmVSb3cgPSB0aGlzLl9yb3dzW2FjdGl2ZUluZGV4XTtcbiAgICAgIHRoaXMuX3Jvd3NbYWN0aXZlSW5kZXhdID0gdGhpcy5fcm93c1tpbmRleF07XG4gICAgICB0aGlzLl9yb3dzW2luZGV4XSA9IGFjdGl2ZVJvdztcblxuICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IHRoaXMuX2NoaWxkUm93RWxlbWVudHNbYWN0aXZlSW5kZXhdLnRhcmdldDtcbiAgICAgIHRoaXMuX2NoaWxkUm93RWxlbWVudHNbYWN0aXZlSW5kZXhdLmFjdGl2ZSA9IGZhbHNlO1xuXG4gICAgICB0aGlzLl9jaGlsZFJvd0VsZW1lbnRzW2FjdGl2ZUluZGV4XS50YXJnZXQgPSB0aGlzLl9jaGlsZFJvd0VsZW1lbnRzW2luZGV4XS50YXJnZXQ7XG4gICAgICB0aGlzLl9jaGlsZFJvd0VsZW1lbnRzW2luZGV4XS50YXJnZXQgPSBhY3RpdmVFbGVtZW50O1xuICAgICAgdGhpcy5fY2hpbGRSb3dFbGVtZW50c1tpbmRleF0uYWN0aXZlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLl9kcmFnZ2FibGVFbGVtZW50SW5kZXggPSBpbmRleDtcbiAgICB0aGlzLl9jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNlbGwgd2lkdGggZm9yIGRyYWdnYWJsZSBlbGVtXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZURyYWdnYWJsZURpbXMoKSB7XG4gICAgY29uc3QgZHJhZ2dhYmxlQ2VsbHM6IGFueSA9IEFycmF5LmZyb20odGhpcy5fZHJhZ2dhYmxlRWxlbWVudFByZXZpZXcucXVlcnlTZWxlY3RvckFsbCgndGQnKSk7XG5cbiAgICBBcnJheS5mcm9tKFxuICAgICAgdGhpcy5fZHJhZ2dhYmxlRWxlbWVudFByZXZpZXcucXVlcnlTZWxlY3RvckFsbCgndGQnKVxuICAgICkuZm9yRWFjaCgoZWxlbTogYW55LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgZGltcyA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICBkcmFnZ2FibGVDZWxsc1tpbmRleF0uc3R5bGUud2lkdGggPSBkaW1zLndpZHRoICsgJ3B4JztcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3dhaXRVbnRpbElzTm90RG9uZShkb25lUmVzdWx0OiB1bmtub3duKTogdm9pZCB7XG4gICAgaWYgKGRvbmVSZXN1bHQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICB0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5kaXNhYmxlUmVvcmRlckFjdGlvbigpO1xuXG4gICAgICBkb25lUmVzdWx0XG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLmVuYWJsZVJlb3JkZXJBY3Rpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGV0ZWN0U2VsZWN0ZWRSb3dzKCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdnYWJsZUNoaWxkcmVuRGlyZWN0aXZlc1xuICAgICAgLmZvckVhY2goKGRpcjogRnNMaXN0RHJhZ2dhYmxlUm93RGlyZWN0aXZlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzUm93U2VsZWN0ZWQgPSB0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5zZWxlY3Rpb25Db250cm9sbGVyPy5pc1Jvd1NlbGVjdGVkKGRpci5yb3cuZGF0YSk7XG5cbiAgICAgICAgaWYgKGlzUm93U2VsZWN0ZWQgJiYgIWRpci5yb3cuaXNHcm91cCkge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkUm93c0RpcmVjdGl2ZXMucHVzaChkaXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXggYmFja2dyb3VuZCB3aGVuIG1vYmlsZVxuICAgKiBAcGFyYW0gZVxuICAgKi9cbiAgcHJpdmF0ZSB0b3VjaEZpeChlKSB7XG4gICAgaWYgKCEoJ2NsaWVudFgnIGluIGUpICYmICEoJ2NsaWVudFknIGluIGUpKSB7XG4gICAgICBjb25zdCB0b3VjaGVzID0gZS50b3VjaGVzIHx8IGUub3JpZ2luYWxFdmVudC50b3VjaGVzO1xuICAgICAgaWYgKHRvdWNoZXMgJiYgdG91Y2hlcy5sZW5ndGgpIHtcbiAgICAgICAgZS5jbGllbnRYID0gdG91Y2hlc1swXS5jbGllbnRYO1xuICAgICAgICBlLmNsaWVudFkgPSB0b3VjaGVzWzBdLmNsaWVudFk7XG4gICAgICB9XG5cbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -50,8 +50,6 @@ export class FsListDraggableRowDirective {
50
50
  var _a, _b;
51
51
  const currentEl = this.row;
52
52
  const targetEl = this._draggableList.draggableItem;
53
- const currentElGroup = (currentEl.isChild && currentEl.parent) || currentEl;
54
- const targetElGroup = (targetEl.isChild && targetEl.parent) || targetEl;
55
53
  this.row.readyToSwap = this._reorderController.moveDropCallback({
56
54
  row1: currentEl === null || currentEl === void 0 ? void 0 : currentEl.data,
57
55
  row2: targetEl === null || targetEl === void 0 ? void 0 : targetEl.data,
@@ -78,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
78
76
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.ReorderController }, { type: i2.FsListDraggableListDirective }]; }, propDecorators: { row: [{
79
77
  type: Input
80
78
  }] } });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLXJvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLXJvdy9kcmFnZ2FibGUtcm93LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFNMUYsTUFBTSxPQUFPLDJCQUEyQjtJQU90QyxZQUNVLEdBQWUsRUFDZixTQUFvQixFQUNwQixrQkFBcUMsRUFDckMsY0FBNEM7UUFINUMsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBOEI7UUFOOUMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPckMsQ0FBQztJQUVKLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFO1lBQzVDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsY0FBYzthQUNoQixVQUFVO2FBQ1YsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLGNBQWM7YUFDaEIsUUFBUTthQUNSLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sb0JBQW9COztRQUMxQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBRW5ELE1BQU0sY0FBYyxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksU0FBUyxDQUFDO1FBQzVFLE1BQU0sYUFBYSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxDQUFDO1FBRXhFLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FDN0Q7WUFDRSxJQUFJLEVBQUUsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLElBQUk7WUFDckIsSUFBSSxFQUFFLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxJQUFJO1lBQ3BCLE1BQU0sRUFBRSxNQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxNQUFNLDBDQUFFLElBQUk7WUFDL0IsTUFBTSxFQUFFLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLE1BQU0sMENBQUUsSUFBSTtTQUMvQixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUU7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUseUJBQXlCLENBQUMsQ0FBQztTQUM1RTtJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQzs7eUhBaEZVLDJCQUEyQjs2R0FBM0IsMkJBQTJCOzRGQUEzQiwyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7b01BSVEsR0FBRztzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJlb3JkZXJDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9yZW9yZGVyLWNvbnRyb2xsZXInO1xuXG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi8uLi9tb2RlbHMvcm93JztcbmltcG9ydCB7IEZzTGlzdERyYWdnYWJsZUxpc3REaXJlY3RpdmUgfSBmcm9tICcuLi9kcmFnZ2FibGUtbGlzdC9kcmFnZ2FibGUtbGlzdC5kaXJlY3RpdmUnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmc0xpc3REcmFnZ2FibGVSb3ddJyxcbn0pXG5leHBvcnQgY2xhc3MgRnNMaXN0RHJhZ2dhYmxlUm93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3c6IFJvdztcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIF9yZW9yZGVyQ29udHJvbGxlcjogUmVvcmRlckNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBfZHJhZ2dhYmxlTGlzdDogRnNMaXN0RHJhZ2dhYmxlTGlzdERpcmVjdGl2ZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgZWxSZWYoKTogRWxlbWVudFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuX2VsO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5tb3ZlRHJvcENhbGxiYWNrKSB7XG4gICAgICB0aGlzLl9saXN0ZW5EcmFnRXZlbnRzKCk7XG4gICAgfVxuICAgIHRoaXMuX2RyYWdnYWJsZUxpc3QuYWRkRHJhZ2dhYmxlRGlyZWN0aXZlKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdnYWJsZUxpc3QucmVtb3ZlRHJhZ2dhYmxlRGlyZWN0aXZlKHRoaXMpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGRyYWdIaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJhZy1oaWRkZW4nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlbkRyYWdFdmVudHMoKSB7XG4gICAgdGhpcy5fZHJhZ2dhYmxlTGlzdFxuICAgICAgLmRyYWdTdGFydCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX21hcmtSZWFkeVRvU3dhcFJvd3MoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fZHJhZ2dhYmxlTGlzdFxuICAgICAgLmRyYWdFbmQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl91bm1hcmtSb3dzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX21hcmtSZWFkeVRvU3dhcFJvd3MoKSB7XG4gICAgY29uc3QgY3VycmVudEVsID0gdGhpcy5yb3c7XG4gICAgY29uc3QgdGFyZ2V0RWwgPSB0aGlzLl9kcmFnZ2FibGVMaXN0LmRyYWdnYWJsZUl0ZW07XG5cbiAgICBjb25zdCBjdXJyZW50RWxHcm91cCA9IChjdXJyZW50RWwuaXNDaGlsZCAmJiBjdXJyZW50RWwucGFyZW50KSB8fCBjdXJyZW50RWw7XG4gICAgY29uc3QgdGFyZ2V0RWxHcm91cCA9ICh0YXJnZXRFbC5pc0NoaWxkICYmIHRhcmdldEVsLnBhcmVudCkgfHwgdGFyZ2V0RWw7XG5cbiAgICB0aGlzLnJvdy5yZWFkeVRvU3dhcCA9IHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLm1vdmVEcm9wQ2FsbGJhY2soXG4gICAgICB7XG4gICAgICAgIHJvdzE6IGN1cnJlbnRFbD8uZGF0YSxcbiAgICAgICAgcm93MjogdGFyZ2V0RWw/LmRhdGEsXG4gICAgICAgIGdyb3VwMTogY3VycmVudEVsPy5wYXJlbnQ/LmRhdGEsXG4gICAgICAgIGdyb3VwMjogdGFyZ2V0RWw/LnBhcmVudD8uZGF0YVxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKCF0aGlzLnJvdy5yZWFkeVRvU3dhcCkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ2ZzLWxpc3Qtc3dhcC1yZXN0cmljdGVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdW5tYXJrUm93cygpIHtcbiAgICBpZiAoIXRoaXMucm93LnJlYWR5VG9Td2FwKSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnZnMtbGlzdC1zd2FwLXJlc3RyaWN0ZWQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLXJvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2RpcmVjdGl2ZXMvZHJhZ2dhYmxlLXJvdy9kcmFnZ2FibGUtcm93LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7QUFNMUYsTUFBTSxPQUFPLDJCQUEyQjtJQU90QyxZQUNVLEdBQWUsRUFDZixTQUFvQixFQUNwQixrQkFBcUMsRUFDckMsY0FBNEM7UUFINUMsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBOEI7UUFOOUMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFPckMsQ0FBQztJQUVKLElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFO1lBQzVDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsY0FBYzthQUNoQixVQUFVO2FBQ1YsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLGNBQWM7YUFDaEIsUUFBUTthQUNSLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUMxQjthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sb0JBQW9COztRQUMxQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBRW5ELElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FDN0Q7WUFDRSxJQUFJLEVBQUUsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLElBQUk7WUFDckIsSUFBSSxFQUFFLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxJQUFJO1lBQ3BCLE1BQU0sRUFBRSxNQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxNQUFNLDBDQUFFLElBQUk7WUFDL0IsTUFBTSxFQUFFLE1BQUEsUUFBUSxhQUFSLFFBQVEsdUJBQVIsUUFBUSxDQUFFLE1BQU0sMENBQUUsSUFBSTtTQUMvQixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUU7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUseUJBQXlCLENBQUMsQ0FBQztTQUM1RTtJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRTtZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1NBQy9FO0lBQ0gsQ0FBQzs7eUhBN0VVLDJCQUEyQjs2R0FBM0IsMkJBQTJCOzRGQUEzQiwyQkFBMkI7a0JBSHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtpQkFDakM7b01BSVEsR0FBRztzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFJlb3JkZXJDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9yZW9yZGVyLWNvbnRyb2xsZXInO1xuXG5pbXBvcnQgeyBSb3cgfSBmcm9tICcuLi8uLi9tb2RlbHMvcm93JztcbmltcG9ydCB7IEZzTGlzdERyYWdnYWJsZUxpc3REaXJlY3RpdmUgfSBmcm9tICcuLi9kcmFnZ2FibGUtbGlzdC9kcmFnZ2FibGUtbGlzdC5kaXJlY3RpdmUnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmc0xpc3REcmFnZ2FibGVSb3ddJyxcbn0pXG5leHBvcnQgY2xhc3MgRnNMaXN0RHJhZ2dhYmxlUm93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByb3c6IFJvdztcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIF9yZW9yZGVyQ29udHJvbGxlcjogUmVvcmRlckNvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBfZHJhZ2dhYmxlTGlzdDogRnNMaXN0RHJhZ2dhYmxlTGlzdERpcmVjdGl2ZSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBnZXQgZWxSZWYoKTogRWxlbWVudFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuX2VsO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9yZW9yZGVyQ29udHJvbGxlci5tb3ZlRHJvcENhbGxiYWNrKSB7XG4gICAgICB0aGlzLl9saXN0ZW5EcmFnRXZlbnRzKCk7XG4gICAgfVxuICAgIHRoaXMuX2RyYWdnYWJsZUxpc3QuYWRkRHJhZ2dhYmxlRGlyZWN0aXZlKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RyYWdnYWJsZUxpc3QucmVtb3ZlRHJhZ2dhYmxlRGlyZWN0aXZlKHRoaXMpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGRyYWdIaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZHJhZy1oaWRkZW4nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlbkRyYWdFdmVudHMoKSB7XG4gICAgdGhpcy5fZHJhZ2dhYmxlTGlzdFxuICAgICAgLmRyYWdTdGFydCRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuX21hcmtSZWFkeVRvU3dhcFJvd3MoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fZHJhZ2dhYmxlTGlzdFxuICAgICAgLmRyYWdFbmQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl91bm1hcmtSb3dzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX21hcmtSZWFkeVRvU3dhcFJvd3MoKSB7XG4gICAgY29uc3QgY3VycmVudEVsID0gdGhpcy5yb3c7XG4gICAgY29uc3QgdGFyZ2V0RWwgPSB0aGlzLl9kcmFnZ2FibGVMaXN0LmRyYWdnYWJsZUl0ZW07XG5cbiAgICB0aGlzLnJvdy5yZWFkeVRvU3dhcCA9IHRoaXMuX3Jlb3JkZXJDb250cm9sbGVyLm1vdmVEcm9wQ2FsbGJhY2soXG4gICAgICB7XG4gICAgICAgIHJvdzE6IGN1cnJlbnRFbD8uZGF0YSxcbiAgICAgICAgcm93MjogdGFyZ2V0RWw/LmRhdGEsXG4gICAgICAgIGdyb3VwMTogY3VycmVudEVsPy5wYXJlbnQ/LmRhdGEsXG4gICAgICAgIGdyb3VwMjogdGFyZ2V0RWw/LnBhcmVudD8uZGF0YVxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKCF0aGlzLnJvdy5yZWFkeVRvU3dhcCkge1xuICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWwubmF0aXZlRWxlbWVudCwgJ2ZzLWxpc3Qtc3dhcC1yZXN0cmljdGVkJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdW5tYXJrUm93cygpIHtcbiAgICBpZiAoIXRoaXMucm93LnJlYWR5VG9Td2FwKSB7XG4gICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9lbC5uYXRpdmVFbGVtZW50LCAnZnMtbGlzdC1zd2FwLXJlc3RyaWN0ZWQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  export var RowType;
2
2
  (function (RowType) {
3
- RowType[RowType["Simple"] = 0] = "Simple";
4
- RowType[RowType["Group"] = 1] = "Group";
5
- RowType[RowType["GroupFooter"] = 2] = "GroupFooter";
6
- RowType[RowType["Child"] = 3] = "Child";
3
+ RowType["Simple"] = "simple";
4
+ RowType["Group"] = "group";
5
+ RowType["GroupFooter"] = "groupFooter";
6
+ RowType["GroupChild"] = "groupChild";
7
7
  })(RowType || (RowType = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvZW51bXMvcm93LXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxPQUtYO0FBTEQsV0FBWSxPQUFPO0lBQ2pCLHlDQUFVLENBQUE7SUFDVix1Q0FBUyxDQUFBO0lBQ1QsbURBQWUsQ0FBQTtJQUNmLHVDQUFTLENBQUE7QUFDWCxDQUFDLEVBTFcsT0FBTyxLQUFQLE9BQU8sUUFLbEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSb3dUeXBlIHtcbiAgU2ltcGxlID0gMCxcbiAgR3JvdXAgPSAxLFxuICBHcm91cEZvb3RlciA9IDIsXG4gIENoaWxkID0gMyxcbn1cbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvZW51bXMvcm93LXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxPQUtYO0FBTEQsV0FBWSxPQUFPO0lBQ2pCLDRCQUFpQixDQUFBO0lBQ2pCLDBCQUFlLENBQUE7SUFDZixzQ0FBMkIsQ0FBQTtJQUMzQixvQ0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBTFcsT0FBTyxLQUFQLE9BQU8sUUFLbEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBSb3dUeXBlIHtcbiAgU2ltcGxlID0gJ3NpbXBsZScsXG4gIEdyb3VwID0gJ2dyb3VwJyxcbiAgR3JvdXBGb290ZXIgPSAnZ3JvdXBGb290ZXInLFxuICBHcm91cENoaWxkID0gJ2dyb3VwQ2hpbGQnLFxufVxuIl19