asap-feed-beta 12.7.1 → 12.7.2

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.
@@ -218,7 +218,7 @@ export class FeedCommentsComponent {
218
218
  * @return {?}
219
219
  */
220
220
  user => user.id));
221
- this.userService.usersChecked({ post_id: this.feed_id, user_id: selected_users }, { comments: true }).subscribe();
221
+ this.userService.usersChecked({ post_id: this.feed_id, user_id: selected_users, comment, type: 'post' }, { comments: true }).subscribe();
222
222
  this.onLoadingComment = true;
223
223
  collection.add(data);
224
224
  /** @type {?} */
@@ -585,4 +585,4 @@ if (false) {
585
585
  /** @type {?} */
586
586
  FeedCommentsComponent.prototype.userService;
587
587
  }
588
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1jb21tZW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi9mZWVkLWNvbW1lbnRzL2ZlZWQtY29tbWVudHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRdkQsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7Ozs7O0lBMkJoQyxZQUNTLE1BQWMsRUFDZCxFQUFvQixFQUNwQixXQUE0QixFQUM1QixPQUFxQixFQUNyQixXQUF3QixFQUN4QixXQUF3QjtRQUx4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF2QjFCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsa0JBQWEsR0FB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WUFDZixZQUFZO1lBRUosV0FBVztZQUNuQixXQUFXOzs7MkJBVWpCLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dDQUN6QyxTQUFTLFNBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO3lCQUM5QyxTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQzt1QkFFdkMsS0FBSztzQkFDTCxLQUFLO21CQUNMLEtBQUs7Ozs7SUFOTiw2Q0FBcUU7O0lBQ3JFLGtEQUErRTs7SUFDL0UsMkNBQWlFOztJQUVqRSx5Q0FBa0I7O0lBQ2xCLHdDQUFpQjs7SUFDakIscUNBQWM7O0lBRWQseUNBQXFCOztJQUNyQixnREFBNEI7O0lBQzVCLGlEQUE2Qjs7SUFDN0IsNkNBQW9COztJQUNwQixnREFBMkI7O0lBQzNCLDhDQUF5Qjs7SUFDekIsd0NBQWU7O0lBQ2Ysc0NBQWE7O0lBQ2IsOENBQXFCOztJQUNyQiw0Q0FBbUI7O0lBQ25CLDhDQUE2Qjs7SUFDN0IsK0NBQThCOztJQUM5QixpREFBZ0M7O0lBQ2hDLDBDQUF5Qjs7SUFDekIsc0NBQW9COztJQUNwQix3Q0FBdUI7O0lBR3JCLHVDQUFxQjs7SUFDckIsbUNBQTJCOztJQUMzQiw0Q0FBbUM7O0lBQ25DLHdDQUE0Qjs7SUFDNUIsNENBQStCOztJQUMvQiw0Q0FBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IEFzYXBGZWVkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FzYXAtZmVlZC5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGF0aCB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgR2xvYmFsLCBBc2FwU2VydmljZSB9IGZyb20gJ2FzYXAtY3J1ZCc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZlZWQtY29tbWVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVlZC1jb21tZW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZlZWQtY29tbWVudHMuY29tcG9uZW50LnNjc3MnLCAnLi4vYXNhcC1mZWVkLmJldGEuY29tcG9uZW50ZS5zY3NzJ10sXG4gIHByb3ZpZGVyczogWyBVc2VyU2VydmljZSBdXG59KVxuZXhwb3J0IGNsYXNzIEZlZWRDb21tZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRDb21tZW50Jywge3N0YXRpYzogZmFsc2V9KSBpbnB1dENvbW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3JlcGx5SW5wdXRDb21tZW50Jywge3N0YXRpYzogZmFsc2V9KSByZXBseUlucHV0Q29tbWVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnaW5wdXRSZXBseScsIHtzdGF0aWM6IGZhbHNlfSkgaW5wdXRSZXBseTogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBzZXR0aW5ncztcbiAgQElucHV0KCkgZmVlZF9pZDtcbiAgQElucHV0KCkgdXNlcjtcblxuICBwdWJsaWMgY29tbWVudHMgPSBbXTtcbiAgcHVibGljIHJlcGx5aW5nQ29tbWVudCA9IFtdO1xuICBwdWJsaWMgcmVwbHlpbmdSZXNwb25zZSA9IFtdO1xuICBwdWJsaWMgbWVudGlvbnNMaXN0O1xuICBwdWJsaWMgbGltaXRDb21tZW50c1RvID0gMztcbiAgcHVibGljIGxpbWl0UmVwbHlzVG8gPSAxO1xuICBwdWJsaWMgY29tbWVudDtcbiAgcHVibGljIHJlcGx5O1xuICBwdWJsaWMgZWRpdGVkQ29tbWVudDtcbiAgcHVibGljIGVkaXRlZFJlcGx5O1xuICBwdWJsaWMgb25Mb2FkaW5nTGlrZSA9IGZhbHNlO1xuICBwdWJsaWMgb25Mb2FkaW5nUmVwbHkgPSBmYWxzZTtcbiAgcHVibGljIG9uTG9hZGluZ0NvbW1lbnQgPSBmYWxzZTtcbiAgcHVibGljIGlzTWFya2luZyA9IGZhbHNlO1xuICBwdWJsaWMgdXNlcnM6IGFueVtdO1xuICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBnbG9iYWw6IEdsb2JhbCxcbiAgICBwdWJsaWMgZGI6IEFuZ3VsYXJGaXJlc3RvcmUsXG4gICAgcHVibGljIGZlZWRTZXJ2aWNlOiBBc2FwRmVlZFNlcnZpY2UsXG4gICAgcHVibGljIHNlcnZpY2U6IFV0aWxzU2VydmljZSxcbiAgICBwdWJsaWMgYXNhcFNlcnZpY2U6IEFzYXBTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldENvbW1lbnRzKHRoaXMuZmVlZF9pZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29tbWVudHMoZmVlZF9pZCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAuZG9jKGZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnLCAocmVmOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gcmVmLm9yZGVyQnkoXCJ1cGRhdGVkX2F0XCIsIFwiZGVzY1wiKTtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgICAgfSk7XG5cblxuICAgIGNvbGxlY3Rpb24uc25hcHNob3RDaGFuZ2VzKCkuc3Vic2NyaWJlKChjb21tZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY29tbWVudHMgPSBbXTtcbiAgICAgIGNvbW1lbnQubWFwKGl0ZW0gPT4ge1xuICAgICAgICBsZXQgZGF0YSA9IGl0ZW0ucGF5bG9hZC5kb2MuZGF0YSgpO1xuICAgICAgICBkYXRhLmlkID0gaXRlbS5wYXlsb2FkLmRvYy5pZDtcbiAgICAgICAgZGF0YS5saWtlRm9yTWUgPSBmYWxzZTtcbiAgICAgICAgZGF0YS5saW1pdFJlcGx5c1RvID0gMDtcblxuICAgICAgICBjb25zdCBsaWtlc0NvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAgICAgLmRvYyhmZWVkX2lkKVxuICAgICAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAgICAgLmRvYyhkYXRhLmlkKVxuICAgICAgICAgIC5jb2xsZWN0aW9uKCdsaWtlJyk7XG5cblxuICAgICAgICBsaWtlc0NvbGxlY3Rpb24uc25hcHNob3RDaGFuZ2VzKCkuc3Vic2NyaWJlKGxpa2UgPT4ge1xuICAgICAgICAgIGRhdGEubGlrZXMgPSBbXTtcbiAgICAgICAgICBsaWtlLm1hcChzdWJJdGVtTGlrZSA9PiB7XG4gICAgICAgICAgICBsZXQgbGlrZURhdGEgPSBzdWJJdGVtTGlrZS5wYXlsb2FkLmRvYy5kYXRhKCk7XG4gICAgICAgICAgICBsaWtlRGF0YS5pZCA9IHN1Ykl0ZW1MaWtlLnBheWxvYWQuZG9jWydpZCddO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpKSB7XG4gICAgICAgICAgICAgIGlmIChsaWtlRGF0YS51c2VyX2luZm8gJiYgbGlrZURhdGEudXNlcl9pbmZvLmlkID09PSB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuaWQpIHtcbiAgICAgICAgICAgICAgICBkYXRhLmxpa2VGb3JNZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgZGF0YS5saWtlRm9yTWVJRCA9IGxpa2VEYXRhLmlkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRhdGEubGlrZXMucHVzaChsaWtlRGF0YSk7XG5cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcmVwbHlDb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgICAgIC5kb2MoZmVlZF9pZClcbiAgICAgICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgICAgIC5kb2MoZGF0YS5pZClcbiAgICAgICAgICAuY29sbGVjdGlvbigncmVwbHknLCByZWYgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlZi5vcmRlckJ5KCd1cGRhdGVkX2F0JywgJ2Rlc2MnKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICByZXBseUNvbGxlY3Rpb24uc25hcHNob3RDaGFuZ2VzKCkuc3Vic2NyaWJlKHJlcGx5ID0+IHtcbiAgICAgICAgICBkYXRhLnJlcGx5cyA9IFtdO1xuICAgICAgICAgIHJlcGx5Lm1hcCgoc3ViSXRlbSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlcGx5RGF0YSA9IHN1Ykl0ZW0ucGF5bG9hZC5kb2MuZGF0YSgpO1xuICAgICAgICAgICAgcmVwbHlEYXRhLmlkID0gc3ViSXRlbS5wYXlsb2FkLmRvY1snaWQnXTtcblxuICAgICAgICAgICAgZGF0YS5yZXBseXMucHVzaChyZXBseURhdGEpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29tbWVudHMucHVzaChkYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uUmVwbHlDb21tZW50KGkpIHtcbiAgICBpZiAoIXRoaXMucmVwbHlpbmdDb21tZW50W2ldKSB7XG4gICAgICB0aGlzLnJlcGx5aW5nQ29tbWVudFtpXSA9IHRydWU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5yZXBseWluZ0NvbW1lbnRbaV0gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25SZXBseVJlc3BvbnNlKGkpIHtcbiAgICBpZiAoIXRoaXMucmVwbHlpbmdSZXNwb25zZVtpXSkge1xuICAgICAgdGhpcy5yZXBseWluZ1Jlc3BvbnNlW2ldID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnJlcGx5aW5nUmVzcG9uc2VbaV0gPSBmYWxzZTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTaG93QWxsUmVwbHlSZXNwb25zZShjb21tZW50SWR4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5jb21tZW50c1tjb21tZW50SWR4XS5saW1pdFJlcGx5c1RvID09PSAwKSB7XG4gICAgICB0aGlzLmNvbW1lbnRzW2NvbW1lbnRJZHhdLmxpbWl0UmVwbHlzVG8gPSB0aGlzLmNvbW1lbnRzW2NvbW1lbnRJZHhdLnJlcGx5cy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tbWVudHNbY29tbWVudElkeF0ubGltaXRSZXBseXNUbyA9IDA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVubWVudGlvblJlbW92ZWRVc2Vycyhjb21tZW50OiBzdHJpbmcpIHtcbiAgICBjb25zdCBtZW50aW9uczogYW55ID0gW107XG4gICAgaWYgKHRoaXMubWVudGlvbnNMaXN0ICYmIGNvbW1lbnQpIHtcbiAgICAgIGZvciAoY29uc3QgdXNlciBvZiB0aGlzLm1lbnRpb25zTGlzdCkge1xuICAgICAgICBpZiAoY29tbWVudC5pbmNsdWRlcyh1c2VyLm5hbWUpKSB7XG4gICAgICAgICAgbWVudGlvbnMucHVzaCh1c2VyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm1lbnRpb25zTGlzdCA9IG1lbnRpb25zO1xuICB9XG5cbiAgcHVibGljIHNlbmRDb21tZW50KGNvbW1lbnQpIHtcbiAgICB0aGlzLnVubWVudGlvblJlbW92ZWRVc2Vycyhjb21tZW50KTtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIGNvbW1lbnQ6IGNvbW1lbnQsXG4gICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgY3JlYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgIHVzZXJfaW5mbzoge1xuICAgICAgICBpZDogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmlkLFxuICAgICAgICBuYW1lOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZSxcbiAgICAgICAgcGljdHVyZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLnBpY3R1cmVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKTtcblxuICAgIGlmIChjb21tZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkX3VzZXJzID0gdGhpcy5tZW50aW9uc0xpc3QubWFwKHVzZXIgPT4gdXNlci5pZCk7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXJzQ2hlY2tlZCh7cG9zdF9pZDogdGhpcy5mZWVkX2lkLCB1c2VyX2lkOiBzZWxlY3RlZF91c2Vyc30sIHtjb21tZW50czogdHJ1ZX0pLnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLm9uTG9hZGluZ0NvbW1lbnQgPSB0cnVlO1xuICAgICAgY29sbGVjdGlvbi5hZGQoZGF0YSk7XG5cbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcbiAgICAgICAgc291cmNlOid3ZWInLFxuICAgICAgICB0aXRsZTogYE5vdm8gY29tZW50w6FyaW9gLFxuICAgICAgICBkZXNjcmlwdGlvbjogYCR7dGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLm5hbWV9OiAke2NvbW1lbnR9YCxcbiAgICAgICAgdXNlcjogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLFxuICAgICAgICBjbGllbnRfaWQ6dGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmNsaWVudF9pZCxcbiAgICAgICAgcmVkaXJlY3Q6IGAvcG9ydGFsLyR7dGhpcy5mZWVkX2lkfWBcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXJ2aWNlLnNlbmROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCB0aGlzLnVzZXIsICdmZWVkJyk7XG5cbiAgICAgIHRoaXMuY29tbWVudCA9IFwiXCI7XG4gICAgICB0aGlzLm1lbnRpb25zTGlzdCA9IFtdO1xuICAgICAgdGhpcy5vbkxvYWRpbmdDb21tZW50ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlcGx5Q29tbWVudChjb21tZW50X2lkLCBjb21tZW50LCB1c2VyX2luZm8sIGkpIHtcbiAgICB0aGlzLnVubWVudGlvblJlbW92ZWRVc2Vycyhjb21tZW50KTtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIGNvbW1lbnQ6IGNvbW1lbnQsXG4gICAgICBjcmVhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgIHVzZXJfaW5mbzoge1xuICAgICAgICBpZDogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmlkLFxuICAgICAgICBuYW1lOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZSxcbiAgICAgICAgcGljdHVyZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLnBpY3R1cmVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29tbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm9uTG9hZGluZ1JlcGx5ID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgICAuZG9jKGNvbW1lbnRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdyZXBseScpO1xuXG4gICAgICBjb2xsZWN0aW9uLmFkZChkYXRhKTtcblxuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0ge1xuICAgICAgICBzb3VyY2U6J3dlYicsXG4gICAgICAgIHRpdGxlOiBgTm92YSBSZXNwb3N0YWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZX0gcmVzcG9uZGV1OiAke2NvbW1lbnR9YCxcbiAgICAgICAgY2xpZW50X2lkOnRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5jbGllbnRfaWQsXG4gICAgICAgIHVzZXI6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKSxcbiAgICAgICAgcmVkaXJlY3Q6IGAvcG9ydGFsLyR7dGhpcy5mZWVkX2lkfWBcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2VsZWN0ZWRfdXNlcnMgPSB0aGlzLm1lbnRpb25zTGlzdC5tYXAodXNlciA9PiB1c2VyLmlkKTtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlcnNDaGVja2VkKHtwb3N0X2lkOiB0aGlzLmZlZWRfaWQsIHVzZXJfaWQ6IHNlbGVjdGVkX3VzZXJzfSwge2NvbW1lbnRzOiB0cnVlfSkuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2VuZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24sIHVzZXJfaW5mbywgJ2ZlZWQnKTtcblxuICAgICAgdGhpcy5yZXBseSA9IFwiXCI7XG4gICAgICB0aGlzLm9uTG9hZGluZ1JlcGx5ID0gZmFsc2U7XG4gICAgICB0aGlzLnJlcGx5aW5nQ29tbWVudFtpXSA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXBseWluZ1Jlc3BvbnNlID0gW107XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZVJlcGx5KGNvbW1lbnRfaWQsIHJlcGx5X2lkKSB7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgIC5kb2MoY29tbWVudF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdyZXBseScpXG4gICAgICAuZG9jKHJlcGx5X2lkKTtcblxuICAgIGNvbGxlY3Rpb24uZGVsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29tbWVudChjb21tZW50X2lkKSB7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgIC5kb2MoY29tbWVudF9pZCk7XG5cbiAgICBjb2xsZWN0aW9uLmRlbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNlbmRMaWtlQ29tbWVudChjb21tZW50X2lkLCBsaWtlX2lkID0gbnVsbCwgaXRlbSkge1xuICAgIHRoaXMub25Mb2FkaW5nTGlrZSA9IHRydWU7XG4gICAgaWYgKCFpdGVtLmxpa2VGb3JNZSkge1xuICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICAgIHVzZXJfaW5mbzoge1xuICAgICAgICAgIGlkOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuaWQsXG4gICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLm5hbWUsXG4gICAgICAgICAgcGljdHVyZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLnBpY3R1cmVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgICAuZG9jKHRoaXMuZmVlZF9pZClcbiAgICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgICAgLmRvYyhjb21tZW50X2lkKVxuICAgICAgICAuY29sbGVjdGlvbignbGlrZScpO1xuXG4gICAgICBjb2xsZWN0aW9uLmFkZChkYXRhKTtcblxuXG4gICAgICBjb25zdCBub3RpZmljYXRpb24gPSB7XG4gICAgICAgIHNvdXJjZTond2ViJyxcbiAgICAgICAgdGl0bGU6IGBOb3ZhIEN1cnRpZGFgLFxuICAgICAgICBkZXNjcmlwdGlvbjogYCR7dGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLm5hbWV9IGN1cnRpdSBzZXUgY29tZW50w6FyaW86ICR7aXRlbS5jb21tZW50fWAsXG4gICAgICAgIGNsaWVudF9pZDp0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuY2xpZW50X2lkLFxuICAgICAgICB1c2VyOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCksXG4gICAgICAgIHJlZGlyZWN0OiBgL3BvcnRhbC8ke3RoaXMuZmVlZF9pZH1gXG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VydmljZS5zZW5kTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgaXRlbS51c2VyX2luZm8sICdmZWVkJyk7XG5cbiAgICAgIGl0ZW0ubGlrZUZvck1lID0gdHJ1ZTtcbiAgICAgIHRoaXMub25Mb2FkaW5nTGlrZSA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgICAuZG9jKGNvbW1lbnRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdsaWtlJylcbiAgICAgICAgLmRvYyhsaWtlX2lkKTtcblxuICAgICAgY29sbGVjdGlvbi5kZWxldGUoKTtcbiAgICAgIGl0ZW0ubGlrZUZvck1lID0gZmFsc2U7XG4gICAgICB0aGlzLm9uTG9hZGluZ0xpa2UgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbG9hZE1vcmVDb21tZW50cygpIHtcbiAgICB0aGlzLmxpbWl0Q29tbWVudHNUbyA9IHRoaXMubGltaXRDb21tZW50c1RvICsgMztcbiAgfVxuXG4gIHB1YmxpYyBsb2FkTW9yZVJlcGx5cyhpdGVtKSB7XG4gICAgaXRlbS5saW1pdFJlcGx5c1RvID0gaXRlbS5saW1pdFJlcGx5c1RvICsgMztcbiAgfVxuXG4gIHB1YmxpYyBsaW5raWZ5KHN0cikge1xuICAgIHZhciByZTogYW55O1xuICAgIHJlID0gW1xuICAgICAgXCJcXFxcYigoPzpodHRwcz98ZnRwKTovL1teXFxcXHNcXFwiJzw+XSspXFxcXGJcIixcbiAgICAgIFwiXFxcXGIod3d3XFxcXC5bXlxcXFxzXFxcIic8Pl0rKVxcXFxiXCIsXG4gICAgICBcIlxcXFxiKFxcXFx3W1xcXFx3ListXSpAW1xcXFx3Li1dK1xcXFwuW2Etel17Miw2fSlcXFxcYlwiLFxuICAgICAgXCIjKFthLXowLTldKylcIl07XG4gICAgcmUgPSBuZXcgUmVnRXhwKHJlLmpvaW4oJ3wnKSwgXCJnaVwiKTtcblxuICAgIGlmIChzdHIpIHtcbiAgICAgIHJldHVybiBzdHIucmVwbGFjZShyZSwgZnVuY3Rpb24gKG1hdGNoLCB1cmwsIHd3dywgbWFpbCwgdHdpdGxlcikge1xuICAgICAgICBpZiAodXJsKVxuICAgICAgICAgIHJldHVybiBcIjxhIGNsYXNzPSd0ZXh0LXByaW1hcnknIHRhcmdldD0nX2JsYW5rJyAoY2xpY2spPSdyZWRpcmVjdE5ld0xpbmsodXJsKScgaHJlZj1cXFwiXCIgKyB1cmwgKyBcIlxcXCI+XCIgKyB1cmwgKyBcIjwvYT5cIjtcbiAgICAgICAgaWYgKHd3dylcbiAgICAgICAgICByZXR1cm4gXCI8YSBjbGFzcz0ndGV4dC1wcmltYXJ5JyBocmVmPVxcXCJodHRwOi8vXCIgKyB3d3cgKyBcIlxcXCI+XCIgKyB3d3cgKyBcIjwvYT5cIjtcbiAgICAgICAgaWYgKG1haWwpXG4gICAgICAgICAgcmV0dXJuIFwiPGEgY2xhc3M9J3RleHQtcHJpbWFyeScgaHJlZj1cXFwiIzwvYT5cIjtcbiAgICAgICAgaWYgKHR3aXRsZXIpXG4gICAgICAgICAgcmV0dXJuIFwiPGEgY2xhc3M9J3RleHQtcHJpbWFyeScgaHJlZj1cXFwicG9ydGFsL3NlYXJjaC9cIiArIGVuY29kZVVSSUNvbXBvbmVudCgnIycgKyB0d2l0bGVyKSArIFwiXFxcIj4jXCIgKyB0d2l0bGVyICsgXCI8L2E+XCI7XG4gICAgICAgIC8vIHJldHVybiBcIjxhIGNsYXNzPSd0ZXh0LXByaW1hcnknIGhyZWY9XFxcIiNcXFwiPiNcIiArIHR3aXRsZXIgKyBcIjwvYT5cIjtcblxuICAgICAgICAvLyBzaG91bGRudCBnZXQgaGVyZSwgYnV0IGp1c3QgaW4gY2FzZVxuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25FZGl0UmVwbHkocmVwbHkpIHtcbiAgICB0aGlzLmVkaXRlZFJlcGx5ID0gcmVwbHkuY29tbWVudDtcbiAgICBpZiAocmVwbHkub25FZGl0KSB7XG4gICAgICByZXBseS5vbkVkaXQgPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXBseS5vbkVkaXQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkVkaXRDb21tZW50KGNvbW1lbnQpIHtcbiAgICB0aGlzLmVkaXRlZENvbW1lbnQgPSBjb21tZW50LmNvbW1lbnQ7XG5cbiAgICBpZiAoY29tbWVudC5vbkVkaXQpIHtcbiAgICAgIGNvbW1lbnQub25FZGl0ID0gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29tbWVudC5vbkVkaXQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb21tZW50KGlkLCBjb21tZW50KSB7XG4gICAgdGhpcy5vbkxvYWRpbmdDb21tZW50ID0gdHJ1ZTtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIGNvbW1lbnQ6IHRoaXMuZWRpdGVkQ29tbWVudCxcbiAgICAgIGVkaXRlZDogdHJ1ZSxcbiAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KClcbiAgICB9XG5cbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgLmRvYyhpZCk7XG5cbiAgICBpZiAoY29tbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICBjb2xsZWN0aW9uLnVwZGF0ZShkYXRhKTtcbiAgICAgIHRoaXMuZWRpdGVkQ29tbWVudCA9IFwiXCI7XG4gICAgICB0aGlzLm9uTG9hZGluZ0NvbW1lbnQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUmVwbHkoY29tbWVudF9pZCwgb2xkX3JlcGx5LCByZXBseSkge1xuICAgIHRoaXMub25Mb2FkaW5nUmVwbHkgPSB0cnVlO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgY29tbWVudDogcmVwbHksXG4gICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgIH1cblxuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAuZG9jKHRoaXMuZmVlZF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAuZG9jKGNvbW1lbnRfaWQpXG4gICAgICAuY29sbGVjdGlvbigncmVwbHknKVxuICAgICAgLmRvYyhvbGRfcmVwbHkuaWQpO1xuICAgIGNvbGxlY3Rpb24udXBkYXRlKGRhdGEpO1xuICAgIHRoaXMuZWRpdGVkQ29tbWVudCA9IFwiXCI7XG4gICAgdGhpcy5vbkxvYWRpbmdSZXBseSA9IGZhbHNlO1xuICAgIG9sZF9yZXBseS5vbkVkaXQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBtZW50aW9uVXNlcih1c2VyOiBhbnkpIHtcbiAgICB0aGlzLm1lbnRpb25zTGlzdCA9IHRoaXMubWVudGlvbnNMaXN0IHx8IFtdO1xuICAgIHRoaXMubWVudGlvbnNMaXN0LnB1c2godXNlcik7XG4gIH1cblxufVxuIl19
588
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1jb21tZW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi9mZWVkLWNvbW1lbnRzL2ZlZWQtY29tbWVudHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRdkQsTUFBTSxPQUFPLHFCQUFxQjs7Ozs7Ozs7O0lBMkJoQyxZQUNTLE1BQWMsRUFDZCxFQUFvQixFQUNwQixXQUE0QixFQUM1QixPQUFxQixFQUNyQixXQUF3QixFQUN4QixXQUF3QjtRQUx4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF2QjFCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsa0JBQWEsR0FB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USxNQUFNO1lBSk4sZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixZQUFZO1lBRUosV0FBVztZQUNuQixXQUFXOzs7MkJBVWpCLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dDQUN6QyxTQUFTLFNBQUMsbUJBQW1CLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO3lCQUM5QyxTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQzt1QkFFdkMsS0FBSztzQkFDTCxLQUFLO21CQUNMLEtBQUs7Ozs7SUFOTiw2Q0FBcUU7O0lBQ3JFLGtEQUErRTs7SUFDL0UsMkNBQWlFOztJQUVqRSx5Q0FBa0I7O0lBQ2xCLHdDQUFpQjs7SUFDakIscUNBQWM7O0lBRWQseUNBQXFCOztJQUNyQixnREFBNEI7O0lBQzVCLGlEQUE2Qjs7SUFDN0IsNkNBQW9COztJQUNwQixnREFBMkI7O0lBQzNCLDhDQUF5Qjs7SUFDekIsd0NBQWU7O0lBQ2Ysc0NBQWE7O0lBQ2IsOENBQXFCOztJQUNyQiw0Q0FBbUI7O0lBQ25CLDhDQUE2Qjs7SUFDN0IsK0NBQThCOztJQUM5QixpREFBZ0M7O0lBQ2hDLDBDQUF5Qjs7SUFDekIsc0NBQW9COztJQUNwQix3Q0FBdUI7O0lBR3JCLHVDQUFxQjs7SUFDckIsbUNBQTJCOztJQUMzQiw0Q0FBbUM7O0lBQ25DLHdDQUE0Qjs7SUFDNUIsNENBQStCOztJQUMvQiw0Q0FBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQW5ndWxhckZpcmVzdG9yZSB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IEFzYXBGZWVkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FzYXAtZmVlZC5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgcGF0aCB9IGZyb20gJy4uL2NvbnN0YW50cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgR2xvYmFsLCBBc2FwU2VydmljZSB9IGZyb20gJ2FzYXAtY3J1ZCc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZlZWQtY29tbWVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmVlZC1jb21tZW50cy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZlZWQtY29tbWVudHMuY29tcG9uZW50LnNjc3MnLCAnLi4vYXNhcC1mZWVkLmJldGEuY29tcG9uZW50ZS5zY3NzJ10sXG4gIHByb3ZpZGVyczogWyBVc2VyU2VydmljZSBdXG59KVxuZXhwb3J0IGNsYXNzIEZlZWRDb21tZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRDb21tZW50Jywge3N0YXRpYzogZmFsc2V9KSBpbnB1dENvbW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3JlcGx5SW5wdXRDb21tZW50Jywge3N0YXRpYzogZmFsc2V9KSByZXBseUlucHV0Q29tbWVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnaW5wdXRSZXBseScsIHtzdGF0aWM6IGZhbHNlfSkgaW5wdXRSZXBseTogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBzZXR0aW5ncztcbiAgQElucHV0KCkgZmVlZF9pZDtcbiAgQElucHV0KCkgdXNlcjtcblxuICBwdWJsaWMgY29tbWVudHMgPSBbXTtcbiAgcHVibGljIHJlcGx5aW5nQ29tbWVudCA9IFtdO1xuICBwdWJsaWMgcmVwbHlpbmdSZXNwb25zZSA9IFtdO1xuICBwdWJsaWMgbWVudGlvbnNMaXN0O1xuICBwdWJsaWMgbGltaXRDb21tZW50c1RvID0gMztcbiAgcHVibGljIGxpbWl0UmVwbHlzVG8gPSAxO1xuICBwdWJsaWMgY29tbWVudDtcbiAgcHVibGljIHJlcGx5O1xuICBwdWJsaWMgZWRpdGVkQ29tbWVudDtcbiAgcHVibGljIGVkaXRlZFJlcGx5O1xuICBwdWJsaWMgb25Mb2FkaW5nTGlrZSA9IGZhbHNlO1xuICBwdWJsaWMgb25Mb2FkaW5nUmVwbHkgPSBmYWxzZTtcbiAgcHVibGljIG9uTG9hZGluZ0NvbW1lbnQgPSBmYWxzZTtcbiAgcHVibGljIGlzTWFya2luZyA9IGZhbHNlO1xuICBwdWJsaWMgdXNlcnM6IGFueVtdO1xuICBwdWJsaWMgbG9hZGluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBnbG9iYWw6IEdsb2JhbCxcbiAgICBwdWJsaWMgZGI6IEFuZ3VsYXJGaXJlc3RvcmUsXG4gICAgcHVibGljIGZlZWRTZXJ2aWNlOiBBc2FwRmVlZFNlcnZpY2UsXG4gICAgcHVibGljIHNlcnZpY2U6IFV0aWxzU2VydmljZSxcbiAgICBwdWJsaWMgYXNhcFNlcnZpY2U6IEFzYXBTZXJ2aWNlLFxuICAgIHB1YmxpYyB1c2VyU2VydmljZTogVXNlclNlcnZpY2VcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldENvbW1lbnRzKHRoaXMuZmVlZF9pZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29tbWVudHMoZmVlZF9pZCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAuZG9jKGZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnLCAocmVmOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gcmVmLm9yZGVyQnkoXCJ1cGRhdGVkX2F0XCIsIFwiZGVzY1wiKTtcbiAgICAgICAgcmV0dXJuIHF1ZXJ5O1xuICAgICAgfSk7XG5cblxuICAgIGNvbGxlY3Rpb24uc25hcHNob3RDaGFuZ2VzKCkuc3Vic2NyaWJlKChjb21tZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY29tbWVudHMgPSBbXTtcbiAgICAgIGNvbW1lbnQubWFwKGl0ZW0gPT4ge1xuICAgICAgICBsZXQgZGF0YSA9IGl0ZW0ucGF5bG9hZC5kb2MuZGF0YSgpO1xuICAgICAgICBkYXRhLmlkID0gaXRlbS5wYXlsb2FkLmRvYy5pZDtcbiAgICAgICAgZGF0YS5saWtlRm9yTWUgPSBmYWxzZTtcbiAgICAgICAgZGF0YS5saW1pdFJlcGx5c1RvID0gMDtcblxuICAgICAgICBjb25zdCBsaWtlc0NvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAgICAgLmRvYyhmZWVkX2lkKVxuICAgICAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAgICAgLmRvYyhkYXRhLmlkKVxuICAgICAgICAgIC5jb2xsZWN0aW9uKCdsaWtlJyk7XG5cblxuICAgICAgICBsaWtlc0NvbGxlY3Rpb24uc25hcHNob3RDaGFuZ2VzKCkuc3Vic2NyaWJlKGxpa2UgPT4ge1xuICAgICAgICAgIGRhdGEubGlrZXMgPSBbXTtcbiAgICAgICAgICBsaWtlLm1hcChzdWJJdGVtTGlrZSA9PiB7XG4gICAgICAgICAgICBsZXQgbGlrZURhdGEgPSBzdWJJdGVtTGlrZS5wYXlsb2FkLmRvYy5kYXRhKCk7XG4gICAgICAgICAgICBsaWtlRGF0YS5pZCA9IHN1Ykl0ZW1MaWtlLnBheWxvYWQuZG9jWydpZCddO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpKSB7XG4gICAgICAgICAgICAgIGlmIChsaWtlRGF0YS51c2VyX2luZm8gJiYgbGlrZURhdGEudXNlcl9pbmZvLmlkID09PSB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuaWQpIHtcbiAgICAgICAgICAgICAgICBkYXRhLmxpa2VGb3JNZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgZGF0YS5saWtlRm9yTWVJRCA9IGxpa2VEYXRhLmlkO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRhdGEubGlrZXMucHVzaChsaWtlRGF0YSk7XG5cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgcmVwbHlDb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgICAgIC5kb2MoZmVlZF9pZClcbiAgICAgICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgICAgIC5kb2MoZGF0YS5pZClcbiAgICAgICAgICAuY29sbGVjdGlvbigncmVwbHknLCByZWYgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJlZi5vcmRlckJ5KCd1cGRhdGVkX2F0JywgJ2Rlc2MnKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICByZXBseUNvbGxlY3Rpb24uc25hcHNob3RDaGFuZ2VzKCkuc3Vic2NyaWJlKHJlcGx5ID0+IHtcbiAgICAgICAgICBkYXRhLnJlcGx5cyA9IFtdO1xuICAgICAgICAgIHJlcGx5Lm1hcCgoc3ViSXRlbSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJlcGx5RGF0YSA9IHN1Ykl0ZW0ucGF5bG9hZC5kb2MuZGF0YSgpO1xuICAgICAgICAgICAgcmVwbHlEYXRhLmlkID0gc3ViSXRlbS5wYXlsb2FkLmRvY1snaWQnXTtcblxuICAgICAgICAgICAgZGF0YS5yZXBseXMucHVzaChyZXBseURhdGEpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29tbWVudHMucHVzaChkYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uUmVwbHlDb21tZW50KGkpIHtcbiAgICBpZiAoIXRoaXMucmVwbHlpbmdDb21tZW50W2ldKSB7XG4gICAgICB0aGlzLnJlcGx5aW5nQ29tbWVudFtpXSA9IHRydWU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5yZXBseWluZ0NvbW1lbnRbaV0gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25SZXBseVJlc3BvbnNlKGkpIHtcbiAgICBpZiAoIXRoaXMucmVwbHlpbmdSZXNwb25zZVtpXSkge1xuICAgICAgdGhpcy5yZXBseWluZ1Jlc3BvbnNlW2ldID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnJlcGx5aW5nUmVzcG9uc2VbaV0gPSBmYWxzZTtcbiAgICB9XG5cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVTaG93QWxsUmVwbHlSZXNwb25zZShjb21tZW50SWR4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5jb21tZW50c1tjb21tZW50SWR4XS5saW1pdFJlcGx5c1RvID09PSAwKSB7XG4gICAgICB0aGlzLmNvbW1lbnRzW2NvbW1lbnRJZHhdLmxpbWl0UmVwbHlzVG8gPSB0aGlzLmNvbW1lbnRzW2NvbW1lbnRJZHhdLnJlcGx5cy5sZW5ndGg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tbWVudHNbY29tbWVudElkeF0ubGltaXRSZXBseXNUbyA9IDA7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVubWVudGlvblJlbW92ZWRVc2Vycyhjb21tZW50OiBzdHJpbmcpIHtcbiAgICBjb25zdCBtZW50aW9uczogYW55ID0gW107XG4gICAgaWYgKHRoaXMubWVudGlvbnNMaXN0ICYmIGNvbW1lbnQpIHtcbiAgICAgIGZvciAoY29uc3QgdXNlciBvZiB0aGlzLm1lbnRpb25zTGlzdCkge1xuICAgICAgICBpZiAoY29tbWVudC5pbmNsdWRlcyh1c2VyLm5hbWUpKSB7XG4gICAgICAgICAgbWVudGlvbnMucHVzaCh1c2VyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm1lbnRpb25zTGlzdCA9IG1lbnRpb25zO1xuICB9XG5cbiAgcHVibGljIHNlbmRDb21tZW50KGNvbW1lbnQpIHtcbiAgICB0aGlzLnVubWVudGlvblJlbW92ZWRVc2Vycyhjb21tZW50KTtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIGNvbW1lbnQ6IGNvbW1lbnQsXG4gICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgY3JlYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgIHVzZXJfaW5mbzoge1xuICAgICAgICBpZDogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmlkLFxuICAgICAgICBuYW1lOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZSxcbiAgICAgICAgcGljdHVyZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLnBpY3R1cmVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKTtcblxuICAgIGlmIChjb21tZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkX3VzZXJzID0gdGhpcy5tZW50aW9uc0xpc3QubWFwKHVzZXIgPT4gdXNlci5pZCk7XG4gICAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXJzQ2hlY2tlZCh7cG9zdF9pZDogdGhpcy5mZWVkX2lkLCB1c2VyX2lkOiBzZWxlY3RlZF91c2VycywgY29tbWVudCwgdHlwZTogJ3Bvc3QnfSwge2NvbW1lbnRzOiB0cnVlfSkuc3Vic2NyaWJlKCk7XG5cbiAgICAgIHRoaXMub25Mb2FkaW5nQ29tbWVudCA9IHRydWU7XG4gICAgICBjb2xsZWN0aW9uLmFkZChkYXRhKTtcblxuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0ge1xuICAgICAgICBzb3VyY2U6J3dlYicsXG4gICAgICAgIHRpdGxlOiBgTm92byBjb21lbnTDoXJpb2AsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZX06ICR7Y29tbWVudH1gLFxuICAgICAgICB1c2VyOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCksXG4gICAgICAgIGNsaWVudF9pZDp0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuY2xpZW50X2lkLFxuICAgICAgICByZWRpcmVjdDogYC9wb3J0YWwvJHt0aGlzLmZlZWRfaWR9YFxuICAgICAgfVxuXG4gICAgICB0aGlzLnNlcnZpY2Uuc2VuZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24sIHRoaXMudXNlciwgJ2ZlZWQnKTtcblxuICAgICAgdGhpcy5jb21tZW50ID0gXCJcIjtcbiAgICAgIHRoaXMubWVudGlvbnNMaXN0ID0gW107XG4gICAgICB0aGlzLm9uTG9hZGluZ0NvbW1lbnQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVwbHlDb21tZW50KGNvbW1lbnRfaWQsIGNvbW1lbnQsIHVzZXJfaW5mbywgaSkge1xuICAgIHRoaXMudW5tZW50aW9uUmVtb3ZlZFVzZXJzKGNvbW1lbnQpO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgY29tbWVudDogY29tbWVudCxcbiAgICAgIGNyZWF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgdXNlcl9pbmZvOiB7XG4gICAgICAgIGlkOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuaWQsXG4gICAgICAgIG5hbWU6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5uYW1lLFxuICAgICAgICBwaWN0dXJlOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkucGljdHVyZVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb21tZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25Mb2FkaW5nUmVwbHkgPSB0cnVlO1xuICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAgIC5kb2MoY29tbWVudF9pZClcbiAgICAgICAgLmNvbGxlY3Rpb24oJ3JlcGx5Jyk7XG5cbiAgICAgIGNvbGxlY3Rpb24uYWRkKGRhdGEpO1xuXG4gICAgICBjb25zdCBub3RpZmljYXRpb24gPSB7XG4gICAgICAgIHNvdXJjZTond2ViJyxcbiAgICAgICAgdGl0bGU6IGBOb3ZhIFJlc3Bvc3RhYCxcbiAgICAgICAgZGVzY3JpcHRpb246IGAke3RoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5uYW1lfSByZXNwb25kZXU6ICR7Y29tbWVudH1gLFxuICAgICAgICBjbGllbnRfaWQ6dGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmNsaWVudF9pZCxcbiAgICAgICAgdXNlcjogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLFxuICAgICAgICByZWRpcmVjdDogYC9wb3J0YWwvJHt0aGlzLmZlZWRfaWR9YFxuICAgICAgfVxuXG4gICAgICBjb25zdCBzZWxlY3RlZF91c2VycyA9IHRoaXMubWVudGlvbnNMaXN0Lm1hcCh1c2VyID0+IHVzZXIuaWQpO1xuICAgICAgdGhpcy51c2VyU2VydmljZS51c2Vyc0NoZWNrZWQoe3Bvc3RfaWQ6IHRoaXMuZmVlZF9pZCwgdXNlcl9pZDogc2VsZWN0ZWRfdXNlcnN9LCB7Y29tbWVudHM6IHRydWV9KS5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuc2VydmljZS5zZW5kTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgdXNlcl9pbmZvLCAnZmVlZCcpO1xuXG4gICAgICB0aGlzLnJlcGx5ID0gXCJcIjtcbiAgICAgIHRoaXMub25Mb2FkaW5nUmVwbHkgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVwbHlpbmdDb21tZW50W2ldID0gZmFsc2U7XG4gICAgICB0aGlzLnJlcGx5aW5nUmVzcG9uc2UgPSBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlUmVwbHkoY29tbWVudF9pZCwgcmVwbHlfaWQpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgLmRvYyhjb21tZW50X2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ3JlcGx5JylcbiAgICAgIC5kb2MocmVwbHlfaWQpO1xuXG4gICAgY29sbGVjdGlvbi5kZWxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVDb21tZW50KGNvbW1lbnRfaWQpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgLmRvYyhjb21tZW50X2lkKTtcblxuICAgIGNvbGxlY3Rpb24uZGVsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2VuZExpa2VDb21tZW50KGNvbW1lbnRfaWQsIGxpa2VfaWQgPSBudWxsLCBpdGVtKSB7XG4gICAgdGhpcy5vbkxvYWRpbmdMaWtlID0gdHJ1ZTtcbiAgICBpZiAoIWl0ZW0ubGlrZUZvck1lKSB7XG4gICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgY3JlYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgICAgdXNlcl9pbmZvOiB7XG4gICAgICAgICAgaWQ6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5pZCxcbiAgICAgICAgICBuYW1lOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZSxcbiAgICAgICAgICBwaWN0dXJlOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkucGljdHVyZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgICAuZG9jKGNvbW1lbnRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdsaWtlJyk7XG5cbiAgICAgIGNvbGxlY3Rpb24uYWRkKGRhdGEpO1xuXG5cbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcbiAgICAgICAgc291cmNlOid3ZWInLFxuICAgICAgICB0aXRsZTogYE5vdmEgQ3VydGlkYWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZX0gY3VydGl1IHNldSBjb21lbnTDoXJpbzogJHtpdGVtLmNvbW1lbnR9YCxcbiAgICAgICAgY2xpZW50X2lkOnRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5jbGllbnRfaWQsXG4gICAgICAgIHVzZXI6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKSxcbiAgICAgICAgcmVkaXJlY3Q6IGAvcG9ydGFsLyR7dGhpcy5mZWVkX2lkfWBcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXJ2aWNlLnNlbmROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBpdGVtLnVzZXJfaW5mbywgJ2ZlZWQnKTtcblxuICAgICAgaXRlbS5saWtlRm9yTWUgPSB0cnVlO1xuICAgICAgdGhpcy5vbkxvYWRpbmdMaWtlID0gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAgIC5kb2MoY29tbWVudF9pZClcbiAgICAgICAgLmNvbGxlY3Rpb24oJ2xpa2UnKVxuICAgICAgICAuZG9jKGxpa2VfaWQpO1xuXG4gICAgICBjb2xsZWN0aW9uLmRlbGV0ZSgpO1xuICAgICAgaXRlbS5saWtlRm9yTWUgPSBmYWxzZTtcbiAgICAgIHRoaXMub25Mb2FkaW5nTGlrZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBsb2FkTW9yZUNvbW1lbnRzKCkge1xuICAgIHRoaXMubGltaXRDb21tZW50c1RvID0gdGhpcy5saW1pdENvbW1lbnRzVG8gKyAzO1xuICB9XG5cbiAgcHVibGljIGxvYWRNb3JlUmVwbHlzKGl0ZW0pIHtcbiAgICBpdGVtLmxpbWl0UmVwbHlzVG8gPSBpdGVtLmxpbWl0UmVwbHlzVG8gKyAzO1xuICB9XG5cbiAgcHVibGljIGxpbmtpZnkoc3RyKSB7XG4gICAgdmFyIHJlOiBhbnk7XG4gICAgcmUgPSBbXG4gICAgICBcIlxcXFxiKCg/Omh0dHBzP3xmdHApOi8vW15cXFxcc1xcXCInPD5dKylcXFxcYlwiLFxuICAgICAgXCJcXFxcYih3d3dcXFxcLlteXFxcXHNcXFwiJzw+XSspXFxcXGJcIixcbiAgICAgIFwiXFxcXGIoXFxcXHdbXFxcXHcuKy1dKkBbXFxcXHcuLV0rXFxcXC5bYS16XXsyLDZ9KVxcXFxiXCIsXG4gICAgICBcIiMoW2EtejAtOV0rKVwiXTtcbiAgICByZSA9IG5ldyBSZWdFeHAocmUuam9pbignfCcpLCBcImdpXCIpO1xuXG4gICAgaWYgKHN0cikge1xuICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKHJlLCBmdW5jdGlvbiAobWF0Y2gsIHVybCwgd3d3LCBtYWlsLCB0d2l0bGVyKSB7XG4gICAgICAgIGlmICh1cmwpXG4gICAgICAgICAgcmV0dXJuIFwiPGEgY2xhc3M9J3RleHQtcHJpbWFyeScgdGFyZ2V0PSdfYmxhbmsnIChjbGljayk9J3JlZGlyZWN0TmV3TGluayh1cmwpJyBocmVmPVxcXCJcIiArIHVybCArIFwiXFxcIj5cIiArIHVybCArIFwiPC9hPlwiO1xuICAgICAgICBpZiAod3d3KVxuICAgICAgICAgIHJldHVybiBcIjxhIGNsYXNzPSd0ZXh0LXByaW1hcnknIGhyZWY9XFxcImh0dHA6Ly9cIiArIHd3dyArIFwiXFxcIj5cIiArIHd3dyArIFwiPC9hPlwiO1xuICAgICAgICBpZiAobWFpbClcbiAgICAgICAgICByZXR1cm4gXCI8YSBjbGFzcz0ndGV4dC1wcmltYXJ5JyBocmVmPVxcXCIjPC9hPlwiO1xuICAgICAgICBpZiAodHdpdGxlcilcbiAgICAgICAgICByZXR1cm4gXCI8YSBjbGFzcz0ndGV4dC1wcmltYXJ5JyBocmVmPVxcXCJwb3J0YWwvc2VhcmNoL1wiICsgZW5jb2RlVVJJQ29tcG9uZW50KCcjJyArIHR3aXRsZXIpICsgXCJcXFwiPiNcIiArIHR3aXRsZXIgKyBcIjwvYT5cIjtcbiAgICAgICAgLy8gcmV0dXJuIFwiPGEgY2xhc3M9J3RleHQtcHJpbWFyeScgaHJlZj1cXFwiI1xcXCI+I1wiICsgdHdpdGxlciArIFwiPC9hPlwiO1xuXG4gICAgICAgIC8vIHNob3VsZG50IGdldCBoZXJlLCBidXQganVzdCBpbiBjYXNlXG4gICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkVkaXRSZXBseShyZXBseSkge1xuICAgIHRoaXMuZWRpdGVkUmVwbHkgPSByZXBseS5jb21tZW50O1xuICAgIGlmIChyZXBseS5vbkVkaXQpIHtcbiAgICAgIHJlcGx5Lm9uRWRpdCA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlcGx5Lm9uRWRpdCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uRWRpdENvbW1lbnQoY29tbWVudCkge1xuICAgIHRoaXMuZWRpdGVkQ29tbWVudCA9IGNvbW1lbnQuY29tbWVudDtcblxuICAgIGlmIChjb21tZW50Lm9uRWRpdCkge1xuICAgICAgY29tbWVudC5vbkVkaXQgPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb21tZW50Lm9uRWRpdCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNvbW1lbnQoaWQsIGNvbW1lbnQpIHtcbiAgICB0aGlzLm9uTG9hZGluZ0NvbW1lbnQgPSB0cnVlO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgY29tbWVudDogdGhpcy5lZGl0ZWRDb21tZW50LFxuICAgICAgZWRpdGVkOiB0cnVlLFxuICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAuZG9jKHRoaXMuZmVlZF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAuZG9jKGlkKTtcblxuICAgIGlmIChjb21tZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbGxlY3Rpb24udXBkYXRlKGRhdGEpO1xuICAgICAgdGhpcy5lZGl0ZWRDb21tZW50ID0gXCJcIjtcbiAgICAgIHRoaXMub25Mb2FkaW5nQ29tbWVudCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVSZXBseShjb21tZW50X2lkLCBvbGRfcmVwbHksIHJlcGx5KSB7XG4gICAgdGhpcy5vbkxvYWRpbmdSZXBseSA9IHRydWU7XG4gICAgbGV0IGRhdGEgPSB7XG4gICAgICBjb21tZW50OiByZXBseSxcbiAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgfVxuXG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgIC5kb2MoY29tbWVudF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdyZXBseScpXG4gICAgICAuZG9jKG9sZF9yZXBseS5pZCk7XG4gICAgY29sbGVjdGlvbi51cGRhdGUoZGF0YSk7XG4gICAgdGhpcy5lZGl0ZWRDb21tZW50ID0gXCJcIjtcbiAgICB0aGlzLm9uTG9hZGluZ1JlcGx5ID0gZmFsc2U7XG4gICAgb2xkX3JlcGx5Lm9uRWRpdCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG1lbnRpb25Vc2VyKHVzZXI6IGFueSkge1xuICAgIHRoaXMubWVudGlvbnNMaXN0ID0gdGhpcy5tZW50aW9uc0xpc3QgfHwgW107XG4gICAgdGhpcy5tZW50aW9uc0xpc3QucHVzaCh1c2VyKTtcbiAgfVxuXG59XG4iXX0=
@@ -250,7 +250,7 @@ var FeedCommentsComponent = /** @class */ (function () {
250
250
  * @return {?}
251
251
  */
252
252
  function (user) { return user.id; }));
253
- this.userService.usersChecked({ post_id: this.feed_id, user_id: selected_users }, { comments: true }).subscribe();
253
+ this.userService.usersChecked({ post_id: this.feed_id, user_id: selected_users, comment: comment, type: 'post' }, { comments: true }).subscribe();
254
254
  this.onLoadingComment = true;
255
255
  collection.add(data);
256
256
  /** @type {?} */
@@ -676,4 +676,4 @@ if (false) {
676
676
  /** @type {?} */
677
677
  FeedCommentsComponent.prototype.userService;
678
678
  }
679
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1jb21tZW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi9mZWVkLWNvbW1lbnRzL2ZlZWQtY29tbWVudHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZEO0lBaUNFLCtCQUNTLE1BQWMsRUFDZCxFQUFvQixFQUNwQixXQUE0QixFQUM1QixPQUFxQixFQUNyQixXQUF3QixFQUN4QixXQUF3QjtRQUx4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF2QjFCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFLbEIsa0JBQWEs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LCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRmlyZXN0b3JlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9maXJlc3RvcmUnO1xuaW1wb3J0IHsgQXNhcEZlZWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXNhcC1mZWVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBwYXRoIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBHbG9iYWwsIEFzYXBTZXJ2aWNlIH0gZnJvbSAnYXNhcC1jcnVkJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdXNlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZmVlZC1jb21tZW50cycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWVkLWNvbW1lbnRzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmVlZC1jb21tZW50cy5jb21wb25lbnQuc2NzcycsICcuLi9hc2FwLWZlZWQuYmV0YS5jb21wb25lbnRlLnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbIFVzZXJTZXJ2aWNlIF1cbn0pXG5leHBvcnQgY2xhc3MgRmVlZENvbW1lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKCdpbnB1dENvbW1lbnQnLCB7c3RhdGljOiBmYWxzZX0pIGlucHV0Q29tbWVudDogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncmVwbHlJbnB1dENvbW1lbnQnLCB7c3RhdGljOiBmYWxzZX0pIHJlcGx5SW5wdXRDb21tZW50OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdpbnB1dFJlcGx5Jywge3N0YXRpYzogZmFsc2V9KSBpbnB1dFJlcGx5OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIHNldHRpbmdzO1xuICBASW5wdXQoKSBmZWVkX2lkO1xuICBASW5wdXQoKSB1c2VyO1xuXG4gIHB1YmxpYyBjb21tZW50cyA9IFtdO1xuICBwdWJsaWMgcmVwbHlpbmdDb21tZW50ID0gW107XG4gIHB1YmxpYyByZXBseWluZ1Jlc3BvbnNlID0gW107XG4gIHB1YmxpYyBtZW50aW9uc0xpc3Q7XG4gIHB1YmxpYyBsaW1pdENvbW1lbnRzVG8gPSAzO1xuICBwdWJsaWMgbGltaXRSZXBseXNUbyA9IDE7XG4gIHB1YmxpYyBjb21tZW50O1xuICBwdWJsaWMgcmVwbHk7XG4gIHB1YmxpYyBlZGl0ZWRDb21tZW50O1xuICBwdWJsaWMgZWRpdGVkUmVwbHk7XG4gIHB1YmxpYyBvbkxvYWRpbmdMaWtlID0gZmFsc2U7XG4gIHB1YmxpYyBvbkxvYWRpbmdSZXBseSA9IGZhbHNlO1xuICBwdWJsaWMgb25Mb2FkaW5nQ29tbWVudCA9IGZhbHNlO1xuICBwdWJsaWMgaXNNYXJraW5nID0gZmFsc2U7XG4gIHB1YmxpYyB1c2VyczogYW55W107XG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGdsb2JhbDogR2xvYmFsLFxuICAgIHB1YmxpYyBkYjogQW5ndWxhckZpcmVzdG9yZSxcbiAgICBwdWJsaWMgZmVlZFNlcnZpY2U6IEFzYXBGZWVkU2VydmljZSxcbiAgICBwdWJsaWMgc2VydmljZTogVXRpbHNTZXJ2aWNlLFxuICAgIHB1YmxpYyBhc2FwU2VydmljZTogQXNhcFNlcnZpY2UsXG4gICAgcHVibGljIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0Q29tbWVudHModGhpcy5mZWVkX2lkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb21tZW50cyhmZWVkX2lkKSB7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgIC5kb2MoZmVlZF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycsIChyZWY6IGFueSkgPT4ge1xuICAgICAgICBsZXQgcXVlcnkgPSByZWYub3JkZXJCeShcInVwZGF0ZWRfYXRcIiwgXCJkZXNjXCIpO1xuICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgICB9KTtcblxuXG4gICAgY29sbGVjdGlvbi5zbmFwc2hvdENoYW5nZXMoKS5zdWJzY3JpYmUoKGNvbW1lbnQ6IGFueSkgPT4ge1xuICAgICAgdGhpcy5jb21tZW50cyA9IFtdO1xuICAgICAgY29tbWVudC5tYXAoaXRlbSA9PiB7XG4gICAgICAgIGxldCBkYXRhID0gaXRlbS5wYXlsb2FkLmRvYy5kYXRhKCk7XG4gICAgICAgIGRhdGEuaWQgPSBpdGVtLnBheWxvYWQuZG9jLmlkO1xuICAgICAgICBkYXRhLmxpa2VGb3JNZSA9IGZhbHNlO1xuICAgICAgICBkYXRhLmxpbWl0UmVwbHlzVG8gPSAwO1xuXG4gICAgICAgIGNvbnN0IGxpa2VzQ29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgICAgICAuZG9jKGZlZWRfaWQpXG4gICAgICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgICAgICAuZG9jKGRhdGEuaWQpXG4gICAgICAgICAgLmNvbGxlY3Rpb24oJ2xpa2UnKTtcblxuXG4gICAgICAgIGxpa2VzQ29sbGVjdGlvbi5zbmFwc2hvdENoYW5nZXMoKS5zdWJzY3JpYmUobGlrZSA9PiB7XG4gICAgICAgICAgZGF0YS5saWtlcyA9IFtdO1xuICAgICAgICAgIGxpa2UubWFwKHN1Ykl0ZW1MaWtlID0+IHtcbiAgICAgICAgICAgIGxldCBsaWtlRGF0YSA9IHN1Ykl0ZW1MaWtlLnBheWxvYWQuZG9jLmRhdGEoKTtcbiAgICAgICAgICAgIGxpa2VEYXRhLmlkID0gc3ViSXRlbUxpa2UucGF5bG9hZC5kb2NbJ2lkJ107XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkpIHtcbiAgICAgICAgICAgICAgaWYgKGxpa2VEYXRhLnVzZXJfaW5mbyAmJiBsaWtlRGF0YS51c2VyX2luZm8uaWQgPT09IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5pZCkge1xuICAgICAgICAgICAgICAgIGRhdGEubGlrZUZvck1lID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBkYXRhLmxpa2VGb3JNZUlEID0gbGlrZURhdGEuaWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGF0YS5saWtlcy5wdXNoKGxpa2VEYXRhKTtcblxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCByZXBseUNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAgICAgLmRvYyhmZWVkX2lkKVxuICAgICAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAgICAgLmRvYyhkYXRhLmlkKVxuICAgICAgICAgIC5jb2xsZWN0aW9uKCdyZXBseScsIHJlZiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVmLm9yZGVyQnkoJ3VwZGF0ZWRfYXQnLCAnZGVzYycpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIHJlcGx5Q29sbGVjdGlvbi5zbmFwc2hvdENoYW5nZXMoKS5zdWJzY3JpYmUocmVwbHkgPT4ge1xuICAgICAgICAgIGRhdGEucmVwbHlzID0gW107XG4gICAgICAgICAgcmVwbHkubWFwKChzdWJJdGVtKSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVwbHlEYXRhID0gc3ViSXRlbS5wYXlsb2FkLmRvYy5kYXRhKCk7XG4gICAgICAgICAgICByZXBseURhdGEuaWQgPSBzdWJJdGVtLnBheWxvYWQuZG9jWydpZCddO1xuXG4gICAgICAgICAgICBkYXRhLnJlcGx5cy5wdXNoKHJlcGx5RGF0YSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jb21tZW50cy5wdXNoKGRhdGEpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25SZXBseUNvbW1lbnQoaSkge1xuICAgIGlmICghdGhpcy5yZXBseWluZ0NvbW1lbnRbaV0pIHtcbiAgICAgIHRoaXMucmVwbHlpbmdDb21tZW50W2ldID0gdHJ1ZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnJlcGx5aW5nQ29tbWVudFtpXSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblJlcGx5UmVzcG9uc2UoaSkge1xuICAgIGlmICghdGhpcy5yZXBseWluZ1Jlc3BvbnNlW2ldKSB7XG4gICAgICB0aGlzLnJlcGx5aW5nUmVzcG9uc2VbaV0gPSB0cnVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMucmVwbHlpbmdSZXNwb25zZVtpXSA9IGZhbHNlO1xuICAgIH1cblxuICB9XG5cbiAgcHVibGljIGhhbmRsZVNob3dBbGxSZXBseVJlc3BvbnNlKGNvbW1lbnRJZHg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmNvbW1lbnRzW2NvbW1lbnRJZHhdLmxpbWl0UmVwbHlzVG8gPT09IDApIHtcbiAgICAgIHRoaXMuY29tbWVudHNbY29tbWVudElkeF0ubGltaXRSZXBseXNUbyA9IHRoaXMuY29tbWVudHNbY29tbWVudElkeF0ucmVwbHlzLmxlbmd0aDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb21tZW50c1tjb21tZW50SWR4XS5saW1pdFJlcGx5c1RvID0gMDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdW5tZW50aW9uUmVtb3ZlZFVzZXJzKGNvbW1lbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IG1lbnRpb25zOiBhbnkgPSBbXTtcbiAgICBpZiAodGhpcy5tZW50aW9uc0xpc3QgJiYgY29tbWVudCkge1xuICAgICAgZm9yIChjb25zdCB1c2VyIG9mIHRoaXMubWVudGlvbnNMaXN0KSB7XG4gICAgICAgIGlmIChjb21tZW50LmluY2x1ZGVzKHVzZXIubmFtZSkpIHtcbiAgICAgICAgICBtZW50aW9ucy5wdXNoKHVzZXIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubWVudGlvbnNMaXN0ID0gbWVudGlvbnM7XG4gIH1cblxuICBwdWJsaWMgc2VuZENvbW1lbnQoY29tbWVudCkge1xuICAgIHRoaXMudW5tZW50aW9uUmVtb3ZlZFVzZXJzKGNvbW1lbnQpO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgY29tbWVudDogY29tbWVudCxcbiAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICBjcmVhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgdXNlcl9pbmZvOiB7XG4gICAgICAgIGlkOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuaWQsXG4gICAgICAgIG5hbWU6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5uYW1lLFxuICAgICAgICBwaWN0dXJlOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkucGljdHVyZVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAuZG9jKHRoaXMuZmVlZF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpO1xuXG4gICAgaWYgKGNvbW1lbnQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRfdXNlcnMgPSB0aGlzLm1lbnRpb25zTGlzdC5tYXAodXNlciA9PiB1c2VyLmlkKTtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlcnNDaGVja2VkKHtwb3N0X2lkOiB0aGlzLmZlZWRfaWQsIHVzZXJfaWQ6IHNlbGVjdGVkX3VzZXJzfSwge2NvbW1lbnRzOiB0cnVlfSkuc3Vic2NyaWJlKCk7XG5cbiAgICAgIHRoaXMub25Mb2FkaW5nQ29tbWVudCA9IHRydWU7XG4gICAgICBjb2xsZWN0aW9uLmFkZChkYXRhKTtcblxuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0ge1xuICAgICAgICBzb3VyY2U6J3dlYicsXG4gICAgICAgIHRpdGxlOiBgTm92byBjb21lbnTDoXJpb2AsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZX06ICR7Y29tbWVudH1gLFxuICAgICAgICB1c2VyOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCksXG4gICAgICAgIGNsaWVudF9pZDp0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuY2xpZW50X2lkLFxuICAgICAgICByZWRpcmVjdDogYC9wb3J0YWwvJHt0aGlzLmZlZWRfaWR9YFxuICAgICAgfVxuXG4gICAgICB0aGlzLnNlcnZpY2Uuc2VuZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24sIHRoaXMudXNlciwgJ2ZlZWQnKTtcblxuICAgICAgdGhpcy5jb21tZW50ID0gXCJcIjtcbiAgICAgIHRoaXMubWVudGlvbnNMaXN0ID0gW107XG4gICAgICB0aGlzLm9uTG9hZGluZ0NvbW1lbnQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVwbHlDb21tZW50KGNvbW1lbnRfaWQsIGNvbW1lbnQsIHVzZXJfaW5mbywgaSkge1xuICAgIHRoaXMudW5tZW50aW9uUmVtb3ZlZFVzZXJzKGNvbW1lbnQpO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgY29tbWVudDogY29tbWVudCxcbiAgICAgIGNyZWF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgdXNlcl9pbmZvOiB7XG4gICAgICAgIGlkOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuaWQsXG4gICAgICAgIG5hbWU6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5uYW1lLFxuICAgICAgICBwaWN0dXJlOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkucGljdHVyZVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb21tZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25Mb2FkaW5nUmVwbHkgPSB0cnVlO1xuICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAgIC5kb2MoY29tbWVudF9pZClcbiAgICAgICAgLmNvbGxlY3Rpb24oJ3JlcGx5Jyk7XG5cbiAgICAgIGNvbGxlY3Rpb24uYWRkKGRhdGEpO1xuXG4gICAgICBjb25zdCBub3RpZmljYXRpb24gPSB7XG4gICAgICAgIHNvdXJjZTond2ViJyxcbiAgICAgICAgdGl0bGU6IGBOb3ZhIFJlc3Bvc3RhYCxcbiAgICAgICAgZGVzY3JpcHRpb246IGAke3RoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5uYW1lfSByZXNwb25kZXU6ICR7Y29tbWVudH1gLFxuICAgICAgICBjbGllbnRfaWQ6dGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmNsaWVudF9pZCxcbiAgICAgICAgdXNlcjogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLFxuICAgICAgICByZWRpcmVjdDogYC9wb3J0YWwvJHt0aGlzLmZlZWRfaWR9YFxuICAgICAgfVxuXG4gICAgICBjb25zdCBzZWxlY3RlZF91c2VycyA9IHRoaXMubWVudGlvbnNMaXN0Lm1hcCh1c2VyID0+IHVzZXIuaWQpO1xuICAgICAgdGhpcy51c2VyU2VydmljZS51c2Vyc0NoZWNrZWQoe3Bvc3RfaWQ6IHRoaXMuZmVlZF9pZCwgdXNlcl9pZDogc2VsZWN0ZWRfdXNlcnN9LCB7Y29tbWVudHM6IHRydWV9KS5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuc2VydmljZS5zZW5kTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgdXNlcl9pbmZvLCAnZmVlZCcpO1xuXG4gICAgICB0aGlzLnJlcGx5ID0gXCJcIjtcbiAgICAgIHRoaXMub25Mb2FkaW5nUmVwbHkgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVwbHlpbmdDb21tZW50W2ldID0gZmFsc2U7XG4gICAgICB0aGlzLnJlcGx5aW5nUmVzcG9uc2UgPSBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlUmVwbHkoY29tbWVudF9pZCwgcmVwbHlfaWQpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgLmRvYyhjb21tZW50X2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ3JlcGx5JylcbiAgICAgIC5kb2MocmVwbHlfaWQpO1xuXG4gICAgY29sbGVjdGlvbi5kZWxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVDb21tZW50KGNvbW1lbnRfaWQpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgLmRvYyhjb21tZW50X2lkKTtcblxuICAgIGNvbGxlY3Rpb24uZGVsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgc2VuZExpa2VDb21tZW50KGNvbW1lbnRfaWQsIGxpa2VfaWQgPSBudWxsLCBpdGVtKSB7XG4gICAgdGhpcy5vbkxvYWRpbmdMaWtlID0gdHJ1ZTtcbiAgICBpZiAoIWl0ZW0ubGlrZUZvck1lKSB7XG4gICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgY3JlYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgICAgdXNlcl9pbmZvOiB7XG4gICAgICAgICAgaWQ6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5pZCxcbiAgICAgICAgICBuYW1lOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZSxcbiAgICAgICAgICBwaWN0dXJlOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkucGljdHVyZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgICAuZG9jKGNvbW1lbnRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdsaWtlJyk7XG5cbiAgICAgIGNvbGxlY3Rpb24uYWRkKGRhdGEpO1xuXG5cbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcbiAgICAgICAgc291cmNlOid3ZWInLFxuICAgICAgICB0aXRsZTogYE5vdmEgQ3VydGlkYWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZX0gY3VydGl1IHNldSBjb21lbnTDoXJpbzogJHtpdGVtLmNvbW1lbnR9YCxcbiAgICAgICAgY2xpZW50X2lkOnRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5jbGllbnRfaWQsXG4gICAgICAgIHVzZXI6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKSxcbiAgICAgICAgcmVkaXJlY3Q6IGAvcG9ydGFsLyR7dGhpcy5mZWVkX2lkfWBcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXJ2aWNlLnNlbmROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCBpdGVtLnVzZXJfaW5mbywgJ2ZlZWQnKTtcblxuICAgICAgaXRlbS5saWtlRm9yTWUgPSB0cnVlO1xuICAgICAgdGhpcy5vbkxvYWRpbmdMaWtlID0gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAgIC5kb2MoY29tbWVudF9pZClcbiAgICAgICAgLmNvbGxlY3Rpb24oJ2xpa2UnKVxuICAgICAgICAuZG9jKGxpa2VfaWQpO1xuXG4gICAgICBjb2xsZWN0aW9uLmRlbGV0ZSgpO1xuICAgICAgaXRlbS5saWtlRm9yTWUgPSBmYWxzZTtcbiAgICAgIHRoaXMub25Mb2FkaW5nTGlrZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBsb2FkTW9yZUNvbW1lbnRzKCkge1xuICAgIHRoaXMubGltaXRDb21tZW50c1RvID0gdGhpcy5saW1pdENvbW1lbnRzVG8gKyAzO1xuICB9XG5cbiAgcHVibGljIGxvYWRNb3JlUmVwbHlzKGl0ZW0pIHtcbiAgICBpdGVtLmxpbWl0UmVwbHlzVG8gPSBpdGVtLmxpbWl0UmVwbHlzVG8gKyAzO1xuICB9XG5cbiAgcHVibGljIGxpbmtpZnkoc3RyKSB7XG4gICAgdmFyIHJlOiBhbnk7XG4gICAgcmUgPSBbXG4gICAgICBcIlxcXFxiKCg/Omh0dHBzP3xmdHApOi8vW15cXFxcc1xcXCInPD5dKylcXFxcYlwiLFxuICAgICAgXCJcXFxcYih3d3dcXFxcLlteXFxcXHNcXFwiJzw+XSspXFxcXGJcIixcbiAgICAgIFwiXFxcXGIoXFxcXHdbXFxcXHcuKy1dKkBbXFxcXHcuLV0rXFxcXC5bYS16XXsyLDZ9KVxcXFxiXCIsXG4gICAgICBcIiMoW2EtejAtOV0rKVwiXTtcbiAgICByZSA9IG5ldyBSZWdFeHAocmUuam9pbignfCcpLCBcImdpXCIpO1xuXG4gICAgaWYgKHN0cikge1xuICAgICAgcmV0dXJuIHN0ci5yZXBsYWNlKHJlLCBmdW5jdGlvbiAobWF0Y2gsIHVybCwgd3d3LCBtYWlsLCB0d2l0bGVyKSB7XG4gICAgICAgIGlmICh1cmwpXG4gICAgICAgICAgcmV0dXJuIFwiPGEgY2xhc3M9J3RleHQtcHJpbWFyeScgdGFyZ2V0PSdfYmxhbmsnIChjbGljayk9J3JlZGlyZWN0TmV3TGluayh1cmwpJyBocmVmPVxcXCJcIiArIHVybCArIFwiXFxcIj5cIiArIHVybCArIFwiPC9hPlwiO1xuICAgICAgICBpZiAod3d3KVxuICAgICAgICAgIHJldHVybiBcIjxhIGNsYXNzPSd0ZXh0LXByaW1hcnknIGhyZWY9XFxcImh0dHA6Ly9cIiArIHd3dyArIFwiXFxcIj5cIiArIHd3dyArIFwiPC9hPlwiO1xuICAgICAgICBpZiAobWFpbClcbiAgICAgICAgICByZXR1cm4gXCI8YSBjbGFzcz0ndGV4dC1wcmltYXJ5JyBocmVmPVxcXCIjPC9hPlwiO1xuICAgICAgICBpZiAodHdpdGxlcilcbiAgICAgICAgICByZXR1cm4gXCI8YSBjbGFzcz0ndGV4dC1wcmltYXJ5JyBocmVmPVxcXCJwb3J0YWwvc2VhcmNoL1wiICsgZW5jb2RlVVJJQ29tcG9uZW50KCcjJyArIHR3aXRsZXIpICsgXCJcXFwiPiNcIiArIHR3aXRsZXIgKyBcIjwvYT5cIjtcbiAgICAgICAgLy8gcmV0dXJuIFwiPGEgY2xhc3M9J3RleHQtcHJpbWFyeScgaHJlZj1cXFwiI1xcXCI+I1wiICsgdHdpdGxlciArIFwiPC9hPlwiO1xuXG4gICAgICAgIC8vIHNob3VsZG50IGdldCBoZXJlLCBidXQganVzdCBpbiBjYXNlXG4gICAgICAgIHJldHVybiBtYXRjaDtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkVkaXRSZXBseShyZXBseSkge1xuICAgIHRoaXMuZWRpdGVkUmVwbHkgPSByZXBseS5jb21tZW50O1xuICAgIGlmIChyZXBseS5vbkVkaXQpIHtcbiAgICAgIHJlcGx5Lm9uRWRpdCA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlcGx5Lm9uRWRpdCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uRWRpdENvbW1lbnQoY29tbWVudCkge1xuICAgIHRoaXMuZWRpdGVkQ29tbWVudCA9IGNvbW1lbnQuY29tbWVudDtcblxuICAgIGlmIChjb21tZW50Lm9uRWRpdCkge1xuICAgICAgY29tbWVudC5vbkVkaXQgPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb21tZW50Lm9uRWRpdCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUNvbW1lbnQoaWQsIGNvbW1lbnQpIHtcbiAgICB0aGlzLm9uTG9hZGluZ0NvbW1lbnQgPSB0cnVlO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgY29tbWVudDogdGhpcy5lZGl0ZWRDb21tZW50LFxuICAgICAgZWRpdGVkOiB0cnVlLFxuICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKVxuICAgIH1cblxuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAuZG9jKHRoaXMuZmVlZF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAuZG9jKGlkKTtcblxuICAgIGlmIChjb21tZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbGxlY3Rpb24udXBkYXRlKGRhdGEpO1xuICAgICAgdGhpcy5lZGl0ZWRDb21tZW50ID0gXCJcIjtcbiAgICAgIHRoaXMub25Mb2FkaW5nQ29tbWVudCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVSZXBseShjb21tZW50X2lkLCBvbGRfcmVwbHksIHJlcGx5KSB7XG4gICAgdGhpcy5vbkxvYWRpbmdSZXBseSA9IHRydWU7XG4gICAgbGV0IGRhdGEgPSB7XG4gICAgICBjb21tZW50OiByZXBseSxcbiAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgfVxuXG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgIC5kb2MoY29tbWVudF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdyZXBseScpXG4gICAgICAuZG9jKG9sZF9yZXBseS5pZCk7XG4gICAgY29sbGVjdGlvbi51cGRhdGUoZGF0YSk7XG4gICAgdGhpcy5lZGl0ZWRDb21tZW50ID0gXCJcIjtcbiAgICB0aGlzLm9uTG9hZGluZ1JlcGx5ID0gZmFsc2U7XG4gICAgb2xkX3JlcGx5Lm9uRWRpdCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG1lbnRpb25Vc2VyKHVzZXI6IGFueSkge1xuICAgIHRoaXMubWVudGlvbnNMaXN0ID0gdGhpcy5tZW50aW9uc0xpc3QgfHwgW107XG4gICAgdGhpcy5tZW50aW9uc0xpc3QucHVzaCh1c2VyKTtcbiAgfVxuXG59XG4iXX0=
679
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZC1jb21tZW50cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hc2FwLWZlZWQtYmV0YS8iLCJzb3VyY2VzIjpbImxpYi9mZWVkLWNvbW1lbnRzL2ZlZWQtY29tbWVudHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZEO0lBaUNFLCtCQUNTLE1BQWMsRUFDZCxFQUFvQixFQUNwQixXQUE0QixFQUM1QixPQUFxQixFQUNyQixXQUF3QixFQUN4QixXQUF3QjtRQUx4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQzVCLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUF2QjFCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFFdEIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFLbEIsa0JBQWEs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Q29tcG9uZW50LCBPbkluaXQsIElucHV0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFuZ3VsYXJGaXJlc3RvcmUgfSBmcm9tICdAYW5ndWxhci9maXJlL2ZpcmVzdG9yZSc7XG5pbXBvcnQgeyBBc2FwRmVlZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hc2FwLWZlZWQuc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91dGlscy5zZXJ2aWNlJztcbmltcG9ydCB7IHBhdGggfSBmcm9tICcuLi9jb25zdGFudHMvY29uc3RhbnRzJztcbmltcG9ydCB7IEdsb2JhbCwgQXNhcFNlcnZpY2UgfSBmcm9tICdhc2FwLWNydWQnO1xuaW1wb3J0IHsgVXNlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmZWVkLWNvbW1lbnRzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZlZWQtY29tbWVudHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mZWVkLWNvbW1lbnRzLmNvbXBvbmVudC5zY3NzJywgJy4uL2FzYXAtZmVlZC5iZXRhLmNvbXBvbmVudGUuc2NzcyddLFxuICBwcm92aWRlcnM6IFsgVXNlclNlcnZpY2UgXVxufSlcbmV4cG9ydCBjbGFzcyBGZWVkQ29tbWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q29tbWVudCcsIHtzdGF0aWM6IGZhbHNlfSkgaW5wdXRDb21tZW50OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdyZXBseUlucHV0Q29tbWVudCcsIHtzdGF0aWM6IGZhbHNlfSkgcmVwbHlJbnB1dENvbW1lbnQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0UmVwbHknLCB7c3RhdGljOiBmYWxzZX0pIGlucHV0UmVwbHk6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgc2V0dGluZ3M7XG4gIEBJbnB1dCgpIGZlZWRfaWQ7XG4gIEBJbnB1dCgpIHVzZXI7XG5cbiAgcHVibGljIGNvbW1lbnRzID0gW107XG4gIHB1YmxpYyByZXBseWluZ0NvbW1lbnQgPSBbXTtcbiAgcHVibGljIHJlcGx5aW5nUmVzcG9uc2UgPSBbXTtcbiAgcHVibGljIG1lbnRpb25zTGlzdDtcbiAgcHVibGljIGxpbWl0Q29tbWVudHNUbyA9IDM7XG4gIHB1YmxpYyBsaW1pdFJlcGx5c1RvID0gMTtcbiAgcHVibGljIGNvbW1lbnQ7XG4gIHB1YmxpYyByZXBseTtcbiAgcHVibGljIGVkaXRlZENvbW1lbnQ7XG4gIHB1YmxpYyBlZGl0ZWRSZXBseTtcbiAgcHVibGljIG9uTG9hZGluZ0xpa2UgPSBmYWxzZTtcbiAgcHVibGljIG9uTG9hZGluZ1JlcGx5ID0gZmFsc2U7XG4gIHB1YmxpYyBvbkxvYWRpbmdDb21tZW50ID0gZmFsc2U7XG4gIHB1YmxpYyBpc01hcmtpbmcgPSBmYWxzZTtcbiAgcHVibGljIHVzZXJzOiBhbnlbXTtcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZ2xvYmFsOiBHbG9iYWwsXG4gICAgcHVibGljIGRiOiBBbmd1bGFyRmlyZXN0b3JlLFxuICAgIHB1YmxpYyBmZWVkU2VydmljZTogQXNhcEZlZWRTZXJ2aWNlLFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBVdGlsc1NlcnZpY2UsXG4gICAgcHVibGljIGFzYXBTZXJ2aWNlOiBBc2FwU2VydmljZSxcbiAgICBwdWJsaWMgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXRDb21tZW50cyh0aGlzLmZlZWRfaWQpO1xuICB9XG5cbiAgcHVibGljIGdldENvbW1lbnRzKGZlZWRfaWQpIHtcbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgLmRvYyhmZWVkX2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJywgKHJlZjogYW55KSA9PiB7XG4gICAgICAgIGxldCBxdWVyeSA9IHJlZi5vcmRlckJ5KFwidXBkYXRlZF9hdFwiLCBcImRlc2NcIik7XG4gICAgICAgIHJldHVybiBxdWVyeTtcbiAgICAgIH0pO1xuXG5cbiAgICBjb2xsZWN0aW9uLnNuYXBzaG90Q2hhbmdlcygpLnN1YnNjcmliZSgoY29tbWVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLmNvbW1lbnRzID0gW107XG4gICAgICBjb21tZW50Lm1hcChpdGVtID0+IHtcbiAgICAgICAgbGV0IGRhdGEgPSBpdGVtLnBheWxvYWQuZG9jLmRhdGEoKTtcbiAgICAgICAgZGF0YS5pZCA9IGl0ZW0ucGF5bG9hZC5kb2MuaWQ7XG4gICAgICAgIGRhdGEubGlrZUZvck1lID0gZmFsc2U7XG4gICAgICAgIGRhdGEubGltaXRSZXBseXNUbyA9IDA7XG5cbiAgICAgICAgY29uc3QgbGlrZXNDb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgICAgIC5kb2MoZmVlZF9pZClcbiAgICAgICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgICAgIC5kb2MoZGF0YS5pZClcbiAgICAgICAgICAuY29sbGVjdGlvbignbGlrZScpO1xuXG5cbiAgICAgICAgbGlrZXNDb2xsZWN0aW9uLnNuYXBzaG90Q2hhbmdlcygpLnN1YnNjcmliZShsaWtlID0+IHtcbiAgICAgICAgICBkYXRhLmxpa2VzID0gW107XG4gICAgICAgICAgbGlrZS5tYXAoc3ViSXRlbUxpa2UgPT4ge1xuICAgICAgICAgICAgbGV0IGxpa2VEYXRhID0gc3ViSXRlbUxpa2UucGF5bG9hZC5kb2MuZGF0YSgpO1xuICAgICAgICAgICAgbGlrZURhdGEuaWQgPSBzdWJJdGVtTGlrZS5wYXlsb2FkLmRvY1snaWQnXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKSkge1xuICAgICAgICAgICAgICBpZiAobGlrZURhdGEudXNlcl9pbmZvICYmIGxpa2VEYXRhLnVzZXJfaW5mby5pZCA9PT0gdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmlkKSB7XG4gICAgICAgICAgICAgICAgZGF0YS5saWtlRm9yTWUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGRhdGEubGlrZUZvck1lSUQgPSBsaWtlRGF0YS5pZDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXRhLmxpa2VzLnB1c2gobGlrZURhdGEpO1xuXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHJlcGx5Q29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgICAgICAuZG9jKGZlZWRfaWQpXG4gICAgICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgICAgICAuZG9jKGRhdGEuaWQpXG4gICAgICAgICAgLmNvbGxlY3Rpb24oJ3JlcGx5JywgcmVmID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZWYub3JkZXJCeSgndXBkYXRlZF9hdCcsICdkZXNjJyk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgcmVwbHlDb2xsZWN0aW9uLnNuYXBzaG90Q2hhbmdlcygpLnN1YnNjcmliZShyZXBseSA9PiB7XG4gICAgICAgICAgZGF0YS5yZXBseXMgPSBbXTtcbiAgICAgICAgICByZXBseS5tYXAoKHN1Ykl0ZW0pID0+IHtcbiAgICAgICAgICAgIGxldCByZXBseURhdGEgPSBzdWJJdGVtLnBheWxvYWQuZG9jLmRhdGEoKTtcbiAgICAgICAgICAgIHJlcGx5RGF0YS5pZCA9IHN1Ykl0ZW0ucGF5bG9hZC5kb2NbJ2lkJ107XG5cbiAgICAgICAgICAgIGRhdGEucmVwbHlzLnB1c2gocmVwbHlEYXRhKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmNvbW1lbnRzLnB1c2goZGF0YSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblJlcGx5Q29tbWVudChpKSB7XG4gICAgaWYgKCF0aGlzLnJlcGx5aW5nQ29tbWVudFtpXSkge1xuICAgICAgdGhpcy5yZXBseWluZ0NvbW1lbnRbaV0gPSB0cnVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMucmVwbHlpbmdDb21tZW50W2ldID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uUmVwbHlSZXNwb25zZShpKSB7XG4gICAgaWYgKCF0aGlzLnJlcGx5aW5nUmVzcG9uc2VbaV0pIHtcbiAgICAgIHRoaXMucmVwbHlpbmdSZXNwb25zZVtpXSA9IHRydWU7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5yZXBseWluZ1Jlc3BvbnNlW2ldID0gZmFsc2U7XG4gICAgfVxuXG4gIH1cblxuICBwdWJsaWMgaGFuZGxlU2hvd0FsbFJlcGx5UmVzcG9uc2UoY29tbWVudElkeDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuY29tbWVudHNbY29tbWVudElkeF0ubGltaXRSZXBseXNUbyA9PT0gMCkge1xuICAgICAgdGhpcy5jb21tZW50c1tjb21tZW50SWR4XS5saW1pdFJlcGx5c1RvID0gdGhpcy5jb21tZW50c1tjb21tZW50SWR4XS5yZXBseXMubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbW1lbnRzW2NvbW1lbnRJZHhdLmxpbWl0UmVwbHlzVG8gPSAwO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1bm1lbnRpb25SZW1vdmVkVXNlcnMoY29tbWVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgbWVudGlvbnM6IGFueSA9IFtdO1xuICAgIGlmICh0aGlzLm1lbnRpb25zTGlzdCAmJiBjb21tZW50KSB7XG4gICAgICBmb3IgKGNvbnN0IHVzZXIgb2YgdGhpcy5tZW50aW9uc0xpc3QpIHtcbiAgICAgICAgaWYgKGNvbW1lbnQuaW5jbHVkZXModXNlci5uYW1lKSkge1xuICAgICAgICAgIG1lbnRpb25zLnB1c2godXNlcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5tZW50aW9uc0xpc3QgPSBtZW50aW9ucztcbiAgfVxuXG4gIHB1YmxpYyBzZW5kQ29tbWVudChjb21tZW50KSB7XG4gICAgdGhpcy51bm1lbnRpb25SZW1vdmVkVXNlcnMoY29tbWVudCk7XG4gICAgbGV0IGRhdGEgPSB7XG4gICAgICBjb21tZW50OiBjb21tZW50LFxuICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgIGNyZWF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICB1c2VyX2luZm86IHtcbiAgICAgICAgaWQ6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5pZCxcbiAgICAgICAgbmFtZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLm5hbWUsXG4gICAgICAgIHBpY3R1cmU6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5waWN0dXJlXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJyk7XG5cbiAgICBpZiAoY29tbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZF91c2VycyA9IHRoaXMubWVudGlvbnNMaXN0Lm1hcCh1c2VyID0+IHVzZXIuaWQpO1xuICAgICAgdGhpcy51c2VyU2VydmljZS51c2Vyc0NoZWNrZWQoe3Bvc3RfaWQ6IHRoaXMuZmVlZF9pZCwgdXNlcl9pZDogc2VsZWN0ZWRfdXNlcnMsIGNvbW1lbnQsIHR5cGU6ICdwb3N0J30sIHtjb21tZW50czogdHJ1ZX0pLnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLm9uTG9hZGluZ0NvbW1lbnQgPSB0cnVlO1xuICAgICAgY29sbGVjdGlvbi5hZGQoZGF0YSk7XG5cbiAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IHtcbiAgICAgICAgc291cmNlOid3ZWInLFxuICAgICAgICB0aXRsZTogYE5vdm8gY29tZW50w6FyaW9gLFxuICAgICAgICBkZXNjcmlwdGlvbjogYCR7dGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLm5hbWV9OiAke2NvbW1lbnR9YCxcbiAgICAgICAgdXNlcjogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLFxuICAgICAgICBjbGllbnRfaWQ6dGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmNsaWVudF9pZCxcbiAgICAgICAgcmVkaXJlY3Q6IGAvcG9ydGFsLyR7dGhpcy5mZWVkX2lkfWBcbiAgICAgIH1cblxuICAgICAgdGhpcy5zZXJ2aWNlLnNlbmROb3RpZmljYXRpb24obm90aWZpY2F0aW9uLCB0aGlzLnVzZXIsICdmZWVkJyk7XG5cbiAgICAgIHRoaXMuY29tbWVudCA9IFwiXCI7XG4gICAgICB0aGlzLm1lbnRpb25zTGlzdCA9IFtdO1xuICAgICAgdGhpcy5vbkxvYWRpbmdDb21tZW50ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlcGx5Q29tbWVudChjb21tZW50X2lkLCBjb21tZW50LCB1c2VyX2luZm8sIGkpIHtcbiAgICB0aGlzLnVubWVudGlvblJlbW92ZWRVc2Vycyhjb21tZW50KTtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIGNvbW1lbnQ6IGNvbW1lbnQsXG4gICAgICBjcmVhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgICAgdXBkYXRlZF9hdDogRGF0ZS5ub3coKSxcbiAgICAgIHVzZXJfaW5mbzoge1xuICAgICAgICBpZDogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLmlkLFxuICAgICAgICBuYW1lOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZSxcbiAgICAgICAgcGljdHVyZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLnBpY3R1cmVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29tbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLm9uTG9hZGluZ1JlcGx5ID0gdHJ1ZTtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgICAuZG9jKGNvbW1lbnRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdyZXBseScpO1xuXG4gICAgICBjb2xsZWN0aW9uLmFkZChkYXRhKTtcblxuICAgICAgY29uc3Qgbm90aWZpY2F0aW9uID0ge1xuICAgICAgICBzb3VyY2U6J3dlYicsXG4gICAgICAgIHRpdGxlOiBgTm92YSBSZXNwb3N0YWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBgJHt0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkubmFtZX0gcmVzcG9uZGV1OiAke2NvbW1lbnR9YCxcbiAgICAgICAgY2xpZW50X2lkOnRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKS5jbGllbnRfaWQsXG4gICAgICAgIHVzZXI6IHRoaXMuZ2xvYmFsLmxvZ2dlZFVzZXIoKSxcbiAgICAgICAgcmVkaXJlY3Q6IGAvcG9ydGFsLyR7dGhpcy5mZWVkX2lkfWBcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc2VsZWN0ZWRfdXNlcnMgPSB0aGlzLm1lbnRpb25zTGlzdC5tYXAodXNlciA9PiB1c2VyLmlkKTtcbiAgICAgIHRoaXMudXNlclNlcnZpY2UudXNlcnNDaGVja2VkKHtwb3N0X2lkOiB0aGlzLmZlZWRfaWQsIHVzZXJfaWQ6IHNlbGVjdGVkX3VzZXJzfSwge2NvbW1lbnRzOiB0cnVlfSkuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLnNlcnZpY2Uuc2VuZE5vdGlmaWNhdGlvbihub3RpZmljYXRpb24sIHVzZXJfaW5mbywgJ2ZlZWQnKTtcblxuICAgICAgdGhpcy5yZXBseSA9IFwiXCI7XG4gICAgICB0aGlzLm9uTG9hZGluZ1JlcGx5ID0gZmFsc2U7XG4gICAgICB0aGlzLnJlcGx5aW5nQ29tbWVudFtpXSA9IGZhbHNlO1xuICAgICAgdGhpcy5yZXBseWluZ1Jlc3BvbnNlID0gW107XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZVJlcGx5KGNvbW1lbnRfaWQsIHJlcGx5X2lkKSB7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgIC5kb2MoY29tbWVudF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdyZXBseScpXG4gICAgICAuZG9jKHJlcGx5X2lkKTtcblxuICAgIGNvbGxlY3Rpb24uZGVsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQ29tbWVudChjb21tZW50X2lkKSB7XG4gICAgY29uc3QgY29sbGVjdGlvbiA9IHRoaXMuZGIuY29sbGVjdGlvbihwYXRoKCkuZmVlZClcbiAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgIC5kb2MoY29tbWVudF9pZCk7XG5cbiAgICBjb2xsZWN0aW9uLmRlbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHNlbmRMaWtlQ29tbWVudChjb21tZW50X2lkLCBsaWtlX2lkID0gbnVsbCwgaXRlbSkge1xuICAgIHRoaXMub25Mb2FkaW5nTGlrZSA9IHRydWU7XG4gICAgaWYgKCFpdGVtLmxpa2VGb3JNZSkge1xuICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgIGNyZWF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KCksXG4gICAgICAgIHVzZXJfaW5mbzoge1xuICAgICAgICAgIGlkOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuaWQsXG4gICAgICAgICAgbmFtZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLm5hbWUsXG4gICAgICAgICAgcGljdHVyZTogdGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLnBpY3R1cmVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgICAuZG9jKHRoaXMuZmVlZF9pZClcbiAgICAgICAgLmNvbGxlY3Rpb24oJ2NvbW1lbnRzJylcbiAgICAgICAgLmRvYyhjb21tZW50X2lkKVxuICAgICAgICAuY29sbGVjdGlvbignbGlrZScpO1xuXG4gICAgICBjb2xsZWN0aW9uLmFkZChkYXRhKTtcblxuXG4gICAgICBjb25zdCBub3RpZmljYXRpb24gPSB7XG4gICAgICAgIHNvdXJjZTond2ViJyxcbiAgICAgICAgdGl0bGU6IGBOb3ZhIEN1cnRpZGFgLFxuICAgICAgICBkZXNjcmlwdGlvbjogYCR7dGhpcy5nbG9iYWwubG9nZ2VkVXNlcigpLm5hbWV9IGN1cnRpdSBzZXUgY29tZW50w6FyaW86ICR7aXRlbS5jb21tZW50fWAsXG4gICAgICAgIGNsaWVudF9pZDp0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCkuY2xpZW50X2lkLFxuICAgICAgICB1c2VyOiB0aGlzLmdsb2JhbC5sb2dnZWRVc2VyKCksXG4gICAgICAgIHJlZGlyZWN0OiBgL3BvcnRhbC8ke3RoaXMuZmVlZF9pZH1gXG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2VydmljZS5zZW5kTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbiwgaXRlbS51c2VyX2luZm8sICdmZWVkJyk7XG5cbiAgICAgIGl0ZW0ubGlrZUZvck1lID0gdHJ1ZTtcbiAgICAgIHRoaXMub25Mb2FkaW5nTGlrZSA9IGZhbHNlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAgIC5kb2ModGhpcy5mZWVkX2lkKVxuICAgICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgICAuZG9jKGNvbW1lbnRfaWQpXG4gICAgICAgIC5jb2xsZWN0aW9uKCdsaWtlJylcbiAgICAgICAgLmRvYyhsaWtlX2lkKTtcblxuICAgICAgY29sbGVjdGlvbi5kZWxldGUoKTtcbiAgICAgIGl0ZW0ubGlrZUZvck1lID0gZmFsc2U7XG4gICAgICB0aGlzLm9uTG9hZGluZ0xpa2UgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbG9hZE1vcmVDb21tZW50cygpIHtcbiAgICB0aGlzLmxpbWl0Q29tbWVudHNUbyA9IHRoaXMubGltaXRDb21tZW50c1RvICsgMztcbiAgfVxuXG4gIHB1YmxpYyBsb2FkTW9yZVJlcGx5cyhpdGVtKSB7XG4gICAgaXRlbS5saW1pdFJlcGx5c1RvID0gaXRlbS5saW1pdFJlcGx5c1RvICsgMztcbiAgfVxuXG4gIHB1YmxpYyBsaW5raWZ5KHN0cikge1xuICAgIHZhciByZTogYW55O1xuICAgIHJlID0gW1xuICAgICAgXCJcXFxcYigoPzpodHRwcz98ZnRwKTovL1teXFxcXHNcXFwiJzw+XSspXFxcXGJcIixcbiAgICAgIFwiXFxcXGIod3d3XFxcXC5bXlxcXFxzXFxcIic8Pl0rKVxcXFxiXCIsXG4gICAgICBcIlxcXFxiKFxcXFx3W1xcXFx3ListXSpAW1xcXFx3Li1dK1xcXFwuW2Etel17Miw2fSlcXFxcYlwiLFxuICAgICAgXCIjKFthLXowLTldKylcIl07XG4gICAgcmUgPSBuZXcgUmVnRXhwKHJlLmpvaW4oJ3wnKSwgXCJnaVwiKTtcblxuICAgIGlmIChzdHIpIHtcbiAgICAgIHJldHVybiBzdHIucmVwbGFjZShyZSwgZnVuY3Rpb24gKG1hdGNoLCB1cmwsIHd3dywgbWFpbCwgdHdpdGxlcikge1xuICAgICAgICBpZiAodXJsKVxuICAgICAgICAgIHJldHVybiBcIjxhIGNsYXNzPSd0ZXh0LXByaW1hcnknIHRhcmdldD0nX2JsYW5rJyAoY2xpY2spPSdyZWRpcmVjdE5ld0xpbmsodXJsKScgaHJlZj1cXFwiXCIgKyB1cmwgKyBcIlxcXCI+XCIgKyB1cmwgKyBcIjwvYT5cIjtcbiAgICAgICAgaWYgKHd3dylcbiAgICAgICAgICByZXR1cm4gXCI8YSBjbGFzcz0ndGV4dC1wcmltYXJ5JyBocmVmPVxcXCJodHRwOi8vXCIgKyB3d3cgKyBcIlxcXCI+XCIgKyB3d3cgKyBcIjwvYT5cIjtcbiAgICAgICAgaWYgKG1haWwpXG4gICAgICAgICAgcmV0dXJuIFwiPGEgY2xhc3M9J3RleHQtcHJpbWFyeScgaHJlZj1cXFwiIzwvYT5cIjtcbiAgICAgICAgaWYgKHR3aXRsZXIpXG4gICAgICAgICAgcmV0dXJuIFwiPGEgY2xhc3M9J3RleHQtcHJpbWFyeScgaHJlZj1cXFwicG9ydGFsL3NlYXJjaC9cIiArIGVuY29kZVVSSUNvbXBvbmVudCgnIycgKyB0d2l0bGVyKSArIFwiXFxcIj4jXCIgKyB0d2l0bGVyICsgXCI8L2E+XCI7XG4gICAgICAgIC8vIHJldHVybiBcIjxhIGNsYXNzPSd0ZXh0LXByaW1hcnknIGhyZWY9XFxcIiNcXFwiPiNcIiArIHR3aXRsZXIgKyBcIjwvYT5cIjtcblxuICAgICAgICAvLyBzaG91bGRudCBnZXQgaGVyZSwgYnV0IGp1c3QgaW4gY2FzZVxuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25FZGl0UmVwbHkocmVwbHkpIHtcbiAgICB0aGlzLmVkaXRlZFJlcGx5ID0gcmVwbHkuY29tbWVudDtcbiAgICBpZiAocmVwbHkub25FZGl0KSB7XG4gICAgICByZXBseS5vbkVkaXQgPSBmYWxzZTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXBseS5vbkVkaXQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkVkaXRDb21tZW50KGNvbW1lbnQpIHtcbiAgICB0aGlzLmVkaXRlZENvbW1lbnQgPSBjb21tZW50LmNvbW1lbnQ7XG5cbiAgICBpZiAoY29tbWVudC5vbkVkaXQpIHtcbiAgICAgIGNvbW1lbnQub25FZGl0ID0gZmFsc2U7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29tbWVudC5vbkVkaXQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb21tZW50KGlkLCBjb21tZW50KSB7XG4gICAgdGhpcy5vbkxvYWRpbmdDb21tZW50ID0gdHJ1ZTtcbiAgICBsZXQgZGF0YSA9IHtcbiAgICAgIGNvbW1lbnQ6IHRoaXMuZWRpdGVkQ29tbWVudCxcbiAgICAgIGVkaXRlZDogdHJ1ZSxcbiAgICAgIHVwZGF0ZWRfYXQ6IERhdGUubm93KClcbiAgICB9XG5cbiAgICBjb25zdCBjb2xsZWN0aW9uID0gdGhpcy5kYi5jb2xsZWN0aW9uKHBhdGgoKS5mZWVkKVxuICAgICAgLmRvYyh0aGlzLmZlZWRfaWQpXG4gICAgICAuY29sbGVjdGlvbignY29tbWVudHMnKVxuICAgICAgLmRvYyhpZCk7XG5cbiAgICBpZiAoY29tbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICBjb2xsZWN0aW9uLnVwZGF0ZShkYXRhKTtcbiAgICAgIHRoaXMuZWRpdGVkQ29tbWVudCA9IFwiXCI7XG4gICAgICB0aGlzLm9uTG9hZGluZ0NvbW1lbnQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUmVwbHkoY29tbWVudF9pZCwgb2xkX3JlcGx5LCByZXBseSkge1xuICAgIHRoaXMub25Mb2FkaW5nUmVwbHkgPSB0cnVlO1xuICAgIGxldCBkYXRhID0ge1xuICAgICAgY29tbWVudDogcmVwbHksXG4gICAgICB1cGRhdGVkX2F0OiBEYXRlLm5vdygpLFxuICAgIH1cblxuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSB0aGlzLmRiLmNvbGxlY3Rpb24ocGF0aCgpLmZlZWQpXG4gICAgICAuZG9jKHRoaXMuZmVlZF9pZClcbiAgICAgIC5jb2xsZWN0aW9uKCdjb21tZW50cycpXG4gICAgICAuZG9jKGNvbW1lbnRfaWQpXG4gICAgICAuY29sbGVjdGlvbigncmVwbHknKVxuICAgICAgLmRvYyhvbGRfcmVwbHkuaWQpO1xuICAgIGNvbGxlY3Rpb24udXBkYXRlKGRhdGEpO1xuICAgIHRoaXMuZWRpdGVkQ29tbWVudCA9IFwiXCI7XG4gICAgdGhpcy5vbkxvYWRpbmdSZXBseSA9IGZhbHNlO1xuICAgIG9sZF9yZXBseS5vbkVkaXQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBtZW50aW9uVXNlcih1c2VyOiBhbnkpIHtcbiAgICB0aGlzLm1lbnRpb25zTGlzdCA9IHRoaXMubWVudGlvbnNMaXN0IHx8IFtdO1xuICAgIHRoaXMubWVudGlvbnNMaXN0LnB1c2godXNlcik7XG4gIH1cblxufVxuIl19
@@ -2724,7 +2724,7 @@ class FeedCommentsComponent {
2724
2724
  * @return {?}
2725
2725
  */
2726
2726
  user => user.id));
2727
- this.userService.usersChecked({ post_id: this.feed_id, user_id: selected_users }, { comments: true }).subscribe();
2727
+ this.userService.usersChecked({ post_id: this.feed_id, user_id: selected_users, comment, type: 'post' }, { comments: true }).subscribe();
2728
2728
  this.onLoadingComment = true;
2729
2729
  collection.add(data);
2730
2730
  /** @type {?} */