@netgrif/components-core 6.2.0-rc.11 → 6.2.0-rc.12

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.
@@ -50,7 +50,12 @@ export class AbstractHeaderService {
50
50
  return this._headerType;
51
51
  }
52
52
  get overflowMode() {
53
- return this._overflowService.overflowMode;
53
+ if (!!this._overflowService) {
54
+ return this._overflowService.overflowMode;
55
+ }
56
+ else {
57
+ return false;
58
+ }
54
59
  }
55
60
  get headerColumnCount() {
56
61
  return this._headerColumnCount$.getValue();
@@ -245,7 +250,11 @@ export class AbstractHeaderService {
245
250
  header.sortDirection = '';
246
251
  }
247
252
  });
248
- this._headerChange$.next({ headerType: this.headerType, changeType: HeaderChangeType.SORT, description: sortChangeDescription });
253
+ this._headerChange$.next({
254
+ headerType: this.headerType,
255
+ changeType: HeaderChangeType.SORT,
256
+ description: sortChangeDescription
257
+ });
249
258
  }
250
259
  /**
251
260
  * Saves the search value in the appropriate column in the header
@@ -400,4 +409,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
400
409
  }] }, { type: i5.OverflowService, decorators: [{
401
410
  type: Optional
402
411
  }] }]; } });
403
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2hlYWRlci9hYnN0cmFjdC1oZWFkZXItc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFDLFdBQVcsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU05RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBR3RFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7OztBQU0xRSxNQUFNLE9BQWdCLHFCQUFxQjtJQWlCdkMsWUFBZ0MsV0FBdUIsRUFDdkIsWUFBbUMsRUFDbkMsT0FBc0IsRUFDWixjQUE2QixFQUMzQixnQkFBaUM7UUFKN0MsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDWixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ3pFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLENB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TzthQUN4QjtZQUNELFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM5QixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxpQkFBaUIsQ0FBQyxXQUFtQjtRQUN4QyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNPLFNBQVM7UUFDZixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztTQUNyQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7O0FBdGJzQiwwQ0FBb0IsR0FBRyxDQUFFLENBQUE7QUFDekIsaURBQTJCLEdBQUcsSUFBSyxDQUFBO21IQUh4QyxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQUQxQyxVQUFVOzswQkFxQmdCLFFBQVE7OzBCQUNSLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0ZpZWxkc0dyb3VwfSBmcm9tICcuL21vZGVscy9maWVsZHMtZ3JvdXAnO1xuaW1wb3J0IHtIZWFkZXJTdGF0ZSwgSGVhZGVyU3RhdGVJbnRlcmZhY2V9IGZyb20gJy4vaGVhZGVyLXN0YXRlJztcbmltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1NvcnRDaGFuZ2VEZXNjcmlwdGlvbn0gZnJvbSAnLi9tb2RlbHMvdXNlci1jaGFuZ2VzL3NvcnQtY2hhbmdlLWRlc2NyaXB0aW9uJztcbmltcG9ydCB7U2VhcmNoQ2hhbmdlRGVzY3JpcHRpb259IGZyb20gJy4vbW9kZWxzL3VzZXItY2hhbmdlcy9zZWFyY2gtY2hhbmdlLWRlc2NyaXB0aW9uJztcbmltcG9ydCB7SGVhZGVyQ2hhbmdlfSBmcm9tICcuL21vZGVscy91c2VyLWNoYW5nZXMvaGVhZGVyLWNoYW5nZSc7XG5pbXBvcnQge1BldHJpTmV0UmVmZXJlbmNlfSBmcm9tICcuLi9yZXNvdXJjZXMvaW50ZXJmYWNlL3BldHJpLW5ldC1yZWZlcmVuY2UnO1xuaW1wb3J0IHtIZWFkZXJUeXBlfSBmcm9tICcuL21vZGVscy9oZWFkZXItdHlwZSc7XG5pbXBvcnQge0hlYWRlck1vZGV9IGZyb20gJy4vbW9kZWxzL2hlYWRlci1tb2RlJztcbmltcG9ydCB7SGVhZGVyQ29sdW1uLCBIZWFkZXJDb2x1bW5UeXBlfSBmcm9tICcuL21vZGVscy9oZWFkZXItY29sdW1uJztcbmltcG9ydCB7VXNlclByZWZlcmVuY2VTZXJ2aWNlfSBmcm9tICcuLi91c2VyL3NlcnZpY2VzL3VzZXItcHJlZmVyZW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7TG9hZGluZ0VtaXR0ZXJ9IGZyb20gJy4uL3V0aWxpdHkvbG9hZGluZy1lbWl0dGVyJztcbmltcG9ydCB7U29ydERpcmVjdGlvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge0hlYWRlckNoYW5nZVR5cGV9IGZyb20gJy4vbW9kZWxzL3VzZXItY2hhbmdlcy9oZWFkZXItY2hhbmdlLXR5cGUnO1xuaW1wb3J0IHtWaWV3SWRTZXJ2aWNlfSBmcm9tICcuLi91c2VyL3NlcnZpY2VzL3ZpZXctaWQuc2VydmljZSc7XG5pbXBvcnQge05ldH0gZnJvbSAnLi4vcHJvY2Vzcy9uZXQnO1xuaW1wb3J0IHsgT3ZlcmZsb3dTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9vdmVyZmxvdy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SGVhZGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfSEVBREVSX0NPVU5UID0gNTtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfSEVBREVSX1JFU1BPTlNJVklUWSA9IHRydWU7XG5cbiAgICBwcm90ZWN0ZWQgX2hlYWRlckNvbHVtbkNvdW50JDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG4gICAgcHJvdGVjdGVkIF9wcmVmZXJlbmNlQ29sdW1uQ291bnQkOiBSZXBsYXlTdWJqZWN0PG51bWJlcj47XG4gICAgcHJvdGVjdGVkIF9yZXNwb25zaXZlSGVhZGVycyQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgICBwcm90ZWN0ZWQgX2hlYWRlclN0YXRlOiBIZWFkZXJTdGF0ZTtcbiAgICBwcm90ZWN0ZWQgX2hlYWRlckNoYW5nZSQ6IFN1YmplY3Q8SGVhZGVyQ2hhbmdlPjtcbiAgICBwcm90ZWN0ZWQgX2NsZWFySGVhZGVyU2VhcmNoJDogU3ViamVjdDxudW1iZXI+O1xuICAgIHByaXZhdGUgX2luaXREZWZhdWx0SGVhZGVyczogQXJyYXk8c3RyaW5nPjtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZENvdW50OiBib29sZWFuO1xuXG4gICAgcHVibGljIGxvYWRpbmc6IExvYWRpbmdFbWl0dGVyO1xuICAgIHB1YmxpYyBmaWVsZHNHcm91cDogQXJyYXk8RmllbGRzR3JvdXA+O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfaGVhZGVyVHlwZTogSGVhZGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9wcmVmZXJlbmNlczogVXNlclByZWZlcmVuY2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2xvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF9vdmVyZmxvd1NlcnZpY2U6IE92ZXJmbG93U2VydmljZSkge1xuICAgICAgICB0aGlzLmxvYWRpbmcgPSBuZXcgTG9hZGluZ0VtaXR0ZXIodHJ1ZSk7XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQgPSBuZXcgU3ViamVjdDxIZWFkZXJDaGFuZ2U+KCk7XG4gICAgICAgIHRoaXMuZmllbGRzR3JvdXAgPSBbe2dyb3VwVGl0bGU6ICdNZXRhIGRhdGEnLCBmaWVsZHM6IHRoaXMuY3JlYXRlTWV0YUhlYWRlcnMoKX1dO1xuICAgICAgICB0aGlzLl9oZWFkZXJDb2x1bW5Db3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oQWJzdHJhY3RIZWFkZXJTZXJ2aWNlLkRFRkFVTFRfSEVBREVSX0NPVU5UKTtcbiAgICAgICAgdGhpcy5fcmVzcG9uc2l2ZUhlYWRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihBYnN0cmFjdEhlYWRlclNlcnZpY2UuREVGQVVMVF9IRUFERVJfUkVTUE9OU0lWSVRZKTtcbiAgICAgICAgdGhpcy5fcHJlZmVyZW5jZUNvbHVtbkNvdW50JCA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oKTtcbiAgICAgICAgdGhpcy5fY2xlYXJIZWFkZXJTZWFyY2gkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdJZFNlcnZpY2UgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvZ2dlci53YXJuKCdIZWFkZXIgc2VydmljZSBjb3VsZCBub3QgaW5qZWN0IFZpZXdJZFNlcnZpY2UhIFVzZXIgcHJlZmVyZW5jZXMgd29uXFwndCBiZSBsb2FkZWQgb3Igc2F2ZWQhJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9wcmVmZXJlbmNlcy5wcmVmZXJlbmNlc0NoYW5nZWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRIZWFkZXJzRnJvbVByZWZlcmVuY2VzKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUhlYWRlclN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvdmlkZXMgT2JzZXJ2YWJsZSBmb3IgYWxsIGNoYW5nZXMgaW4gaGVhZGVyXG4gICAgICovXG4gICAgZ2V0IGhlYWRlckNoYW5nZSQoKTogT2JzZXJ2YWJsZTxIZWFkZXJDaGFuZ2U+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlckNoYW5nZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHNlbGVjdGVkSGVhZGVycyQoKTogT2JzZXJ2YWJsZTxBcnJheTxIZWFkZXJDb2x1bW4+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnMkO1xuICAgIH1cblxuICAgIGdldCBoZWFkZXJTdGF0ZSgpOiBIZWFkZXJTdGF0ZUludGVyZmFjZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJTdGF0ZS5hc0ludGVyZmFjZSgpO1xuICAgIH1cblxuICAgIGdldCBoZWFkZXJUeXBlKCk6IEhlYWRlclR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyVHlwZTtcbiAgICB9XG5cbiAgICBnZXQgb3ZlcmZsb3dNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZTtcbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyQ29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCBoZWFkZXJDb2x1bW5Db3VudChtYXhDb2x1bW5zOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKG1heENvbHVtbnMgIT09IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JC5uZXh0KG1heENvbHVtbnMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVIZWFkZXJDb2x1bW5Db3VudCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZENvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdEhlYWRlclN0YXRlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRDb3VudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyQ29sdW1uQ291bnQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJDb2x1bW5Db3VudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHJlc3BvbnNpdmVIZWFkZXJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2l2ZUhlYWRlcnMkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc2V0IHJlc3BvbnNpdmVIZWFkZXJzKHJlc3BvbnNpdmVIZWFkZXJzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNpdmVIZWFkZXJzJC5uZXh0KHJlc3BvbnNpdmVIZWFkZXJzKTtcbiAgICB9XG5cbiAgICBnZXQgcmVzcG9uc2l2ZUhlYWRlcnMkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2l2ZUhlYWRlcnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGdldCBjbGVhckhlYWRlclNlYXJjaCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsZWFySGVhZGVyU2VhcmNoJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXQgaW5pdERlZmF1bHRIZWFkZXJzKGRlZmF1bHRIZWFkZXJzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIHRoaXMuX2luaXREZWZhdWx0SGVhZGVycyA9IGRlZmF1bHRIZWFkZXJzO1xuICAgIH1cblxuICAgIGdldCBpbml0RGVmYXVsdEhlYWRlcnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0RGVmYXVsdEhlYWRlcnM7XG4gICAgfVxuXG4gICAgZ2V0IHByZWZlcmVuY2VDb2x1bW5Db3VudCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByZWZlcmVuY2VDb2x1bW5Db3VudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplSGVhZGVyU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRIZWFkZXJzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWVsZHNHcm91cFswXS5maWVsZHMubGVuZ3RoICYmIGRlZmF1bHRIZWFkZXJzLmxlbmd0aCA8IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGRzR3JvdXBbMF0uZmllbGRzW2ldLmluaXRpYWwpIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0SGVhZGVycy5wdXNoKHRoaXMuZmllbGRzR3JvdXBbMF0uZmllbGRzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoZGVmYXVsdEhlYWRlcnMubGVuZ3RoIDwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnMucHVzaChudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZSA9IG5ldyBIZWFkZXJTdGF0ZShkZWZhdWx0SGVhZGVycyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVEZWZhdWx0SGVhZGVyU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluaXREZWZhdWx0SGVhZGVycyAmJiBBcnJheS5pc0FycmF5KHRoaXMuaW5pdERlZmF1bHRIZWFkZXJzKSkge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdEhlYWRlcnMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnMucHVzaChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pbml0RGVmYXVsdEhlYWRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSA+PSB0aGlzLmhlYWRlckNvbHVtbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci53YXJuKCd0aGVyZSBhcmUgbW9yZSBOQUVfREVGQVVMVF9IRUFERVJTIHRoYW4gaGVhZGVyIGNvbHVtbnMuIFNraXBwaW5nIHRoZSByZXN0Li4uJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGggb2YgdGhpcy5maWVsZHNHcm91cCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWFkID0gaC5maWVsZHMuZmluZChoZWFkZXIgPT4gaGVhZGVyLnVuaXF1ZUlkID09PSB0aGlzLmluaXREZWZhdWx0SGVhZGVyc1tpXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0SGVhZGVyc1tpXSA9IGhlYWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnVwZGF0ZVNlbGVjdGVkSGVhZGVycyhkZWZhdWx0SGVhZGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkSGVhZGVyc0Zyb21QcmVmZXJlbmNlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYG51bGxgIGhlYWRlcnMgaWYgdGhlIG5ldyBjb3VudCBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgY291bnQuXG4gICAgICpcbiAgICAgKiBSZW1vdmVzIGV4dHJhIGhlYWRlcnMgaWYgdGhlIG5ldyBjb3VudCBpcyBzbWFsbGVyIHRoYW4gdGhlIGN1cnJlbnQgY291bnQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUhlYWRlckNvbHVtbkNvdW50KCk6IHZvaWQge1xuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuX2hlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVycztcbiAgICAgICAgaWYgKGhlYWRlcnMubGVuZ3RoIDwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgd2hpbGUgKGhlYWRlcnMubGVuZ3RoICE9PSB0aGlzLmhlYWRlckNvbHVtbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgaGVhZGVycy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGhlYWRlcnMubGVuZ3RoID4gdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2xpY2UoMCwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUudXBkYXRlU2VsZWN0ZWRIZWFkZXJzKGhlYWRlcnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBbGxvd2VkTmV0cyhhbGxvd2VkTmV0czogQXJyYXk8UGV0cmlOZXRSZWZlcmVuY2U+KSB7XG4gICAgICAgIC8qIFRPRE8gYnkgc2ltcGx5IHJlcGxhY2luZyB0aGUgc2VsZWN0IG9wdGlvbnMgd2l0aCBuZXcgb2JqZWN0LCB3ZSBkb24ndCBsb29zZSB0aGUgb2xkIHJlZmVyZW5jZXMuXG4gICAgICAgICAgICAgQ29sdW1ucyB3aXRoIGhlYWRlcnMgZnJvbSBuZXRzIHRoYXQgYXJlIG5vIGxvbmdlciBhbGxvd2VkIHNob3VsZCBoYXZlIHRoZWlyIHZhbHVlIGNsZWFyZWQuXG4gICAgICAgICAgICAgQ29sdW1ucyB3aXRoIHZhbGlkIHZhbHVlcyB0aGF0IGFyZSBub3QgbWV0YWRhdGEgc2hvdWxkIGhhdmUgdGhlaXIgc2VsZWN0aW9uIHJlbWFwcGVkIHRvIHRoZSBuZXcgb2JqZWN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgY29uc3QgZmllbGRzR3JvdXBzOiBBcnJheTxGaWVsZHNHcm91cD4gPSBbXTtcbiAgICAgICAgYWxsb3dlZE5ldHMuZm9yRWFjaChhbGxvd2VkTmV0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkc0dyb3VwOiBGaWVsZHNHcm91cCA9IHtcbiAgICAgICAgICAgICAgICBncm91cFRpdGxlOiBhbGxvd2VkTmV0LnRpdGxlLFxuICAgICAgICAgICAgICAgIGZpZWxkczogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhbGxvd2VkTmV0LmltbWVkaWF0ZURhdGEuZm9yRWFjaChpbW1lZGlhdGUgPT4ge1xuICAgICAgICAgICAgICAgIGZpZWxkc0dyb3VwLmZpZWxkcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuSU1NRURJQVRFLCBpbW1lZGlhdGUuc3RyaW5nSWQsIGltbWVkaWF0ZS50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZS50eXBlLCBmYWxzZSwgYWxsb3dlZE5ldC5pZGVudGlmaWVyKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZpZWxkc0dyb3Vwcy5wdXNoKGZpZWxkc0dyb3VwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWVsZHNHcm91cC5zcGxpY2UoMSwgdGhpcy5maWVsZHNHcm91cC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5maWVsZHNHcm91cC5wdXNoKC4uLmZpZWxkc0dyb3Vwcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFRhc2tBbGxvd2VkTmV0cyhhbGxvd2VkTmV0czogQXJyYXk8TmV0Pikge1xuICAgICAgICAvKiBUT0RPIGJ5IHNpbXBseSByZXBsYWNpbmcgdGhlIHNlbGVjdCBvcHRpb25zIHdpdGggbmV3IG9iamVjdCwgd2UgZG9uJ3QgbG9vc2UgdGhlIG9sZCByZWZlcmVuY2VzLlxuICAgICAgICAgICAgIENvbHVtbnMgd2l0aCBoZWFkZXJzIGZyb20gbmV0cyB0aGF0IGFyZSBubyBsb25nZXIgYWxsb3dlZCBzaG91bGQgaGF2ZSB0aGVpciB2YWx1ZSBjbGVhcmVkLlxuICAgICAgICAgICAgIENvbHVtbnMgd2l0aCB2YWxpZCB2YWx1ZXMgdGhhdCBhcmUgbm90IG1ldGFkYXRhIHNob3VsZCBoYXZlIHRoZWlyIHNlbGVjdGlvbiByZW1hcHBlZCB0byB0aGUgbmV3IG9iamVjdHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGNvbnN0IGZpZWxkc0dyb3VwczogQXJyYXk8RmllbGRzR3JvdXA+ID0gW107XG4gICAgICAgIGFsbG93ZWROZXRzLmZvckVhY2goYWxsb3dlZE5ldCA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZHNHcm91cDogRmllbGRzR3JvdXAgPSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBUaXRsZTogYWxsb3dlZE5ldC50aXRsZSxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICBhbGxvd2VkTmV0LnRyYW5zaXRpb25zLmZvckVhY2godHJhbnMgPT4ge1xuICAgICAgICAgICAgICAgIHRyYW5zLmltbWVkaWF0ZURhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZy5oYXMoZGF0YS5zdHJpbmdJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmFkZChkYXRhLnN0cmluZ0lkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc0dyb3VwLmZpZWxkcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5JTU1FRElBVEUsIGRhdGEuc3RyaW5nSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEudGl0bGUsIGRhdGEudHlwZSwgZmFsc2UsIGFsbG93ZWROZXQuaWRlbnRpZmllcilcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZmllbGRzR3JvdXBzLnB1c2goZmllbGRzR3JvdXApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpZWxkc0dyb3VwLnNwbGljZSgxLCB0aGlzLmZpZWxkc0dyb3VwLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLmZpZWxkc0dyb3VwLnB1c2goLi4uZmllbGRzR3JvdXBzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIHZpZXcgaGFzIHNvbSBoZWFkZXJzIHN0b3JlZCBpbiBpdCdzIHByZWZlcmVuY2VzIGF0dGVtcHRzIHRvIGxvYWQgdGhlbS5cbiAgICAgKiBJZiB0aGUgcHJlZmVyZW5jZXMgY29udGFpbiBub25leGlzdGVudCBoZWFkZXJzIHRoZXkgd2lsbCBiZSBza2lwcGVkLlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBOT1QgY2FsbGVkIGJ5IHRoZSBhYnN0cmFjdCBjbGFzcycgY29uc3RydWN0b3IuXG4gICAgICogSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjaGlsZCBjbGFzcyB0byBjYWxsIGl0IGF0IGFuIGFwcHJvcHJpYXRlIG1vbWVudC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZEhlYWRlcnNGcm9tUHJlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZpZXdJZCA9IHRoaXMuZ2V0Vmlld0lkKCk7XG4gICAgICAgIGlmICghdmlld0lkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJlZmVycmVkSGVhZGVyS2V5cyA9IHRoaXMuX3ByZWZlcmVuY2VzLmdldEhlYWRlcnModmlld0lkKTtcbiAgICAgICAgaWYgKCFwcmVmZXJyZWRIZWFkZXJLZXlzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3SGVhZGVycyA9IFtdO1xuICAgICAgICBwcmVmZXJyZWRIZWFkZXJLZXlzLmZvckVhY2goaGVhZGVyS2V5ID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGRHcm91cCBvZiB0aGlzLmZpZWxkc0dyb3VwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBoZWFkZXIgb2YgZmllbGRHcm91cC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhlYWRlci51bmlxdWVJZCA9PT0gaGVhZGVyS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdIZWFkZXJzLnB1c2goaGVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gY29udGludWUgdGhlIG91dGVybW9zdCBsb29wXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBubyBtYXRjaCBmb3VuZFxuICAgICAgICAgICAgbmV3SGVhZGVycy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oXG4gICAgICAgICAgICAgICAgYENvdWxkIG5vdCByZXN0b3JlIGhlYWRlciB3aXRoIElEICcke2hlYWRlcktleX0nIGZyb20gcHJlZmVyZW5jZXMuIEl0IGlzIG5vdCBvbmUgb2YgdGhlIGF2YWlsYWJsZSBoZWFkZXJzIGZvciB0aGlzIHZpZXcuYCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9wcmVmZXJlbmNlQ29sdW1uQ291bnQkLm5leHQobmV3SGVhZGVycy5sZW5ndGgpO1xuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS51cGRhdGVTZWxlY3RlZEhlYWRlcnMobmV3SGVhZGVycyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZU1ldGFIZWFkZXJzKCk6IEFycmF5PEhlYWRlckNvbHVtbj47XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2Ugc29ydCBtb2RlIGZvciBzZWxlY3RlZCBjb2x1bW4gYWxsIG90aGVyIGNvbHVtbiBhcmUgc2V0IHRvIGRlZmF1bHQgc29ydCBtb2RlXG4gICAgICogRW1pdCByZXF1ZXN0IGZvciBzb3J0ZWQgcGFuZWxzXG4gICAgICogQHBhcmFtIGNvbHVtbkluZGV4IGluZGV4IG9mIHRoZSBjb2x1bW4gdGhhdCBjYXVzZWQgdGhlIHNvcnQgY2hhbmdlXG4gICAgICogQHBhcmFtIGFjdGl2ZSBSZXByZXNlbnRzIGNvbHVtbiBpZGVudGlmaWVyXG4gICAgICogQHBhcmFtIGRpcmVjdGlvbiBSZXByZXNlbnQgb25lIG9mIHNvcnQgbW9kZXM6IGFzZCwgZGVzYyBhbmQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgc29ydEhlYWRlckNoYW5nZWQoY29sdW1uSW5kZXg6IG51bWJlciwgYWN0aXZlOiBzdHJpbmcsIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbik6IHZvaWQge1xuICAgICAgICBsZXQgc29ydENoYW5nZURlc2NyaXB0aW9uOiBTb3J0Q2hhbmdlRGVzY3JpcHRpb247XG4gICAgICAgIGxldCBmb3VuZEZpcnN0TWF0Y2ggPSBmYWxzZTsgLy8gY29sdW1uIGNhbiBmZWF0dXJlIGluIHRoZSBoZWFkZXIgaW4gbXVsdGlwbGUgcG9zaXRpb25zID0+IHdlIGRvbid0IHdhbnQgdG8gc2VuZCBtdWx0aXBsZSBldmVudHNcbiAgICAgICAgdGhpcy5oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnMuZmlsdGVyKGhlYWRlciA9PiAhIWhlYWRlcikuZm9yRWFjaChoZWFkZXIgPT4ge1xuICAgICAgICAgICAgaWYgKGhlYWRlci51bmlxdWVJZCA9PT0gYWN0aXZlICYmICFmb3VuZEZpcnN0TWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBzb3J0Q2hhbmdlRGVzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIHNvcnREaXJlY3Rpb246IGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVHlwZTogaGVhZGVyLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkSWRlbnRpZmllcjogaGVhZGVyLmZpZWxkSWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgICAgcGV0cmlOZXRJZGVudGlmaWVyOiBoZWFkZXIucGV0cmlOZXRJZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5JZGVudGlmaWVyOiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRUeXBlOiBoZWFkZXIuZmllbGRUeXBlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBoZWFkZXIuc29ydERpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgICAgICAgICAgICBmb3VuZEZpcnN0TWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoZWFkZXIuc29ydERpcmVjdGlvbiA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KHtoZWFkZXJUeXBlOiB0aGlzLmhlYWRlclR5cGUsIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuU09SVCwgZGVzY3JpcHRpb246IHNvcnRDaGFuZ2VEZXNjcmlwdGlvbn0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNhdmVzIHRoZSBzZWFyY2ggdmFsdWUgaW4gdGhlIGFwcHJvcHJpYXRlIGNvbHVtbiBpbiB0aGUgaGVhZGVyXG4gICAgICogRW1pdCByZXF1ZXN0IGZvciBzZWFyY2hlZCBwYW5lbHMgYnkgdXNlciBpbnB1dCBxdWVyeVxuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJTZWFyY2hJbnB1dENoYW5nZWQoY29sdW1uSW5kZXg6IG51bWJlciwgc2VhcmNoSW5wdXQ6IGFueSkge1xuICAgICAgICBjb25zdCBhZmZlY3RlZEhlYWRlciA9IHRoaXMuaGVhZGVyU3RhdGUuc2VsZWN0ZWRIZWFkZXJzW2NvbHVtbkluZGV4XTtcbiAgICAgICAgYWZmZWN0ZWRIZWFkZXIuc2VhcmNoSW5wdXQgPSBzZWFyY2hJbnB1dDtcbiAgICAgICAgY29uc3Qgc2VhcmNoQ2hhbmdlRGVzY3JpcHRpb246IFNlYXJjaENoYW5nZURlc2NyaXB0aW9uID0ge1xuICAgICAgICAgICAgZmllbGRJZGVudGlmaWVyOiBhZmZlY3RlZEhlYWRlci5maWVsZElkZW50aWZpZXIsXG4gICAgICAgICAgICBmaWVsZFR5cGU6IGFmZmVjdGVkSGVhZGVyLmZpZWxkVHlwZSxcbiAgICAgICAgICAgIGZpZWxkVGl0bGU6IGFmZmVjdGVkSGVhZGVyLnRpdGxlLFxuICAgICAgICAgICAgc2VhcmNoSW5wdXQsXG4gICAgICAgICAgICB0eXBlOiBhZmZlY3RlZEhlYWRlci50eXBlLFxuICAgICAgICAgICAgcGV0cmlOZXRJZGVudGlmaWVyOiBhZmZlY3RlZEhlYWRlci5wZXRyaU5ldElkZW50aWZpZXIsXG4gICAgICAgICAgICBjb2x1bW5JZGVudGlmaWVyOiBjb2x1bW5JbmRleFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLl9oZWFkZXJDaGFuZ2UkLm5leHQoe1xuICAgICAgICAgICAgaGVhZGVyVHlwZTogdGhpcy5oZWFkZXJUeXBlLFxuICAgICAgICAgICAgY2hhbmdlVHlwZTogSGVhZGVyQ2hhbmdlVHlwZS5TRUFSQ0gsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogc2VhcmNoQ2hhbmdlRGVzY3JpcHRpb25cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIGFjdGl2ZSBoZWFkZXIgYW5kIHRpdGxlcyBvZiBwYW5lbHNcbiAgICAgKi9cbiAgICBwdWJsaWMgaGVhZGVyQ29sdW1uU2VsZWN0ZWQoY29sdW1uSW5kZXg6IG51bWJlciwgbmV3SGVhZGVyQ29sdW1uOiBIZWFkZXJDb2x1bW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbmV3SGVhZGVyczogQXJyYXk8SGVhZGVyQ29sdW1uPiA9IFtdO1xuICAgICAgICBuZXdIZWFkZXJzLnB1c2goLi4udGhpcy5faGVhZGVyU3RhdGUuc2VsZWN0ZWRIZWFkZXJzKTtcbiAgICAgICAgaWYgKCEhbmV3SGVhZGVyc1tjb2x1bW5JbmRleF0pIHtcbiAgICAgICAgICAgIG5ld0hlYWRlcnNbY29sdW1uSW5kZXhdLnNvcnREaXJlY3Rpb24gPSAnJztcbiAgICAgICAgICAgIG5ld0hlYWRlcnNbY29sdW1uSW5kZXhdLnNlYXJjaElucHV0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIG5ld0hlYWRlcnNbY29sdW1uSW5kZXhdID0gbmV3SGVhZGVyQ29sdW1uO1xuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS51cGRhdGVTZWxlY3RlZEhlYWRlcnMobmV3SGVhZGVycyk7XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQubmV4dCh7XG4gICAgICAgICAgICBoZWFkZXJUeXBlOiB0aGlzLmhlYWRlclR5cGUsXG4gICAgICAgICAgICBjaGFuZ2VUeXBlOiBIZWFkZXJDaGFuZ2VUeXBlLkVESVQsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjoge3ByZWZlcnJlZEhlYWRlcnM6IHRoaXMuX2hlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVyc31cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlIHNlbGVjdGVkIGhlYWRlciBtb2RlIHRoZXJlIGFyZSB0aHJlZSBwb3NzaWJsZSBtb2RlczogU09SVCwgU0VBUkNIIGFuZCBFRElUXG4gICAgICogQHBhcmFtIG5ld01vZGUgdGhlIG1vZGUgdGhhdCB0aGUgaGVhZGVyIHNob3VsZCBjaGFuZ2UgdG9cbiAgICAgKiBAcGFyYW0gc2F2ZUxhc3RNb2RlIHdoZXRoZXIgdGhlIGxhc3Qgc3RhdGUgc2hvdWxkIGJlIHJlbWVtYmVyZWQuXG4gICAgICogSXQgY2FuIGJlIHJlc3RvcmVkIHdpdGggdGhlIFtIZWFkZXJTdGF0ZS5yZXN0b3JlTGFzdE1vZGUoKV17QGxpbmsgSGVhZGVyU3RhdGUjcmVzdG9yZUxhc3RNb2RlfSBtZXRob2QuXG4gICAgICovXG4gICAgcHVibGljIGNoYW5nZU1vZGUobmV3TW9kZTogSGVhZGVyTW9kZSwgc2F2ZUxhc3RNb2RlID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAobmV3TW9kZSA9PT0gdGhpcy5faGVhZGVyU3RhdGUubW9kZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNhdmVMYXN0TW9kZSkge1xuICAgICAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUuc2F2ZVN0YXRlKCk7XG4gICAgICAgICAgICB0aGlzLnNhdmVTdGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hhbmdlID0gdGhpcy5tb2RlQ2hhbmdlRnJvbUN1cnJlbnQobmV3TW9kZSk7XG4gICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLm1vZGUgPSBuZXdNb2RlO1xuICAgICAgICB0aGlzLl9oZWFkZXJDaGFuZ2UkLm5leHQoY2hhbmdlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29uZmlybUVkaXRNb2RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS5yZXN0b3JlTGFzdE1vZGUoKTtcbiAgICAgICAgdGhpcy5zYXZlTmV3U3RhdGUoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gdGhpcy5tb2RlQ2hhbmdlQWZ0ZXJFZGl0KCk7XG4gICAgICAgIGNvbnN0IHZpZXdJZCA9IHRoaXMuZ2V0Vmlld0lkKCk7XG4gICAgICAgIGlmICghIXZpZXdJZCkge1xuICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHRoaXMuaGVhZGVyU3RhdGUuc2VsZWN0ZWRIZWFkZXJzO1xuICAgICAgICAgICAgdGhpcy5fcHJlZmVyZW5jZXMuc2V0SGVhZGVycyh2aWV3SWQsIGhlYWRlcnMubWFwKGhlYWRlciA9PiAhIWhlYWRlciA/IGhlYWRlci51bmlxdWVJZCA6ICcnKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KGNoYW5nZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hlbiB1c2VyIGNhbmNlbHMgdGhlIGVkaXQgbW9kZSwgdGhlIGxhc3Qgc2F2ZWQgaGVhZGVycyBzdGF0ZSBpcyBsb2FkZWQgYW5kIGVtaXR0ZWRcbiAgICAgKiBMYXN0IG1vZGUgaW4gaGVhZGVyIGlzIHJlbG9hZGVkIGFzIHdlbGwuIFBvc3NpYmxlIHJlbG9hZGVkIG1vZGVzOiBzb3J0IG9yIHNlYXJjaFxuICAgICAqL1xuICAgIHB1YmxpYyByZXZlcnRFZGl0TW9kZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUucmVzdG9yZUxhc3RTdGF0ZSgpO1xuICAgICAgICB0aGlzLnJlc3RvcmVMYXN0U3RhdGUoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlID0gdGhpcy5tb2RlQ2hhbmdlQWZ0ZXJFZGl0KCk7XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQubmV4dCh7XG4gICAgICAgICAgICBoZWFkZXJUeXBlOiB0aGlzLmhlYWRlclR5cGUsXG4gICAgICAgICAgICBjaGFuZ2VUeXBlOiBIZWFkZXJDaGFuZ2VUeXBlLkVESVQsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjoge3ByZWZlcnJlZEhlYWRlcnM6IHRoaXMuX2hlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVyc31cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQubmV4dChjaGFuZ2UpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oZWFkZXJDaGFuZ2UkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2NsZWFySGVhZGVyU2VhcmNoJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9oZWFkZXJDb2x1bW5Db3VudCQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fcmVzcG9uc2l2ZUhlYWRlcnMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMubG9hZGluZy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9wcmVmZXJlbmNlQ29sdW1uQ291bnQkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG5ld01vZGUgdGhlIHtAbGluayBIZWFkZXJNb2RlfSB0aGF0IGlzIGJlaW5nIHNlbGVjdGVkIGFzIHRoZSBuZXh0IG1vZGVcbiAgICAgKiBAcmV0dXJuc2Ege0BsaW5rIEhlYWRlckNoYW5nZX0gb2JqZWN0IHdpdGgge0BsaW5rIE1vZGVDaGFuZ2VEZXNjcmlwdGlvbn0gb2JqZWN0IGFzIGl0J3MgYGRlc2NyaXB0aW9uYCxcbiAgICAgKiB3aGVyZSB0aGUgYHByZXZpb3VzTW9kZWAgaXMgc2V0IHRvIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbW9kZSBhbmQgdGhlIGBjdXJyZW50TW9kZWAgaXMgc2V0IHRvIHRoZSBwcm92aWRlZCBhcmd1bWVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBtb2RlQ2hhbmdlRnJvbUN1cnJlbnQobmV3TW9kZTogSGVhZGVyTW9kZSk6IEhlYWRlckNoYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGVDaGFuZ2UodGhpcy5faGVhZGVyU3RhdGUubW9kZSwgbmV3TW9kZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgYSB7QGxpbmsgSGVhZGVyQ2hhbmdlfSBvYmplY3Qgd2l0aCB7QGxpbmsgTW9kZUNoYW5nZURlc2NyaXB0aW9ufSBvYmplY3QgYXMgaXQncyBgZGVzY3JpcHRpb25gLFxuICAgICAqIHdoZXJlIHRoZSBgcHJldmlvdXNNb2RlYCBpcyBzZXQgdG8gW0VESVRde0BsaW5rIEhlYWRlck1vZGUjRURJVH0gYW5kIHRoZSBgY3VycmVudE1vZGVgIHRvIHRoZSBtb2RlXG4gICAgICogdGhhdCBpcyBjdXJyZW50bHkgc2VsZWN0ZWRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbW9kZUNoYW5nZUFmdGVyRWRpdCgpOiBIZWFkZXJDaGFuZ2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVNb2RlQ2hhbmdlKEhlYWRlck1vZGUuRURJVCwgdGhpcy5faGVhZGVyU3RhdGUubW9kZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIG9sZE1vZGUgdGhlIHtAbGluayBIZWFkZXJNb2RlfSB0aGF0IHdhcyBwcmV2aW91c2x5IHNlbGVjdGVkXG4gICAgICogQHBhcmFtIG5ld01vZGUgdGhlIHtAbGluayBIZWFkZXJNb2RlfSB0aGF0IGlzIHNlbGVjdGVkIG5vd1xuICAgICAqIEByZXR1cm5zIGEge0BsaW5rIEhlYWRlckNoYW5nZX0gb2JqZWN0IHdpdGgge0BsaW5rIE1vZGVDaGFuZ2VEZXNjcmlwdGlvbn0gb2JqZWN0IGFzIGl0J3MgYGRlc2NyaXB0aW9uYFxuICAgICAqIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgYSBjaGFuZ2UgdG8gdGhlIGhlYWRlciBtb2RlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU1vZGVDaGFuZ2Uob2xkTW9kZTogSGVhZGVyTW9kZSwgbmV3TW9kZTogSGVhZGVyTW9kZSk6IEhlYWRlckNoYW5nZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjaGFuZ2VUeXBlOiBIZWFkZXJDaGFuZ2VUeXBlLk1PREVfQ0hBTkdFRCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgY3VycmVudE1vZGU6IG5ld01vZGUsXG4gICAgICAgICAgICAgICAgcHJldmlvdXNNb2RlOiBvbGRNb2RlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGVhZGVyVHlwZTogdGhpcy5oZWFkZXJUeXBlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRW1pdHMgYSBuZXcgdmFsdWUgaW50byB0aGUgW2NsZWFySGVhZGVyU2VhcmNoJF17QGxpbmsgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlI2NsZWFySGVhZGVyU2VhcmNoJH0gc3RyZWFtLCB0aGF0IG5vdGlmaWVzXG4gICAgICogdGhlIGhlYWRlciBzZWFyY2ggY29tcG9uZW50LCB0aGF0IGl0IHNob3VsZCBjbGVhciB0aGUgaW5wdXQgZm9yIHRoZSBzcGVjaWZpZWQgY29sdW1uLlxuICAgICAqIEBwYXJhbSBjb2x1bW5JbmRleCB0aGUgaW5kZXggb2YgdGhlIGNvbHVtbiB0aGF0IHNob3VsZCBiZSBjbGVhcmVkXG4gICAgICovXG4gICAgcHVibGljIGNsZWFySGVhZGVyU2VhcmNoKGNvbHVtbkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xlYXJIZWFkZXJTZWFyY2gkLm5leHQoY29sdW1uSW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHRoZSBJZCBvZiB0aGUgdmlldywgaWYgdGhlIFZpZXdJZFNlcnZpY2Ugd2FzIGluamVjdGVkLiBSZXR1cm5zIGB1bmRlZmluZWRgIGlmIHRoZSBzZXJ2aWNlIHdhcyBub3QgaW5qZWN0ZWQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldFZpZXdJZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAodGhpcy5fdmlld0lkU2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdJZFNlcnZpY2Uudmlld0lkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHNhdmVTdGF0ZSgpO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHNhdmVOZXdTdGF0ZSgpO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlc3RvcmVMYXN0U3RhdGUoKTtcbn1cbiJdfQ==
412
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL2hlYWRlci9hYnN0cmFjdC1oZWFkZXItc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFekUsT0FBTyxFQUFDLFdBQVcsRUFBdUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsVUFBVSxFQUFhLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQU05RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBR3RFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7OztBQU0xRSxNQUFNLE9BQWdCLHFCQUFxQjtJQWlCdkMsWUFBZ0MsV0FBdUIsRUFDdkIsWUFBbUMsRUFDbkMsT0FBc0IsRUFDWixjQUE2QixFQUMzQixnQkFBaUM7UUFKN0MsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsaUJBQVksR0FBWixZQUFZLENBQXVCO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDWixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ3pFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLENB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QVUsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZO1lBQ3pDLFdBQVcsRUFBRTtnQkFDVCxXQUFXLEVBQUUsT0FBTztnQkFDcEIsWUFBWSxFQUFFLE9BQU87YUFDeEI7WUFDRCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDOUIsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsV0FBbUI7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxTQUFTO1FBQ2YsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7U0FDckM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOztBQTlic0IsMENBQW9CLEdBQUcsQ0FBRSxDQUFBO0FBQ3pCLGlEQUEyQixHQUFHLElBQUssQ0FBQTttSEFIeEMscUJBQXFCO3VIQUFyQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFEMUMsVUFBVTs7MEJBcUJnQixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGaWVsZHNHcm91cH0gZnJvbSAnLi9tb2RlbHMvZmllbGRzLWdyb3VwJztcbmltcG9ydCB7SGVhZGVyU3RhdGUsIEhlYWRlclN0YXRlSW50ZXJmYWNlfSBmcm9tICcuL2hlYWRlci1zdGF0ZSc7XG5pbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTb3J0Q2hhbmdlRGVzY3JpcHRpb259IGZyb20gJy4vbW9kZWxzL3VzZXItY2hhbmdlcy9zb3J0LWNoYW5nZS1kZXNjcmlwdGlvbic7XG5pbXBvcnQge1NlYXJjaENoYW5nZURlc2NyaXB0aW9ufSBmcm9tICcuL21vZGVscy91c2VyLWNoYW5nZXMvc2VhcmNoLWNoYW5nZS1kZXNjcmlwdGlvbic7XG5pbXBvcnQge0hlYWRlckNoYW5nZX0gZnJvbSAnLi9tb2RlbHMvdXNlci1jaGFuZ2VzL2hlYWRlci1jaGFuZ2UnO1xuaW1wb3J0IHtQZXRyaU5ldFJlZmVyZW5jZX0gZnJvbSAnLi4vcmVzb3VyY2VzL2ludGVyZmFjZS9wZXRyaS1uZXQtcmVmZXJlbmNlJztcbmltcG9ydCB7SGVhZGVyVHlwZX0gZnJvbSAnLi9tb2RlbHMvaGVhZGVyLXR5cGUnO1xuaW1wb3J0IHtIZWFkZXJNb2RlfSBmcm9tICcuL21vZGVscy9oZWFkZXItbW9kZSc7XG5pbXBvcnQge0hlYWRlckNvbHVtbiwgSGVhZGVyQ29sdW1uVHlwZX0gZnJvbSAnLi9tb2RlbHMvaGVhZGVyLWNvbHVtbic7XG5pbXBvcnQge1VzZXJQcmVmZXJlbmNlU2VydmljZX0gZnJvbSAnLi4vdXNlci9zZXJ2aWNlcy91c2VyLXByZWZlcmVuY2Uuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0xvYWRpbmdFbWl0dGVyfSBmcm9tICcuLi91dGlsaXR5L2xvYWRpbmctZW1pdHRlcic7XG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtIZWFkZXJDaGFuZ2VUeXBlfSBmcm9tICcuL21vZGVscy91c2VyLWNoYW5nZXMvaGVhZGVyLWNoYW5nZS10eXBlJztcbmltcG9ydCB7Vmlld0lkU2VydmljZX0gZnJvbSAnLi4vdXNlci9zZXJ2aWNlcy92aWV3LWlkLnNlcnZpY2UnO1xuaW1wb3J0IHtOZXR9IGZyb20gJy4uL3Byb2Nlc3MvbmV0JztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9IRUFERVJfQ09VTlQgPSA1O1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9IRUFERVJfUkVTUE9OU0lWSVRZID0gdHJ1ZTtcblxuICAgIHByb3RlY3RlZCBfaGVhZGVyQ29sdW1uQ291bnQkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgICBwcm90ZWN0ZWQgX3ByZWZlcmVuY2VDb2x1bW5Db3VudCQ6IFJlcGxheVN1YmplY3Q8bnVtYmVyPjtcbiAgICBwcm90ZWN0ZWQgX3Jlc3BvbnNpdmVIZWFkZXJzJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAgIHByb3RlY3RlZCBfaGVhZGVyU3RhdGU6IEhlYWRlclN0YXRlO1xuICAgIHByb3RlY3RlZCBfaGVhZGVyQ2hhbmdlJDogU3ViamVjdDxIZWFkZXJDaGFuZ2U+O1xuICAgIHByb3RlY3RlZCBfY2xlYXJIZWFkZXJTZWFyY2gkOiBTdWJqZWN0PG51bWJlcj47XG4gICAgcHJpdmF0ZSBfaW5pdERlZmF1bHRIZWFkZXJzOiBBcnJheTxzdHJpbmc+O1xuICAgIHByaXZhdGUgX2luaXRpYWxpemVkQ291bnQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgbG9hZGluZzogTG9hZGluZ0VtaXR0ZXI7XG4gICAgcHVibGljIGZpZWxkc0dyb3VwOiBBcnJheTxGaWVsZHNHcm91cD47XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIF9oZWFkZXJUeXBlOiBIZWFkZXJUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3ByZWZlcmVuY2VzOiBVc2VyUHJlZmVyZW5jZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF92aWV3SWRTZXJ2aWNlOiBWaWV3SWRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgX292ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMubG9hZGluZyA9IG5ldyBMb2FkaW5nRW1pdHRlcih0cnVlKTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PEhlYWRlckNoYW5nZT4oKTtcbiAgICAgICAgdGhpcy5maWVsZHNHcm91cCA9IFt7Z3JvdXBUaXRsZTogJ01ldGEgZGF0YScsIGZpZWxkczogdGhpcy5jcmVhdGVNZXRhSGVhZGVycygpfV07XG4gICAgICAgIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPihBYnN0cmFjdEhlYWRlclNlcnZpY2UuREVGQVVMVF9IRUFERVJfQ09VTlQpO1xuICAgICAgICB0aGlzLl9yZXNwb25zaXZlSGVhZGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KEFic3RyYWN0SGVhZGVyU2VydmljZS5ERUZBVUxUX0hFQURFUl9SRVNQT05TSVZJVFkpO1xuICAgICAgICB0aGlzLl9wcmVmZXJlbmNlQ29sdW1uQ291bnQkID0gbmV3IFJlcGxheVN1YmplY3Q8bnVtYmVyPigpO1xuICAgICAgICB0aGlzLl9jbGVhckhlYWRlclNlYXJjaCQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVkQ291bnQgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5fdmlld0lkU2VydmljZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oJ0hlYWRlciBzZXJ2aWNlIGNvdWxkIG5vdCBpbmplY3QgVmlld0lkU2VydmljZSEgVXNlciBwcmVmZXJlbmNlcyB3b25cXCd0IGJlIGxvYWRlZCBvciBzYXZlZCEnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3ByZWZlcmVuY2VzLnByZWZlcmVuY2VzQ2hhbmdlZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZEhlYWRlcnNGcm9tUHJlZmVyZW5jZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5pbml0aWFsaXplSGVhZGVyU3RhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm92aWRlcyBPYnNlcnZhYmxlIGZvciBhbGwgY2hhbmdlcyBpbiBoZWFkZXJcbiAgICAgKi9cbiAgICBnZXQgaGVhZGVyQ2hhbmdlJCgpOiBPYnNlcnZhYmxlPEhlYWRlckNoYW5nZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyQ2hhbmdlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWRIZWFkZXJzJCgpOiBPYnNlcnZhYmxlPEFycmF5PEhlYWRlckNvbHVtbj4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVycyQ7XG4gICAgfVxuXG4gICAgZ2V0IGhlYWRlclN0YXRlKCk6IEhlYWRlclN0YXRlSW50ZXJmYWNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlclN0YXRlLmFzSW50ZXJmYWNlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGhlYWRlclR5cGUoKTogSGVhZGVyVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJUeXBlO1xuICAgIH1cblxuICAgIGdldCBvdmVyZmxvd01vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghIXRoaXMuX292ZXJmbG93U2VydmljZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93U2VydmljZS5vdmVyZmxvd01vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyQ29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCBoZWFkZXJDb2x1bW5Db3VudChtYXhDb2x1bW5zOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKG1heENvbHVtbnMgIT09IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JC5uZXh0KG1heENvbHVtbnMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVIZWFkZXJDb2x1bW5Db3VudCgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pbml0aWFsaXplZENvdW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRGVmYXVsdEhlYWRlclN0YXRlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZWRDb3VudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgaGVhZGVyQ29sdW1uQ291bnQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oZWFkZXJDb2x1bW5Db3VudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHJlc3BvbnNpdmVIZWFkZXJzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2l2ZUhlYWRlcnMkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc2V0IHJlc3BvbnNpdmVIZWFkZXJzKHJlc3BvbnNpdmVIZWFkZXJzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Jlc3BvbnNpdmVIZWFkZXJzJC5uZXh0KHJlc3BvbnNpdmVIZWFkZXJzKTtcbiAgICB9XG5cbiAgICBnZXQgcmVzcG9uc2l2ZUhlYWRlcnMkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2l2ZUhlYWRlcnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGdldCBjbGVhckhlYWRlclNlYXJjaCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NsZWFySGVhZGVyU2VhcmNoJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXQgaW5pdERlZmF1bHRIZWFkZXJzKGRlZmF1bHRIZWFkZXJzOiBBcnJheTxzdHJpbmc+KSB7XG4gICAgICAgIHRoaXMuX2luaXREZWZhdWx0SGVhZGVycyA9IGRlZmF1bHRIZWFkZXJzO1xuICAgIH1cblxuICAgIGdldCBpbml0RGVmYXVsdEhlYWRlcnMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0RGVmYXVsdEhlYWRlcnM7XG4gICAgfVxuXG4gICAgZ2V0IHByZWZlcmVuY2VDb2x1bW5Db3VudCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByZWZlcmVuY2VDb2x1bW5Db3VudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplSGVhZGVyU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRIZWFkZXJzID0gW107XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5maWVsZHNHcm91cFswXS5maWVsZHMubGVuZ3RoICYmIGRlZmF1bHRIZWFkZXJzLmxlbmd0aCA8IHRoaXMuaGVhZGVyQ29sdW1uQ291bnQ7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZmllbGRzR3JvdXBbMF0uZmllbGRzW2ldLmluaXRpYWwpIHtcbiAgICAgICAgICAgICAgICBkZWZhdWx0SGVhZGVycy5wdXNoKHRoaXMuZmllbGRzR3JvdXBbMF0uZmllbGRzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAoZGVmYXVsdEhlYWRlcnMubGVuZ3RoIDwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnMucHVzaChudWxsKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZSA9IG5ldyBIZWFkZXJTdGF0ZShkZWZhdWx0SGVhZGVycyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVEZWZhdWx0SGVhZGVyU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluaXREZWZhdWx0SGVhZGVycyAmJiBBcnJheS5pc0FycmF5KHRoaXMuaW5pdERlZmF1bHRIZWFkZXJzKSkge1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdEhlYWRlcnMgPSBbXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZGVmYXVsdEhlYWRlcnMucHVzaChudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5pbml0RGVmYXVsdEhlYWRlcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSA+PSB0aGlzLmhlYWRlckNvbHVtbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci53YXJuKCd0aGVyZSBhcmUgbW9yZSBOQUVfREVGQVVMVF9IRUFERVJTIHRoYW4gaGVhZGVyIGNvbHVtbnMuIFNraXBwaW5nIHRoZSByZXN0Li4uJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGggb2YgdGhpcy5maWVsZHNHcm91cCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWFkID0gaC5maWVsZHMuZmluZChoZWFkZXIgPT4gaGVhZGVyLnVuaXF1ZUlkID09PSB0aGlzLmluaXREZWZhdWx0SGVhZGVyc1tpXSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChoZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0SGVhZGVyc1tpXSA9IGhlYWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnVwZGF0ZVNlbGVjdGVkSGVhZGVycyhkZWZhdWx0SGVhZGVycyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkSGVhZGVyc0Zyb21QcmVmZXJlbmNlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZHMgYG51bGxgIGhlYWRlcnMgaWYgdGhlIG5ldyBjb3VudCBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgY291bnQuXG4gICAgICpcbiAgICAgKiBSZW1vdmVzIGV4dHJhIGhlYWRlcnMgaWYgdGhlIG5ldyBjb3VudCBpcyBzbWFsbGVyIHRoYW4gdGhlIGN1cnJlbnQgY291bnQuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUhlYWRlckNvbHVtbkNvdW50KCk6IHZvaWQge1xuICAgICAgICBsZXQgaGVhZGVycyA9IHRoaXMuX2hlYWRlclN0YXRlLnNlbGVjdGVkSGVhZGVycztcbiAgICAgICAgaWYgKGhlYWRlcnMubGVuZ3RoIDwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgd2hpbGUgKGhlYWRlcnMubGVuZ3RoICE9PSB0aGlzLmhlYWRlckNvbHVtbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgaGVhZGVycy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGhlYWRlcnMubGVuZ3RoID4gdGhpcy5oZWFkZXJDb2x1bW5Db3VudCkge1xuICAgICAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2xpY2UoMCwgdGhpcy5oZWFkZXJDb2x1bW5Db3VudCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUudXBkYXRlU2VsZWN0ZWRIZWFkZXJzKGhlYWRlcnMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRBbGxvd2VkTmV0cyhhbGxvd2VkTmV0czogQXJyYXk8UGV0cmlOZXRSZWZlcmVuY2U+KSB7XG4gICAgICAgIC8qIFRPRE8gYnkgc2ltcGx5IHJlcGxhY2luZyB0aGUgc2VsZWN0IG9wdGlvbnMgd2l0aCBuZXcgb2JqZWN0LCB3ZSBkb24ndCBsb29zZSB0aGUgb2xkIHJlZmVyZW5jZXMuXG4gICAgICAgICAgICAgQ29sdW1ucyB3aXRoIGhlYWRlcnMgZnJvbSBuZXRzIHRoYXQgYXJlIG5vIGxvbmdlciBhbGxvd2VkIHNob3VsZCBoYXZlIHRoZWlyIHZhbHVlIGNsZWFyZWQuXG4gICAgICAgICAgICAgQ29sdW1ucyB3aXRoIHZhbGlkIHZhbHVlcyB0aGF0IGFyZSBub3QgbWV0YWRhdGEgc2hvdWxkIGhhdmUgdGhlaXIgc2VsZWN0aW9uIHJlbWFwcGVkIHRvIHRoZSBuZXcgb2JqZWN0cy5cbiAgICAgICAgICovXG5cbiAgICAgICAgY29uc3QgZmllbGRzR3JvdXBzOiBBcnJheTxGaWVsZHNHcm91cD4gPSBbXTtcbiAgICAgICAgYWxsb3dlZE5ldHMuZm9yRWFjaChhbGxvd2VkTmV0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkc0dyb3VwOiBGaWVsZHNHcm91cCA9IHtcbiAgICAgICAgICAgICAgICBncm91cFRpdGxlOiBhbGxvd2VkTmV0LnRpdGxlLFxuICAgICAgICAgICAgICAgIGZpZWxkczogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhbGxvd2VkTmV0LmltbWVkaWF0ZURhdGEuZm9yRWFjaChpbW1lZGlhdGUgPT4ge1xuICAgICAgICAgICAgICAgIGZpZWxkc0dyb3VwLmZpZWxkcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICBuZXcgSGVhZGVyQ29sdW1uKEhlYWRlckNvbHVtblR5cGUuSU1NRURJQVRFLCBpbW1lZGlhdGUuc3RyaW5nSWQsIGltbWVkaWF0ZS50aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZS50eXBlLCBmYWxzZSwgYWxsb3dlZE5ldC5pZGVudGlmaWVyKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZpZWxkc0dyb3Vwcy5wdXNoKGZpZWxkc0dyb3VwKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5maWVsZHNHcm91cC5zcGxpY2UoMSwgdGhpcy5maWVsZHNHcm91cC5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5maWVsZHNHcm91cC5wdXNoKC4uLmZpZWxkc0dyb3Vwcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFRhc2tBbGxvd2VkTmV0cyhhbGxvd2VkTmV0czogQXJyYXk8TmV0Pikge1xuICAgICAgICAvKiBUT0RPIGJ5IHNpbXBseSByZXBsYWNpbmcgdGhlIHNlbGVjdCBvcHRpb25zIHdpdGggbmV3IG9iamVjdCwgd2UgZG9uJ3QgbG9vc2UgdGhlIG9sZCByZWZlcmVuY2VzLlxuICAgICAgICAgICAgIENvbHVtbnMgd2l0aCBoZWFkZXJzIGZyb20gbmV0cyB0aGF0IGFyZSBubyBsb25nZXIgYWxsb3dlZCBzaG91bGQgaGF2ZSB0aGVpciB2YWx1ZSBjbGVhcmVkLlxuICAgICAgICAgICAgIENvbHVtbnMgd2l0aCB2YWxpZCB2YWx1ZXMgdGhhdCBhcmUgbm90IG1ldGFkYXRhIHNob3VsZCBoYXZlIHRoZWlyIHNlbGVjdGlvbiByZW1hcHBlZCB0byB0aGUgbmV3IG9iamVjdHMuXG4gICAgICAgICAqL1xuXG4gICAgICAgIGNvbnN0IGZpZWxkc0dyb3VwczogQXJyYXk8RmllbGRzR3JvdXA+ID0gW107XG4gICAgICAgIGFsbG93ZWROZXRzLmZvckVhY2goYWxsb3dlZE5ldCA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZHNHcm91cDogRmllbGRzR3JvdXAgPSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBUaXRsZTogYWxsb3dlZE5ldC50aXRsZSxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IFtdXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBuZXcgU2V0KCk7XG4gICAgICAgICAgICBhbGxvd2VkTmV0LnRyYW5zaXRpb25zLmZvckVhY2godHJhbnMgPT4ge1xuICAgICAgICAgICAgICAgIHRyYW5zLmltbWVkaWF0ZURhdGEuZm9yRWFjaChkYXRhID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZy5oYXMoZGF0YS5zdHJpbmdJZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0aW5nLmFkZChkYXRhLnN0cmluZ0lkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkc0dyb3VwLmZpZWxkcy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBIZWFkZXJDb2x1bW4oSGVhZGVyQ29sdW1uVHlwZS5JTU1FRElBVEUsIGRhdGEuc3RyaW5nSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEudGl0bGUsIGRhdGEudHlwZSwgZmFsc2UsIGFsbG93ZWROZXQuaWRlbnRpZmllcilcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZmllbGRzR3JvdXBzLnB1c2goZmllbGRzR3JvdXApO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZpZWxkc0dyb3VwLnNwbGljZSgxLCB0aGlzLmZpZWxkc0dyb3VwLmxlbmd0aCAtIDEpO1xuICAgICAgICB0aGlzLmZpZWxkc0dyb3VwLnB1c2goLi4uZmllbGRzR3JvdXBzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIHZpZXcgaGFzIHNvbSBoZWFkZXJzIHN0b3JlZCBpbiBpdCdzIHByZWZlcmVuY2VzIGF0dGVtcHRzIHRvIGxvYWQgdGhlbS5cbiAgICAgKiBJZiB0aGUgcHJlZmVyZW5jZXMgY29udGFpbiBub25leGlzdGVudCBoZWFkZXJzIHRoZXkgd2lsbCBiZSBza2lwcGVkLlxuICAgICAqXG4gICAgICogVGhpcyBmdW5jdGlvbiBpcyBOT1QgY2FsbGVkIGJ5IHRoZSBhYnN0cmFjdCBjbGFzcycgY29uc3RydWN0b3IuXG4gICAgICogSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjaGlsZCBjbGFzcyB0byBjYWxsIGl0IGF0IGFuIGFwcHJvcHJpYXRlIG1vbWVudC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgbG9hZEhlYWRlcnNGcm9tUHJlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZpZXdJZCA9IHRoaXMuZ2V0Vmlld0lkKCk7XG4gICAgICAgIGlmICghdmlld0lkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJlZmVycmVkSGVhZGVyS2V5cyA9IHRoaXMuX3ByZWZlcmVuY2VzLmdldEhlYWRlcnModmlld0lkKTtcbiAgICAgICAgaWYgKCFwcmVmZXJyZWRIZWFkZXJLZXlzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3SGVhZGVycyA9IFtdO1xuICAgICAgICBwcmVmZXJyZWRIZWFkZXJLZXlzLmZvckVhY2goaGVhZGVyS2V5ID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGRHcm91cCBvZiB0aGlzLmZpZWxkc0dyb3VwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBoZWFkZXIgb2YgZmllbGRHcm91cC5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGhlYWRlci51bmlxdWVJZCA9PT0gaGVhZGVyS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdIZWFkZXJzLnB1c2goaGVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gY29udGludWUgdGhlIG91dGVybW9zdCBsb29wXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBubyBtYXRjaCBmb3VuZFxuICAgICAgICAgICAgbmV3SGVhZGVycy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oXG4gICAgICAgICAgICAgICAgYENvdWxkIG5vdCByZXN0b3JlIGhlYWRlciB3aXRoIElEICcke2hlYWRlcktleX0nIGZyb20gcHJlZmVyZW5jZXMuIEl0IGlzIG5vdCBvbmUgb2YgdGhlIGF2YWlsYWJsZSBoZWFkZXJzIGZvciB0aGlzIHZpZXcuYCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9wcmVmZXJlbmNlQ29sdW1uQ291bnQkLm5leHQobmV3SGVhZGVycy5sZW5ndGgpO1xuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS51cGRhdGVTZWxlY3RlZEhlYWRlcnMobmV3SGVhZGVycyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZU1ldGFIZWFkZXJzKCk6IEFycmF5PEhlYWRlckNvbHVtbj47XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2Ugc29ydCBtb2RlIGZvciBzZWxlY3RlZCBjb2x1bW4gYWxsIG90aGVyIGNvbHVtbiBhcmUgc2V0IHRvIGRlZmF1bHQgc29ydCBtb2RlXG4gICAgICogRW1pdCByZXF1ZXN0IGZvciBzb3J0ZWQgcGFuZWxzXG4gICAgICogQHBhcmFtIGNvbHVtbkluZGV4IGluZGV4IG9mIHRoZSBjb2x1bW4gdGhhdCBjYXVzZWQgdGhlIHNvcnQgY2hhbmdlXG4gICAgICogQHBhcmFtIGFjdGl2ZSBSZXByZXNlbnRzIGNvbHVtbiBpZGVudGlmaWVyXG4gICAgICogQHBhcmFtIGRpcmVjdGlvbiBSZXByZXNlbnQgb25lIG9mIHNvcnQgbW9kZXM6IGFzZCwgZGVzYyBhbmQgJydcbiAgICAgKi9cbiAgICBwdWJsaWMgc29ydEhlYWRlckNoYW5nZWQoY29sdW1uSW5kZXg6IG51bWJlciwgYWN0aXZlOiBzdHJpbmcsIGRpcmVjdGlvbjogU29ydERpcmVjdGlvbik6IHZvaWQge1xuICAgICAgICBsZXQgc29ydENoYW5nZURlc2NyaXB0aW9uOiBTb3J0Q2hhbmdlRGVzY3JpcHRpb247XG4gICAgICAgIGxldCBmb3VuZEZpcnN0TWF0Y2ggPSBmYWxzZTsgLy8gY29sdW1uIGNhbiBmZWF0dXJlIGluIHRoZSBoZWFkZXIgaW4gbXVsdGlwbGUgcG9zaXRpb25zID0+IHdlIGRvbid0IHdhbnQgdG8gc2VuZCBtdWx0aXBsZSBldmVudHNcbiAgICAgICAgdGhpcy5oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnMuZmlsdGVyKGhlYWRlciA9PiAhIWhlYWRlcikuZm9yRWFjaChoZWFkZXIgPT4ge1xuICAgICAgICAgICAgaWYgKGhlYWRlci51bmlxdWVJZCA9PT0gYWN0aXZlICYmICFmb3VuZEZpcnN0TWF0Y2gpIHtcbiAgICAgICAgICAgICAgICBzb3J0Q2hhbmdlRGVzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIHNvcnREaXJlY3Rpb246IGRpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgY29sdW1uVHlwZTogaGVhZGVyLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkSWRlbnRpZmllcjogaGVhZGVyLmZpZWxkSWRlbnRpZmllcixcbiAgICAgICAgICAgICAgICAgICAgcGV0cmlOZXRJZGVudGlmaWVyOiBoZWFkZXIucGV0cmlOZXRJZGVudGlmaWVyLFxuICAgICAgICAgICAgICAgICAgICBjb2x1bW5JZGVudGlmaWVyOiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRUeXBlOiBoZWFkZXIuZmllbGRUeXBlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBoZWFkZXIuc29ydERpcmVjdGlvbiA9IGRpcmVjdGlvbjtcbiAgICAgICAgICAgICAgICBmb3VuZEZpcnN0TWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoZWFkZXIuc29ydERpcmVjdGlvbiA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KHtcbiAgICAgICAgICAgIGhlYWRlclR5cGU6IHRoaXMuaGVhZGVyVHlwZSxcbiAgICAgICAgICAgIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuU09SVCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzb3J0Q2hhbmdlRGVzY3JpcHRpb25cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2F2ZXMgdGhlIHNlYXJjaCB2YWx1ZSBpbiB0aGUgYXBwcm9wcmlhdGUgY29sdW1uIGluIHRoZSBoZWFkZXJcbiAgICAgKiBFbWl0IHJlcXVlc3QgZm9yIHNlYXJjaGVkIHBhbmVscyBieSB1c2VyIGlucHV0IHF1ZXJ5XG4gICAgICovXG4gICAgcHVibGljIGhlYWRlclNlYXJjaElucHV0Q2hhbmdlZChjb2x1bW5JbmRleDogbnVtYmVyLCBzZWFyY2hJbnB1dDogYW55KSB7XG4gICAgICAgIGNvbnN0IGFmZmVjdGVkSGVhZGVyID0gdGhpcy5oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnNbY29sdW1uSW5kZXhdO1xuICAgICAgICBhZmZlY3RlZEhlYWRlci5zZWFyY2hJbnB1dCA9IHNlYXJjaElucHV0O1xuICAgICAgICBjb25zdCBzZWFyY2hDaGFuZ2VEZXNjcmlwdGlvbjogU2VhcmNoQ2hhbmdlRGVzY3JpcHRpb24gPSB7XG4gICAgICAgICAgICBmaWVsZElkZW50aWZpZXI6IGFmZmVjdGVkSGVhZGVyLmZpZWxkSWRlbnRpZmllcixcbiAgICAgICAgICAgIGZpZWxkVHlwZTogYWZmZWN0ZWRIZWFkZXIuZmllbGRUeXBlLFxuICAgICAgICAgICAgZmllbGRUaXRsZTogYWZmZWN0ZWRIZWFkZXIudGl0bGUsXG4gICAgICAgICAgICBzZWFyY2hJbnB1dCxcbiAgICAgICAgICAgIHR5cGU6IGFmZmVjdGVkSGVhZGVyLnR5cGUsXG4gICAgICAgICAgICBwZXRyaU5ldElkZW50aWZpZXI6IGFmZmVjdGVkSGVhZGVyLnBldHJpTmV0SWRlbnRpZmllcixcbiAgICAgICAgICAgIGNvbHVtbklkZW50aWZpZXI6IGNvbHVtbkluZGV4XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQubmV4dCh7XG4gICAgICAgICAgICBoZWFkZXJUeXBlOiB0aGlzLmhlYWRlclR5cGUsXG4gICAgICAgICAgICBjaGFuZ2VUeXBlOiBIZWFkZXJDaGFuZ2VUeXBlLlNFQVJDSCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBzZWFyY2hDaGFuZ2VEZXNjcmlwdGlvblxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgYWN0aXZlIGhlYWRlciBhbmQgdGl0bGVzIG9mIHBhbmVsc1xuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJDb2x1bW5TZWxlY3RlZChjb2x1bW5JbmRleDogbnVtYmVyLCBuZXdIZWFkZXJDb2x1bW46IEhlYWRlckNvbHVtbik6IHZvaWQge1xuICAgICAgICBjb25zdCBuZXdIZWFkZXJzOiBBcnJheTxIZWFkZXJDb2x1bW4+ID0gW107XG4gICAgICAgIG5ld0hlYWRlcnMucHVzaCguLi50aGlzLl9oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnMpO1xuICAgICAgICBpZiAoISFuZXdIZWFkZXJzW2NvbHVtbkluZGV4XSkge1xuICAgICAgICAgICAgbmV3SGVhZGVyc1tjb2x1bW5JbmRleF0uc29ydERpcmVjdGlvbiA9ICcnO1xuICAgICAgICAgICAgbmV3SGVhZGVyc1tjb2x1bW5JbmRleF0uc2VhcmNoSW5wdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgbmV3SGVhZGVyc1tjb2x1bW5JbmRleF0gPSBuZXdIZWFkZXJDb2x1bW47XG4gICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnVwZGF0ZVNlbGVjdGVkSGVhZGVycyhuZXdIZWFkZXJzKTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KHtcbiAgICAgICAgICAgIGhlYWRlclR5cGU6IHRoaXMuaGVhZGVyVHlwZSxcbiAgICAgICAgICAgIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuRURJVCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7cHJlZmVycmVkSGVhZGVyczogdGhpcy5faGVhZGVyU3RhdGUuc2VsZWN0ZWRIZWFkZXJzfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2Ugc2VsZWN0ZWQgaGVhZGVyIG1vZGUgdGhlcmUgYXJlIHRocmVlIHBvc3NpYmxlIG1vZGVzOiBTT1JULCBTRUFSQ0ggYW5kIEVESVRcbiAgICAgKiBAcGFyYW0gbmV3TW9kZSB0aGUgbW9kZSB0aGF0IHRoZSBoZWFkZXIgc2hvdWxkIGNoYW5nZSB0b1xuICAgICAqIEBwYXJhbSBzYXZlTGFzdE1vZGUgd2hldGhlciB0aGUgbGFzdCBzdGF0ZSBzaG91bGQgYmUgcmVtZW1iZXJlZC5cbiAgICAgKiBJdCBjYW4gYmUgcmVzdG9yZWQgd2l0aCB0aGUgW0hlYWRlclN0YXRlLnJlc3RvcmVMYXN0TW9kZSgpXXtAbGluayBIZWFkZXJTdGF0ZSNyZXN0b3JlTGFzdE1vZGV9IG1ldGhvZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2hhbmdlTW9kZShuZXdNb2RlOiBIZWFkZXJNb2RlLCBzYXZlTGFzdE1vZGUgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmIChuZXdNb2RlID09PSB0aGlzLl9oZWFkZXJTdGF0ZS5tb2RlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2F2ZUxhc3RNb2RlKSB7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS5zYXZlU3RhdGUoKTtcbiAgICAgICAgICAgIHRoaXMuc2F2ZVN0YXRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjaGFuZ2UgPSB0aGlzLm1vZGVDaGFuZ2VGcm9tQ3VycmVudChuZXdNb2RlKTtcbiAgICAgICAgdGhpcy5faGVhZGVyU3RhdGUubW9kZSA9IG5ld01vZGU7XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQubmV4dChjaGFuZ2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maXJtRWRpdE1vZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hlYWRlclN0YXRlLnJlc3RvcmVMYXN0TW9kZSgpO1xuICAgICAgICB0aGlzLnNhdmVOZXdTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSB0aGlzLm1vZGVDaGFuZ2VBZnRlckVkaXQoKTtcbiAgICAgICAgY29uc3Qgdmlld0lkID0gdGhpcy5nZXRWaWV3SWQoKTtcbiAgICAgICAgaWYgKCEhdmlld0lkKSB7XG4gICAgICAgICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJTdGF0ZS5zZWxlY3RlZEhlYWRlcnM7XG4gICAgICAgICAgICB0aGlzLl9wcmVmZXJlbmNlcy5zZXRIZWFkZXJzKHZpZXdJZCwgaGVhZGVycy5tYXAoaGVhZGVyID0+ICEhaGVhZGVyID8gaGVhZGVyLnVuaXF1ZUlkIDogJycpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oZWFkZXJDaGFuZ2UkLm5leHQoY2hhbmdlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHVzZXIgY2FuY2VscyB0aGUgZWRpdCBtb2RlLCB0aGUgbGFzdCBzYXZlZCBoZWFkZXJzIHN0YXRlIGlzIGxvYWRlZCBhbmQgZW1pdHRlZFxuICAgICAqIExhc3QgbW9kZSBpbiBoZWFkZXIgaXMgcmVsb2FkZWQgYXMgd2VsbC4gUG9zc2libGUgcmVsb2FkZWQgbW9kZXM6IHNvcnQgb3Igc2VhcmNoXG4gICAgICovXG4gICAgcHVibGljIHJldmVydEVkaXRNb2RlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9oZWFkZXJTdGF0ZS5yZXN0b3JlTGFzdFN0YXRlKCk7XG4gICAgICAgIHRoaXMucmVzdG9yZUxhc3RTdGF0ZSgpO1xuICAgICAgICBjb25zdCBjaGFuZ2UgPSB0aGlzLm1vZGVDaGFuZ2VBZnRlckVkaXQoKTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KHtcbiAgICAgICAgICAgIGhlYWRlclR5cGU6IHRoaXMuaGVhZGVyVHlwZSxcbiAgICAgICAgICAgIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuRURJVCxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB7cHJlZmVycmVkSGVhZGVyczogdGhpcy5faGVhZGVyU3RhdGUuc2VsZWN0ZWRIZWFkZXJzfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5faGVhZGVyQ2hhbmdlJC5uZXh0KGNoYW5nZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hlYWRlckNoYW5nZSQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fY2xlYXJIZWFkZXJTZWFyY2gkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2hlYWRlckNvbHVtbkNvdW50JC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLl9yZXNwb25zaXZlSGVhZGVycyQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX3ByZWZlcmVuY2VDb2x1bW5Db3VudCQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gbmV3TW9kZSB0aGUge0BsaW5rIEhlYWRlck1vZGV9IHRoYXQgaXMgYmVpbmcgc2VsZWN0ZWQgYXMgdGhlIG5leHQgbW9kZVxuICAgICAqIEByZXR1cm5zYSB7QGxpbmsgSGVhZGVyQ2hhbmdlfSBvYmplY3Qgd2l0aCB7QGxpbmsgTW9kZUNoYW5nZURlc2NyaXB0aW9ufSBvYmplY3QgYXMgaXQncyBgZGVzY3JpcHRpb25gLFxuICAgICAqIHdoZXJlIHRoZSBgcHJldmlvdXNNb2RlYCBpcyBzZXQgdG8gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBtb2RlIGFuZCB0aGUgYGN1cnJlbnRNb2RlYCBpcyBzZXQgdG8gdGhlIHByb3ZpZGVkIGFyZ3VtZW50XG4gICAgICovXG4gICAgcHJvdGVjdGVkIG1vZGVDaGFuZ2VGcm9tQ3VycmVudChuZXdNb2RlOiBIZWFkZXJNb2RlKTogSGVhZGVyQ2hhbmdlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlTW9kZUNoYW5nZSh0aGlzLl9oZWFkZXJTdGF0ZS5tb2RlLCBuZXdNb2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBhIHtAbGluayBIZWFkZXJDaGFuZ2V9IG9iamVjdCB3aXRoIHtAbGluayBNb2RlQ2hhbmdlRGVzY3JpcHRpb259IG9iamVjdCBhcyBpdCdzIGBkZXNjcmlwdGlvbmAsXG4gICAgICogd2hlcmUgdGhlIGBwcmV2aW91c01vZGVgIGlzIHNldCB0byBbRURJVF17QGxpbmsgSGVhZGVyTW9kZSNFRElUfSBhbmQgdGhlIGBjdXJyZW50TW9kZWAgdG8gdGhlIG1vZGVcbiAgICAgKiB0aGF0IGlzIGN1cnJlbnRseSBzZWxlY3RlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBtb2RlQ2hhbmdlQWZ0ZXJFZGl0KCk6IEhlYWRlckNoYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZU1vZGVDaGFuZ2UoSGVhZGVyTW9kZS5FRElULCB0aGlzLl9oZWFkZXJTdGF0ZS5tb2RlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gb2xkTW9kZSB0aGUge0BsaW5rIEhlYWRlck1vZGV9IHRoYXQgd2FzIHByZXZpb3VzbHkgc2VsZWN0ZWRcbiAgICAgKiBAcGFyYW0gbmV3TW9kZSB0aGUge0BsaW5rIEhlYWRlck1vZGV9IHRoYXQgaXMgc2VsZWN0ZWQgbm93XG4gICAgICogQHJldHVybnMgYSB7QGxpbmsgSGVhZGVyQ2hhbmdlfSBvYmplY3Qgd2l0aCB7QGxpbmsgTW9kZUNoYW5nZURlc2NyaXB0aW9ufSBvYmplY3QgYXMgaXQncyBgZGVzY3JpcHRpb25gXG4gICAgICogY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCBhIGNoYW5nZSB0byB0aGUgaGVhZGVyIG1vZGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgY3JlYXRlTW9kZUNoYW5nZShvbGRNb2RlOiBIZWFkZXJNb2RlLCBuZXdNb2RlOiBIZWFkZXJNb2RlKTogSGVhZGVyQ2hhbmdlIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNoYW5nZVR5cGU6IEhlYWRlckNoYW5nZVR5cGUuTU9ERV9DSEFOR0VELFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICBjdXJyZW50TW9kZTogbmV3TW9kZSxcbiAgICAgICAgICAgICAgICBwcmV2aW91c01vZGU6IG9sZE1vZGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBoZWFkZXJUeXBlOiB0aGlzLmhlYWRlclR5cGVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyBhIG5ldyB2YWx1ZSBpbnRvIHRoZSBbY2xlYXJIZWFkZXJTZWFyY2gkXXtAbGluayBBYnN0cmFjdEhlYWRlclNlcnZpY2UjY2xlYXJIZWFkZXJTZWFyY2gkfSBzdHJlYW0sIHRoYXQgbm90aWZpZXNcbiAgICAgKiB0aGUgaGVhZGVyIHNlYXJjaCBjb21wb25lbnQsIHRoYXQgaXQgc2hvdWxkIGNsZWFyIHRoZSBpbnB1dCBmb3IgdGhlIHNwZWNpZmllZCBjb2x1bW4uXG4gICAgICogQHBhcmFtIGNvbHVtbkluZGV4IHRoZSBpbmRleCBvZiB0aGUgY29sdW1uIHRoYXQgc2hvdWxkIGJlIGNsZWFyZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXJIZWFkZXJTZWFyY2goY29sdW1uSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGVhckhlYWRlclNlYXJjaCQubmV4dChjb2x1bW5JbmRleCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgdGhlIElkIG9mIHRoZSB2aWV3LCBpZiB0aGUgVmlld0lkU2VydmljZSB3YXMgaW5qZWN0ZWQuIFJldHVybnMgYHVuZGVmaW5lZGAgaWYgdGhlIHNlcnZpY2Ugd2FzIG5vdCBpbmplY3RlZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0Vmlld0lkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmICh0aGlzLl92aWV3SWRTZXJ2aWNlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdmlld0lkU2VydmljZS52aWV3SWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2F2ZVN0YXRlKCk7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2F2ZU5ld1N0YXRlKCk7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVzdG9yZUxhc3RTdGF0ZSgpO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, Input, Optional } from '@angular/core';
2
2
  import { CaseHeaderService } from './case-header/case-header.service';
3
3
  import { TaskHeaderService } from './task-header/task-header.service';
4
4
  import { WorkflowHeaderService } from './workflow-header/workflow-header.service';
@@ -153,7 +153,7 @@ export class AbstractHeaderComponent {
153
153
  });
154
154
  }
155
155
  }
156
- AbstractHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderComponent, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: i2.OverflowService }], target: i0.ɵɵFactoryTarget.Component });
156
+ AbstractHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderComponent, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: i2.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
157
157
  AbstractHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractHeaderComponent, selector: "ncc-abstract-header", inputs: { type: "type", hideEditMode: "hideEditMode", maxHeaderColumns: "maxHeaderColumns", responsiveHeaders: "responsiveHeaders" }, ngImport: i0, template: '', isInline: true });
158
158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractHeaderComponent, decorators: [{
159
159
  type: Component,
@@ -161,7 +161,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
161
161
  selector: 'ncc-abstract-header',
162
162
  template: ''
163
163
  }]
164
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TranslateService }, { type: i2.OverflowService }]; }, propDecorators: { type: [{
164
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TranslateService }, { type: i2.OverflowService, decorators: [{
165
+ type: Optional
166
+ }] }]; }, propDecorators: { type: [{
165
167
  type: Input
166
168
  }], hideEditMode: [{
167
169
  type: Input
@@ -170,4 +172,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
170
172
  }], responsiveHeaders: [{
171
173
  type: Input
172
174
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL2Fic3RyYWN0LWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBWSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sdURBQXVELENBQUM7QUFDMUYsT0FBTyxFQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFPNUQsTUFBTSxPQUFnQix1QkFBdUI7SUFzQnpDLFlBQXNCLFNBQW1CLEVBQ25CLFVBQTRCLEVBQzVCLGdCQUFpQztRQUZqQyxjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUF0QnBDLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFFckMsU0FBSSxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDbkMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHZCxtQkFBYyxHQUFH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NEZBRU0sdUJBQXVCO2tCQUo1QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxFQUFFO2lCQUNmOzRKQU1ZLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQXlCSyxnQkFBZ0I7c0JBRDFCLEtBQUs7Z0JBYUssaUJBQWlCO3NCQUQzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdEhlYWRlclNlcnZpY2V9IGZyb20gJy4vYWJzdHJhY3QtaGVhZGVyLXNlcnZpY2UnO1xuaW1wb3J0IHtDYXNlSGVhZGVyU2VydmljZX0gZnJvbSAnLi9jYXNlLWhlYWRlci9jYXNlLWhlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0hlYWRlclNlcnZpY2V9IGZyb20gJy4vdGFzay1oZWFkZXIvdGFzay1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQge1dvcmtmbG93SGVhZGVyU2VydmljZX0gZnJvbSAnLi93b3JrZmxvdy1oZWFkZXIvd29ya2Zsb3ctaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtIZWFkZXJUeXBlfSBmcm9tICcuL21vZGVscy9oZWFkZXItdHlwZSc7XG5pbXBvcnQge0hlYWRlck1vZGV9IGZyb20gJy4vbW9kZWxzL2hlYWRlci1tb2RlJztcbmltcG9ydCB7SGVhZGVyU2VhcmNoU2VydmljZX0gZnJvbSAnLi4vc2VhcmNoL2hlYWRlci1zZWFyY2gtc2VydmljZS9oZWFkZXItc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UnO1xuaW1wb3J0IHtzdG9wUHJvcGFnYXRpb259IGZyb20gJy4uL3V0aWxpdHkvc3RvcC1wcm9wYWdhdGlvbic7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LWhlYWRlcicsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX0NPVU5UID0gNjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgREVGQVVMVF9DT0xVTU5fV0lEVEggPSAyMjA7XG5cbiAgICBASW5wdXQoKSB0eXBlOiBIZWFkZXJUeXBlID0gSGVhZGVyVHlwZS5DQVNFO1xuICAgIEBJbnB1dCgpIGhpZGVFZGl0TW9kZSA9IGZhbHNlO1xuICAgIHB1YmxpYyBoZWFkZXJTZXJ2aWNlOiBBYnN0cmFjdEhlYWRlclNlcnZpY2U7XG4gICAgcHJvdGVjdGVkIF9oZWFkZXJTZWFyY2g6IEhlYWRlclNlYXJjaFNlcnZpY2U7XG4gICAgcHVibGljIHJlYWRvbmx5IGhlYWRlck1vZGVFbnVtID0gSGVhZGVyTW9kZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyVHlwZUVudW0gPSBIZWFkZXJUeXBlO1xuICAgIHB1YmxpYyBvdmVyZmxvd0NvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBjb2x1bW5Db3VudENvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBjb2x1bW5XaWR0aENvbnRyb2w6IEZvcm1Db250cm9sO1xuICAgIHB1YmxpYyBjYW5PdmVyZmxvdzogYm9vbGVhbjtcbiAgICBwdWJsaWMgc3ViT3ZlcmZsb3dDb250cm9sOiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIHN1YkNvbHVtbkNvdW50Q29udHJvbDogU3Vic2NyaXB0aW9uO1xuICAgIHB1YmxpYyBzdWJDb2x1bW5XaWR0aENvbnRyb2w6IFN1YnNjcmlwdGlvbjtcblxuICAgIHByb3RlY3RlZCBfaW5pdEhlYWRlckNvdW50OiBudW1iZXIgPSB1bmRlZmluZWQ7XG4gICAgcHJvdGVjdGVkIF9pbml0UmVzcG9uc2l2ZUhlYWRlcnM6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX292ZXJmbG93U2VydmljZTogT3ZlcmZsb3dTZXJ2aWNlKSB7XG4gICAgICAgICh0aGlzLl9vdmVyZmxvd1NlcnZpY2UgIT09IG51bGwpID9cbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Db250cm9scyh0cnVlKSA6XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVGb3JtQ29udHJvbHMoZmFsc2UpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCBtYXhIZWFkZXJDb2x1bW5zKGNvdW50OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmhlYWRlckNvbHVtbkNvdW50ID0gY291bnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pbml0SGVhZGVyQ291bnQgPSBjb3VudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fb3ZlcmZsb3dTZXJ2aWNlID09PSBudWxsIHx8ICh0aGlzLl9vdmVyZmxvd1NlcnZpY2UgIT09IG51bGwgJiYgIXRoaXMuX292ZXJmbG93U2VydmljZS5pbml0aWFsaXplZENvdW50KSkge1xuICAgICAgICAgICAgdGhpcy5jb2x1bW5Db3VudENvbnRyb2wuc2V0VmFsdWUoY291bnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHJlc3BvbnNpdmVIZWFkZXJzKHJlc3BvbnNpdmU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuaGVhZGVyU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzID0gcmVzcG9uc2l2ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRSZXNwb25zaXZlSGVhZGVycyA9IHJlc3BvbnNpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNvbHZlSGVhZGVyU2VydmljZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkSGVhZGVyU2VhcmNoKCk7XG4gICAgICAgIGlmICh0aGlzLl9pbml0SGVhZGVyQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmhlYWRlckNvbHVtbkNvdW50ID0gdGhpcy5faW5pdEhlYWRlckNvdW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9pbml0UmVzcG9uc2l2ZUhlYWRlcnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnJlc3BvbnNpdmVIZWFkZXJzID0gdGhpcy5faW5pdFJlc3BvbnNpdmVIZWFkZXJzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5wcmVmZXJlbmNlQ29sdW1uQ291bnQkLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLmNvbHVtbkNvdW50Q29udHJvbC5zZXRWYWx1ZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jYW5PdmVyZmxvdykge1xuICAgICAgICAgICAgdGhpcy5zdWJDb2x1bW5XaWR0aENvbnRyb2wudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3ViQ29sdW1uQ291bnRDb250cm9sLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLnN1Yk92ZXJmbG93Q29udHJvbC51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5qZWN0cyB0aGUgY29ycmVjdCB7QGxpbmsgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBpbnN0YW5jZSBiYXNlZCBvbiB0aGlzIGNvbXBvbmVudCdzIHR5cGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUhlYWRlclNlcnZpY2UoKSB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEhlYWRlclR5cGUuQ0FTRTpcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoQ2FzZUhlYWRlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIZWFkZXJUeXBlLlRBU0s6XG4gICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlID0gdGhpcy5faW5qZWN0b3IuZ2V0KFRhc2tIZWFkZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSGVhZGVyVHlwZS5XT1JLRkxPVzpcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoV29ya2Zsb3dIZWFkZXJTZXJ2aWNlKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGNvcnJlY3Qge0BsaW5rIEFic3RyYWN0SGVhZGVyU2VydmljZX0gaW5zdGFuY2UgdG8gdGhlIHtAbGluayBIZWFkZXJTZWFyY2hTZXJ2aWNlfVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpbml0aWFsaXplZEhlYWRlclNlYXJjaCgpIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gSGVhZGVyVHlwZS5DQVNFKSB7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTZWFyY2ggPSB0aGlzLl9pbmplY3Rvci5nZXQoSGVhZGVyU2VhcmNoU2VydmljZSk7XG4gICAgICAgICAgICB0aGlzLl9oZWFkZXJTZWFyY2guaGVhZGVyU2VydmljZSA9IHRoaXMuaGVhZGVyU2VydmljZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsaWNrU3RvcCgkZXZlbnQpIHtcbiAgICAgICAgc3RvcFByb3BhZ2F0aW9uKCRldmVudCk7XG4gICAgfVxuXG4gICAgZ2V0TWluV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5fb3ZlcmZsb3dTZXJ2aWNlICYmIHRoaXMuX292ZXJmbG93U2VydmljZS5vdmVyZmxvd01vZGUpID8gYCR7dGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLmNvbHVtbldpZHRofXB4YCA6ICcwJztcbiAgICB9XG5cbiAgICBjb25maXJtRWRpdE1vZGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5vdmVyZmxvd0NvbnRyb2wudmFsdWUgfHwgKHRoaXMub3ZlcmZsb3dDb250cm9sLnZhbHVlICYmIHRoaXMuY29sdW1uV2lkdGhDb250cm9sLnZhbGlkICYmIHRoaXMuY29sdW1uV2lkdGhDb250cm9sLnZhbGlkKSkge1xuICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmNvbmZpcm1FZGl0TW9kZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RXJyb3JNZXNzYWdlV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkRXJyb3JNZXNzYWdlKHRoaXMuY29sdW1uV2lkdGhDb250cm9sLCAxODApO1xuICAgIH1cblxuICAgIGdldEVycm9yTWVzc2FnZUNvdW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZEVycm9yTWVzc2FnZSh0aGlzLmNvbHVtbkNvdW50Q29udHJvbCwgMSk7XG4gICAgfVxuXG4gICAgYnVpbGRFcnJvck1lc3NhZ2UoZm9ybUNvbnRyb2xSZWY6IEZvcm1Db250cm9sLCBtaW5OdW1iZXIpIHtcbiAgICAgICAgaWYgKGZvcm1Db250cm9sUmVmLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ2RhdGFGaWVsZC52YWxpZGF0aW9ucy5yZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChmb3JtQ29udHJvbFJlZi5oYXNFcnJvcignbWluJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnZhbGlkYXRpb25zLm1pbicsIHtsZW5ndGg6IG1pbk51bWJlcn0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZUZvcm1Db250cm9scyhleGlzdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmNhbk92ZXJmbG93ID0gZXhpc3Q7XG4gICAgICAgIHRoaXMub3ZlcmZsb3dDb250cm9sID0gbmV3IEZvcm1Db250cm9sKGV4aXN0ID8gdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZSA6IGZhbHNlKTtcbiAgICAgICAgdGhpcy5jb2x1bW5Db3VudENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZXhpc3QgPyB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uQ291bnQgOiB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5ULCBbXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5taW4oMSldKTtcbiAgICAgICAgdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZXhpc3QgPyB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uV2lkdGggOiB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRILCBbXG4gICAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICAgICAgVmFsaWRhdG9ycy5taW4oMTgwKV0pO1xuXG4gICAgICAgIGlmIChleGlzdCkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplVmFsdWVDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZVZhbHVlQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5zdWJPdmVyZmxvd0NvbnRyb2wgPSB0aGlzLm92ZXJmbG93Q29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIHRoaXMuX292ZXJmbG93U2VydmljZS5vdmVyZmxvd01vZGUgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ViQ29sdW1uQ291bnRDb250cm9sID0gdGhpcy5jb2x1bW5Db3VudENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5Db3VudENvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uQ291bnQgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlICYmIHRoaXMudHlwZSA9PT0gSGVhZGVyVHlwZS5DQVNFKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZS5oZWFkZXJDb2x1bW5Db3VudCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5oZWFkZXJTZXJ2aWNlIGFzIENhc2VIZWFkZXJTZXJ2aWNlKS51cGRhdGVDb2x1bW5Db3VudCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ViQ29sdW1uV2lkdGhDb250cm9sID0gdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uV2lkdGggPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlICYmIHRoaXMudHlwZSA9PT0gSGVhZGVyVHlwZS5DQVNFKSB7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhlYWRlclNlcnZpY2UgYXMgQ2FzZUhlYWRlclNlcnZpY2UpLnVwZGF0ZUNvbHVtbkNvdW50KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL2Fic3RyYWN0LWhlYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBWSxLQUFLLEVBQXFCLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV0RixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDOzs7O0FBTzVELE1BQU0sT0FBZ0IsdUJBQXVCO0lBc0J6QyxZQUFzQixTQUFtQixFQUNuQixVQUE0QixFQUNoQixnQkFBaUM7UUFGN0MsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBdEJoRCx5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIseUJBQW9CLEdBQUcsR0FBRyxDQUFDO1FBRXJDLFNBQUksR0FBZSxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ25DLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBR2Qs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QUYvQixFQUFFOzRGQUVNLHVCQUF1QjtrQkFKNUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBeUJnQixRQUFROzRDQW5CWixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkF5QkssZ0JBQWdCO3NCQUQxQixLQUFLO2dCQWFLLGlCQUFpQjtzQkFEM0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0SGVhZGVyU2VydmljZX0gZnJvbSAnLi9hYnN0cmFjdC1oZWFkZXItc2VydmljZSc7XG5pbXBvcnQge0Nhc2VIZWFkZXJTZXJ2aWNlfSBmcm9tICcuL2Nhc2UtaGVhZGVyL2Nhc2UtaGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrSGVhZGVyU2VydmljZX0gZnJvbSAnLi90YXNrLWhlYWRlci90YXNrLWhlYWRlci5zZXJ2aWNlJztcbmltcG9ydCB7V29ya2Zsb3dIZWFkZXJTZXJ2aWNlfSBmcm9tICcuL3dvcmtmbG93LWhlYWRlci93b3JrZmxvdy1oZWFkZXIuc2VydmljZSc7XG5pbXBvcnQge0hlYWRlclR5cGV9IGZyb20gJy4vbW9kZWxzL2hlYWRlci10eXBlJztcbmltcG9ydCB7SGVhZGVyTW9kZX0gZnJvbSAnLi9tb2RlbHMvaGVhZGVyLW1vZGUnO1xuaW1wb3J0IHtIZWFkZXJTZWFyY2hTZXJ2aWNlfSBmcm9tICcuLi9zZWFyY2gvaGVhZGVyLXNlYXJjaC1zZXJ2aWNlL2hlYWRlci1zZWFyY2guc2VydmljZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtPdmVyZmxvd1NlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvb3ZlcmZsb3cuc2VydmljZSc7XG5pbXBvcnQge3N0b3BQcm9wYWdhdGlvbn0gZnJvbSAnLi4vdXRpbGl0eS9zdG9wLXByb3BhZ2F0aW9uJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgREVGQVVMVF9DT0xVTU5fQ09VTlQgPSA2O1xuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9XSURUSCA9IDIyMDtcblxuICAgIEBJbnB1dCgpIHR5cGU6IEhlYWRlclR5cGUgPSBIZWFkZXJUeXBlLkNBU0U7XG4gICAgQElucHV0KCkgaGlkZUVkaXRNb2RlID0gZmFsc2U7XG4gICAgcHVibGljIGhlYWRlclNlcnZpY2U6IEFic3RyYWN0SGVhZGVyU2VydmljZTtcbiAgICBwcm90ZWN0ZWQgX2hlYWRlclNlYXJjaDogSGVhZGVyU2VhcmNoU2VydmljZTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGVhZGVyTW9kZUVudW0gPSBIZWFkZXJNb2RlO1xuICAgIHB1YmxpYyByZWFkb25seSBoZWFkZXJUeXBlRW51bSA9IEhlYWRlclR5cGU7XG4gICAgcHVibGljIG92ZXJmbG93Q29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGNvbHVtbkNvdW50Q29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGNvbHVtbldpZHRoQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gICAgcHVibGljIGNhbk92ZXJmbG93OiBib29sZWFuO1xuICAgIHB1YmxpYyBzdWJPdmVyZmxvd0NvbnRyb2w6IFN1YnNjcmlwdGlvbjtcbiAgICBwdWJsaWMgc3ViQ29sdW1uQ291bnRDb250cm9sOiBTdWJzY3JpcHRpb247XG4gICAgcHVibGljIHN1YkNvbHVtbldpZHRoQ29udHJvbDogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIF9pbml0SGVhZGVyQ291bnQ6IG51bWJlciA9IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgX2luaXRSZXNwb25zaXZlSGVhZGVyczogYm9vbGVhbiA9IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UpIHtcbiAgICAgICAgKHRoaXMuX292ZXJmbG93U2VydmljZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplRm9ybUNvbnRyb2xzKHRydWUpIDpcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUZvcm1Db250cm9scyhmYWxzZSk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IG1heEhlYWRlckNvbHVtbnMoY291bnQ6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuaGVhZGVyQ29sdW1uQ291bnQgPSBjb3VudDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRIZWFkZXJDb3VudCA9IGNvdW50O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9vdmVyZmxvd1NlcnZpY2UgPT09IG51bGwgfHwgKHRoaXMuX292ZXJmbG93U2VydmljZSAhPT0gbnVsbCAmJiAhdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLmluaXRpYWxpemVkQ291bnQpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbkNvdW50Q29udHJvbC5zZXRWYWx1ZShjb3VudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgcmVzcG9uc2l2ZUhlYWRlcnMocmVzcG9uc2l2ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5oZWFkZXJTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UucmVzcG9uc2l2ZUhlYWRlcnMgPSByZXNwb25zaXZlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faW5pdFJlc3BvbnNpdmVIZWFkZXJzID0gcmVzcG9uc2l2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc29sdmVIZWFkZXJTZXJ2aWNlKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWRIZWFkZXJTZWFyY2goKTtcbiAgICAgICAgaWYgKHRoaXMuX2luaXRIZWFkZXJDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuaGVhZGVyQ29sdW1uQ291bnQgPSB0aGlzLl9pbml0SGVhZGVyQ291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2luaXRSZXNwb25zaXZlSGVhZGVycyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UucmVzcG9uc2l2ZUhlYWRlcnMgPSB0aGlzLl9pbml0UmVzcG9uc2l2ZUhlYWRlcnM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnByZWZlcmVuY2VDb2x1bW5Db3VudCQuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMuY29sdW1uQ291bnRDb250cm9sLnNldFZhbHVlKHZhbHVlKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhbk92ZXJmbG93KSB7XG4gICAgICAgICAgICB0aGlzLnN1YkNvbHVtbldpZHRoQ29udHJvbC51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zdWJDb2x1bW5Db3VudENvbnRyb2wudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMuc3ViT3ZlcmZsb3dDb250cm9sLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3RzIHRoZSBjb3JyZWN0IHtAbGluayBBYnN0cmFjdEhlYWRlclNlcnZpY2V9IGluc3RhbmNlIGJhc2VkIG9uIHRoaXMgY29tcG9uZW50J3MgdHlwZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZXNvbHZlSGVhZGVyU2VydmljZSgpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgSGVhZGVyVHlwZS5DQVNFOlxuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChDYXNlSGVhZGVyU2VydmljZSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEhlYWRlclR5cGUuVEFTSzpcbiAgICAgICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UgPSB0aGlzLl9pbmplY3Rvci5nZXQoVGFza0hlYWRlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIZWFkZXJUeXBlLldPUktGTE9XOlxuICAgICAgICAgICAgICAgIHRoaXMuaGVhZGVyU2VydmljZSA9IHRoaXMuX2luamVjdG9yLmdldChXb3JrZmxvd0hlYWRlclNlcnZpY2UpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgY29ycmVjdCB7QGxpbmsgQWJzdHJhY3RIZWFkZXJTZXJ2aWNlfSBpbnN0YW5jZSB0byB0aGUge0BsaW5rIEhlYWRlclNlYXJjaFNlcnZpY2V9XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVkSGVhZGVyU2VhcmNoKCkge1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSBIZWFkZXJUeXBlLkNBU0UpIHtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclNlYXJjaCA9IHRoaXMuX2luamVjdG9yLmdldChIZWFkZXJTZWFyY2hTZXJ2aWNlKTtcbiAgICAgICAgICAgIHRoaXMuX2hlYWRlclNlYXJjaC5oZWFkZXJTZXJ2aWNlID0gdGhpcy5oZWFkZXJTZXJ2aWNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xpY2tTdG9wKCRldmVudCkge1xuICAgICAgICBzdG9wUHJvcGFnYXRpb24oJGV2ZW50KTtcbiAgICB9XG5cbiAgICBnZXRNaW5XaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLl9vdmVyZmxvd1NlcnZpY2UgJiYgdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZSkgPyBgJHt0aGlzLl9vdmVyZmxvd1NlcnZpY2UuY29sdW1uV2lkdGh9cHhgIDogJzAnO1xuICAgIH1cblxuICAgIGNvbmZpcm1FZGl0TW9kZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm92ZXJmbG93Q29udHJvbC52YWx1ZSB8fCAodGhpcy5vdmVyZmxvd0NvbnRyb2wudmFsdWUgJiYgdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsaWQgJiYgdGhpcy5jb2x1bW5XaWR0aENvbnRyb2wudmFsaWQpKSB7XG4gICAgICAgICAgICB0aGlzLmhlYWRlclNlcnZpY2UuY29uZmlybUVkaXRNb2RlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRFcnJvck1lc3NhZ2VXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnVpbGRFcnJvck1lc3NhZ2UodGhpcy5jb2x1bW5XaWR0aENvbnRyb2wsIDE4MCk7XG4gICAgfVxuXG4gICAgZ2V0RXJyb3JNZXNzYWdlQ291bnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkRXJyb3JNZXNzYWdlKHRoaXMuY29sdW1uQ291bnRDb250cm9sLCAxKTtcbiAgICB9XG5cbiAgICBidWlsZEVycm9yTWVzc2FnZShmb3JtQ29udHJvbFJlZjogRm9ybUNvbnRyb2wsIG1pbk51bWJlcikge1xuICAgICAgICBpZiAoZm9ybUNvbnRyb2xSZWYuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnZhbGlkYXRpb25zLnJlcXVpcmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGZvcm1Db250cm9sUmVmLmhhc0Vycm9yKCdtaW4nKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQudmFsaWRhdGlvbnMubWluJywge2xlbmd0aDogbWluTnVtYmVyfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplRm9ybUNvbnRyb2xzKGV4aXN0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY2FuT3ZlcmZsb3cgPSBleGlzdDtcbiAgICAgICAgdGhpcy5vdmVyZmxvd0NvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woZXhpc3QgPyB0aGlzLl9vdmVyZmxvd1NlcnZpY2Uub3ZlcmZsb3dNb2RlIDogZmFsc2UpO1xuICAgICAgICB0aGlzLmNvbHVtbkNvdW50Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChleGlzdCA/IHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5Db3VudCA6IHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigxKV0pO1xuICAgICAgICB0aGlzLmNvbHVtbldpZHRoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChleGlzdCA/IHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5XaWR0aCA6IHRoaXMuREVGQVVMVF9DT0xVTU5fV0lEVEgsIFtcbiAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigxODApXSk7XG5cbiAgICAgICAgaWYgKGV4aXN0KSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVWYWx1ZUNoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0aWFsaXplVmFsdWVDaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLnN1Yk92ZXJmbG93Q29udHJvbCA9IHRoaXMub3ZlcmZsb3dDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJDb2x1bW5Db3VudENvbnRyb2wgPSB0aGlzLmNvbHVtbkNvdW50Q29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbkNvdW50Q29udHJvbC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5Db3VudCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UgJiYgdGhpcy50eXBlID09PSBIZWFkZXJUeXBlLkNBU0UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLmhlYWRlckNvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmhlYWRlclNlcnZpY2UgYXMgQ2FzZUhlYWRlclNlcnZpY2UpLnVwZGF0ZUNvbHVtbkNvdW50KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJDb2x1bW5XaWR0aENvbnRyb2wgPSB0aGlzLmNvbHVtbldpZHRoQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbldpZHRoQ29udHJvbC52YWxpZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX292ZXJmbG93U2VydmljZS5jb2x1bW5XaWR0aCA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhlYWRlclNlcnZpY2UgJiYgdGhpcy50eXBlID09PSBIZWFkZXJUeXBlLkNBU0UpIHtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuaGVhZGVyU2VydmljZSBhcyBDYXNlSGVhZGVyU2VydmljZSkudXBkYXRlQ29sdW1uQ291bnQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -4,7 +4,7 @@ import * as i1 from "../../user/services/view-id.service";
4
4
  export class OverflowService {
5
5
  constructor(_viewIdService) {
6
6
  this._viewIdService = _viewIdService;
7
- this.DEFAULT_COLUMN_WIDTH = 190;
7
+ this.DEFAULT_COLUMN_WIDTH = 200;
8
8
  this.DEFAULT_COLUMN_COUNT = 6;
9
9
  this._initializedCount = false;
10
10
  this._overflowMode = this.initializeItem('overflowMode', false) === 'true';
@@ -90,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
90
90
  }], ctorParameters: function () { return [{ type: i1.ViewIdService, decorators: [{
91
91
  type: Optional
92
92
  }] }]; } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVVuRCxNQUFNLE9BQU8sZUFBZTtJQVV4QixZQUFnQyxjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVIxQyx5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDM0IseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBUXhDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFD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bnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdJZFNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIE92ZXJmbG93U3RhdGUge1xuICAgIG92ZXJmbG93TW9kZTogYm9vbGVhbjtcbiAgICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIGNvbHVtbkNvdW50OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd1NlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX1dJRFRIID0gMTkwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9DT1VOVCA9IDY7XG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3dNb2RlOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2NvbHVtbldpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29sdW1uQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zdGF0ZTogT3ZlcmZsb3dTdGF0ZTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZENvdW50OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSkge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuaW5pdGlhbGl6ZUl0ZW0oJ292ZXJmbG93TW9kZScsIGZhbHNlKSA9PT0gJ3RydWUnO1xuICAgICAgICB0aGlzLl9jb2x1bW5Db3VudCA9IHRoaXMuY2hlY2tJc05hbih0aGlzLmluaXRpYWxpemVJdGVtKCdjb2x1bW5Db3VudCcsIHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQpLCB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5UKTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLmNoZWNrSXNOYW4odGhpcy5pbml0aWFsaXplSXRlbSgnY29sdW1uV2lkdGgnLCB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIKSwgdGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSCk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJmbG93TW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93TW9kZTtcbiAgICB9XG5cbiAgICBzZXQgb3ZlcmZsb3dNb2RlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb2x1bW5XaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0IGNvbHVtbldpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkNvdW50O1xuICAgIH1cblxuICAgIHNldCBjb2x1bW5Db3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxpemVkQ291bnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZENvdW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXRlID0ge1xuICAgICAgICAgICAgb3ZlcmZsb3dNb2RlOiB0aGlzLl9vdmVyZmxvd01vZGUsXG4gICAgICAgICAgICBjb2x1bW5XaWR0aDogdGhpcy5fY29sdW1uV2lkdGgsXG4gICAgICAgICAgICBjb2x1bW5Db3VudDogdGhpcy5fY29sdW1uQ291bnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVOZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld0lkID0gdGhpcy5nZXRWaWV3SWQoKTtcbiAgICAgICAgaWYgKHZpZXdJZCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odmlld0lkICsgJy1vdmVyZmxvd01vZGUnLCB0aGlzLl9vdmVyZmxvd01vZGUgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbkNvdW50JywgdGhpcy5fY29sdW1uQ291bnQgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbldpZHRoJywgdGhpcy5fY29sdW1uV2lkdGggKyAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmVMYXN0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuX3N0YXRlLm92ZXJmbG93TW9kZTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLl9zdGF0ZS5jb2x1bW5XaWR0aDtcbiAgICAgICAgdGhpcy5fY29sdW1uQ291bnQgPSB0aGlzLl9zdGF0ZS5jb2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVJdGVtKGlkOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLmdldFZpZXdJZCgpO1xuICAgICAgICBpZiAoIXZpZXdJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh2aWV3SWQgKyAnLScgKyBpZCk7XG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoaWQuaW5jbHVkZXMoJ2NvbHVtbkNvdW50JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjaGVja0lzTmFuKGl0ZW0sIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNOYU4ocGFyc2VJbnQoaXRlbSwgMTApKSA/IGRlZmF1bHRWYWx1ZSA6IHBhcnNlSW50KGl0ZW0sIDEwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgSWQgb2YgdGhlIHZpZXcsIGlmIHRoZSBWaWV3SWRTZXJ2aWNlIHdhcyBpbmplY3RlZC4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgc2VydmljZSB3YXMgbm90IGluamVjdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRWaWV3SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdJZFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aWV3SWRTZXJ2aWNlLnZpZXdJZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3cuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvaGVhZGVyL3NlcnZpY2VzL292ZXJmbG93LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVVuRCxNQUFNLE9BQU8sZUFBZTtJQVV4QixZQUFnQyxjQUE2QjtRQUE3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQVIxQyx5QkFBb0IsR0FBRyxHQUFHLENBQUM7UUFDM0IseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBUXhDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsS0FBSyxNQUFNLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFD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bnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1ZpZXdJZFNlcnZpY2V9IGZyb20gJy4uLy4uL3VzZXIvc2VydmljZXMvdmlldy1pZC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIE92ZXJmbG93U3RhdGUge1xuICAgIG92ZXJmbG93TW9kZTogYm9vbGVhbjtcbiAgICBjb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIGNvbHVtbkNvdW50OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd1NlcnZpY2Uge1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfQ09MVU1OX1dJRFRIID0gMjAwO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBERUZBVUxUX0NPTFVNTl9DT1VOVCA9IDY7XG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3dNb2RlOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2NvbHVtbldpZHRoOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfY29sdW1uQ291bnQ6IG51bWJlcjtcbiAgICBwcml2YXRlIF9zdGF0ZTogT3ZlcmZsb3dTdGF0ZTtcbiAgICBwcml2YXRlIF9pbml0aWFsaXplZENvdW50OiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdmlld0lkU2VydmljZTogVmlld0lkU2VydmljZSkge1xuICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuaW5pdGlhbGl6ZUl0ZW0oJ292ZXJmbG93TW9kZScsIGZhbHNlKSA9PT0gJ3RydWUnO1xuICAgICAgICB0aGlzLl9jb2x1bW5Db3VudCA9IHRoaXMuY2hlY2tJc05hbih0aGlzLmluaXRpYWxpemVJdGVtKCdjb2x1bW5Db3VudCcsIHRoaXMuREVGQVVMVF9DT0xVTU5fQ09VTlQpLCB0aGlzLkRFRkFVTFRfQ09MVU1OX0NPVU5UKTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLmNoZWNrSXNOYW4odGhpcy5pbml0aWFsaXplSXRlbSgnY29sdW1uV2lkdGgnLCB0aGlzLkRFRkFVTFRfQ09MVU1OX1dJRFRIKSwgdGhpcy5ERUZBVUxUX0NPTFVNTl9XSURUSCk7XG4gICAgfVxuXG4gICAgZ2V0IG92ZXJmbG93TW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX292ZXJmbG93TW9kZTtcbiAgICB9XG5cbiAgICBzZXQgb3ZlcmZsb3dNb2RlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBjb2x1bW5XaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1uV2lkdGg7XG4gICAgfVxuXG4gICAgc2V0IGNvbHVtbldpZHRoKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgY29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbkNvdW50O1xuICAgIH1cblxuICAgIHNldCBjb2x1bW5Db3VudCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2NvbHVtbkNvdW50ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxpemVkQ291bnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbml0aWFsaXplZENvdW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzYXZlU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXRlID0ge1xuICAgICAgICAgICAgb3ZlcmZsb3dNb2RlOiB0aGlzLl9vdmVyZmxvd01vZGUsXG4gICAgICAgICAgICBjb2x1bW5XaWR0aDogdGhpcy5fY29sdW1uV2lkdGgsXG4gICAgICAgICAgICBjb2x1bW5Db3VudDogdGhpcy5fY29sdW1uQ291bnQsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHVibGljIHNhdmVOZXdTdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld0lkID0gdGhpcy5nZXRWaWV3SWQoKTtcbiAgICAgICAgaWYgKHZpZXdJZCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odmlld0lkICsgJy1vdmVyZmxvd01vZGUnLCB0aGlzLl9vdmVyZmxvd01vZGUgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbkNvdW50JywgdGhpcy5fY29sdW1uQ291bnQgKyAnJyk7XG4gICAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh2aWV3SWQgKyAnLWNvbHVtbldpZHRoJywgdGhpcy5fY29sdW1uV2lkdGggKyAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc3RvcmVMYXN0U3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX292ZXJmbG93TW9kZSA9IHRoaXMuX3N0YXRlLm92ZXJmbG93TW9kZTtcbiAgICAgICAgdGhpcy5fY29sdW1uV2lkdGggPSB0aGlzLl9zdGF0ZS5jb2x1bW5XaWR0aDtcbiAgICAgICAgdGhpcy5fY29sdW1uQ291bnQgPSB0aGlzLl9zdGF0ZS5jb2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRpYWxpemVJdGVtKGlkOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICBjb25zdCB2aWV3SWQgPSB0aGlzLmdldFZpZXdJZCgpO1xuICAgICAgICBpZiAoIXZpZXdJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW0gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh2aWV3SWQgKyAnLScgKyBpZCk7XG4gICAgICAgIGlmIChpdGVtICE9PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoaWQuaW5jbHVkZXMoJ2NvbHVtbkNvdW50JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplZENvdW50ID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjaGVja0lzTmFuKGl0ZW0sIGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gaXNOYU4ocGFyc2VJbnQoaXRlbSwgMTApKSA/IGRlZmF1bHRWYWx1ZSA6IHBhcnNlSW50KGl0ZW0sIDEwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB0aGUgSWQgb2YgdGhlIHZpZXcsIGlmIHRoZSBWaWV3SWRTZXJ2aWNlIHdhcyBpbmplY3RlZC4gUmV0dXJucyBgdW5kZWZpbmVkYCBpZiB0aGUgc2VydmljZSB3YXMgbm90IGluamVjdGVkLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBnZXRWaWV3SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKHRoaXMuX3ZpZXdJZFNlcnZpY2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl92aWV3SWRTZXJ2aWNlLnZpZXdJZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,10 +1,20 @@
1
- import { Component } from '@angular/core';
1
+ import { Component, Optional } from '@angular/core';
2
2
  import { HeaderColumnType } from '../../header/models/header-column';
3
3
  import * as i0 from "@angular/core";
4
+ import * as i1 from "../../header/services/overflow.service";
4
5
  export class AbstractPanelWithHeaderBindingComponent {
5
- constructor() {
6
+ constructor(_overflowService) {
7
+ this._overflowService = _overflowService;
6
8
  this.featuredFieldsValues = [];
7
9
  }
10
+ get overflowMode() {
11
+ if (!!this._overflowService) {
12
+ return this._overflowService.overflowMode;
13
+ }
14
+ else {
15
+ return false;
16
+ }
17
+ }
8
18
  ngOnInit() {
9
19
  this.sub = this.selectedHeaders$.subscribe(newSelectedHeaders => {
10
20
  this._lastSelectedHeaders = newSelectedHeaders;
@@ -43,7 +53,7 @@ export class AbstractPanelWithHeaderBindingComponent {
43
53
  return { value: '', icon: '', type: '' };
44
54
  }
45
55
  }
46
- AbstractPanelWithHeaderBindingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractPanelWithHeaderBindingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
+ AbstractPanelWithHeaderBindingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractPanelWithHeaderBindingComponent, deps: [{ token: i1.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
47
57
  AbstractPanelWithHeaderBindingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractPanelWithHeaderBindingComponent, selector: "ncc-abstract-panel-with-header-binding", ngImport: i0, template: '', isInline: true });
48
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractPanelWithHeaderBindingComponent, decorators: [{
49
59
  type: Component,
@@ -51,5 +61,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
51
61
  selector: 'ncc-abstract-panel-with-header-binding',
52
62
  template: ''
53
63
  }]
54
- }], ctorParameters: function () { return []; } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtd2l0aC1oZWFkZXItYmluZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvcGFuZWwvYWJzdHJhY3QvcGFuZWwtd2l0aC1oZWFkZXItYmluZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQWUsZ0JBQWdCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFPakYsTUFBTSxPQUFnQix1Q0FBdUM7SUFPekQ7UUFKTyx5QkFBb0IsR0FBeUIsRUFBRSxDQUFDO0lBS3ZELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDNUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDO1lBQy9DLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxxQkFBcUIsQ0FBQyxLQUFpQjtRQUMxQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUM1QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRVMsMkJBQTJCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDNUIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQzFCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBZ0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdkYsQ0FBQztJQUNOLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxjQUE0QjtRQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pCLE9BQU8sRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRTtZQUMvQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNwRDtRQUNELElBQUksY0FBYyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUU7WUFDcEQsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUMzQyxDQUFDOztxSUFyRGlCLHVDQUF1Qzt5SEFBdkMsdUNBQXVDLDhFQUYvQyxFQUFFOzRGQUVNLHVDQUF1QztrQkFKNUQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsd0NBQXdDO29CQUNsRCxRQUFRLEVBQUUsRUFBRTtpQkFDZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0hlYWRlckNvbHVtbiwgSGVhZGVyQ29sdW1uVHlwZX0gZnJvbSAnLi4vLi4vaGVhZGVyL21vZGVscy9oZWFkZXItY29sdW1uJztcbmltcG9ydCB7RmVhdHVyZWRWYWx1ZX0gZnJvbSAnLi9mZWF0dXJlZC12YWx1ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LXBhbmVsLXdpdGgtaGVhZGVyLWJpbmRpbmcnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFBhbmVsV2l0aEhlYWRlckJpbmRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHNlbGVjdGVkSGVhZGVycyQ6IE9ic2VydmFibGU8QXJyYXk8SGVhZGVyQ29sdW1uPj47XG4gICAgcHVibGljIGZpcnN0RmVhdHVyZWRWYWx1ZTogc3RyaW5nO1xuICAgIHB1YmxpYyBmZWF0dXJlZEZpZWxkc1ZhbHVlczogQXJyYXk8RmVhdHVyZWRWYWx1ZT4gPSBbXTtcbiAgICBwcm90ZWN0ZWQgX2xhc3RTZWxlY3RlZEhlYWRlcnM6IEFycmF5PEhlYWRlckNvbHVtbj47XG4gICAgcHJvdGVjdGVkIHN1YjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YiA9IHRoaXMuc2VsZWN0ZWRIZWFkZXJzJC5zdWJzY3JpYmUobmV3U2VsZWN0ZWRIZWFkZXJzID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnMgPSBuZXdTZWxlY3RlZEhlYWRlcnM7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVGZWF0dXJlZEZpZWxkc1ZhbHVlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgZXZlbnQgd2FzIGNhdXNlIGJ5IHNlbGVjdGluZyBzb21lIHRleHQsIGl0IHdpbGwgbm90IHByb3BhZ2F0ZVxuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBwcmV2ZW50U2VsZWN0aW9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LnZpZXcuZ2V0U2VsZWN0aW9uKCkudHlwZSA9PT0gJ1JhbmdlJykge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUZlYXR1cmVkRmllbGRzVmFsdWVzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmVhdHVyZWRGaWVsZHNWYWx1ZXMuc3BsaWNlKDAsIHRoaXMuZmVhdHVyZWRGaWVsZHNWYWx1ZXMubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5mZWF0dXJlZEZpZWxkc1ZhbHVlcy5wdXNoKFxuICAgICAgICAgICAgLi4udGhpcy5fbGFzdFNlbGVjdGVkSGVhZGVycy5tYXA8RmVhdHVyZWRWYWx1ZT4oaXRlbSA9PiB0aGlzLmdldEZlYXR1cmVkVmFsdWUoaXRlbSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZlYXR1cmVkVmFsdWUoc2VsZWN0ZWRIZWFkZXI6IEhlYWRlckNvbHVtbik6IEZlYXR1cmVkVmFsdWUge1xuICAgICAgICBpZiAoIXNlbGVjdGVkSGVhZGVyKSB7XG4gICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiAnJywgaWNvbjogJycsIHR5cGU6ICcnfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VsZWN0ZWRIZWFkZXIudHlwZSA9PT0gSGVhZGVyQ29sdW1uVHlwZS5NRVRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGZWF0dXJlZE1ldGFWYWx1ZShzZWxlY3RlZEhlYWRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkSGVhZGVyLnR5cGUgPT09IEhlYWRlckNvbHVtblR5cGUuSU1NRURJQVRFKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGZWF0dXJlZEltbWVkaWF0ZVZhbHVlKHNlbGVjdGVkSGVhZGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge3ZhbHVlOiAnJywgaWNvbjogJycsIHR5cGU6ICcnfTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RmVhdHVyZWRNZXRhVmFsdWUoc2VsZWN0ZWRIZWFkZXI6IEhlYWRlckNvbHVtbik6IEZlYXR1cmVkVmFsdWU7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RmVhdHVyZWRJbW1lZGlhdGVWYWx1ZShzZWxlY3RlZEhlYWRlcjogSGVhZGVyQ29sdW1uKTogRmVhdHVyZWRWYWx1ZTtcbn1cbiJdfQ==
64
+ }], ctorParameters: function () { return [{ type: i1.OverflowService, decorators: [{
65
+ type: Optional
66
+ }] }]; } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtd2l0aC1oZWFkZXItYmluZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvcGFuZWwvYWJzdHJhY3QvcGFuZWwtd2l0aC1oZWFkZXItYmluZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFxQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFlLGdCQUFnQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7OztBQVFqRixNQUFNLE9BQWdCLHVDQUF1QztJQU96RCxZQUE0QyxnQkFBaUM7UUFBakMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUp0RSx5QkFBb0IsR0FBeUIsRUFBRSxDQUFDO0lBS3ZELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixJQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1NBQzdDO2FBQU07WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDNUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGtCQUFrQixDQUFDO1lBQy9DLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxxQkFBcUIsQ0FBQyxLQUFpQjtRQUMxQyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUM1QyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRVMsMkJBQTJCO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDNUIsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQzFCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBZ0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDdkYsQ0FBQztJQUNOLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxjQUE0QjtRQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pCLE9BQU8sRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBQyxDQUFDO1NBQzFDO1FBQ0QsSUFBSSxjQUFjLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRTtZQUMvQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNwRDtRQUNELElBQUksY0FBYyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUU7WUFDcEQsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDekQ7UUFDRCxPQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQztJQUMzQyxDQUFDOztxSUE3RGlCLHVDQUF1Qzt5SEFBdkMsdUNBQXVDLDhFQUYvQyxFQUFFOzRGQUVNLHVDQUF1QztrQkFKNUQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsd0NBQXdDO29CQUNsRCxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBUTBCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7SGVhZGVyQ29sdW1uLCBIZWFkZXJDb2x1bW5UeXBlfSBmcm9tICcuLi8uLi9oZWFkZXIvbW9kZWxzL2hlYWRlci1jb2x1bW4nO1xuaW1wb3J0IHtGZWF0dXJlZFZhbHVlfSBmcm9tICcuL2ZlYXR1cmVkLXZhbHVlJztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuLi8uLi9oZWFkZXIvc2VydmljZXMvb3ZlcmZsb3cuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LXBhbmVsLXdpdGgtaGVhZGVyLWJpbmRpbmcnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFBhbmVsV2l0aEhlYWRlckJpbmRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHNlbGVjdGVkSGVhZGVycyQ6IE9ic2VydmFibGU8QXJyYXk8SGVhZGVyQ29sdW1uPj47XG4gICAgcHVibGljIGZpcnN0RmVhdHVyZWRWYWx1ZTogc3RyaW5nO1xuICAgIHB1YmxpYyBmZWF0dXJlZEZpZWxkc1ZhbHVlczogQXJyYXk8RmVhdHVyZWRWYWx1ZT4gPSBbXTtcbiAgICBwcm90ZWN0ZWQgX2xhc3RTZWxlY3RlZEhlYWRlcnM6IEFycmF5PEhlYWRlckNvbHVtbj47XG4gICAgcHJvdGVjdGVkIHN1YjogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByb3RlY3RlZCBfb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UpIHtcbiAgICB9XG5cbiAgICBnZXQgb3ZlcmZsb3dNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZighIXRoaXMuX292ZXJmbG93U2VydmljZSl7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmZsb3dTZXJ2aWNlLm92ZXJmbG93TW9kZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YiA9IHRoaXMuc2VsZWN0ZWRIZWFkZXJzJC5zdWJzY3JpYmUobmV3U2VsZWN0ZWRIZWFkZXJzID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnMgPSBuZXdTZWxlY3RlZEhlYWRlcnM7XG4gICAgICAgICAgICB0aGlzLnJlc29sdmVGZWF0dXJlZEZpZWxkc1ZhbHVlcygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgZXZlbnQgd2FzIGNhdXNlIGJ5IHNlbGVjdGluZyBzb21lIHRleHQsIGl0IHdpbGwgbm90IHByb3BhZ2F0ZVxuICAgICAqIEBwYXJhbSBldmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBwcmV2ZW50U2VsZWN0aW9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LnZpZXcuZ2V0U2VsZWN0aW9uKCkudHlwZSA9PT0gJ1JhbmdlJykge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUZlYXR1cmVkRmllbGRzVmFsdWVzKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2xhc3RTZWxlY3RlZEhlYWRlcnMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmVhdHVyZWRGaWVsZHNWYWx1ZXMuc3BsaWNlKDAsIHRoaXMuZmVhdHVyZWRGaWVsZHNWYWx1ZXMubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5mZWF0dXJlZEZpZWxkc1ZhbHVlcy5wdXNoKFxuICAgICAgICAgICAgLi4udGhpcy5fbGFzdFNlbGVjdGVkSGVhZGVycy5tYXA8RmVhdHVyZWRWYWx1ZT4oaXRlbSA9PiB0aGlzLmdldEZlYXR1cmVkVmFsdWUoaXRlbSkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZlYXR1cmVkVmFsdWUoc2VsZWN0ZWRIZWFkZXI6IEhlYWRlckNvbHVtbik6IEZlYXR1cmVkVmFsdWUge1xuICAgICAgICBpZiAoIXNlbGVjdGVkSGVhZGVyKSB7XG4gICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiAnJywgaWNvbjogJycsIHR5cGU6ICcnfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2VsZWN0ZWRIZWFkZXIudHlwZSA9PT0gSGVhZGVyQ29sdW1uVHlwZS5NRVRBKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGZWF0dXJlZE1ldGFWYWx1ZShzZWxlY3RlZEhlYWRlcik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHNlbGVjdGVkSGVhZGVyLnR5cGUgPT09IEhlYWRlckNvbHVtblR5cGUuSU1NRURJQVRFKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRGZWF0dXJlZEltbWVkaWF0ZVZhbHVlKHNlbGVjdGVkSGVhZGVyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge3ZhbHVlOiAnJywgaWNvbjogJycsIHR5cGU6ICcnfTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RmVhdHVyZWRNZXRhVmFsdWUoc2VsZWN0ZWRIZWFkZXI6IEhlYWRlckNvbHVtbik6IEZlYXR1cmVkVmFsdWU7XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0RmVhdHVyZWRJbW1lZGlhdGVWYWx1ZShzZWxlY3RlZEhlYWRlcjogSGVhZGVyQ29sdW1uKTogRmVhdHVyZWRWYWx1ZTtcbn1cbiJdfQ==
@@ -1,21 +1,18 @@
1
1
  import { AbstractPanelWithHeaderBindingComponent } from './panel-with-header-binding';
2
2
  import { toMoment } from '../../resources/types/nae-date-type';
3
3
  import { DATE_FORMAT_STRING, DATE_TIME_FORMAT_STRING } from '../../moment/time-formats';
4
- import { Component } from '@angular/core';
4
+ import { Component, Optional } from '@angular/core';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@ngx-translate/core";
7
7
  import * as i2 from "@angular/common";
8
8
  import * as i3 from "../../header/services/overflow.service";
9
9
  export class AbstractPanelWithImmediateDataComponent extends AbstractPanelWithHeaderBindingComponent {
10
10
  constructor(_translate, _currencyPipe, _overflowService) {
11
- super();
11
+ super(_overflowService);
12
12
  this._translate = _translate;
13
13
  this._currencyPipe = _currencyPipe;
14
14
  this._overflowService = _overflowService;
15
15
  }
16
- get overflowMode() {
17
- return this._overflowService.overflowMode;
18
- }
19
16
  ngOnDestroy() {
20
17
  super.ngOnDestroy();
21
18
  }
@@ -100,7 +97,7 @@ export class AbstractPanelWithImmediateDataComponent extends AbstractPanelWithHe
100
97
  };
101
98
  }
102
99
  }
103
- AbstractPanelWithImmediateDataComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractPanelWithImmediateDataComponent, deps: [{ token: i1.TranslateService }, { token: i2.CurrencyPipe }, { token: i3.OverflowService }], target: i0.ɵɵFactoryTarget.Component });
100
+ AbstractPanelWithImmediateDataComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractPanelWithImmediateDataComponent, deps: [{ token: i1.TranslateService }, { token: i2.CurrencyPipe }, { token: i3.OverflowService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
104
101
  AbstractPanelWithImmediateDataComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractPanelWithImmediateDataComponent, selector: "ncc-abstract-panel-with-immediate", usesInheritance: true, ngImport: i0, template: '', isInline: true });
105
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractPanelWithImmediateDataComponent, decorators: [{
106
103
  type: Component,
@@ -108,5 +105,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
108
105
  selector: 'ncc-abstract-panel-with-immediate',
109
106
  template: ''
110
107
  }]
111
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.CurrencyPipe }, { type: i3.OverflowService }]; } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtd2l0aC1pbW1lZGlhdGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvcGFuZWwvYWJzdHJhY3QvcGFuZWwtd2l0aC1pbW1lZGlhdGUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRixPQUFPLEVBQVUsUUFBUSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFdEYsT0FBTyxFQUFDLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFVbkQsTUFBTSxPQUFnQix1Q0FBd0MsU0FBUSx1Q0FBdUM7SUFDekcsWUFBZ0MsVUFBNEIsRUFDNUIsYUFBMkIsRUFDM0IsZ0JBQWlDO1FBQzdELEtBQUssRUFBRSxDQUFDO1FBSG9CLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7SUFFakUsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQztJQUM5QyxDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVMsbUJBQW1CLENBQUMsU0FBd0I7UUFDbEQsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3hGLFFBQVEsU0FBUyxDQUFDLElBQUksRUFBRTtnQkFDcEIsS0FBSyxNQUFNO29CQUNQLE9BQU87d0JBQ0gsS0FBSyxFQUFF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RSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2pIO29CQUNELE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFDLENBQUM7Z0JBQzNFO29CQUNJLE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFDLENBQUM7YUFDOUU7U0FDSjthQUFNO1lBQ0gsT0FBTyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBRVMsa0JBQWtCLENBQUMsS0FBVSxFQUFFLElBQVksRUFBRSxRQUFnQixFQUFFLE1BQWMsRUFBRSxJQUFZO1FBQ2pHLE9BQU87WUFDSCxLQUFLLEVBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQ3hCLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFDakIsSUFBSSxFQUNKLFFBQVEsRUFDUixJQUFJLEdBQUcsUUFBUSxHQUFHLEdBQUcsR0FBRyxRQUFRLEVBQ2hDLE1BQU0sQ0FBQztZQUNmLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSTtTQUN4QixDQUFDO0lBQ04sQ0FBQzs7cUlBdEdpQix1Q0FBdUM7eUhBQXZDLHVDQUF1QyxnR0FGL0MsRUFBRTs0RkFFTSx1Q0FBdUM7a0JBSjVELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1DQUFtQztvQkFDN0MsUUFBUSxFQUFFLEVBQUU7aUJBQ2YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0UGFuZWxXaXRoSGVhZGVyQmluZGluZ0NvbXBvbmVudH0gZnJvbSAnLi9wYW5lbC13aXRoLWhlYWRlci1iaW5kaW5nJztcbmltcG9ydCB7TmFlRGF0ZSwgdG9Nb21lbnR9IGZyb20gJy4uLy4uL3Jlc291cmNlcy90eXBlcy9uYWUtZGF0ZS10eXBlJztcbmltcG9ydCB7REFURV9GT1JNQVRfU1RSSU5HLCBEQVRFX1RJTUVfRk9STUFUX1NUUklOR30gZnJvbSAnLi4vLi4vbW9tZW50L3RpbWUtZm9ybWF0cyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZlYXR1cmVkVmFsdWV9IGZyb20gJy4vZmVhdHVyZWQtdmFsdWUnO1xuaW1wb3J0IHtDdXJyZW5jeVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0ltbWVkaWF0ZURhdGF9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvaW1tZWRpYXRlLWRhdGEnO1xuaW1wb3J0IHtPdmVyZmxvd1NlcnZpY2V9IGZyb20gJy4uLy4uL2hlYWRlci9zZXJ2aWNlcy9vdmVyZmxvdy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduY2MtYWJzdHJhY3QtcGFuZWwtd2l0aC1pbW1lZGlhdGUnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFBhbmVsV2l0aEltbWVkaWF0ZURhdGFDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFBhbmVsV2l0aEhlYWRlckJpbmRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9vdmVyZmxvd1NlcnZpY2U6IE92ZXJmbG93U2VydmljZSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGdldCBvdmVyZmxvd01vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVyZmxvd1NlcnZpY2Uub3ZlcmZsb3dNb2RlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBwYXJzZUltbWVkaWF0ZVZhbHVlKGltbWVkaWF0ZTogSW1tZWRpYXRlRGF0YSk6IEZlYXR1cmVkVmFsdWUge1xuICAgICAgICBpZiAoaW1tZWRpYXRlICYmIGltbWVkaWF0ZS52YWx1ZSAhPT0gdW5kZWZpbmVkIHx8IGltbWVkaWF0ZSAmJiBpbW1lZGlhdGUudHlwZSA9PT0gJ2J1dHRvbicpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoaW1tZWRpYXRlLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0b01vbWVudChpbW1lZGlhdGUudmFsdWUgYXMgTmFlRGF0ZSkuZm9ybWF0KERBVEVfRk9STUFUX1NUUklORyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXZlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW1tZWRpYXRlLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdG9Nb21lbnQoaW1tZWRpYXRlLnZhbHVlIGFzIE5hZURhdGUpLmZvcm1hdChEQVRFX1RJTUVfRk9STUFUX1NUUklORyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnZXZlbnQnLCB0eXBlOiBpbW1lZGlhdGUudHlwZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2VudW1lcmF0aW9uJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogaW1tZWRpYXRlLnZhbHVlLmRlZmF1bHRWYWx1ZSwgaWNvbjogdW5kZWZpbmVkLCB0eXBlOiBpbW1lZGlhdGUudHlwZX07XG4gICAgICAgICAgICAgICAgY2FzZSAnbXVsdGljaG9pY2UnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGltbWVkaWF0ZS52YWx1ZS5tYXAoaXQgPT4gaXQuZGVmYXVsdFZhbHVlKS5qb2luKCcsICcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW1tZWRpYXRlLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYXNlICdlbnVtZXJhdGlvbl9tYXAnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGltbWVkaWF0ZS5vcHRpb25zW2ltbWVkaWF0ZS52YWx1ZV0uZGVmYXVsdFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW1tZWRpYXRlLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYXNlICdtdWx0aWNob2ljZV9tYXAnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGltbWVkaWF0ZS52YWx1ZS5tYXAoaXQgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1lZGlhdGUub3B0aW9uc1tpdF0uZGVmYXVsdFZhbHVlKS5qb2luKCcsICcpLCBpY29uOiB1bmRlZmluZWQsIHR5cGU6IGltbWVkaWF0ZS50eXBlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IGltbWVkaWF0ZS52YWx1ZT8ubmFtZSwgaWNvbjogJ2luc2VydF9kcml2ZV9maWxlJywgdHlwZTogaW1tZWRpYXRlLnR5cGV9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbGVMaXN0JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpbW1lZGlhdGUudmFsdWU/Lm5hbWVzUGF0aHMubWFwKG9iaiA9PiBvYmoubmFtZSkuam9pbignLCAnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdmaWxlX2NvcHknLCB0eXBlOiBpbW1lZGlhdGUudHlwZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiBpbW1lZGlhdGUudmFsdWUuZnVsbE5hbWUsIGljb246ICdhY2NvdW50X2NpcmNsZScsIHR5cGU6IGltbWVkaWF0ZS50eXBlfTtcbiAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnZhbHVlcy5ib29sZWFuLicgKyBpbW1lZGlhdGUudmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogdW5kZWZpbmVkLCB0eXBlOiBpbW1lZGlhdGUudHlwZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2J1dHRvbic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogKGltbWVkaWF0ZSBhcyBhbnkpLnBsYWNlaG9sZGVyICYmIChpbW1lZGlhdGUgYXMgYW55KS5wbGFjZWhvbGRlci5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gKGltbWVkaWF0ZSBhcyBhbnkpLnBsYWNlaG9sZGVyLmRlZmF1bHRWYWx1ZSA6IChpbW1lZGlhdGUubmFtZSAmJiBpbW1lZGlhdGUubmFtZS5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGltbWVkaWF0ZS5uYW1lLmRlZmF1bHRWYWx1ZSA6IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkaWFsb2cuc3VibWl0JykpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogdW5kZWZpbmVkLCB0eXBlOiBpbW1lZGlhdGUudHlwZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2ZpbHRlcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdW5kZWZpbmVkLCBpY29uOiB1bmRlZmluZWQsIHR5cGU6IGltbWVkaWF0ZS50eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyTWV0YWRhdGE6IHtmaWx0ZXJNZXRhZGF0YTogaW1tZWRpYXRlLmZpbHRlck1ldGFkYXRhLCBhbGxvd2VkTmV0czogaW1tZWRpYXRlLmFsbG93ZWROZXRzfVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbW1lZGlhdGUuZm9ybWF0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEN1cnJlbmN5UGlwZShpbW1lZGlhdGUudmFsdWUsIGltbWVkaWF0ZS5mb3JtYXQuY29kZSwgaW1tZWRpYXRlLmZvcm1hdC5mcmFjdGlvblNpemUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1tZWRpYXRlLmZvcm1hdC5sb2NhbGUsIGltbWVkaWF0ZS50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbW1lZGlhdGUuY29tcG9uZW50Py5uYW1lID09PSAnY3VycmVuY3knKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRDdXJyZW5jeVBpcGUoaW1tZWRpYXRlLnZhbHVlLCBpbW1lZGlhdGUuY29tcG9uZW50LnByb3BlcnRpZXNbJ2NvZGUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1lZGlhdGUuY29tcG9uZW50LnByb3BlcnRpZXNbJ2ZyYWN0aW9uU2l6ZSddLCBpbW1lZGlhdGUuY29tcG9uZW50LnByb3BlcnRpZXNbJ2xvY2FsZSddLCBpbW1lZGlhdGUudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogaW1tZWRpYXRlLnZhbHVlLCBpY29uOiB1bmRlZmluZWQsIHR5cGU6IGltbWVkaWF0ZS50eXBlfTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiBpbW1lZGlhdGUudmFsdWUsIGljb246IHVuZGVmaW5lZCwgdHlwZTogaW1tZWRpYXRlLnR5cGV9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogJycsIGljb246ICcnLCB0eXBlOiAnJ307XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZm9ybWF0Q3VycmVuY3lQaXBlKHZhbHVlOiBhbnksIGNvZGU6IHN0cmluZywgZnJhY3Rpb246IG51bWJlciwgbG9jYWxlOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdmFsdWU6XG4gICAgICAgICAgICAgICAgdGhpcy5fY3VycmVuY3lQaXBlLnRyYW5zZm9ybShcbiAgICAgICAgICAgICAgICAgICAgcGFyc2VGbG9hdCh2YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgIGNvZGUsXG4gICAgICAgICAgICAgICAgICAgICdzeW1ib2wnLFxuICAgICAgICAgICAgICAgICAgICAnMS4nICsgZnJhY3Rpb24gKyAnLScgKyBmcmFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlKSxcbiAgICAgICAgICAgIGljb246IHVuZGVmaW5lZCwgdHlwZVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
108
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.CurrencyPipe }, { type: i3.OverflowService, decorators: [{
109
+ type: Optional
110
+ }] }]; } });
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtd2l0aC1pbW1lZGlhdGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvcGFuZWwvYWJzdHJhY3QvcGFuZWwtd2l0aC1pbW1lZGlhdGUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUNBQXVDLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRixPQUFPLEVBQVUsUUFBUSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGtCQUFrQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFdEYsT0FBTyxFQUFDLFNBQVMsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBVTdELE1BQU0sT0FBZ0IsdUNBQXdDLFNBQVEsdUNBQXVDO0lBQ3pHLFlBQWdDLFVBQTRCLEVBQzVCLGFBQTJCLEVBQ2YsZ0JBQWlDO1FBQ3pFLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBSEksZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFDZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO0lBRTdFLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxTQUF3QjtRQUNsRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDeEYsUUFBUSxTQUFTLENBQUMsSUFBSSxFQUFFO2dCQUNwQixLQUFLLE1BQU07b0JBQ1AsT0FBTzt3QkFDSCxLQUFLLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDO3dCQUN0RSxJQUFJLEVBQUUsT0FBTzt3QkFDYixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7cUJBQ3ZCLENBQUM7Z0JBQ04sS0FBSyxVQUFVO29CQUNYLE9BQU87d0JBQ0gsS0FBSyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBZ0IsQ0FBQyxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQzt3QkFDM0UsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7cUJBQ3RDLENBQUM7Z0JBQ04sS0FBSyxhQUFhO29CQUNkLE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBQyxDQUFDO2dCQUN4RixLQUFLLGFBQWE7b0JBQ2QsT0FBTzt3QkFDSCxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDNUQsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO3FCQUN2QixDQUFDO2dCQUNOLEtBQUssaUJBQWlCO29CQUNsQixPQUFPO3dCQUNILEtBQUssRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZO3dCQUN0RCxJQUFJLEVBQUUsU0FBUzt3QkFDZixJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7cUJBQ3ZCLENBQUM7Z0JBQ04sS0FBSyxpQkFBaUI7b0JBQ2xCLE9BQU87d0JBQ0gsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQzVCLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO3FCQUM1RixDQUFDO2dCQUNOLEtBQUssTUFBTTtvQkFDUCxPQUFPLEVBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBQyxDQUFDO2dCQUMzRixLQUFLLFVBQVU7b0JBQ1gsT0FBTzt3QkFDSCxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ2xFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO3FCQUMxQyxDQUFDO2dCQUNOLEtBQUssTUFBTTtvQkFDUCxPQUFPLEVBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBQyxDQUFDO2dCQUMzRixLQUFLLFNBQVM7b0JBQ1YsT0FBTzt3QkFDSCxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQzt3QkFDN0UsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7cUJBQ3hDLENBQUM7Z0JBQ04sS0FBSyxRQUFRO29CQUNULE9BQU87d0JBQ0gsS0FBSyxFQUFHLFNBQWlCLENBQUMsV0FBVyxJQUFLLFNBQWlCLENBQUMsV0FBVyxDQUFDLFlBQVksS0FBSyxTQUFTOzRCQUM5RixDQUFDLENBQUUsU0FBaUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUzs0QkFDeEcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQzt3QkFDakYsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLElBQUk7cUJBQ3hDLENBQUM7Z0JBQ04sS0FBSyxRQUFRO29CQUNULE9BQU87d0JBQ0gsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTt3QkFDdkQsY0FBYyxFQUFFLEVBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUM7cUJBQ2pHLENBQUM7Z0JBQ04sS0FBSyxRQUFRO29CQUNULElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUU7d0JBQ2hDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQ2hHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDaEQ7eUJBQU0sSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksS0FBSyxVQUFVLEVBQUU7d0JBQ2pELE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQ2xGLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDakg7b0JBQ0QsT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUMsQ0FBQztnQkFDM0U7b0JBQ0ksT0FBTyxFQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUMsQ0FBQzthQUM5RTtTQUNKO2FBQU07WUFDSCxPQUFPLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxLQUFVLEVBQUUsSUFBWSxFQUFFLFFBQWdCLEVBQUUsTUFBYyxFQUFFLElBQVk7UUFDakcsT0FBTztZQUNILEtBQUssRUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FDeEIsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUNqQixJQUFJLEVBQ0osUUFBUSxFQUNSLElBQUksR0FBRyxRQUFRLEdBQUcsR0FBRyxHQUFHLFFBQVEsRUFDaEMsTUFBTSxDQUFDO1lBQ2YsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJO1NBQ3hCLENBQUM7SUFDTixDQUFDOztxSUFsR2lCLHVDQUF1Qzt5SEFBdkMsdUNBQXVDLGdHQUYvQyxFQUFFOzRGQUVNLHVDQUF1QztrQkFKNUQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUNBQW1DO29CQUM3QyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBSTBCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fic3RyYWN0UGFuZWxXaXRoSGVhZGVyQmluZGluZ0NvbXBvbmVudH0gZnJvbSAnLi9wYW5lbC13aXRoLWhlYWRlci1iaW5kaW5nJztcbmltcG9ydCB7TmFlRGF0ZSwgdG9Nb21lbnR9IGZyb20gJy4uLy4uL3Jlc291cmNlcy90eXBlcy9uYWUtZGF0ZS10eXBlJztcbmltcG9ydCB7REFURV9GT1JNQVRfU1RSSU5HLCBEQVRFX1RJTUVfRk9STUFUX1NUUklOR30gZnJvbSAnLi4vLi4vbW9tZW50L3RpbWUtZm9ybWF0cyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGZWF0dXJlZFZhbHVlfSBmcm9tICcuL2ZlYXR1cmVkLXZhbHVlJztcbmltcG9ydCB7Q3VycmVuY3lQaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtJbW1lZGlhdGVEYXRhfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2ltbWVkaWF0ZS1kYXRhJztcbmltcG9ydCB7T3ZlcmZsb3dTZXJ2aWNlfSBmcm9tICcuLi8uLi9oZWFkZXIvc2VydmljZXMvb3ZlcmZsb3cuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmNjLWFic3RyYWN0LXBhbmVsLXdpdGgtaW1tZWRpYXRlJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RQYW5lbFdpdGhJbW1lZGlhdGVEYXRhQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RQYW5lbFdpdGhIZWFkZXJCaW5kaW5nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY3VycmVuY3lQaXBlOiBDdXJyZW5jeVBpcGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfb3ZlcmZsb3dTZXJ2aWNlOiBPdmVyZmxvd1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoX292ZXJmbG93U2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHBhcnNlSW1tZWRpYXRlVmFsdWUoaW1tZWRpYXRlOiBJbW1lZGlhdGVEYXRhKTogRmVhdHVyZWRWYWx1ZSB7XG4gICAgICAgIGlmIChpbW1lZGlhdGUgJiYgaW1tZWRpYXRlLnZhbHVlICE9PSB1bmRlZmluZWQgfHwgaW1tZWRpYXRlICYmIGltbWVkaWF0ZS50eXBlID09PSAnYnV0dG9uJykge1xuICAgICAgICAgICAgc3dpdGNoIChpbW1lZGlhdGUudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRvTW9tZW50KGltbWVkaWF0ZS52YWx1ZSBhcyBOYWVEYXRlKS5mb3JtYXQoREFURV9GT1JNQVRfU1RSSU5HKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdldmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbW1lZGlhdGUudHlwZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0b01vbWVudChpbW1lZGlhdGUudmFsdWUgYXMgTmFlRGF0ZSkuZm9ybWF0KERBVEVfVElNRV9GT1JNQVRfU1RSSU5HKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICdldmVudCcsIHR5cGU6IGltbWVkaWF0ZS50eXBlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnZW51bWVyYXRpb24nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiBpbW1lZGlhdGUudmFsdWUuZGVmYXVsdFZhbHVlLCBpY29uOiB1bmRlZmluZWQsIHR5cGU6IGltbWVkaWF0ZS50eXBlfTtcbiAgICAgICAgICAgICAgICBjYXNlICdtdWx0aWNob2ljZSc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaW1tZWRpYXRlLnZhbHVlLm1hcChpdCA9PiBpdC5kZWZhdWx0VmFsdWUpLmpvaW4oJywgJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbW1lZGlhdGUudHlwZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2VudW1lcmF0aW9uX21hcCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaW1tZWRpYXRlLm9wdGlvbnNbaW1tZWRpYXRlLnZhbHVlXS5kZWZhdWx0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbW1lZGlhdGUudHlwZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ211bHRpY2hvaWNlX21hcCc6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaW1tZWRpYXRlLnZhbHVlLm1hcChpdCA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZS5vcHRpb25zW2l0XS5kZWZhdWx0VmFsdWUpLmpvaW4oJywgJyksIGljb246IHVuZGVmaW5lZCwgdHlwZTogaW1tZWRpYXRlLnR5cGVcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjYXNlICdmaWxlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZTogaW1tZWRpYXRlLnZhbHVlPy5uYW1lLCBpY29uOiAnaW5zZXJ0X2RyaXZlX2ZpbGUnLCB0eXBlOiBpbW1lZGlhdGUudHlwZX07XG4gICAgICAgICAgICAgICAgY2FzZSAnZmlsZUxpc3QnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGltbWVkaWF0ZS52YWx1ZT8ubmFtZXNQYXRocy5tYXAob2JqID0+IG9iai5uYW1lKS5qb2luKCcsICcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2ZpbGVfY29weScsIHR5cGU6IGltbWVkaWF0ZS50eXBlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IGltbWVkaWF0ZS52YWx1ZS5mdWxsTmFtZSwgaWNvbjogJ2FjY291bnRfY2lyY2xlJywgdHlwZTogaW1tZWRpYXRlLnR5cGV9O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCdkYXRhRmllbGQudmFsdWVzLmJvb2xlYW4uJyArIGltbWVkaWF0ZS52YWx1ZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiB1bmRlZmluZWQsIHR5cGU6IGltbWVkaWF0ZS50eXBlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnYnV0dG9uJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAoaW1tZWRpYXRlIGFzIGFueSkucGxhY2Vob2xkZXIgJiYgKGltbWVkaWF0ZSBhcyBhbnkpLnBsYWNlaG9sZGVyLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoaW1tZWRpYXRlIGFzIGFueSkucGxhY2Vob2xkZXIuZGVmYXVsdFZhbHVlIDogKGltbWVkaWF0ZS5uYW1lICYmIGltbWVkaWF0ZS5uYW1lLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gaW1tZWRpYXRlLm5hbWUuZGVmYXVsdFZhbHVlIDogdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ2RpYWxvZy5zdWJtaXQnKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiB1bmRlZmluZWQsIHR5cGU6IGltbWVkaWF0ZS50eXBlXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnZmlsdGVyJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB1bmRlZmluZWQsIGljb246IHVuZGVmaW5lZCwgdHlwZTogaW1tZWRpYXRlLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJNZXRhZGF0YToge2ZpbHRlck1ldGFkYXRhOiBpbW1lZGlhdGUuZmlsdGVyTWV0YWRhdGEsIGFsbG93ZWROZXRzOiBpbW1lZGlhdGUuYWxsb3dlZE5ldHN9XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICAgICAgaWYgKGltbWVkaWF0ZS5mb3JtYXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0Q3VycmVuY3lQaXBlKGltbWVkaWF0ZS52YWx1ZSwgaW1tZWRpYXRlLmZvcm1hdC5jb2RlLCBpbW1lZGlhdGUuZm9ybWF0LmZyYWN0aW9uU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbW1lZGlhdGUuZm9ybWF0LmxvY2FsZSwgaW1tZWRpYXRlLnR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGltbWVkaWF0ZS5jb21wb25lbnQ/Lm5hbWUgPT09ICdjdXJyZW5jeScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdEN1cnJlbmN5UGlwZShpbW1lZGlhdGUudmFsdWUsIGltbWVkaWF0ZS5jb21wb25lbnQucHJvcGVydGllc1snY29kZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltbWVkaWF0ZS5jb21wb25lbnQucHJvcGVydGllc1snZnJhY3Rpb25TaXplJ10sIGltbWVkaWF0ZS5jb21wb25lbnQucHJvcGVydGllc1snbG9jYWxlJ10sIGltbWVkaWF0ZS50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiBpbW1lZGlhdGUudmFsdWUsIGljb246IHVuZGVmaW5lZCwgdHlwZTogaW1tZWRpYXRlLnR5cGV9O1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dmFsdWU6IGltbWVkaWF0ZS52YWx1ZSwgaWNvbjogdW5kZWZpbmVkLCB0eXBlOiBpbW1lZGlhdGUudHlwZX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4ge3ZhbHVlOiAnJywgaWNvbjogJycsIHR5cGU6ICcnfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb3JtYXRDdXJyZW5jeVBpcGUodmFsdWU6IGFueSwgY29kZTogc3RyaW5nLCBmcmFjdGlvbjogbnVtYmVyLCBsb2NhbGU6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB2YWx1ZTpcbiAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW5jeVBpcGUudHJhbnNmb3JtKFxuICAgICAgICAgICAgICAgICAgICBwYXJzZUZsb2F0KHZhbHVlKSxcbiAgICAgICAgICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgICAgICAgICAgJ3N5bWJvbCcsXG4gICAgICAgICAgICAgICAgICAgICcxLicgKyBmcmFjdGlvbiArICctJyArIGZyYWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICBsb2NhbGUpLFxuICAgICAgICAgICAgaWNvbjogdW5kZWZpbmVkLCB0eXBlXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19