@ieeesa-npm/groups 0.15.15 → 0.15.17

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.
@@ -22,6 +22,23 @@ export class InterestFormService {
22
22
  constructor(httpService) {
23
23
  this.httpService = httpService;
24
24
  }
25
+ /**
26
+ * Validates the application-level envelope for a write operation. A 2xx
27
+ * response can still carry an unsuccessful envelope ({ status: false }); this
28
+ * throws it so callers' error handlers run instead of treating it as success.
29
+ * @param {InterestApiResponse<T>} response
30
+ * @return {InterestApiResponse<T>}
31
+ * @memberof InterestFormService
32
+ */
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ assertSuccess(response) {
35
+ const status = response?.status;
36
+ const isSuccess = status === true || status === 'true' || status === 'SUCCESS';
37
+ if (!isSuccess) {
38
+ throw response;
39
+ }
40
+ return response;
41
+ }
25
42
  /**
26
43
  * Sets the API base URL (resolved from the hosting application's config).
27
44
  * @param {string} apiBaseUrl
@@ -44,16 +61,17 @@ export class InterestFormService {
44
61
  }));
45
62
  }
46
63
  /**
47
- * Loads the tenant's roles. Member levels (used to populate the default
48
- * membership level options) are the subset where roleTypeName is
49
- * "Member Level"; filtering is done by the caller.
50
- * @param {string} appId
64
+ * Loads the roles configured for a group type via
65
+ * GET /groups/config/rolesByGroupType/{groupTypeId}. Member levels (used to
66
+ * populate the default membership level options) are the subset where
67
+ * roleTypeName is "Member Level"; filtering is done by the caller.
68
+ * @param {string} groupTypeId
51
69
  * @return {Observable<InterestApiResponse<GroupRole[]>>}
52
70
  * @memberof InterestFormService
53
71
  */
54
- getRoles(appId) {
72
+ getRoles(groupTypeId) {
55
73
  return this.httpService
56
- .getData(`${this.apiBaseUrl}/groups/role/${appId}`)
74
+ .getData(`${this.apiBaseUrl}/groups/config/rolesByGroupType/${groupTypeId}`)
57
75
  .pipe(map((response) => response), catchError((error) => {
58
76
  throw error;
59
77
  }));
@@ -69,7 +87,7 @@ export class InterestFormService {
69
87
  .putData(`${this.apiBaseUrl}/groups/interest-config`, {
70
88
  payload: config,
71
89
  })
72
- .pipe(map((response) => response), catchError((error) => {
90
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
73
91
  throw error;
74
92
  }));
75
93
  }
@@ -97,7 +115,7 @@ export class InterestFormService {
97
115
  .postData(`${this.apiBaseUrl}/groups/interest-questions`, {
98
116
  payload: question,
99
117
  })
100
- .pipe(map((response) => response), catchError((error) => {
118
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
101
119
  throw error;
102
120
  }));
103
121
  }
@@ -112,7 +130,7 @@ export class InterestFormService {
112
130
  .putData(`${this.apiBaseUrl}/groups/interest-questions`, {
113
131
  payload: question,
114
132
  })
115
- .pipe(map((response) => response), catchError((error) => {
133
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
116
134
  throw error;
117
135
  }));
118
136
  }
@@ -127,7 +145,7 @@ export class InterestFormService {
127
145
  .putData(`${this.apiBaseUrl}/groups/interest-questions/reorder`, {
128
146
  payload: questionOrders,
129
147
  })
130
- .pipe(map((response) => response), catchError((error) => {
148
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
131
149
  throw error;
132
150
  }));
133
151
  }
@@ -140,7 +158,7 @@ export class InterestFormService {
140
158
  removeQuestion(questionId) {
141
159
  return this.httpService
142
160
  .putData(`${this.apiBaseUrl}/groups/interest-questions/${questionId}/remove`, {})
143
- .pipe(map((response) => response), catchError((error) => {
161
+ .pipe(map((response) => this.assertSuccess(response)), catchError((error) => {
144
162
  throw error;
145
163
  }));
146
164
  }
@@ -166,4 +184,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
166
184
  providedIn: 'root',
167
185
  }]
168
186
  }], ctorParameters: function () { return [{ type: i1.HttpService }]; } });
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvc2VydmljZXMvaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWtCbkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLDBDQUEwQztJQUMxQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFaEQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxVQUFrQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxpQkFBaUIsQ0FDZixPQUFlO1FBRWYsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSwyQkFBMkIsT0FBTyxFQUFFLENBQUM7YUFDL0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQzNCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsUUFBUSxDQUFDLEtBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxnQkFBZ0IsS0FBSyxFQUFFLENBQUM7YUFDbEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQzNCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGtCQUFrQixDQUNoQixNQUEyQjtRQUUzQixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLHlCQUF5QixFQUFFO1lBQ3BELE9BQU8sRUFBRSxNQUFNO1NBQ2hCLENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFDM0IsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUNWLE9BQWU7UUFFZixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLDhCQUE4QixPQUFPLEVBQUUsQ0FBQzthQUNsRSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFDM0IsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsY0FBYyxDQUNaLFFBQXdCO1FBRXhCLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDcEIsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsNEJBQTRCLEVBQUU7WUFDeEQsT0FBTyxFQUFFLFFBQVE7U0FDbEIsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUMzQixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQ1osUUFBd0I7UUFFeEIsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSw0QkFBNEIsRUFBRTtZQUN2RCxPQUFPLEVBQUUsUUFBUTtTQUNsQixDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQzNCLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGdCQUFnQixDQUNkLGNBQStCO1FBRS9CLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDcEIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsb0NBQW9DLEVBQUU7WUFDL0QsT0FBTyxFQUFFLGNBQWM7U0FDeEIsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUMzQixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQ1osVUFBa0I7UUFFbEIsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixPQUFPLENBQ04sR0FBRyxJQUFJLENBQUMsVUFBVSw4QkFBOEIsVUFBVSxTQUFTLEVBQ25FLEVBQUUsQ0FDSDthQUNBLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUMzQixVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsT0FBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FDTixHQUFHLElBQUksQ0FBQyxVQUFVLDhCQUE4QixPQUFPLFVBQVUsQ0FDbEU7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFDM0IsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzsrR0FuTVUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7XHJcbiAgQ3VzdG9tUXVlc3Rpb24sXHJcbiAgR3JvdXBJbnRlcmVzdENvbmZpZyxcclxuICBHcm91cFJvbGUsXHJcbiAgUXVlc3Rpb25PcmRlcixcclxufSBmcm9tICcuLi9tb2RlbHMvY3VzdG9tLXF1ZXN0aW9uLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZCBBUEkgcmVzcG9uc2UgZW52ZWxvcGUgdXNlZCBieSB0aGUgZ3JvdXBzIGJhY2tlbmQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEludGVyZXN0QXBpUmVzcG9uc2U8VD4ge1xyXG4gIHN0YXR1czogYm9vbGVhbiB8IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIGJvZHk/OiBUO1xyXG59XHJcblxyXG4vKipcclxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgYSBncm91cCdzIGludGVyZXN0IGZvcm0gY29uZmlndXJhdGlvbiBhbmQgY3VzdG9tXHJcbiAqIHF1ZXN0aW9ucyAoU1AzTS0zMTcpLiBUYWxrcyB0byB0aGUgZ3JvdXBzIGJhY2tlbmQgZW5kcG9pbnRzOlxyXG4gKiAgIC0gR0VUICAvdjEvZ3JvdXBzL2ludGVyZXN0LWNvbmZpZy97Z3JvdXBJZH1cclxuICogICAtIFBVVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1jb25maWdcclxuICogICAtIEdFVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve2dyb3VwSWR9XHJcbiAqICAgLSBQT1NUIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3Jlb3JkZXJcclxuICogICAtIFBVVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve3F1ZXN0aW9uSWR9L3JlbW92ZVxyXG4gKiAgIC0gR0VUICAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy97Z3JvdXBJZH0vcHJldmlld1xyXG4gKiBBbGwgd3JpdGUgcGF5bG9hZHMgYXJlIHdyYXBwZWQgaW4gdGhlIHNoYXJlZCBSZXF1ZXN0IGVudmVsb3BlICh7IHBheWxvYWQgfSkuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmVzdEZvcm1TZXJ2aWNlIHtcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgQVBJIGJhc2UgVVJMIChyZXNvbHZlZCBmcm9tIHRoZSBob3N0aW5nIGFwcGxpY2F0aW9uJ3MgY29uZmlnKS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXBpQmFzZVVybFxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgc2V0QXBpQmFzZVVybChhcGlCYXNlVXJsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpQmFzZVVybCA9IGFwaUJhc2VVcmw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyBhIGdyb3VwJ3MgaW50ZXJlc3QgY29uZmlndXJhdGlvbiAobW9kZSArIGRlZmF1bHQgbWVtYmVyIGxldmVsKS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxHcm91cEludGVyZXN0Q29uZmlnPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBnZXRJbnRlcmVzdENvbmZpZyhcclxuICAgIGdyb3VwSWQ6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxHcm91cEludGVyZXN0Q29uZmlnPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtY29uZmlnLyR7Z3JvdXBJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkcyB0aGUgdGVuYW50J3Mgcm9sZXMuIE1lbWJlciBsZXZlbHMgKHVzZWQgdG8gcG9wdWxhdGUgdGhlIGRlZmF1bHRcclxuICAgKiBtZW1iZXJzaGlwIGxldmVsIG9wdGlvbnMpIGFyZSB0aGUgc3Vic2V0IHdoZXJlIHJvbGVUeXBlTmFtZSBpc1xyXG4gICAqIFwiTWVtYmVyIExldmVsXCI7IGZpbHRlcmluZyBpcyBkb25lIGJ5IHRoZSBjYWxsZXIuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwcElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEdyb3VwUm9sZVtdPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBnZXRSb2xlcyhhcHBJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEdyb3VwUm9sZVtdPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvcm9sZS8ke2FwcElkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhdmVzIGEgZ3JvdXAncyBpbnRlcmVzdCBjb25maWd1cmF0aW9uLlxyXG4gICAqIEBwYXJhbSB7R3JvdXBJbnRlcmVzdENvbmZpZ30gY29uZmlnXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgc2F2ZUludGVyZXN0Q29uZmlnKFxyXG4gICAgY29uZmlnOiBHcm91cEludGVyZXN0Q29uZmlnXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LWNvbmZpZ2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBjb25maWcsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWRzIGEgZ3JvdXAncyBjdXN0b20gaW50ZXJlc3QgcXVlc3Rpb25zIChvcmRlcmVkIGJ5IHZpZXcgb3JkZXIpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEN1c3RvbVF1ZXN0aW9uW10+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIGdldFF1ZXN0aW9ucyhcclxuICAgIGdyb3VwSWQ6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxDdXN0b21RdWVzdGlvbltdPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zLyR7Z3JvdXBJZH1gKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgbmV3IGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbi5cclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxDdXN0b21RdWVzdGlvbj4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgY3JlYXRlUXVlc3Rpb24oXHJcbiAgICBxdWVzdGlvbjogQ3VzdG9tUXVlc3Rpb25cclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8Q3VzdG9tUXVlc3Rpb24+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucG9zdERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zYCwge1xyXG4gICAgICAgIHBheWxvYWQ6IHF1ZXN0aW9uLFxyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIGFuIGV4aXN0aW5nIGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbi5cclxuICAgKiBAcGFyYW0ge0N1c3RvbVF1ZXN0aW9ufSBxdWVzdGlvblxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHVwZGF0ZVF1ZXN0aW9uKFxyXG4gICAgcXVlc3Rpb246IEN1c3RvbVF1ZXN0aW9uXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9uc2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBxdWVzdGlvbixcclxuICAgICAgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyc2lzdHMgdGhlIHVwZGF0ZWQgdmlldyBvcmRlciBmb3IgYSBncm91cCdzIGN1c3RvbSBxdWVzdGlvbnMuXHJcbiAgICogQHBhcmFtIHtRdWVzdGlvbk9yZGVyW119IHF1ZXN0aW9uT3JkZXJzXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgcmVvcmRlclF1ZXN0aW9ucyhcclxuICAgIHF1ZXN0aW9uT3JkZXJzOiBRdWVzdGlvbk9yZGVyW11cclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3Jlb3JkZXJgLCB7XHJcbiAgICAgICAgcGF5bG9hZDogcXVlc3Rpb25PcmRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNvZnQtZGVsZXRlcyBhIGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbiBieSBpZC5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gcXVlc3Rpb25JZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHJlbW92ZVF1ZXN0aW9uKFxyXG4gICAgcXVlc3Rpb25JZDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy8ke3F1ZXN0aW9uSWR9L3JlbW92ZWAsXHJcbiAgICAgICAge31cclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZHMgYSBub24tcHVibGlzaGluZyBwcmV2aWV3IG9mIGEgZ3JvdXAncyBpbnRlcmVzdCBmb3JtLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cElkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHVua25vd24+Pn1cclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHByZXZpZXdGb3JtKGdyb3VwSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTx1bmtub3duPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLmdldERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zLyR7Z3JvdXBJZH0vcHJldmlld2BcclxuICAgICAgKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiByZXNwb25zZSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3JvdXBzL3NyYy9saWIvc2VydmljZXMvaW50ZXJlc3QtZm9ybS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWtCbkQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBRzlCLDBDQUEwQztJQUMxQyxZQUFvQixXQUF3QjtRQUF4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUFHLENBQUM7SUFFaEQ7Ozs7Ozs7T0FPRztJQUNILDhEQUE4RDtJQUN0RCxhQUFhLENBQUMsUUFBYTtRQUNqQyxNQUFNLE1BQU0sR0FBRyxRQUFRLEVBQUUsTUFBTSxDQUFDO1FBQ2hDLE1BQU0sU0FBUyxHQUNiLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLE1BQU0sSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxNQUFNLFFBQVEsQ0FBQztTQUNoQjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLFVBQWtCO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGlCQUFpQixDQUNmLE9BQWU7UUFFZixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLDJCQUEyQixPQUFPLEVBQUUsQ0FBQzthQUMvRCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFD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QUFDLFFBQVEsQ0FBQyxDQUFDLEVBQy9DLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGNBQWMsQ0FDWixVQUFrQjtRQUVsQixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FDTixHQUFHLElBQUksQ0FBQyxVQUFVLDhCQUE4QixVQUFVLFNBQVMsRUFDbkUsRUFBRSxDQUNIO2FBQ0EsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUMvQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsT0FBZTtRQUN6QixPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLE9BQU8sQ0FDTixHQUFHLElBQUksQ0FBQyxVQUFVLDhCQUE4QixPQUFPLFVBQVUsQ0FDbEU7YUFDQSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFDM0IsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzsrR0F6TlUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSAnQGllZWVzYS1ucG0vdXRpbGl0eSc7XHJcbmltcG9ydCB7XHJcbiAgQ3VzdG9tUXVlc3Rpb24sXHJcbiAgR3JvdXBJbnRlcmVzdENvbmZpZyxcclxuICBHcm91cFJvbGUsXHJcbiAgUXVlc3Rpb25PcmRlcixcclxufSBmcm9tICcuLi9tb2RlbHMvY3VzdG9tLXF1ZXN0aW9uLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBTdGFuZGFyZCBBUEkgcmVzcG9uc2UgZW52ZWxvcGUgdXNlZCBieSB0aGUgZ3JvdXBzIGJhY2tlbmQuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEludGVyZXN0QXBpUmVzcG9uc2U8VD4ge1xyXG4gIHN0YXR1czogYm9vbGVhbiB8IHN0cmluZztcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIGJvZHk/OiBUO1xyXG59XHJcblxyXG4vKipcclxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgYSBncm91cCdzIGludGVyZXN0IGZvcm0gY29uZmlndXJhdGlvbiBhbmQgY3VzdG9tXHJcbiAqIHF1ZXN0aW9ucyAoU1AzTS0zMTcpLiBUYWxrcyB0byB0aGUgZ3JvdXBzIGJhY2tlbmQgZW5kcG9pbnRzOlxyXG4gKiAgIC0gR0VUICAvdjEvZ3JvdXBzL2ludGVyZXN0LWNvbmZpZy97Z3JvdXBJZH1cclxuICogICAtIFBVVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1jb25maWdcclxuICogICAtIEdFVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve2dyb3VwSWR9XHJcbiAqICAgLSBQT1NUIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zXHJcbiAqICAgLSBQVVQgIC92MS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3Jlb3JkZXJcclxuICogICAtIFBVVCAgL3YxL2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMve3F1ZXN0aW9uSWR9L3JlbW92ZVxyXG4gKiAgIC0gR0VUICAvdjEvZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy97Z3JvdXBJZH0vcHJldmlld1xyXG4gKiBBbGwgd3JpdGUgcGF5bG9hZHMgYXJlIHdyYXBwZWQgaW4gdGhlIHNoYXJlZCBSZXF1ZXN0IGVudmVsb3BlICh7IHBheWxvYWQgfSkuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnRlcmVzdEZvcm1TZXJ2aWNlIHtcclxuICBhcGlCYXNlVXJsITogc3RyaW5nO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogVmFsaWRhdGVzIHRoZSBhcHBsaWNhdGlvbi1sZXZlbCBlbnZlbG9wZSBmb3IgYSB3cml0ZSBvcGVyYXRpb24uIEEgMnh4XHJcbiAgICogcmVzcG9uc2UgY2FuIHN0aWxsIGNhcnJ5IGFuIHVuc3VjY2Vzc2Z1bCBlbnZlbG9wZSAoeyBzdGF0dXM6IGZhbHNlIH0pOyB0aGlzXHJcbiAgICogdGhyb3dzIGl0IHNvIGNhbGxlcnMnIGVycm9yIGhhbmRsZXJzIHJ1biBpbnN0ZWFkIG9mIHRyZWF0aW5nIGl0IGFzIHN1Y2Nlc3MuXHJcbiAgICogQHBhcmFtIHtJbnRlcmVzdEFwaVJlc3BvbnNlPFQ+fSByZXNwb25zZVxyXG4gICAqIEByZXR1cm4ge0ludGVyZXN0QXBpUmVzcG9uc2U8VD59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIHByaXZhdGUgYXNzZXJ0U3VjY2VzcyhyZXNwb25zZTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IHN0YXR1cyA9IHJlc3BvbnNlPy5zdGF0dXM7XHJcbiAgICBjb25zdCBpc1N1Y2Nlc3MgPVxyXG4gICAgICBzdGF0dXMgPT09IHRydWUgfHwgc3RhdHVzID09PSAndHJ1ZScgfHwgc3RhdHVzID09PSAnU1VDQ0VTUyc7XHJcbiAgICBpZiAoIWlzU3VjY2Vzcykge1xyXG4gICAgICB0aHJvdyByZXNwb25zZTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXNwb25zZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIEFQSSBiYXNlIFVSTCAocmVzb2x2ZWQgZnJvbSB0aGUgaG9zdGluZyBhcHBsaWNhdGlvbidzIGNvbmZpZykuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFwaUJhc2VVcmxcclxuICAgKiBAbWVtYmVyb2YgSW50ZXJlc3RGb3JtU2VydmljZVxyXG4gICAqL1xyXG4gIHNldEFwaUJhc2VVcmwoYXBpQmFzZVVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwaUJhc2VVcmwgPSBhcGlCYXNlVXJsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgYSBncm91cCdzIGludGVyZXN0IGNvbmZpZ3VyYXRpb24gKG1vZGUgKyBkZWZhdWx0IG1lbWJlciBsZXZlbCkuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGdyb3VwSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8R3JvdXBJbnRlcmVzdENvbmZpZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0SW50ZXJlc3RDb25maWcoXHJcbiAgICBncm91cElkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8R3JvdXBJbnRlcmVzdENvbmZpZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LWNvbmZpZy8ke2dyb3VwSWR9YClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgdGhlIHJvbGVzIGNvbmZpZ3VyZWQgZm9yIGEgZ3JvdXAgdHlwZSB2aWFcclxuICAgKiBHRVQgL2dyb3Vwcy9jb25maWcvcm9sZXNCeUdyb3VwVHlwZS97Z3JvdXBUeXBlSWR9LiBNZW1iZXIgbGV2ZWxzICh1c2VkIHRvXHJcbiAgICogcG9wdWxhdGUgdGhlIGRlZmF1bHQgbWVtYmVyc2hpcCBsZXZlbCBvcHRpb25zKSBhcmUgdGhlIHN1YnNldCB3aGVyZVxyXG4gICAqIHJvbGVUeXBlTmFtZSBpcyBcIk1lbWJlciBMZXZlbFwiOyBmaWx0ZXJpbmcgaXMgZG9uZSBieSB0aGUgY2FsbGVyLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBncm91cFR5cGVJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxHcm91cFJvbGVbXT4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0Um9sZXMoZ3JvdXBUeXBlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxHcm91cFJvbGVbXT4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2NvbmZpZy9yb2xlc0J5R3JvdXBUeXBlLyR7Z3JvdXBUeXBlSWR9YFxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhdmVzIGEgZ3JvdXAncyBpbnRlcmVzdCBjb25maWd1cmF0aW9uLlxyXG4gICAqIEBwYXJhbSB7R3JvdXBJbnRlcmVzdENvbmZpZ30gY29uZmlnXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgc2F2ZUludGVyZXN0Q29uZmlnKFxyXG4gICAgY29uZmlnOiBHcm91cEludGVyZXN0Q29uZmlnXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wdXREYXRhKGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LWNvbmZpZ2AsIHtcclxuICAgICAgICBwYXlsb2FkOiBjb25maWcsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgYSBncm91cCdzIGN1c3RvbSBpbnRlcmVzdCBxdWVzdGlvbnMgKG9yZGVyZWQgYnkgdmlldyBvcmRlcikuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGdyb3VwSWRcclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8Q3VzdG9tUXVlc3Rpb25bXT4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgZ2V0UXVlc3Rpb25zKFxyXG4gICAgZ3JvdXBJZDogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEN1c3RvbVF1ZXN0aW9uW10+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAuZ2V0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnMvJHtncm91cElkfWApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHJlc3BvbnNlKSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgY3VzdG9tIGludGVyZXN0IHF1ZXN0aW9uLlxyXG4gICAqIEBwYXJhbSB7Q3VzdG9tUXVlc3Rpb259IHF1ZXN0aW9uXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPEN1c3RvbVF1ZXN0aW9uPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBjcmVhdGVRdWVzdGlvbihcclxuICAgIHF1ZXN0aW9uOiBDdXN0b21RdWVzdGlvblxyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxDdXN0b21RdWVzdGlvbj4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5wb3N0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnNgLCB7XHJcbiAgICAgICAgcGF5bG9hZDogcXVlc3Rpb24sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlcyBhbiBleGlzdGluZyBjdXN0b20gaW50ZXJlc3QgcXVlc3Rpb24uXHJcbiAgICogQHBhcmFtIHtDdXN0b21RdWVzdGlvbn0gcXVlc3Rpb25cclxuICAgKiBAcmV0dXJuIHtPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICB1cGRhdGVRdWVzdGlvbihcclxuICAgIHF1ZXN0aW9uOiBDdXN0b21RdWVzdGlvblxyXG4gICk6IE9ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTxzdHJpbmc+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxyXG4gICAgICAucHV0RGF0YShgJHt0aGlzLmFwaUJhc2VVcmx9L2dyb3Vwcy9pbnRlcmVzdC1xdWVzdGlvbnNgLCB7XHJcbiAgICAgICAgcGF5bG9hZDogcXVlc3Rpb24sXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGVyc2lzdHMgdGhlIHVwZGF0ZWQgdmlldyBvcmRlciBmb3IgYSBncm91cCdzIGN1c3RvbSBxdWVzdGlvbnMuXHJcbiAgICogQHBhcmFtIHtRdWVzdGlvbk9yZGVyW119IHF1ZXN0aW9uT3JkZXJzXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgcmVvcmRlclF1ZXN0aW9ucyhcclxuICAgIHF1ZXN0aW9uT3JkZXJzOiBRdWVzdGlvbk9yZGVyW11cclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zL3Jlb3JkZXJgLCB7XHJcbiAgICAgICAgcGF5bG9hZDogcXVlc3Rpb25PcmRlcnMsXHJcbiAgICAgIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU29mdC1kZWxldGVzIGEgY3VzdG9tIGludGVyZXN0IHF1ZXN0aW9uIGJ5IGlkLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBxdWVzdGlvbklkXHJcbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxJbnRlcmVzdEFwaVJlc3BvbnNlPHN0cmluZz4+fVxyXG4gICAqIEBtZW1iZXJvZiBJbnRlcmVzdEZvcm1TZXJ2aWNlXHJcbiAgICovXHJcbiAgcmVtb3ZlUXVlc3Rpb24oXHJcbiAgICBxdWVzdGlvbklkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8c3RyaW5nPj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcclxuICAgICAgLnB1dERhdGEoXHJcbiAgICAgICAgYCR7dGhpcy5hcGlCYXNlVXJsfS9ncm91cHMvaW50ZXJlc3QtcXVlc3Rpb25zLyR7cXVlc3Rpb25JZH0vcmVtb3ZlYCxcclxuICAgICAgICB7fVxyXG4gICAgICApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuYXNzZXJ0U3VjY2VzcyhyZXNwb25zZSkpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGRzIGEgbm9uLXB1Ymxpc2hpbmcgcHJldmlldyBvZiBhIGdyb3VwJ3MgaW50ZXJlc3QgZm9ybS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZ3JvdXBJZFxyXG4gICAqIEByZXR1cm4ge09ic2VydmFibGU8SW50ZXJlc3RBcGlSZXNwb25zZTx1bmtub3duPj59XHJcbiAgICogQG1lbWJlcm9mIEludGVyZXN0Rm9ybVNlcnZpY2VcclxuICAgKi9cclxuICBwcmV2aWV3Rm9ybShncm91cElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEludGVyZXN0QXBpUmVzcG9uc2U8dW5rbm93bj4+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXHJcbiAgICAgIC5nZXREYXRhKFxyXG4gICAgICAgIGAke3RoaXMuYXBpQmFzZVVybH0vZ3JvdXBzL2ludGVyZXN0LXF1ZXN0aW9ucy8ke2dyb3VwSWR9L3ByZXZpZXdgXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=