@netgrif/components-core 6.4.2-rc.1 → 6.4.2-rc.5
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.
- package/esm2020/lib/event/model/event-outcomes/task-outcomes/finish-task-event-outcome.mjs +1 -1
- package/esm2020/lib/resources/interface/task.mjs +1 -1
- package/esm2020/lib/task/services/finish-task.service.mjs +3 -2
- package/esm2020/lib/task-content/services/task-content.service.mjs +5 -4
- package/fesm2015/netgrif-components-core.mjs +7 -4
- package/fesm2015/netgrif-components-core.mjs.map +1 -1
- package/fesm2020/netgrif-components-core.mjs +6 -4
- package/fesm2020/netgrif-components-core.mjs.map +1 -1
- package/lib/event/model/event-outcomes/task-outcomes/finish-task-event-outcome.d.ts +1 -0
- package/lib/resources/interface/task.d.ts +1 -0
- package/lib/task-content/services/task-content.service.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluaXNoLXRhc2stZXZlbnQtb3V0Y29tZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZXZlbnQvbW9kZWwvZXZlbnQtb3V0Y29tZXMvdGFzay1vdXRjb21lcy9maW5pc2gtdGFzay1ldmVudC1vdXRjb21lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Rhc2tFdmVudE91dGNvbWV9IGZyb20gJy4vdGFzay1ldmVudC1vdXRjb21lJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgRmluaXNoVGFza0V2ZW50T3V0Y29tZSBleHRlbmRzIFRhc2tFdmVudE91dGNvbWUge1xuICAgIGlzVGFza1N0aWxsRXhlY3V0YWJsZT86IGJvb2xlYW47XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvcmVzb3VyY2VzL2ludGVyZmFjZS90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGFHcm91cH0gZnJvbSAnLi9kYXRhLWdyb3Vwcyc7XG5pbXBvcnQge0Fzc2lnblBvbGljeSwgRGF0YUZvY3VzUG9saWN5LCBGaW5pc2hQb2xpY3l9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9tb2RlbC9wb2xpY3knO1xuaW1wb3J0IHtUYXNrTGF5b3V0fSBmcm9tICcuL3Rhc2stbGF5b3V0JztcbmltcG9ydCB7TmFlRGF0ZX0gZnJvbSAnLi4vdHlwZXMvbmFlLWRhdGUtdHlwZSc7XG5pbXBvcnQge1VzZXJSZXNvdXJjZVNtYWxsfSBmcm9tICcuL3VzZXItcmVzb3VyY2Utc21hbGwnO1xuaW1wb3J0IHtJbW1lZGlhdGVEYXRhfSBmcm9tICcuL2ltbWVkaWF0ZS1kYXRhJztcbmltcG9ydCB7QXNzaWduZWRVc2VyUG9saWN5fSBmcm9tICcuL2Fzc2lnbmVkLXVzZXItcG9saWN5JztcbmltcG9ydCB7UGVybWlzc2lvbnMsIFVzZXJQZXJtaXNzaW9ucywgVXNlclJlZnN9IGZyb20gJy4uLy4uL3Byb2Nlc3MvcGVybWlzc2lvbnMnO1xuXG4vKipcbiAqIE9iamVjdCBmcm9tIEJhY2tlbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrIHtcbiAgICAvKipcbiAgICAgKiBNb25nbyBJRCBDYXNlXG4gICAgICpcbiAgICAgKiAqKipFeGFtcGxlOioqKiA1ZTkwNGZkODBhOTc1YTdmODdiMmMyZmRcbiAgICAgKi9cbiAgICBjYXNlSWQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBDYXNlIElELSBtb25nbyBJRFxuICAgICAqXG4gICAgICogKioqRXhhbXBsZToqKiogNWU5MDRmZDgwYTk3NWE3Zjg3YjJjMmZkXG4gICAgICovXG4gICAgdHJhbnNpdGlvbklkOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBjYXNlQ29sb3I6IHN0cmluZztcbiAgICBjYXNlVGl0bGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTZWUgW1VzZXJTbWFsbF17QGxpbmsgVXNlclJlc291cmNlU21hbGwjfVxuICAgICAqL1xuICAgIHVzZXI6IFVzZXJSZXNvdXJjZVNtYWxsO1xuICAgIC8qKlxuICAgICAqICoqKkV4YW1wbGU6KioqXG4gICAgICpcbiAgICAgKiAgICBcIjVlNDNmNmEzMGE5NzVhN2Y4NzU1MTM4NVwiOiB7XG4gICAgICogICAgICBcInBlcmZvcm1cIjogdHJ1ZVxuICAgICAqICAgIH1cbiAgICAgKi9cbiAgICByb2xlczogUGVybWlzc2lvbnM7XG4gICAgc3RhcnREYXRlOiBOYWVEYXRlO1xuICAgIGZpbmlzaERhdGU6IE5hZURhdGU7XG4gICAgLyoqXG4gICAgICogU2VlIFtBc3NpZ25Qb2xpY3lde0BsaW5rIEFzc2lnblBvbGljeSN9XG4gICAgICovXG4gICAgYXNzaWduUG9saWN5OiBBc3NpZ25Qb2xpY3k7XG4gICAgLyoqXG4gICAgICogU2VlIFtEYXRhRm9jdXNQb2xpY3lde0BsaW5rIERhdGFGb2N1c1BvbGljeSN9XG4gICAgICovXG4gICAgZGF0YUZvY3VzUG9saWN5OiBEYXRhRm9jdXNQb2xpY3k7XG4gICAgLyoqXG4gICAgICogU2VlIFtGaW5pc2hQb2xpY3lde0BsaW5rIEZpbmlzaFBvbGljeSN9XG4gICAgICovXG4gICAgZmluaXNoUG9saWN5OiBGaW5pc2hQb2xpY3k7XG4gICAgc3RyaW5nSWQ6IHN0cmluZztcbiAgICBsYXlvdXQ6IFRhc2tMYXlvdXQ7XG4gICAgLyoqXG4gICAgICogQXJyYXkgW0RhdGFHcm91cF17QGxpbmsgRGF0YUdyb3VwI31cbiAgICAgKi9cbiAgICBkYXRhR3JvdXBzOiBBcnJheTxEYXRhR3JvdXA+O1xuICAgIF9saW5rczogb2JqZWN0O1xuICAgIHVzZXJzOiBVc2VyUGVybWlzc2lvbnM7XG4gICAgdXNlclJlZnM6IFVzZXJSZWZzO1xuICAgIGRhdGFTaXplPzogbnVtYmVyO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgcHJpb3JpdHk/OiBudW1iZXI7XG4gICAgYXNzaWduVGl0bGU/OiBzdHJpbmc7XG4gICAgZmluaXNoVGl0bGU/OiBzdHJpbmc7XG4gICAgY2FuY2VsVGl0bGU/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvcmVzb3VyY2VzL2ludGVyZmFjZS90YXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGFHcm91cH0gZnJvbSAnLi9kYXRhLWdyb3Vwcyc7XG5pbXBvcnQge0Fzc2lnblBvbGljeSwgRGF0YUZvY3VzUG9saWN5LCBGaW5pc2hQb2xpY3l9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9tb2RlbC9wb2xpY3knO1xuaW1wb3J0IHtUYXNrTGF5b3V0fSBmcm9tICcuL3Rhc2stbGF5b3V0JztcbmltcG9ydCB7TmFlRGF0ZX0gZnJvbSAnLi4vdHlwZXMvbmFlLWRhdGUtdHlwZSc7XG5pbXBvcnQge1VzZXJSZXNvdXJjZVNtYWxsfSBmcm9tICcuL3VzZXItcmVzb3VyY2Utc21hbGwnO1xuaW1wb3J0IHtJbW1lZGlhdGVEYXRhfSBmcm9tICcuL2ltbWVkaWF0ZS1kYXRhJztcbmltcG9ydCB7QXNzaWduZWRVc2VyUG9saWN5fSBmcm9tICcuL2Fzc2lnbmVkLXVzZXItcG9saWN5JztcbmltcG9ydCB7UGVybWlzc2lvbnMsIFVzZXJQZXJtaXNzaW9ucywgVXNlclJlZnN9IGZyb20gJy4uLy4uL3Byb2Nlc3MvcGVybWlzc2lvbnMnO1xuXG4vKipcbiAqIE9iamVjdCBmcm9tIEJhY2tlbmRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXNrIHtcbiAgICAvKipcbiAgICAgKiBNb25nbyBJRCBDYXNlXG4gICAgICpcbiAgICAgKiAqKipFeGFtcGxlOioqKiA1ZTkwNGZkODBhOTc1YTdmODdiMmMyZmRcbiAgICAgKi9cbiAgICBjYXNlSWQ6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBDYXNlIElELSBtb25nbyBJRFxuICAgICAqXG4gICAgICogKioqRXhhbXBsZToqKiogNWU5MDRmZDgwYTk3NWE3Zjg3YjJjMmZkXG4gICAgICovXG4gICAgdHJhbnNpdGlvbklkOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBjYXNlQ29sb3I6IHN0cmluZztcbiAgICBjYXNlVGl0bGU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTZWUgW1VzZXJTbWFsbF17QGxpbmsgVXNlclJlc291cmNlU21hbGwjfVxuICAgICAqL1xuICAgIHVzZXI6IFVzZXJSZXNvdXJjZVNtYWxsO1xuICAgIC8qKlxuICAgICAqICoqKkV4YW1wbGU6KioqXG4gICAgICpcbiAgICAgKiAgICBcIjVlNDNmNmEzMGE5NzVhN2Y4NzU1MTM4NVwiOiB7XG4gICAgICogICAgICBcInBlcmZvcm1cIjogdHJ1ZVxuICAgICAqICAgIH1cbiAgICAgKi9cbiAgICByb2xlczogUGVybWlzc2lvbnM7XG4gICAgc3RhcnREYXRlOiBOYWVEYXRlO1xuICAgIGZpbmlzaERhdGU6IE5hZURhdGU7XG4gICAgLyoqXG4gICAgICogU2VlIFtBc3NpZ25Qb2xpY3lde0BsaW5rIEFzc2lnblBvbGljeSN9XG4gICAgICovXG4gICAgYXNzaWduUG9saWN5OiBBc3NpZ25Qb2xpY3k7XG4gICAgLyoqXG4gICAgICogU2VlIFtEYXRhRm9jdXNQb2xpY3lde0BsaW5rIERhdGFGb2N1c1BvbGljeSN9XG4gICAgICovXG4gICAgZGF0YUZvY3VzUG9saWN5OiBEYXRhRm9jdXNQb2xpY3k7XG4gICAgLyoqXG4gICAgICogU2VlIFtGaW5pc2hQb2xpY3lde0BsaW5rIEZpbmlzaFBvbGljeSN9XG4gICAgICovXG4gICAgZmluaXNoUG9saWN5OiBGaW5pc2hQb2xpY3k7XG4gICAgc3RyaW5nSWQ6IHN0cmluZztcbiAgICBsYXlvdXQ6IFRhc2tMYXlvdXQ7XG4gICAgLyoqXG4gICAgICogQXJyYXkgW0RhdGFHcm91cF17QGxpbmsgRGF0YUdyb3VwI31cbiAgICAgKi9cbiAgICBkYXRhR3JvdXBzOiBBcnJheTxEYXRhR3JvdXA+O1xuICAgIF9saW5rczogb2JqZWN0O1xuICAgIHVzZXJzOiBVc2VyUGVybWlzc2lvbnM7XG4gICAgdXNlclJlZnM6IFVzZXJSZWZzO1xuICAgIGRhdGFTaXplPzogbnVtYmVyO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgcHJpb3JpdHk/OiBudW1iZXI7XG4gICAgYXNzaWduVGl0bGU/OiBzdHJpbmc7XG4gICAgZmluaXNoVGl0bGU/OiBzdHJpbmc7XG4gICAgY2FuY2VsVGl0bGU/OiBzdHJpbmc7XG4gICAgZGVsZWdhdGVUaXRsZT86IHN0cmluZztcbiAgICBpbW1lZGlhdGVEYXRhPzogQXJyYXk8SW1tZWRpYXRlRGF0YT47XG4gICAgYXNzaWduZWRVc2VyUG9saWN5PzogQXNzaWduZWRVc2VyUG9saWN5O1xuXG4gICAgaXNTdGlsbEV4ZWN1dGFibGU/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -116,7 +116,8 @@ export class FinishTaskService extends TaskHandlingService {
|
|
|
116
116
|
return;
|
|
117
117
|
}
|
|
118
118
|
if (outcomeResource.success) {
|
|
119
|
-
|
|
119
|
+
const outcome = outcomeResource.outcome;
|
|
120
|
+
this._taskContentService.updateStateData(outcome, outcome.isTaskStillExecutable);
|
|
120
121
|
const changedFieldsMap = this._eventService
|
|
121
122
|
.parseChangedFieldsFromOutcomeTree(outcomeResource.outcome);
|
|
122
123
|
if (!!changedFieldsMap) {
|
|
@@ -186,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
|
|
|
186
187
|
}] }, { type: i12.SelectedCaseService, decorators: [{
|
|
187
188
|
type: Optional
|
|
188
189
|
}] }, { type: i13.TaskContentService }]; } });
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluaXNoLXRhc2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvdGFzay9zZXJ2aWNlcy9maW5pc2gtdGFzay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFRcEMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFJOUUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDN0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBSzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU9sRTs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxtQkFBbUI7SUFFdEQsWUFBc0IsSUFBbUIsRUFDbkIsb0JBQXlDLEVBQ3pDLFNBQTBCLEVBQzFCLFVBQTRCLEVBQzVCLFVBQW1DLEVBQ25DLGdCQUFpQyxFQUNqQyxVQUE0QixFQUM1QixVQUE0QixFQUM1QixXQUE4QixFQUM5QixhQUEyQixFQUMzQixxQkFBMkMsRUFDZCxlQUErQixFQUMxRCxvQkFBeUMsRUFDckQsbUJBQXVDO1FBQy9DLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBZC9CLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUNuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWlCO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUM5QixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBQ2Qsb0JBQWUsR0FBZixlQUFlLENBQWdCO0lBSWxGLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0kscUJBQXFCLENBQUMsY0FBMkIsSUFBSSxXQUFXLEVBQUU7UUFDckUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDdkUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxDQUFDO29CQUM1QixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEVBQUU7b0JBQ3RHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDNUM7WUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1A7YUFBTSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsRUFBRSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQzNHLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDcEUsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUU7b0JBQ3ZELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDaEUsSUFBSSxJQUFJLEVBQUU7NEJBQ04sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO3lCQUM1QztvQkFDTCxDQUFDLENBQUMsQ0FBQztpQkFDTjtxQkFBTSxJQUFJLE9BQU8sRUFBRTtvQkFDaEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2lCQUM1QztZQUNULENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDUDtJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ08sc0JBQXNCLENBQUMsV0FBd0I7UUFDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQzFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDVixTQUFTLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sb0JBQW9CLENBQUMsV0FBd0IsRUFBRSxTQUFzQjtRQUMzRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztRQUUvQyxrRUFBa0U7UUFDbEUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUMzQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RFLFNBQVMsQ0FBQyxDQUFDLGVBQTRDLEVBQUUsRUFBRTtZQUM1RCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsa0ZBQWtGLENBQUMsQ0FBQztnQkFDcEcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsT0FBTzthQUNWO1lBRUQsSUFBSSxlQUFlLENBQUMsT0FBTyxFQUFFO2dCQUN6QixJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxPQUFpQyxDQUFDLENBQUM7Z0JBQzVGLE1BQU0sZ0JBQWdCLEdBQXFCLElBQUksQ0FBQyxhQUFhO3FCQUN4RCxpQ0FBaUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxDQUFDLGdCQUFnQixFQUFFO29CQUNwQixJQUFJLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDbEU7Z0JBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxlQUFlLENBQUMsT0FBaUMsQ0FBQyxDQUFDO2dCQUN0RyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxLQUFLLFNBQVM7b0JBQzVFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQztvQkFDN0QsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDMUM7aUJBQU0sSUFBSSxlQUFlLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDNUMsSUFBSSxlQUFlLENBQUMsS0FBSyxLQUFLLEVBQUUsRUFBRTtvQkFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzNEO2dCQUNELElBQUksZUFBZSxDQUFDLE9BQU8sS0FBSyxTQUFTLEVBQUU7b0JBQ3ZDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQ0FBaUMsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3ZHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2lCQUNsRTtnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDdkQ7UUFDTCxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVoRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztnQkFDbEYsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekIsT0FBTzthQUNWO1lBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDO2VBQ3JGLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNPLGVBQWUsQ0FBQyxXQUF3QixFQUFFLFNBQXNCLEVBQUUsTUFBZSxFQUFFLE9BQTBCO1FBQ25ILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7OztPQUlHO0lBQ08sZ0JBQWdCLENBQUMsT0FBZ0IsRUFBRSxPQUEwQjtRQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0SCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssV0FBVztRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUMvRyxDQUFDOzsrR0FyS1EsaUJBQWlCLDBYQWFOLG1CQUFtQjttSEFiOUIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVU7OzBCQWNNLE1BQU07MkJBQUMsbUJBQW1COzswQkFDMUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0NvbnRlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvc2VydmljZXMvdGFzay1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L3Rhc2stcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnLi4vLi4vc25hY2stYmFyL3NlcnZpY2VzL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1Rhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlfSBmcm9tICcuL3Rhc2stcmVxdWVzdC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0RhdGFTZXJ2aWNlfSBmcm9tICcuL3Rhc2stZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0hhbmRsaW5nU2VydmljZX0gZnJvbSAnLi90YXNrLWhhbmRsaW5nLXNlcnZpY2UnO1xuaW1wb3J0IHtOQUVfVEFTS19PUEVSQVRJT05TfSBmcm9tICcuLi9tb2RlbHMvdGFzay1vcGVyYXRpb25zLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge1Rhc2tPcGVyYXRpb25zfSBmcm9tICcuLi9pbnRlcmZhY2VzL3Rhc2stb3BlcmF0aW9ucyc7XG5pbXBvcnQge0NhbGxDaGFpblNlcnZpY2V9IGZyb20gJy4uLy4uL3V0aWxpdHkvY2FsbC1jaGFpbi9jYWxsLWNoYWluLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3RlZENhc2VTZXJ2aWNlfSBmcm9tICcuL3NlbGVjdGVkLWNhc2Uuc2VydmljZSc7XG5pbXBvcnQge2NyZWF0ZVRhc2tFdmVudE5vdGlmaWNhdGlvbn0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L21vZGVsL3Rhc2stZXZlbnQtbm90aWZpY2F0aW9uJztcbmltcG9ydCB7VGFza0V2ZW50fSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvbW9kZWwvdGFzay1ldmVudCc7XG5pbXBvcnQge1Rhc2tFdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtGaW5pc2hUYXNrRXZlbnRPdXRjb21lfSBmcm9tICcuLi8uLi9ldmVudC9tb2RlbC9ldmVudC1vdXRjb21lcy90YXNrLW91dGNvbWVzL2ZpbmlzaC10YXNrLWV2ZW50LW91dGNvbWUnO1xuaW1wb3J0IHtFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2V9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvbWVzc2FnZS1yZXNvdXJjZSc7XG5pbXBvcnQge0V2ZW50UXVldWVTZXJ2aWNlfSBmcm9tICcuLi8uLi9ldmVudC1xdWV1ZS9zZXJ2aWNlcy9ldmVudC1xdWV1ZS5zZXJ2aWNlJztcbmltcG9ydCB7UXVldWVkRXZlbnR9IGZyb20gJy4uLy4uL2V2ZW50LXF1ZXVlL21vZGVsL3F1ZXVlZC1ldmVudCc7XG5pbXBvcnQge0FmdGVyQWN0aW9ufSBmcm9tICcuLi8uLi91dGlsaXR5L2NhbGwtY2hhaW4vYWZ0ZXItYWN0aW9uJztcbmltcG9ydCB7Q2hhbmdlZEZpZWxkc1NlcnZpY2V9IGZyb20gJy4uLy4uL2NoYW5nZWQtZmllbGRzL3NlcnZpY2VzL2NoYW5nZWQtZmllbGRzLnNlcnZpY2UnO1xuaW1wb3J0IHtFdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL2V2ZW50L3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzTWFwfSBmcm9tICcuLi8uLi9ldmVudC9zZXJ2aWNlcy9pbnRlcmZhY2VzL2NoYW5nZWQtZmllbGRzLW1hcCc7XG5pbXBvcnQge1Rhc2tFdmVudE91dGNvbWV9IGZyb20gJy4uLy4uL2V2ZW50L21vZGVsL2V2ZW50LW91dGNvbWVzL3Rhc2stb3V0Y29tZXMvdGFzay1ldmVudC1vdXRjb21lJztcblxuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBoYW5kbGVzIHRoZSBsb2dpYyBvZiBmaW5pc2hpbmcgYSB0YXNrLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmluaXNoVGFza1NlcnZpY2UgZXh0ZW5kcyBUYXNrSGFuZGxpbmdTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1Jlc291cmNlU2VydmljZTogVGFza1Jlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrU3RhdGU6IFRhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza0RhdGFTZXJ2aWNlOiBUYXNrRGF0YVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYWxsQ2hhaW46IENhbGxDaGFpblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRXZlbnQ6IFRhc2tFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9ldmVudFF1ZXVlOiBFdmVudFF1ZXVlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2V2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2hhbmdlZEZpZWxkc1NlcnZpY2U6IENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTkFFX1RBU0tfT1BFUkFUSU9OUykgcHJvdGVjdGVkIF90YXNrT3BlcmF0aW9uczogVGFza09wZXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgX3NlbGVjdGVkQ2FzZVNlcnZpY2U6IFNlbGVjdGVkQ2FzZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX3Rhc2tDb250ZW50U2VydmljZTogVGFza0NvbnRlbnRTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKF90YXNrQ29udGVudFNlcnZpY2UsIF9zZWxlY3RlZENhc2VTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSB0YXNrIGRhdGEgdG8gdGhlaXIgY3VycmVudCBzdGF0ZSBmcm9tIGJhY2tlbmQsIGNoZWNrcyB0aGUgdmFsaWRpdHkgb2YgdGhlIGRhdGEgYW5kXG4gICAgICogc2VuZHMgYSBmaW5pc2ggcmVxdWVzdCB0byBiYWNrZW5kLlxuICAgICAqXG4gICAgICogRmluaXNoIHJlcXVlc3QgaXMgbm90IHNlbnQgaWYgdGhlIHRhc2sgY29udGFpbnMgaW52YWxpZCBkYXRhLlxuICAgICAqXG4gICAgICogSWYgYW4gdXBkYXRlIHRvIHRoZSBkYXRhIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3Mgd2FpdHMgZm9yIGl0J3Mgc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIGFuZCBzZW5kcyB0aGUgZmluaXNoIHJlcXVlc3QgYWZ0ZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYWZ0ZXJBY3Rpb24gaWYgZmluaXNoIHJlcXVlc3QgY29tcGxldGVzIHN1Y2Nlc3NmdWxseSBgdHJ1ZWAgd2lsbCBiZSBlbWl0dGVkIGludG8gdGhpcyBTdWJqZWN0LFxuICAgICAqIG90aGVyd2lzZSBgZmFsc2VgIHdpbGwgYmUgZW1pdHRlZFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGFBbmRGaW5pc2goYWZ0ZXJBY3Rpb246IEFmdGVyQWN0aW9uID0gbmV3IEFmdGVyQWN0aW9uKCkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YUlzRW1wdHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFTZXJ2aWNlLmluaXRpYWxpemVUYXNrRGF0YUZpZWxkcyh0aGlzLl9jYWxsQ2hhaW4uY3JlYXRlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fc2FmZVRhc2suZGF0YVNpemUgPD0gMCB8fFxuICAgICAgICAgICAgICAgICAgICAodGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnZhbGlkYXRlRHluYW1pY0VudW1GaWVsZCgpICYmIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS52YWxpZGF0ZVRhc2tEYXRhKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucXVldWVGaW5pc2hUYXNrUmVxdWVzdChhZnRlckFjdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS52YWxpZGF0ZUR5bmFtaWNFbnVtRmllbGQoKSAmJiB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudmFsaWRhdGVUYXNrRGF0YSgpKSB7XG4gICAgICAgICAgICBjb25zdCBmaW5pc2hlZFRhc2tJZCA9IHRoaXMuX3NhZmVUYXNrLnN0cmluZ0lkO1xuICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFTZXJ2aWNlLnVwZGF0ZVRhc2tEYXRhRmllbGRzKHRoaXMuX2NhbGxDaGFpbi5jcmVhdGUoc3VjY2VzcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzICYmIHRoaXMuX3Rhc2tTdGF0ZS5pc1VwZGF0aW5nKGZpbmlzaGVkVGFza0lkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFTZXJ2aWNlLnVwZGF0ZVN1Y2Nlc3MkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGJvb2wgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChib29sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVldWVGaW5pc2hUYXNrUmVxdWVzdChhZnRlckFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWV1ZUZpbmlzaFRhc2tSZXF1ZXN0KGFmdGVyQWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VuZHMgdGhlIGZpbmlzaCByZXF1ZXN0IHRvIGJhY2tlbmQgYW5kIG5vdGlmaWVzIHRoZSB1c2VyIGFib3V0IHRoZSBvdXRjb21lIG9mIHRoZSBvcGVyYXRpb24gdmlhIGEgc25hY2sgYmFyIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBEb2Vzbid0IHNlbmQgYW55IHJlcXVlc3RzIGlmIHRoZSBsb2FkaW5nIGluZGljYXRvciBpcyBpbiBpdCdzIGFjdGl2ZSBzdGF0ZS5cbiAgICAgKiBPdGhlcndpc2Ugc2V0cyB0aGUgaW5kaWNhdG9yIHRvIHRoZSBhY3RpdmUgc3RhdGUgYW5kIGRpc2FibGVzIGl0IG9uY2UgdGhlIHJlcXVlc3QgcmVzcG9uc2UgaXMgcmVjZWl2ZWQuXG4gICAgICpcbiAgICAgKiBUaGUgYXJndW1lbnQgY2FuIGJlIHVzZWQgdG8gY2hhaW4gb3BlcmF0aW9ucyB0b2dldGhlcixcbiAgICAgKiBvciB0byBleGVjdXRlIGNvZGUgY29uZGl0aW9uYWxseSBiYXNlZCBvbiB0aGUgc3VjY2VzcyBzdGF0ZSBvZiB0aGUgZmluaXNoIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgdGFzayBoZWxkIHdpdGhpbiB0aGUge0BsaW5rIFRhc2tDb250ZW50U2VydmljZX0gY2hhbmdlcyBiZWZvcmUgYSByZXNwb25zZSBpcyByZWNlaXZlZCwgdGhlIHJlc3BvbnNlIHdpbGwgYmUgaWdub3JlZFxuICAgICAqIGFuZCB0aGUgYGFmdGVyQWN0aW9uYCB3aWxsIG5vdCBiZSBleGVjdXRlZC5cbiAgICAgKiBAcGFyYW0gYWZ0ZXJBY3Rpb24gaWYgZmluaXNoIHJlcXVlc3QgY29tcGxldGVzIHN1Y2Nlc3NmdWxseSBgdHJ1ZWAgd2lsbCBiZSBlbWl0dGVkIGludG8gdGhpcyBTdWJqZWN0LFxuICAgICAqIG90aGVyd2lzZSBgZmFsc2VgIHdpbGwgYmUgZW1pdHRlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBxdWV1ZUZpbmlzaFRhc2tSZXF1ZXN0KGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9ldmVudFF1ZXVlLnNjaGVkdWxlRXZlbnQobmV3IFF1ZXVlZEV2ZW50KFxuICAgICAgICAgICAgKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIG5leHRFdmVudCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJmb3JtRmluaXNoUmVxdWVzdChhZnRlckFjdGlvbiwgbmV4dEV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBgZmluaXNoYCByZXF1ZXN0IG9uIHRoZSB0YXNrIGN1cnJlbnRseSBzdG9yZWQgaW4gdGhlIGB0YXNrQ29udGVudGAgc2VydmljZVxuICAgICAqIEBwYXJhbSBhZnRlckFjdGlvbiB0aGUgYWN0aW9uIHRoYXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBhZnRlciB0aGUgcmVxdWVzdCBpcyBwcm9jZXNzZWRcbiAgICAgKiBAcGFyYW0gbmV4dEV2ZW50IGluZGljYXRlcyB0byB0aGUgZXZlbnQgcXVldWUgdGhhdCB0aGUgbmV4dCBldmVudCBjYW4gYmUgcHJvY2Vzc2VkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHBlcmZvcm1GaW5pc2hSZXF1ZXN0KGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbiwgbmV4dEV2ZW50OiBBZnRlckFjdGlvbikge1xuICAgICAgICBjb25zdCBmaW5pc2hlZFRhc2tJZCA9IHRoaXMuX3NhZmVUYXNrLnN0cmluZ0lkO1xuXG4gICAgICAgIC8vIHRoaXMgaXMgcHJvYmFibHkgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBiZWNhdXNlIG9mIHRoZSBldmVudCBxdWV1ZVxuICAgICAgICBpZiAodGhpcy5fdGFza1N0YXRlLmlzTG9hZGluZyhmaW5pc2hlZFRhc2tJZCkpIHtcbiAgICAgICAgICAgIG5leHRFdmVudC5yZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0YXJ0TG9hZGluZyhmaW5pc2hlZFRhc2tJZCk7XG5cbiAgICAgICAgdGhpcy5fdGFza1Jlc291cmNlU2VydmljZS5maW5pc2hUYXNrKHRoaXMuX3NhZmVUYXNrLnN0cmluZ0lkKS5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvdXRjb21lUmVzb3VyY2U6IEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0b3BMb2FkaW5nKGZpbmlzaGVkVGFza0lkKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Rhc2tSZWxldmFudChmaW5pc2hlZFRhc2tJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJ2N1cnJlbnQgdGFzayBjaGFuZ2VkIGJlZm9yZSB0aGUgZmluaXNoIHJlc3BvbnNlIGNvdWxkIGJlIHJlY2VpdmVkLCBkaXNjYXJkaW5nLi4uJyk7XG4gICAgICAgICAgICAgICAgbmV4dEV2ZW50LnJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG91dGNvbWVSZXNvdXJjZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnVwZGF0ZVN0YXRlRGF0YShvdXRjb21lUmVzb3VyY2Uub3V0Y29tZSBhcyBGaW5pc2hUYXNrRXZlbnRPdXRjb21lKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VkRmllbGRzTWFwOiBDaGFuZ2VkRmllbGRzTWFwID0gdGhpcy5fZXZlbnRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5wYXJzZUNoYW5nZWRGaWVsZHNGcm9tT3V0Y29tZVRyZWUob3V0Y29tZVJlc291cmNlLm91dGNvbWUpO1xuICAgICAgICAgICAgICAgIGlmICghIWNoYW5nZWRGaWVsZHNNYXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkc1NlcnZpY2UuZW1pdENoYW5nZWRGaWVsZHMoY2hhbmdlZEZpZWxkc01hcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVBY3Rpb25zKGFmdGVyQWN0aW9uLCBuZXh0RXZlbnQsIHRydWUsIG91dGNvbWVSZXNvdXJjZS5vdXRjb21lIGFzIEZpbmlzaFRhc2tFdmVudE91dGNvbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXIub3BlblN1Y2Nlc3NTbmFja0JhcihvdXRjb21lUmVzb3VyY2Uub3V0Y29tZS5tZXNzYWdlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgndGFza3Muc25hY2tiYXIuZmluaXNoVGFza1N1Y2Nlc3MnKVxuICAgICAgICAgICAgICAgICAgICA6IG91dGNvbWVSZXNvdXJjZS5vdXRjb21lLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRjb21lUmVzb3VyY2UuZXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChvdXRjb21lUmVzb3VyY2UuZXJyb3IgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5FcnJvclNuYWNrQmFyKG91dGNvbWVSZXNvdXJjZS5lcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvdXRjb21lUmVzb3VyY2Uub3V0Y29tZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5nZWRGaWVsZHNNYXAgPSB0aGlzLl9ldmVudFNlcnZpY2UucGFyc2VDaGFuZ2VkRmllbGRzRnJvbU91dGNvbWVUcmVlKG91dGNvbWVSZXNvdXJjZS5vdXRjb21lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkc1NlcnZpY2UuZW1pdENoYW5nZWRGaWVsZHMoY2hhbmdlZEZpZWxkc01hcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVBY3Rpb25zKGFmdGVyQWN0aW9uLCBuZXh0RXZlbnQsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0b3BMb2FkaW5nKGZpbmlzaGVkVGFza0lkKTtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnZmluaXNoaW5nIHRhc2sgZmFpbGVkJywgZXJyb3IpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNUYXNrUmVsZXZhbnQoZmluaXNoZWRUYXNrSWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKCdjdXJyZW50IHRhc2sgY2hhbmdlZCBiZWZvcmUgdGhlIGZpbmlzaCBlcnJvciBjb3VsZCBiZSByZWNlaXZlZCcpO1xuICAgICAgICAgICAgICAgIG5leHRFdmVudC5yZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5FcnJvclNuYWNrQmFyKGAke3RoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5maW5pc2hUYXNrJyl9XG4gICAgICAgICAgICAgJHt0aGlzLl90YXNrLnRpdGxlfSAke3RoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5mYWlsZWQnKX1gKTtcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVBY3Rpb25zKGFmdGVyQWN0aW9uLCBuZXh0RXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcGxldGVzIGFsbCB0aGUgYWN0aW9uIHN0cmVhbXMgYW5kIHNlbmRzIHRoZSBub3RpZmljYXRpb24sIHdpdGggdGhlIHByb3ZpZGVkIHJlc3VsdFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb21wbGV0ZUFjdGlvbnMoYWZ0ZXJBY3Rpb246IEFmdGVyQWN0aW9uLCBuZXh0RXZlbnQ6IEFmdGVyQWN0aW9uLCByZXN1bHQ6IGJvb2xlYW4sIG91dGNvbWU/OiBUYXNrRXZlbnRPdXRjb21lKSB7XG4gICAgICAgIHRoaXMuc2VuZE5vdGlmaWNhdGlvbihyZXN1bHQsIG91dGNvbWUpO1xuICAgICAgICBhZnRlckFjdGlvbi5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIG5leHRFdmVudC5yZXNvbHZlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaGVzIGEgZmluaXNoIG5vdGlmaWNhdGlvbiB0byB0aGUge0BsaW5rIFRhc2tFdmVudFNlcnZpY2V9XG4gICAgICogQHBhcmFtIHN1Y2Nlc3Mgd2hldGhlciB0aGUgZmluaXNoIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICAgKiBAcGFyYW0gb3V0Y29tZSBUYXNrRXZlbnRPdXRjb21lXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNlbmROb3RpZmljYXRpb24oc3VjY2VzczogYm9vbGVhbiwgb3V0Y29tZT86IFRhc2tFdmVudE91dGNvbWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFza0V2ZW50LnB1Ymxpc2hUYXNrRXZlbnQoY3JlYXRlVGFza0V2ZW50Tm90aWZpY2F0aW9uKHRoaXMuX3NhZmVUYXNrLCBUYXNrRXZlbnQuRklOSVNILCBzdWNjZXNzLCBvdXRjb21lKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGRhdGEgc2l6ZVxuICAgICAqIEByZXR1cm4gYm9vbGVhbiB3aGV0aGVyIHRoZSB0YXNrIGNvbnRhaW5zIGRhdGEgb3Igbm90XG4gICAgICovXG4gICAgcHJpdmF0ZSBkYXRhSXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NhZmVUYXNrLmRhdGFTaXplIDw9IDAgfHwgIXRoaXMuX3NhZmVUYXNrLmRhdGFHcm91cHMgfHwgdGhpcy5fc2FmZVRhc2suZGF0YUdyb3Vwcy5sZW5ndGggPD0gMDtcbiAgICB9XG59XG4iXX0=
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluaXNoLXRhc2suc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvdGFzay9zZXJ2aWNlcy9maW5pc2gtdGFzay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFRcEMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFJOUUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDN0YsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBSzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU9sRTs7R0FFRztBQUVILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxtQkFBbUI7SUFFdEQsWUFBc0IsSUFBbUIsRUFDbkIsb0JBQXlDLEVBQ3pDLFNBQTBCLEVBQzFCLFVBQTRCLEVBQzVCLFVBQW1DLEVBQ25DLGdCQUFpQyxFQUNqQyxVQUE0QixFQUM1QixVQUE0QixFQUM1QixXQUE4QixFQUM5QixhQUEyQixFQUMzQixxQkFBMkMsRUFDZCxlQUErQixFQUMxRCxvQkFBeUMsRUFDckQsbUJBQXVDO1FBQy9DLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBZC9CLFNBQUksR0FBSixJQUFJLENBQWU7UUFDbkIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFx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b250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0NvbnRlbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvc2VydmljZXMvdGFzay1jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtUYXNrUmVzb3VyY2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvZW5naW5lLWVuZHBvaW50L3Rhc2stcmVzb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnLi4vLi4vc25hY2stYmFyL3NlcnZpY2VzL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1Rhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlfSBmcm9tICcuL3Rhc2stcmVxdWVzdC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0RhdGFTZXJ2aWNlfSBmcm9tICcuL3Rhc2stZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7VGFza0hhbmRsaW5nU2VydmljZX0gZnJvbSAnLi90YXNrLWhhbmRsaW5nLXNlcnZpY2UnO1xuaW1wb3J0IHtOQUVfVEFTS19PUEVSQVRJT05TfSBmcm9tICcuLi9tb2RlbHMvdGFzay1vcGVyYXRpb25zLWluamVjdGlvbi10b2tlbic7XG5pbXBvcnQge1Rhc2tPcGVyYXRpb25zfSBmcm9tICcuLi9pbnRlcmZhY2VzL3Rhc2stb3BlcmF0aW9ucyc7XG5pbXBvcnQge0NhbGxDaGFpblNlcnZpY2V9IGZyb20gJy4uLy4uL3V0aWxpdHkvY2FsbC1jaGFpbi9jYWxsLWNoYWluLnNlcnZpY2UnO1xuaW1wb3J0IHtTZWxlY3RlZENhc2VTZXJ2aWNlfSBmcm9tICcuL3NlbGVjdGVkLWNhc2Uuc2VydmljZSc7XG5pbXBvcnQge2NyZWF0ZVRhc2tFdmVudE5vdGlmaWNhdGlvbn0gZnJvbSAnLi4vLi4vdGFzay1jb250ZW50L21vZGVsL3Rhc2stZXZlbnQtbm90aWZpY2F0aW9uJztcbmltcG9ydCB7VGFza0V2ZW50fSBmcm9tICcuLi8uLi90YXNrLWNvbnRlbnQvbW9kZWwvdGFzay1ldmVudCc7XG5pbXBvcnQge1Rhc2tFdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtGaW5pc2hUYXNrRXZlbnRPdXRjb21lfSBmcm9tICcuLi8uLi9ldmVudC9tb2RlbC9ldmVudC1vdXRjb21lcy90YXNrLW91dGNvbWVzL2ZpbmlzaC10YXNrLWV2ZW50LW91dGNvbWUnO1xuaW1wb3J0IHtFdmVudE91dGNvbWVNZXNzYWdlUmVzb3VyY2V9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvbWVzc2FnZS1yZXNvdXJjZSc7XG5pbXBvcnQge0V2ZW50UXVldWVTZXJ2aWNlfSBmcm9tICcuLi8uLi9ldmVudC1xdWV1ZS9zZXJ2aWNlcy9ldmVudC1xdWV1ZS5zZXJ2aWNlJztcbmltcG9ydCB7UXVldWVkRXZlbnR9IGZyb20gJy4uLy4uL2V2ZW50LXF1ZXVlL21vZGVsL3F1ZXVlZC1ldmVudCc7XG5pbXBvcnQge0FmdGVyQWN0aW9ufSBmcm9tICcuLi8uLi91dGlsaXR5L2NhbGwtY2hhaW4vYWZ0ZXItYWN0aW9uJztcbmltcG9ydCB7Q2hhbmdlZEZpZWxkc1NlcnZpY2V9IGZyb20gJy4uLy4uL2NoYW5nZWQtZmllbGRzL3NlcnZpY2VzL2NoYW5nZWQtZmllbGRzLnNlcnZpY2UnO1xuaW1wb3J0IHtFdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL2V2ZW50L3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtDaGFuZ2VkRmllbGRzTWFwfSBmcm9tICcuLi8uLi9ldmVudC9zZXJ2aWNlcy9pbnRlcmZhY2VzL2NoYW5nZWQtZmllbGRzLW1hcCc7XG5pbXBvcnQge1Rhc2tFdmVudE91dGNvbWV9IGZyb20gJy4uLy4uL2V2ZW50L21vZGVsL2V2ZW50LW91dGNvbWVzL3Rhc2stb3V0Y29tZXMvdGFzay1ldmVudC1vdXRjb21lJztcblxuXG4vKipcbiAqIFNlcnZpY2UgdGhhdCBoYW5kbGVzIHRoZSBsb2dpYyBvZiBmaW5pc2hpbmcgYSB0YXNrLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmluaXNoVGFza1NlcnZpY2UgZXh0ZW5kcyBUYXNrSGFuZGxpbmdTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfbG9nOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza1Jlc291cmNlU2VydmljZTogVGFza1Jlc291cmNlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrU3RhdGU6IFRhc2tSZXF1ZXN0U3RhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdGFza0RhdGFTZXJ2aWNlOiBUYXNrRGF0YVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9jYWxsQ2hhaW46IENhbGxDaGFpblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF90YXNrRXZlbnQ6IFRhc2tFdmVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9ldmVudFF1ZXVlOiBFdmVudFF1ZXVlU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2V2ZW50U2VydmljZTogRXZlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2hhbmdlZEZpZWxkc1NlcnZpY2U6IENoYW5nZWRGaWVsZHNTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBJbmplY3QoTkFFX1RBU0tfT1BFUkFUSU9OUykgcHJvdGVjdGVkIF90YXNrT3BlcmF0aW9uczogVGFza09wZXJhdGlvbnMsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgX3NlbGVjdGVkQ2FzZVNlcnZpY2U6IFNlbGVjdGVkQ2FzZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgX3Rhc2tDb250ZW50U2VydmljZTogVGFza0NvbnRlbnRTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKF90YXNrQ29udGVudFNlcnZpY2UsIF9zZWxlY3RlZENhc2VTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSB0YXNrIGRhdGEgdG8gdGhlaXIgY3VycmVudCBzdGF0ZSBmcm9tIGJhY2tlbmQsIGNoZWNrcyB0aGUgdmFsaWRpdHkgb2YgdGhlIGRhdGEgYW5kXG4gICAgICogc2VuZHMgYSBmaW5pc2ggcmVxdWVzdCB0byBiYWNrZW5kLlxuICAgICAqXG4gICAgICogRmluaXNoIHJlcXVlc3QgaXMgbm90IHNlbnQgaWYgdGhlIHRhc2sgY29udGFpbnMgaW52YWxpZCBkYXRhLlxuICAgICAqXG4gICAgICogSWYgYW4gdXBkYXRlIHRvIHRoZSBkYXRhIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3Mgd2FpdHMgZm9yIGl0J3Mgc3VjY2Vzc2Z1bCBjb21wbGV0aW9uIGFuZCBzZW5kcyB0aGUgZmluaXNoIHJlcXVlc3QgYWZ0ZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gYWZ0ZXJBY3Rpb24gaWYgZmluaXNoIHJlcXVlc3QgY29tcGxldGVzIHN1Y2Nlc3NmdWxseSBgdHJ1ZWAgd2lsbCBiZSBlbWl0dGVkIGludG8gdGhpcyBTdWJqZWN0LFxuICAgICAqIG90aGVyd2lzZSBgZmFsc2VgIHdpbGwgYmUgZW1pdHRlZFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZURhdGFBbmRGaW5pc2goYWZ0ZXJBY3Rpb246IEFmdGVyQWN0aW9uID0gbmV3IEFmdGVyQWN0aW9uKCkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YUlzRW1wdHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFTZXJ2aWNlLmluaXRpYWxpemVUYXNrRGF0YUZpZWxkcyh0aGlzLl9jYWxsQ2hhaW4uY3JlYXRlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5fc2FmZVRhc2suZGF0YVNpemUgPD0gMCB8fFxuICAgICAgICAgICAgICAgICAgICAodGhpcy5fdGFza0NvbnRlbnRTZXJ2aWNlLnZhbGlkYXRlRHluYW1pY0VudW1GaWVsZCgpICYmIHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS52YWxpZGF0ZVRhc2tEYXRhKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucXVldWVGaW5pc2hUYXNrUmVxdWVzdChhZnRlckFjdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3Rhc2tDb250ZW50U2VydmljZS52YWxpZGF0ZUR5bmFtaWNFbnVtRmllbGQoKSAmJiB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudmFsaWRhdGVUYXNrRGF0YSgpKSB7XG4gICAgICAgICAgICBjb25zdCBmaW5pc2hlZFRhc2tJZCA9IHRoaXMuX3NhZmVUYXNrLnN0cmluZ0lkO1xuICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFTZXJ2aWNlLnVwZGF0ZVRhc2tEYXRhRmllbGRzKHRoaXMuX2NhbGxDaGFpbi5jcmVhdGUoc3VjY2VzcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzICYmIHRoaXMuX3Rhc2tTdGF0ZS5pc1VwZGF0aW5nKGZpbmlzaGVkVGFza0lkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFTZXJ2aWNlLnVwZGF0ZVN1Y2Nlc3MkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGJvb2wgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChib29sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVldWVGaW5pc2hUYXNrUmVxdWVzdChhZnRlckFjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xdWV1ZUZpbmlzaFRhc2tSZXF1ZXN0KGFmdGVyQWN0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VuZHMgdGhlIGZpbmlzaCByZXF1ZXN0IHRvIGJhY2tlbmQgYW5kIG5vdGlmaWVzIHRoZSB1c2VyIGFib3V0IHRoZSBvdXRjb21lIG9mIHRoZSBvcGVyYXRpb24gdmlhIGEgc25hY2sgYmFyIG1lc3NhZ2UuXG4gICAgICpcbiAgICAgKiBEb2Vzbid0IHNlbmQgYW55IHJlcXVlc3RzIGlmIHRoZSBsb2FkaW5nIGluZGljYXRvciBpcyBpbiBpdCdzIGFjdGl2ZSBzdGF0ZS5cbiAgICAgKiBPdGhlcndpc2Ugc2V0cyB0aGUgaW5kaWNhdG9yIHRvIHRoZSBhY3RpdmUgc3RhdGUgYW5kIGRpc2FibGVzIGl0IG9uY2UgdGhlIHJlcXVlc3QgcmVzcG9uc2UgaXMgcmVjZWl2ZWQuXG4gICAgICpcbiAgICAgKiBUaGUgYXJndW1lbnQgY2FuIGJlIHVzZWQgdG8gY2hhaW4gb3BlcmF0aW9ucyB0b2dldGhlcixcbiAgICAgKiBvciB0byBleGVjdXRlIGNvZGUgY29uZGl0aW9uYWxseSBiYXNlZCBvbiB0aGUgc3VjY2VzcyBzdGF0ZSBvZiB0aGUgZmluaXNoIHJlcXVlc3QuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgdGFzayBoZWxkIHdpdGhpbiB0aGUge0BsaW5rIFRhc2tDb250ZW50U2VydmljZX0gY2hhbmdlcyBiZWZvcmUgYSByZXNwb25zZSBpcyByZWNlaXZlZCwgdGhlIHJlc3BvbnNlIHdpbGwgYmUgaWdub3JlZFxuICAgICAqIGFuZCB0aGUgYGFmdGVyQWN0aW9uYCB3aWxsIG5vdCBiZSBleGVjdXRlZC5cbiAgICAgKiBAcGFyYW0gYWZ0ZXJBY3Rpb24gaWYgZmluaXNoIHJlcXVlc3QgY29tcGxldGVzIHN1Y2Nlc3NmdWxseSBgdHJ1ZWAgd2lsbCBiZSBlbWl0dGVkIGludG8gdGhpcyBTdWJqZWN0LFxuICAgICAqIG90aGVyd2lzZSBgZmFsc2VgIHdpbGwgYmUgZW1pdHRlZFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBxdWV1ZUZpbmlzaFRhc2tSZXF1ZXN0KGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9ldmVudFF1ZXVlLnNjaGVkdWxlRXZlbnQobmV3IFF1ZXVlZEV2ZW50KFxuICAgICAgICAgICAgKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgIG5leHRFdmVudCA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wZXJmb3JtRmluaXNoUmVxdWVzdChhZnRlckFjdGlvbiwgbmV4dEV2ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSBgZmluaXNoYCByZXF1ZXN0IG9uIHRoZSB0YXNrIGN1cnJlbnRseSBzdG9yZWQgaW4gdGhlIGB0YXNrQ29udGVudGAgc2VydmljZVxuICAgICAqIEBwYXJhbSBhZnRlckFjdGlvbiB0aGUgYWN0aW9uIHRoYXQgc2hvdWxkIGJlIHBlcmZvcm1lZCBhZnRlciB0aGUgcmVxdWVzdCBpcyBwcm9jZXNzZWRcbiAgICAgKiBAcGFyYW0gbmV4dEV2ZW50IGluZGljYXRlcyB0byB0aGUgZXZlbnQgcXVldWUgdGhhdCB0aGUgbmV4dCBldmVudCBjYW4gYmUgcHJvY2Vzc2VkXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHBlcmZvcm1GaW5pc2hSZXF1ZXN0KGFmdGVyQWN0aW9uOiBBZnRlckFjdGlvbiwgbmV4dEV2ZW50OiBBZnRlckFjdGlvbikge1xuICAgICAgICBjb25zdCBmaW5pc2hlZFRhc2tJZCA9IHRoaXMuX3NhZmVUYXNrLnN0cmluZ0lkO1xuXG4gICAgICAgIC8vIHRoaXMgaXMgcHJvYmFibHkgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBiZWNhdXNlIG9mIHRoZSBldmVudCBxdWV1ZVxuICAgICAgICBpZiAodGhpcy5fdGFza1N0YXRlLmlzTG9hZGluZyhmaW5pc2hlZFRhc2tJZCkpIHtcbiAgICAgICAgICAgIG5leHRFdmVudC5yZXNvbHZlKHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0YXJ0TG9hZGluZyhmaW5pc2hlZFRhc2tJZCk7XG5cbiAgICAgICAgdGhpcy5fdGFza1Jlc291cmNlU2VydmljZS5maW5pc2hUYXNrKHRoaXMuX3NhZmVUYXNrLnN0cmluZ0lkKS5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChvdXRjb21lUmVzb3VyY2U6IEV2ZW50T3V0Y29tZU1lc3NhZ2VSZXNvdXJjZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0b3BMb2FkaW5nKGZpbmlzaGVkVGFza0lkKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Rhc2tSZWxldmFudChmaW5pc2hlZFRhc2tJZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2cuZGVidWcoJ2N1cnJlbnQgdGFzayBjaGFuZ2VkIGJlZm9yZSB0aGUgZmluaXNoIHJlc3BvbnNlIGNvdWxkIGJlIHJlY2VpdmVkLCBkaXNjYXJkaW5nLi4uJyk7XG4gICAgICAgICAgICAgICAgbmV4dEV2ZW50LnJlc29sdmUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG91dGNvbWVSZXNvdXJjZS5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3V0Y29tZSA9IG91dGNvbWVSZXNvdXJjZS5vdXRjb21lIGFzIEZpbmlzaFRhc2tFdmVudE91dGNvbWVcbiAgICAgICAgICAgICAgICB0aGlzLl90YXNrQ29udGVudFNlcnZpY2UudXBkYXRlU3RhdGVEYXRhKG91dGNvbWUsIG91dGNvbWUuaXNUYXNrU3RpbGxFeGVjdXRhYmxlKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFuZ2VkRmllbGRzTWFwOiBDaGFuZ2VkRmllbGRzTWFwID0gdGhpcy5fZXZlbnRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5wYXJzZUNoYW5nZWRGaWVsZHNGcm9tT3V0Y29tZVRyZWUob3V0Y29tZVJlc291cmNlLm91dGNvbWUpO1xuICAgICAgICAgICAgICAgIGlmICghIWNoYW5nZWRGaWVsZHNNYXApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkc1NlcnZpY2UuZW1pdENoYW5nZWRGaWVsZHMoY2hhbmdlZEZpZWxkc01hcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVBY3Rpb25zKGFmdGVyQWN0aW9uLCBuZXh0RXZlbnQsIHRydWUsIG91dGNvbWVSZXNvdXJjZS5vdXRjb21lIGFzIEZpbmlzaFRhc2tFdmVudE91dGNvbWUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Rhc2tPcGVyYXRpb25zLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXIub3BlblN1Y2Nlc3NTbmFja0JhcihvdXRjb21lUmVzb3VyY2Uub3V0Y29tZS5tZXNzYWdlID09PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgndGFza3Muc25hY2tiYXIuZmluaXNoVGFza1N1Y2Nlc3MnKVxuICAgICAgICAgICAgICAgICAgICA6IG91dGNvbWVSZXNvdXJjZS5vdXRjb21lLm1lc3NhZ2UpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRjb21lUmVzb3VyY2UuZXJyb3IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmIChvdXRjb21lUmVzb3VyY2UuZXJyb3IgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5FcnJvclNuYWNrQmFyKG91dGNvbWVSZXNvdXJjZS5lcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChvdXRjb21lUmVzb3VyY2Uub3V0Y29tZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYW5nZWRGaWVsZHNNYXAgPSB0aGlzLl9ldmVudFNlcnZpY2UucGFyc2VDaGFuZ2VkRmllbGRzRnJvbU91dGNvbWVUcmVlKG91dGNvbWVSZXNvdXJjZS5vdXRjb21lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlZEZpZWxkc1NlcnZpY2UuZW1pdENoYW5nZWRGaWVsZHMoY2hhbmdlZEZpZWxkc01hcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVBY3Rpb25zKGFmdGVyQWN0aW9uLCBuZXh0RXZlbnQsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgZXJyb3IgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdGFza1N0YXRlLnN0b3BMb2FkaW5nKGZpbmlzaGVkVGFza0lkKTtcbiAgICAgICAgICAgIHRoaXMuX2xvZy5kZWJ1ZygnZmluaXNoaW5nIHRhc2sgZmFpbGVkJywgZXJyb3IpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNUYXNrUmVsZXZhbnQoZmluaXNoZWRUYXNrSWQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nLmRlYnVnKCdjdXJyZW50IHRhc2sgY2hhbmdlZCBiZWZvcmUgdGhlIGZpbmlzaCBlcnJvciBjb3VsZCBiZSByZWNlaXZlZCcpO1xuICAgICAgICAgICAgICAgIG5leHRFdmVudC5yZXNvbHZlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5FcnJvclNuYWNrQmFyKGAke3RoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5maW5pc2hUYXNrJyl9XG4gICAgICAgICAgICAgJHt0aGlzLl90YXNrLnRpdGxlfSAke3RoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5mYWlsZWQnKX1gKTtcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVBY3Rpb25zKGFmdGVyQWN0aW9uLCBuZXh0RXZlbnQsIGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcGxldGVzIGFsbCB0aGUgYWN0aW9uIHN0cmVhbXMgYW5kIHNlbmRzIHRoZSBub3RpZmljYXRpb24sIHdpdGggdGhlIHByb3ZpZGVkIHJlc3VsdFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBjb21wbGV0ZUFjdGlvbnMoYWZ0ZXJBY3Rpb246IEFmdGVyQWN0aW9uLCBuZXh0RXZlbnQ6IEFmdGVyQWN0aW9uLCByZXN1bHQ6IGJvb2xlYW4sIG91dGNvbWU/OiBUYXNrRXZlbnRPdXRjb21lKSB7XG4gICAgICAgIHRoaXMuc2VuZE5vdGlmaWNhdGlvbihyZXN1bHQsIG91dGNvbWUpO1xuICAgICAgICBhZnRlckFjdGlvbi5yZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgIG5leHRFdmVudC5yZXNvbHZlKHJlc3VsdCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHVibGlzaGVzIGEgZmluaXNoIG5vdGlmaWNhdGlvbiB0byB0aGUge0BsaW5rIFRhc2tFdmVudFNlcnZpY2V9XG4gICAgICogQHBhcmFtIHN1Y2Nlc3Mgd2hldGhlciB0aGUgZmluaXNoIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCBvciBub3RcbiAgICAgKiBAcGFyYW0gb3V0Y29tZSBUYXNrRXZlbnRPdXRjb21lXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNlbmROb3RpZmljYXRpb24oc3VjY2VzczogYm9vbGVhbiwgb3V0Y29tZT86IFRhc2tFdmVudE91dGNvbWUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFza0V2ZW50LnB1Ymxpc2hUYXNrRXZlbnQoY3JlYXRlVGFza0V2ZW50Tm90aWZpY2F0aW9uKHRoaXMuX3NhZmVUYXNrLCBUYXNrRXZlbnQuRklOSVNILCBzdWNjZXNzLCBvdXRjb21lKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGRhdGEgc2l6ZVxuICAgICAqIEByZXR1cm4gYm9vbGVhbiB3aGV0aGVyIHRoZSB0YXNrIGNvbnRhaW5zIGRhdGEgb3Igbm90XG4gICAgICovXG4gICAgcHJpdmF0ZSBkYXRhSXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NhZmVUYXNrLmRhdGFTaXplIDw9IDAgfHwgIXRoaXMuX3NhZmVUYXNrLmRhdGFHcm91cHMgfHwgdGhpcy5fc2FmZVRhc2suZGF0YUdyb3Vwcy5sZW5ndGggPD0gMDtcbiAgICB9XG59XG4iXX0=
|
|
@@ -151,11 +151,12 @@ export class TaskContentService {
|
|
|
151
151
|
/**
|
|
152
152
|
* Clears the assignee, start date and finish date from the managed Task.
|
|
153
153
|
*/
|
|
154
|
-
updateStateData(eventOutcome) {
|
|
154
|
+
updateStateData(eventOutcome, isStillExecutable = true) {
|
|
155
155
|
if (this._task) {
|
|
156
156
|
this._task.user = eventOutcome.task.user;
|
|
157
157
|
this._task.startDate = eventOutcome.task.startDate;
|
|
158
158
|
this._task.finishDate = eventOutcome.task.finishDate;
|
|
159
|
+
this._task.isStillExecutable = isStillExecutable;
|
|
159
160
|
}
|
|
160
161
|
}
|
|
161
162
|
/**
|
|
@@ -178,7 +179,7 @@ export class TaskContentService {
|
|
|
178
179
|
this.$shouldCreate.next(this._task.dataGroups);
|
|
179
180
|
}
|
|
180
181
|
updateField(chFields, field, frontendActions, referenced = false) {
|
|
181
|
-
if (this._fieldConverterService.resolveType(field) === FieldTypeResource.TASK_REF) {
|
|
182
|
+
if (this._fieldConverterService.resolveType(field) === FieldTypeResource.TASK_REF && (!!this._task?.isStillExecutable || this._task?.isStillExecutable === undefined)) {
|
|
182
183
|
this._taskDataReloadRequest$.next(frontendActions ? frontendActions : undefined);
|
|
183
184
|
return;
|
|
184
185
|
}
|
|
@@ -252,7 +253,7 @@ export class TaskContentService {
|
|
|
252
253
|
findTaskRefId(taskId, fields) {
|
|
253
254
|
let taskRefId = Object.values(fields).find(f => f instanceof TaskRefField && f.value.includes(taskId));
|
|
254
255
|
if (!taskRefId) {
|
|
255
|
-
const referencedTaskIds = Object.values(fields).filter(f => f instanceof TaskRefField).map(tr => tr.value);
|
|
256
|
+
const referencedTaskIds = Array.prototype.concat.apply([], Object.values(fields).filter(f => f instanceof TaskRefField).map(tr => tr.value));
|
|
256
257
|
referencedTaskIds.forEach(id => {
|
|
257
258
|
taskRefId = this.findTaskRefId(taskId, this.taskFieldsIndex[id].fields);
|
|
258
259
|
if (!!taskRefId) {
|
|
@@ -270,4 +271,4 @@ TaskContentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", v
|
|
|
270
271
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: TaskContentService, decorators: [{
|
|
271
272
|
type: Injectable
|
|
272
273
|
}], ctorParameters: function () { return [{ type: i1.FieldConverterService }, { type: i2.SnackBarService }, { type: i3.TranslateService }, { type: i4.LoggerService }]; } });
|
|
273
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jb250ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBQyxlQUFlLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBUSxNQUFNLE1BQU0sQ0FBQztBQVNoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUs3RyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdURBQXVELENBQUM7Ozs7OztBQUVuRjs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFnQixrQkFBa0I7SUFlcEMsWUFBZ0Msc0JBQTZDLEVBQzdDLGdCQUFpQyxFQUNqQyxVQUE0QixFQUM1QixPQUFzQjtRQUh0QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQVI1QyxxQkFBZ0IsR0FFdEIsRUFBRSxDQUFDO1FBQ0csOEJBQXlCLEdBQXdDLEVBQUUsQ0FBQztRQU0xRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFtQixDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMs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dkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0YUdyb3VwfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2RhdGEtZ3JvdXBzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1Rhc2t9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvdGFzayc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnLi4vLi4vc25hY2stYmFyL3NlcnZpY2VzL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0VudW1lcmF0aW9uRmllbGQsIEVudW1lcmF0aW9uRmllbGRWYWx1ZX0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvZW51bWVyYXRpb24tZmllbGQvbW9kZWxzL2VudW1lcmF0aW9uLWZpZWxkJztcbmltcG9ydCB7TXVsdGljaG9pY2VGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbXVsdGljaG9pY2UtZmllbGQvbW9kZWxzL211bHRpY2hvaWNlLWZpZWxkJztcbmltcG9ydCB7Q2hhbmdlLCBDaGFuZ2VkRmllbGRzfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9tb2RlbHMvY2hhbmdlZC1maWVsZHMnO1xuaW1wb3J0IHtGaWVsZENvbnZlcnRlclNlcnZpY2V9IGZyb20gJy4vZmllbGQtY29udmVydGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtGaWVsZFR5cGVSZXNvdXJjZX0gZnJvbSAnLi4vbW9kZWwvZmllbGQtdHlwZS1yZXNvdXJjZSc7XG5pbXBvcnQge0R5bmFtaWNFbnVtZXJhdGlvbkZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9lbnVtZXJhdGlvbi1maWVsZC9tb2RlbHMvZHluYW1pYy1lbnVtZXJhdGlvbi1maWVsZCc7XG5pbXBvcnQge1ZhbGlkYXRpb259IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL21vZGVscy92YWxpZGF0aW9uJztcbmltcG9ydCB7VGFza0V2ZW50T3V0Y29tZX0gZnJvbSAnLi4vLi4vZXZlbnQvbW9kZWwvZXZlbnQtb3V0Y29tZXMvdGFzay1vdXRjb21lcy90YXNrLWV2ZW50LW91dGNvbWUnO1xuaW1wb3J0IHtEYXRhRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkJztcbmltcG9ydCB7VGFza0ZpZWxkc30gZnJvbSAnLi4vbW9kZWwvdGFzay1maWVsZHMnO1xuaW1wb3J0IHtUYXNrUmVmRmllbGR9IGZyb20gXCIuLi8uLi9kYXRhLWZpZWxkcy90YXNrLXJlZi1maWVsZC9tb2RlbC90YXNrLXJlZi1maWVsZFwiO1xuXG4vKipcbiAqIEFjdHMgYXMgYSBjb21tdW5pY2F0aW9uIGludGVyZmFjZSBiZXR3ZWVuIHRoZSBDb21wb25lbnQgdGhhdCByZW5kZXJzIFRhc2sgY29udGVudCBhbmQgaXQncyBwYXJlbnQgQ29tcG9uZW50LlxuICogQWxzbyBwcm92aWRlcyBzb21lIGdlbmVyYWwgZnVuY3Rpb25hbGl0eSB0aGF0IGlzIG5lZWRlZCB3aGVuIHdvcmtpbmcgd2l0aCB0YXNrIGNvbnRlbnQuXG4gKlxuICogTm90YWJsZSBleGFtcGxlIG9mIGEgcGFyZW50IENvbXBvbmVudCBpcyB0aGUge0BsaW5rIEFic3RyYWN0VGFza1BhbmVsQ29tcG9uZW50fS5cbiAqXG4gKiBOb3RhYmxlIGV4YW1wbGUgb2YgYSB0YXNrIGNvbnRlbnQgcmVuZGVyZXIgaXMgdGhlIHtAbGluayBBYnN0cmFjdFRhc2tDb250ZW50Q29tcG9uZW50fS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRhc2tDb250ZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZST05URU5EX0FDVElPTlNfS0VZID0gJ19mcm9udGVuZF9hY3Rpb25zJztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTiA9ICdhY3Rpb24nO1xuXG4gICAgJHNob3VsZENyZWF0ZTogUmVwbGF5U3ViamVjdDxBcnJheTxEYXRhR3JvdXA+PjtcbiAgICAkc2hvdWxkQ3JlYXRlQ291bnRlcjogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG4gICAgcHJvdGVjdGVkIF90YXNrOiBUYXNrO1xuICAgIHByb3RlY3RlZCBfdGFza0RhdGFSZWxvYWRSZXF1ZXN0JDogU3ViamVjdDxDaGFuZ2U+O1xuICAgIHByb3RlY3RlZCBfaXNFeHBhbmRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gICAgcHJvdGVjdGVkIF90YXNrRmllbGRzSW5kZXg6IHtcbiAgICAgICAgW3Rhc2tJZDogc3RyaW5nXTogVGFza0ZpZWxkc1xuICAgIH0gPSB7fTtcbiAgICBwcm90ZWN0ZWQgX3JlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkczogeyBbY2FzZUlkOiBzdHJpbmddOiBBcnJheTxzdHJpbmc+IH0gPSB7fTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2ZpZWxkQ29udmVydGVyU2VydmljZTogRmllbGRDb252ZXJ0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NuYWNrQmFyU2VydmljZTogU25hY2tCYXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2dnZXI6IExvZ2dlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy4kc2hvdWxkQ3JlYXRlID0gbmV3IFJlcGxheVN1YmplY3Q8QXJyYXk8RGF0YUdyb3VwPj4oMSk7XG4gICAgICAgIHRoaXMuJHNob3VsZENyZWF0ZUNvdW50ZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgICAgIHRoaXMuX2lzRXhwYW5kaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgICAgICB0aGlzLl90YXNrID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl90YXNrRGF0YVJlbG9hZFJlcXVlc3QkID0gbmV3IFN1YmplY3Q8Q2hhbmdlPigpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuJHNob3VsZENyZWF0ZS5jbG9zZWQpIHtcbiAgICAgICAgICAgIHRoaXMuJHNob3VsZENyZWF0ZS5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Rhc2tEYXRhUmVsb2FkUmVxdWVzdCQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5faXNFeHBhbmRpbmckLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgdGhlIFRhc2sgb2JqZWN0IGlmIHNldCBhbmQgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCB0YXNrKCk6IFRhc2sgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZXR0aW5nIGEgVGFzayBhbHNvIGVtaXRzIGl0IGludG8gdGhlIHN0cmVhbSBhY2Nlc3NpYmxlIGJ5IHRoZSBbdGFzayRde0BsaW5rIFRhc2tDb250ZW50U2VydmljZSN0YXNrJH0gZ2V0dGVyIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gdGFzayB0aGUgVGFzayB0aGF0IG93bnMgdGhlIGNvbnRlbnQgbWFuYWdlZCBieSB0aGlzIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0IHRhc2sodGFzazogVGFzayk7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gcmV0dXJucyBhIHtAbGluayBUYXNrfSBvYmplY3QgZXZlcnkgdGltZSB0aGlzIG9iamVjdCBpcyBzZXQuXG4gICAgICpcbiAgICAgKiBVc2UgW3Rhc2tde0BsaW5rIFRhc2tDb250ZW50U2VydmljZSN0YXNrfSBzZXR0ZXIgbWV0aG9kIHRvIHNldCB0aGUgVGFzay5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IHRhc2skKCk6IE9ic2VydmFibGU8VGFzaz47XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gdGhhdCBlbWl0cyBldmVyeSB0aW1lIGEgZGF0YSByZWxvYWQgaXMgcmVxdWVzdGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdGFza0RhdGFSZWxvYWRSZXF1ZXN0JCgpOiBPYnNlcnZhYmxlPENoYW5nZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza0RhdGFSZWxvYWRSZXF1ZXN0JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cblxuICAgIGdldCB0YXNrRmllbGRzSW5kZXgoKTogeyBbcDogc3RyaW5nXTogVGFza0ZpZWxkcyB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tGaWVsZHNJbmRleDtcbiAgICB9XG5cbiAgICBzZXQgdGFza0ZpZWxkc0luZGV4KHZhbHVlOiB7IFtwOiBzdHJpbmddOiBUYXNrRmllbGRzIH0pIHtcbiAgICAgICAgdGhpcy5fdGFza0ZpZWxkc0luZGV4ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHJlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkcygpOiB7IFtwOiBzdHJpbmddOiBBcnJheTxzdHJpbmc+IH0ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzO1xuICAgIH1cblxuICAgIHNldCByZWZlcmVuY2VkVGFza0FuZENhc2VJZHModmFsdWU6IHsgW3A6IHN0cmluZ106IEFycmF5PHN0cmluZz4gfSkge1xuICAgICAgICB0aGlzLl9yZWZlcmVuY2VkVGFza0FuZENhc2VJZHMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBwYW5lbCB0aGF0IHRoZSB0YXNrIGNvbnRlbnQgaXMgY29udGFpbmVkIGluIGlzIGN1cnJlbnRseSBleHBhbmRpbmcuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgdGFzayBjb250ZW50IGlzIG5vdCBjb250YWluZWQgaW4gYSBwYW5lbCwgYGlzRXhwYW5kaW5nYCB3aWxsIGJlIGFsd2F5cyBgZmFsc2VgLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNFeHBhbmRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0V4cGFuZGluZyQudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgc3RhdGUgb2YgdGhlIHRhc2sgY29udGVudCB0byBgZXhwYW5kaW5nYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5zaW9uU3RhcnRlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNFeHBhbmRpbmckLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgc3RhdGUgb2YgdGhlIHRhc2sgY29udGVudCB0byBgbm90IGV4cGFuZGluZ2AuXG4gICAgICovXG4gICAgcHVibGljIGV4cGFuc2lvbkZpbmlzaGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc0V4cGFuZGluZyQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHRoZSB2YWxpZGl0eSBvZiBhbGwgZGF0YSBmaWVsZHMgaW4gdGhlIG1hbmFnZWQge0BsaW5rIFRhc2t9LlxuICAgICAqXG4gICAgICogSWYgc29tZSBvZiB0aGUgZmllbGRzIGFyZSBpbnZhbGlkIHRvdWNoZXMgdGhlbSBzbyB0aGVpciB2YWxpZGF0aW9uIGVycm9ycyB3aWxsIGFwcGVhciAoaWYgc2V0KS5cbiAgICAgKiBBIHNuYWNrYmFyIHdpbGwgYWxzbyBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIsIGluZm9ybWluZyB0aGVtIG9mIHRoZSBmYWN0IHRoYXQgdGhlIGZpZWxkcyBhcmUgaW52YWxpZC5cbiAgICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSB0YXNrIGlzIHZhbGlkIG9yIG5vdFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZVRhc2tEYXRhKHRhc2tJZD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX3Rhc2sgfHwgIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbGlkID0gIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5maWx0ZXIoZ3JvdXAgPT4gISFncm91cC5wYXJlbnRUYXNrSWQgJiYgISF0YXNrSWQgPyBncm91cC5wYXJlbnRUYXNrSWQgPT09IHRhc2tJZCA6IHRydWUpLnNvbWUoZ3JvdXAgPT4gZ3JvdXAuZmllbGRzLnNvbWUoZmllbGQgPT4gIWZpZWxkLnZhbGlkICYmICFmaWVsZC5kaXNhYmxlZCkpO1xuICAgICAgICBjb25zdCB2YWxpZERpc2FibGVkID0gIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5maWx0ZXIoZ3JvdXAgPT4gISFncm91cC5wYXJlbnRUYXNrSWQgJiYgISF0YXNrSWQgPyBncm91cC5wYXJlbnRUYXNrSWQgPT09IHRhc2tJZCA6IHRydWUpLnNvbWUoZ3JvdXAgPT4gZ3JvdXAuZmllbGRzLnNvbWUoZmllbGQgPT4gIWZpZWxkLnZhbGlkUmVxdWlyZWQgJiYgZmllbGQuZGlzYWJsZWQpKTtcbiAgICAgICAgaWYgKCF2YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5pbnZhbGlkRGF0YScpKTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IGdyb3VwLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IGZpZWxkLnRvdWNoID0gdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsaWREaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5taXNzaW5nUmVxdWlyZWQnKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbGlkICYmIHZhbGlkRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgaW52YWxpZCBkYXRhIG9mIHRhc2tcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGFycmF5IG9mIGludmFsaWQgZGF0YWZpZWxkc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbnZhbGlkVGFza0RhdGEoKTogQXJyYXk8RGF0YUZpZWxkPGFueT4+IHtcbiAgICAgICAgY29uc3QgaW52YWxpZEZpZWxkcyA9IFtdO1xuICAgICAgICB0aGlzLl90YXNrLmRhdGFHcm91cHMuZm9yRWFjaChncm91cCA9PiBpbnZhbGlkRmllbGRzLnB1c2goLi4uZ3JvdXAuZmllbGRzLmZpbHRlcihmaWVsZCA9PlxuICAgICAgICAgICAgKCFmaWVsZC52YWxpZCAmJiAhZmllbGQuZGlzYWJsZWQpIHx8ICghZmllbGQudmFsaWRSZXF1aXJlZCAmJiAhZmllbGQuZGlzYWJsZWQpKSkpO1xuICAgICAgICByZXR1cm4gaW52YWxpZEZpZWxkcztcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVEeW5hbWljRW51bUZpZWxkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX3Rhc2sgfHwgIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5zb21lKGdyb3VwID0+IGdyb3VwLmZpZWxkcy5zb21lKGZpZWxkID0+IGZpZWxkIGluc3RhbmNlb2YgRHluYW1pY0VudW1lcmF0aW9uRmllbGQpKTtcbiAgICAgICAgaWYgKCFleGlzdHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCB2YWxpZCA9IHRydWU7XG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgdGhpcy5fdGFzay5kYXRhR3JvdXBzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGdyb3VwLmZpZWxkcykge1xuICAgICAgICAgICAgICAgIGlmIChmaWVsZCBpbnN0YW5jZW9mIER5bmFtaWNFbnVtZXJhdGlvbkZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5jaG9pY2VzICE9PSB1bmRlZmluZWQgJiYgZmllbGQuY2hvaWNlcy5sZW5ndGggIT09IDAgJiYgZmllbGQudmFsdWUgIT09ICcnICYmIGZpZWxkLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmllbGQuY2hvaWNlcy5zb21lKGNob2ljZSA9PiBjaG9pY2Uua2V5ID09PSBmaWVsZC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5iZWhhdmlvci5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3Rhc2tzLnNuYWNrYmFyLm1pc3NpbmdSZXF1aXJlZCcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgYmxvY2tpbmcgc3RhdGUgb2YgYWxsIGZpZWxkcyBpbiB0aGUgbWFuYWdlZCBUYXNrLlxuICAgICAqIEBwYXJhbSBibG9ja2luZ1N0YXRlIHdoZXRoZXIgdGhlIGZpZWxkIHNob3VsZCBiZSBibG9ja2VkIG9yIG5vdFxuICAgICAqL1xuICAgIHB1YmxpYyBibG9ja0ZpZWxkcyhibG9ja2luZ1N0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90YXNrICYmIHRoaXMuX3Rhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgdGhpcy5fdGFzay5kYXRhR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICAgICAgICAgIGdyb3VwLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQuYmxvY2sgPSBibG9ja2luZ1N0YXRlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgdGhlIGFzc2lnbmVlLCBzdGFydCBkYXRlIGFuZCBmaW5pc2ggZGF0ZSBmcm9tIHRoZSBtYW5hZ2VkIFRhc2suXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVN0YXRlRGF0YShldmVudE91dGNvbWU6IFRhc2tFdmVudE91dGNvbWUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX3Rhc2spIHtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2sudXNlciA9IGV2ZW50T3V0Y29tZS50YXNrLnVzZXI7XG4gICAgICAgICAgICB0aGlzLl90YXNrLnN0YXJ0RGF0ZSA9IGV2ZW50T3V0Y29tZS50YXNrLnN0YXJ0RGF0ZTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2suZmluaXNoRGF0ZSA9IGV2ZW50T3V0Y29tZS50YXNrLmZpbmlzaERhdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBwcm9wZXJ0aWVzIG9mIGZpZWxkcyBpbiB0aGUgbWFuYWdlZCB0YXNrIGJhc2VkIG9uIGEgZGVsdGEgb2YgY2hhbmdlcyBmcm9tIHByZXZpb3VzIHN0YXRlLlxuICAgICAqIEBwYXJhbSBjaEZpZWxkcyBvYmplY3QgY29udGFpbmluZyB0aGUgZGVsdGEgb2YgdGhlIGNoYW5nZXMgZnJvbSB0aGUgcHJldmlvdXMgc3RhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlRnJvbUNoYW5nZWRGaWVsZHMoY2hGaWVsZHM6IENoYW5nZWRGaWVsZHMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl90YXNrIHx8ICF0aGlzLl90YXNrLmRhdGFHcm91cHMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmcm9udGVuZEFjdGlvbnMgPSBjaEZpZWxkcy50YXNrSWQgPT09IHRoaXMudGFzay5zdHJpbmdJZCAmJiBjaEZpZWxkc1tUYXNrQ29udGVudFNlcnZpY2UuRlJPTlRFTkRfQUNUSU9OU19LRVldO1xuICAgICAgICBPYmplY3Qua2V5cyhjaEZpZWxkcykuZm9yRWFjaChjaGFuZ2VkRmllbGQgPT4ge1xuICAgICAgICAgICAgaWYgKGNoRmllbGRzLnRhc2tJZCA9PT0gdGhpcy5fdGFzay5zdHJpbmdJZCAmJiB0aGlzLmlzRmllbGRJblRhc2soY2hGaWVsZHMudGFza0lkLCBjaGFuZ2VkRmllbGQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVGaWVsZChjaEZpZWxkcywgdGhpcy50YXNrRmllbGRzSW5kZXhbY2hGaWVsZHMudGFza0lkXS5maWVsZHNbY2hhbmdlZEZpZWxkXSwgZnJvbnRlbmRBY3Rpb25zKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoISF0aGlzLmdldFJlZmVyZW5jZWRUYXNrSWQoY2hhbmdlZEZpZWxkLCBjaEZpZWxkcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkKGNoRmllbGRzLCB0aGlzLnRhc2tGaWVsZHNJbmRleFt0aGlzLmdldFJlZmVyZW5jZWRUYXNrSWQoY2hhbmdlZEZpZWxkLCBjaEZpZWxkcyldLmZpZWxkc1tjaGFuZ2VkRmllbGRdLCBmcm9udGVuZEFjdGlvbnMsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLiRzaG91bGRDcmVhdGUubmV4dCh0aGlzLl90YXNrLmRhdGFHcm91cHMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVGaWVsZChjaEZpZWxkczogQ2hhbmdlZEZpZWxkcywgZmllbGQ6IERhdGFGaWVsZDxhbnk+LCBmcm9udGVuZEFjdGlvbnM6IENoYW5nZSwgcmVmZXJlbmNlZDogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9maWVsZENvbnZlcnRlclNlcnZpY2UucmVzb2x2ZVR5cGUoZmllbGQpID09PSBGaWVsZFR5cGVSZXNvdXJjZS5UQVNLX1JFRikge1xuICAgICAgICAgICAgdGhpcy5fdGFza0RhdGFSZWxvYWRSZXF1ZXN0JC5uZXh0KGZyb250ZW5kQWN0aW9ucyA/IGZyb250ZW5kQWN0aW9ucyA6IHVuZGVmaW5lZCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cGRhdGVkRmllbGQgPSBjaEZpZWxkc1tmaWVsZC5zdHJpbmdJZF07XG4gICAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZWRGaWVsZCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICd0eXBlJzpcbiAgICAgICAgICAgICAgICAgICAgLy8gdHlwZSBpcyBqdXN0IGFuIGluZm9ybWF0aW9uLCBub3QgYW4gdXBkYXRlLiBBIGZpZWxkIGNhbm5vdCBjaGFuZ2UgaXRzIHR5cGVcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBjb250aW51ZSAtIHRoZSBmaWVsZCBkb2VzIG5vdCBuZWVkIHVwZGF0aW5nLCBzaW5jZSBub3RoaW5nIGNoYW5nZWRcbiAgICAgICAgICAgICAgICBjYXNlICd2YWx1ZSc6XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnZhbHVlV2l0aG91dENoYW5nZSh0aGlzLl9maWVsZENvbnZlcnRlclNlcnZpY2UuZm9ybWF0VmFsdWVGcm9tQmFja2VuZChmaWVsZCwgdXBkYXRlZEZpZWxkW2tleV0pKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnYmVoYXZpb3InOlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZWQgJiYgdXBkYXRlZEZpZWxkLmJlaGF2aW9yW3RoaXMuX3Rhc2sudHJhbnNpdGlvbklkXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuYmVoYXZpb3IgPSB1cGRhdGVkRmllbGQuYmVoYXZpb3JbdGhpcy5fdGFzay50cmFuc2l0aW9uSWRdO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHJlZmVyZW5jZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhc2tJZCA9IHRoaXMuZ2V0UmVmZXJlbmNlZFRhc2tJZChmaWVsZC5zdHJpbmdJZCwgY2hGaWVsZHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFza1JlZiA9IHRoaXMuZmluZFRhc2tSZWZJZCh0YXNrSWQsIHRoaXMudGFza0ZpZWxkc0luZGV4W3RoaXMuX3Rhc2suc3RyaW5nSWRdLmZpZWxkcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2l0aW9uSWQgPSB0aGlzLnRhc2tGaWVsZHNJbmRleFt0YXNrSWRdLnRyYW5zaXRpb25JZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghIXRyYW5zaXRpb25JZCAmJiB0cmFuc2l0aW9uSWQgIT09ICcnICYmIHVwZGF0ZWRGaWVsZC5iZWhhdmlvclt0cmFuc2l0aW9uSWRdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmJlaGF2aW9yID0gdGFza1JlZi5iZWhhdmlvci5lZGl0YWJsZSA/IHVwZGF0ZWRGaWVsZC5iZWhhdmlvclt0cmFuc2l0aW9uSWRdIDogdGFza1JlZi5iZWhhdmlvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdjaG9pY2VzJzpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3Q2hvaWNlczogQXJyYXk8RW51bWVyYXRpb25GaWVsZFZhbHVlPiA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAodXBkYXRlZEZpZWxkLmNob2ljZXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEZpZWxkLmNob2ljZXMuZm9yRWFjaChpdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Q2hvaWNlcy5wdXNoKHtrZXk6IGl0LCB2YWx1ZTogaXR9IGFzIEVudW1lcmF0aW9uRmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHVwZGF0ZWRGaWVsZC5jaG9pY2VzKS5mb3JFYWNoKGNob2ljZUtleSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3Q2hvaWNlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBjaG9pY2VLZXksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB1cGRhdGVkRmllbGQuY2hvaWNlc1tjaG9pY2VLZXldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBFbnVtZXJhdGlvbkZpZWxkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKGZpZWxkIGFzIEVudW1lcmF0aW9uRmllbGQgfCBNdWx0aWNob2ljZUZpZWxkKS5jaG9pY2VzID0gbmV3Q2hvaWNlcztcbiAgICAgICAgICAgICAgICAgICAgKGZpZWxkIGFzIEVudW1lcmF0aW9uRmllbGQgfCBNdWx0aWNob2ljZUZpZWxkKS51cGRhdGVDaG9pY2UoKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnb3B0aW9ucyc6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld09wdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXModXBkYXRlZEZpZWxkLm9wdGlvbnMpLmZvckVhY2gob3B0aW9uS2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld09wdGlvbnMucHVzaCh7a2V5OiBvcHRpb25LZXksIHZhbHVlOiB1cGRhdGVkRmllbGQub3B0aW9uc1tvcHRpb25LZXldfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAoZmllbGQgYXMgRW51bWVyYXRpb25GaWVsZCB8IE11bHRpY2hvaWNlRmllbGQpLmNob2ljZXMgPSBuZXdPcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAoZmllbGQgYXMgRW51bWVyYXRpb25GaWVsZCB8IE11bHRpY2hvaWNlRmllbGQpLnVwZGF0ZUNob2ljZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICd2YWxpZGF0aW9ucyc6XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLnJlcGxhY2VWYWxpZGF0aW9ucyh1cGRhdGVkRmllbGQudmFsaWRhdGlvbnMubWFwKGl0ID0+IChpdCBhcyBWYWxpZGF0aW9uKSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBmaWVsZFtrZXldID0gdXBkYXRlZEZpZWxkW2tleV07XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpZWxkLnVwZGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNGaWVsZEluVGFzayh0YXNrSWQ6IHN0cmluZywgY2hhbmdlZEZpZWxkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGFza0lkXG4gICAgICAgICAgICAmJiAhIXRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF1cbiAgICAgICAgICAgICYmICEhdGhpcy50YXNrRmllbGRzSW5kZXhbdGFza0lkXS5maWVsZHNcbiAgICAgICAgICAgICYmICEhdGhpcy50YXNrRmllbGRzSW5kZXhbdGFza0lkXS5maWVsZHNbY2hhbmdlZEZpZWxkXVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRSZWZlcmVuY2VkVGFza0lkKGNoYW5nZWRGaWVsZDogc3RyaW5nLCBjaEZpZWxkczogQ2hhbmdlZEZpZWxkcyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAhIXRoaXMudGFza0ZpZWxkc0luZGV4ID9cbiAgICAgICAgICAgIChPYmplY3Qua2V5cyh0aGlzLnRhc2tGaWVsZHNJbmRleCkuZmluZCh0YXNrSWQgPT4gdGFza0lkICE9PSB0aGlzLnRhc2suc3RyaW5nSWQgJiYgdGFza0lkID09PSBjaEZpZWxkcy50YXNrSWQgJiYgT2JqZWN0LmtleXModGhpcy50YXNrRmllbGRzSW5kZXhbdGFza0lkXS5maWVsZHMpLmluY2x1ZGVzKGNoYW5nZWRGaWVsZCkpXG4gICAgICAgICAgICB8fCBPYmplY3Qua2V5cyh0aGlzLnRhc2tGaWVsZHNJbmRleCkuZmluZCh0YXNrSWQgPT4gdGFza0lkICE9PSB0aGlzLnRhc2suc3RyaW5nSWQgJiYgT2JqZWN0LmtleXModGhpcy50YXNrRmllbGRzSW5kZXhbdGFza0lkXS5maWVsZHMpLmluY2x1ZGVzKGNoYW5nZWRGaWVsZCkpKSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZmluZFRhc2tSZWZJZCh0YXNrSWQ6IHN0cmluZywgZmllbGRzOiB7IFtmaWVsZElkOiBzdHJpbmddOiBEYXRhRmllbGQ8YW55Pn0pOiBEYXRhRmllbGQ8YW55PiB7XG4gICAgICAgIGxldCB0YXNrUmVmSWQgPSBPYmplY3QudmFsdWVzKGZpZWxkcykuZmluZChmID0+IGYgaW5zdGFuY2VvZiBUYXNrUmVmRmllbGQgJiYgZi52YWx1ZS5pbmNsdWRlcyh0YXNrSWQpKTtcbiAgICAgICAgaWYgKCF0YXNrUmVmSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZWRUYXNrSWRzID0gT2JqZWN0LnZhbHVlcyhmaWVsZHMpLmZpbHRlcihmID0+IGYgaW5zdGFuY2VvZiBUYXNrUmVmRmllbGQpLm1hcCh0ciA9PiB0ci52YWx1ZSk7XG4gICAgICAgICAgICByZWZlcmVuY2VkVGFza0lkcy5mb3JFYWNoKGlkID0+IHtcbiAgICAgICAgICAgICAgICB0YXNrUmVmSWQgPSB0aGlzLmZpbmRUYXNrUmVmSWQodGFza0lkLCB0aGlzLnRhc2tGaWVsZHNJbmRleFtpZF0uZmllbGRzKTtcbiAgICAgICAgICAgICAgICBpZiAoISF0YXNrUmVmSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhc2tSZWZJZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFza1JlZklkXG4gICAgfVxufVxuIl19
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jb250ZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMtY29yZS9zcmMvbGliL3Rhc2stY29udGVudC9zZXJ2aWNlcy90YXNrLWNvbnRlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFBQyxlQUFlLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBUSxNQUFNLE1BQU0sQ0FBQztBQVNoRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQztBQUs3RyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sdURBQXVELENBQUM7Ozs7OztBQUVuRjs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFnQixrQkFBa0I7SUFlcEMsWUFBZ0Msc0JBQTZDLEVBQzdDLGdCQUFpQyxFQUNqQyxVQUE0QixFQUM1QixPQUFzQjtRQUh0QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXVCO1FBQzdDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFDNUIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtRQVI1QyxxQkFBZ0IsR0FFdEIsRUFBRSxDQUFDO1FBQ0csOEJBQXlCLEdBQXdDLEVBQUUsQ0FBQztRQU0xRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFtQixDQUFDLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMs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RSxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUU7b0JBQ2IsT0FBTyxTQUFTLENBQUM7aUJBQ3BCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sU0FBUyxDQUFBO0lBQ3BCLENBQUM7O0FBdFNzQix1Q0FBb0IsR0FBRyxtQkFBb0IsQ0FBQTtBQUMzQyx5QkFBTSxHQUFHLFFBQVMsQ0FBQTtnSEFIdkIsa0JBQWtCO29IQUFsQixrQkFBa0I7NEZBQWxCLGtCQUFrQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0YUdyb3VwfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaW50ZXJmYWNlL2RhdGEtZ3JvdXBzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1Rhc2t9IGZyb20gJy4uLy4uL3Jlc291cmNlcy9pbnRlcmZhY2UvdGFzayc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge1NuYWNrQmFyU2VydmljZX0gZnJvbSAnLi4vLi4vc25hY2stYmFyL3NlcnZpY2VzL3NuYWNrLWJhci5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0VudW1lcmF0aW9uRmllbGQsIEVudW1lcmF0aW9uRmllbGRWYWx1ZX0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvZW51bWVyYXRpb24tZmllbGQvbW9kZWxzL2VudW1lcmF0aW9uLWZpZWxkJztcbmltcG9ydCB7TXVsdGljaG9pY2VGaWVsZH0gZnJvbSAnLi4vLi4vZGF0YS1maWVsZHMvbXVsdGljaG9pY2UtZmllbGQvbW9kZWxzL211bHRpY2hvaWNlLWZpZWxkJztcbmltcG9ydCB7Q2hhbmdlLCBDaGFuZ2VkRmllbGRzfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9tb2RlbHMvY2hhbmdlZC1maWVsZHMnO1xuaW1wb3J0IHtGaWVsZENvbnZlcnRlclNlcnZpY2V9IGZyb20gJy4vZmllbGQtY29udmVydGVyLnNlcnZpY2UnO1xuaW1wb3J0IHtGaWVsZFR5cGVSZXNvdXJjZX0gZnJvbSAnLi4vbW9kZWwvZmllbGQtdHlwZS1yZXNvdXJjZSc7XG5pbXBvcnQge0R5bmFtaWNFbnVtZXJhdGlvbkZpZWxkfSBmcm9tICcuLi8uLi9kYXRhLWZpZWxkcy9lbnVtZXJhdGlvbi1maWVsZC9tb2RlbHMvZHluYW1pYy1lbnVtZXJhdGlvbi1maWVsZCc7XG5pbXBvcnQge1ZhbGlkYXRpb259IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL21vZGVscy92YWxpZGF0aW9uJztcbmltcG9ydCB7VGFza0V2ZW50T3V0Y29tZX0gZnJvbSAnLi4vLi4vZXZlbnQvbW9kZWwvZXZlbnQtb3V0Y29tZXMvdGFzay1vdXRjb21lcy90YXNrLWV2ZW50LW91dGNvbWUnO1xuaW1wb3J0IHtEYXRhRmllbGR9IGZyb20gJy4uLy4uL2RhdGEtZmllbGRzL21vZGVscy9hYnN0cmFjdC1kYXRhLWZpZWxkJztcbmltcG9ydCB7VGFza0ZpZWxkc30gZnJvbSAnLi4vbW9kZWwvdGFzay1maWVsZHMnO1xuaW1wb3J0IHtUYXNrUmVmRmllbGR9IGZyb20gXCIuLi8uLi9kYXRhLWZpZWxkcy90YXNrLXJlZi1maWVsZC9tb2RlbC90YXNrLXJlZi1maWVsZFwiO1xuXG4vKipcbiAqIEFjdHMgYXMgYSBjb21tdW5pY2F0aW9uIGludGVyZmFjZSBiZXR3ZWVuIHRoZSBDb21wb25lbnQgdGhhdCByZW5kZXJzIFRhc2sgY29udGVudCBhbmQgaXQncyBwYXJlbnQgQ29tcG9uZW50LlxuICogQWxzbyBwcm92aWRlcyBzb21lIGdlbmVyYWwgZnVuY3Rpb25hbGl0eSB0aGF0IGlzIG5lZWRlZCB3aGVuIHdvcmtpbmcgd2l0aCB0YXNrIGNvbnRlbnQuXG4gKlxuICogTm90YWJsZSBleGFtcGxlIG9mIGEgcGFyZW50IENvbXBvbmVudCBpcyB0aGUge0BsaW5rIEFic3RyYWN0VGFza1BhbmVsQ29tcG9uZW50fS5cbiAqXG4gKiBOb3RhYmxlIGV4YW1wbGUgb2YgYSB0YXNrIGNvbnRlbnQgcmVuZGVyZXIgaXMgdGhlIHtAbGluayBBYnN0cmFjdFRhc2tDb250ZW50Q29tcG9uZW50fS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRhc2tDb250ZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZST05URU5EX0FDVElPTlNfS0VZID0gJ19mcm9udGVuZF9hY3Rpb25zJztcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTiA9ICdhY3Rpb24nO1xuXG4gICAgJHNob3VsZENyZWF0ZTogUmVwbGF5U3ViamVjdDxBcnJheTxEYXRhR3JvdXA+PjtcbiAgICAkc2hvdWxkQ3JlYXRlQ291bnRlcjogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG4gICAgcHJvdGVjdGVkIF90YXNrOiBUYXNrO1xuICAgIHByb3RlY3RlZCBfdGFza0RhdGFSZWxvYWRSZXF1ZXN0JDogU3ViamVjdDxDaGFuZ2U+O1xuICAgIHByb3RlY3RlZCBfaXNFeHBhbmRpbmckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XG4gICAgcHJvdGVjdGVkIF90YXNrRmllbGRzSW5kZXg6IHtcbiAgICAgICAgW3Rhc2tJZDogc3RyaW5nXTogVGFza0ZpZWxkc1xuICAgIH0gPSB7fTtcbiAgICBwcm90ZWN0ZWQgX3JlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkczogeyBbY2FzZUlkOiBzdHJpbmddOiBBcnJheTxzdHJpbmc+IH0gPSB7fTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2ZpZWxkQ29udmVydGVyU2VydmljZTogRmllbGRDb252ZXJ0ZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3NuYWNrQmFyU2VydmljZTogU25hY2tCYXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9sb2dnZXI6IExvZ2dlclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy4kc2hvdWxkQ3JlYXRlID0gbmV3IFJlcGxheVN1YmplY3Q8QXJyYXk8RGF0YUdyb3VwPj4oMSk7XG4gICAgICAgIHRoaXMuJHNob3VsZENyZWF0ZUNvdW50ZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgICAgIHRoaXMuX2lzRXhwYW5kaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgICAgICB0aGlzLl90YXNrID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl90YXNrRGF0YVJlbG9hZFJlcXVlc3QkID0gbmV3IFN1YmplY3Q8Q2hhbmdlPigpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuJHNob3VsZENyZWF0ZS5jbG9zZWQpIHtcbiAgICAgICAgICAgIHRoaXMuJHNob3VsZENyZWF0ZS5jb21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Rhc2tEYXRhUmVsb2FkUmVxdWVzdCQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5faXNFeHBhbmRpbmckLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMgdGhlIFRhc2sgb2JqZWN0IGlmIHNldCBhbmQgYHVuZGVmaW5lZGAgb3RoZXJ3aXNlXG4gICAgICovXG4gICAgcHVibGljIGFic3RyYWN0IGdldCB0YXNrKCk6IFRhc2sgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBTZXR0aW5nIGEgVGFzayBhbHNvIGVtaXRzIGl0IGludG8gdGhlIHN0cmVhbSBhY2Nlc3NpYmxlIGJ5IHRoZSBbdGFzayRde0BsaW5rIFRhc2tDb250ZW50U2VydmljZSN0YXNrJH0gZ2V0dGVyIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gdGFzayB0aGUgVGFzayB0aGF0IG93bnMgdGhlIGNvbnRlbnQgbWFuYWdlZCBieSB0aGlzIHNlcnZpY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0IHRhc2sodGFzazogVGFzayk7XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gcmV0dXJucyBhIHtAbGluayBUYXNrfSBvYmplY3QgZXZlcnkgdGltZSB0aGlzIG9iamVjdCBpcyBzZXQuXG4gICAgICpcbiAgICAgKiBVc2UgW3Rhc2tde0BsaW5rIFRhc2tDb250ZW50U2VydmljZSN0YXNrfSBzZXR0ZXIgbWV0aG9kIHRvIHNldCB0aGUgVGFzay5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0IHRhc2skKCk6IE9ic2VydmFibGU8VGFzaz47XG5cbiAgICAvKipcbiAgICAgKiBTdHJlYW0gdGhhdCBlbWl0cyBldmVyeSB0aW1lIGEgZGF0YSByZWxvYWQgaXMgcmVxdWVzdGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdGFza0RhdGFSZWxvYWRSZXF1ZXN0JCgpOiBPYnNlcnZhYmxlPENoYW5nZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFza0RhdGFSZWxvYWRSZXF1ZXN0JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cblxuICAgIGdldCB0YXNrRmllbGRzSW5kZXgoKTogeyBbcDogc3RyaW5nXTogVGFza0ZpZWxkcyB9IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Rhc2tGaWVsZHNJbmRleDtcbiAgICB9XG5cbiAgICBzZXQgdGFza0ZpZWxkc0luZGV4KHZhbHVlOiB7IFtwOiBzdHJpbmddOiBUYXNrRmllbGRzIH0pIHtcbiAgICAgICAgdGhpcy5fdGFza0ZpZWxkc0luZGV4ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IHJlZmVyZW5jZWRUYXNrQW5kQ2FzZUlkcygpOiB7IFtwOiBzdHJpbmddOiBBcnJheTxzdHJpbmc+IH0ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVmZXJlbmNlZFRhc2tBbmRDYXNlSWRzO1xuICAgIH1cblxuICAgIHNldCByZWZlcmVuY2VkVGFza0FuZENhc2VJZHModmFsdWU6IHsgW3A6IHN0cmluZ106IEFycmF5PHN0cmluZz4gfSkge1xuICAgICAgICB0aGlzLl9yZWZlcmVuY2VkVGFza0FuZENhc2VJZHMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBwYW5lbCB0aGF0IHRoZSB0YXNrIGNvbnRlbnQgaXMgY29udGFpbmVkIGluIGlzIGN1cnJlbnRseSBleHBhbmRpbmcuXG4gICAgICpcbiAgICAgKiBJZiB0aGUgdGFzayBjb250ZW50IGlzIG5vdCBjb250YWluZWQgaW4gYSBwYW5lbCwgYGlzRXhwYW5kaW5nYCB3aWxsIGJlIGFsd2F5cyBgZmFsc2VgLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaXNFeHBhbmRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0V4cGFuZGluZyQudmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgc3RhdGUgb2YgdGhlIHRhc2sgY29udGVudCB0byBgZXhwYW5kaW5nYC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZXhwYW5zaW9uU3RhcnRlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNFeHBhbmRpbmckLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgc3RhdGUgb2YgdGhlIHRhc2sgY29udGVudCB0byBgbm90IGV4cGFuZGluZ2AuXG4gICAgICovXG4gICAgcHVibGljIGV4cGFuc2lvbkZpbmlzaGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc0V4cGFuZGluZyQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHRoZSB2YWxpZGl0eSBvZiBhbGwgZGF0YSBmaWVsZHMgaW4gdGhlIG1hbmFnZWQge0BsaW5rIFRhc2t9LlxuICAgICAqXG4gICAgICogSWYgc29tZSBvZiB0aGUgZmllbGRzIGFyZSBpbnZhbGlkIHRvdWNoZXMgdGhlbSBzbyB0aGVpciB2YWxpZGF0aW9uIGVycm9ycyB3aWxsIGFwcGVhciAoaWYgc2V0KS5cbiAgICAgKiBBIHNuYWNrYmFyIHdpbGwgYWxzbyBiZSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIsIGluZm9ybWluZyB0aGVtIG9mIHRoZSBmYWN0IHRoYXQgdGhlIGZpZWxkcyBhcmUgaW52YWxpZC5cbiAgICAgKiBAcmV0dXJucyB3aGV0aGVyIHRoZSB0YXNrIGlzIHZhbGlkIG9yIG5vdFxuICAgICAqL1xuICAgIHB1YmxpYyB2YWxpZGF0ZVRhc2tEYXRhKHRhc2tJZD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX3Rhc2sgfHwgIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbGlkID0gIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5maWx0ZXIoZ3JvdXAgPT4gISFncm91cC5wYXJlbnRUYXNrSWQgJiYgISF0YXNrSWQgPyBncm91cC5wYXJlbnRUYXNrSWQgPT09IHRhc2tJZCA6IHRydWUpLnNvbWUoZ3JvdXAgPT4gZ3JvdXAuZmllbGRzLnNvbWUoZmllbGQgPT4gIWZpZWxkLnZhbGlkICYmICFmaWVsZC5kaXNhYmxlZCkpO1xuICAgICAgICBjb25zdCB2YWxpZERpc2FibGVkID0gIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5maWx0ZXIoZ3JvdXAgPT4gISFncm91cC5wYXJlbnRUYXNrSWQgJiYgISF0YXNrSWQgPyBncm91cC5wYXJlbnRUYXNrSWQgPT09IHRhc2tJZCA6IHRydWUpLnNvbWUoZ3JvdXAgPT4gZ3JvdXAuZmllbGRzLnNvbWUoZmllbGQgPT4gIWZpZWxkLnZhbGlkUmVxdWlyZWQgJiYgZmllbGQuZGlzYWJsZWQpKTtcbiAgICAgICAgaWYgKCF2YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5pbnZhbGlkRGF0YScpKTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5mb3JFYWNoKGdyb3VwID0+IGdyb3VwLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IGZpZWxkLnRvdWNoID0gdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdmFsaWREaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLm9wZW5FcnJvclNuYWNrQmFyKHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KCd0YXNrcy5zbmFja2Jhci5taXNzaW5nUmVxdWlyZWQnKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbGlkICYmIHZhbGlkRGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZHMgaW52YWxpZCBkYXRhIG9mIHRhc2tcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGFycmF5IG9mIGludmFsaWQgZGF0YWZpZWxkc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJbnZhbGlkVGFza0RhdGEoKTogQXJyYXk8RGF0YUZpZWxkPGFueT4+IHtcbiAgICAgICAgY29uc3QgaW52YWxpZEZpZWxkcyA9IFtdO1xuICAgICAgICB0aGlzLl90YXNrLmRhdGFHcm91cHMuZm9yRWFjaChncm91cCA9PiBpbnZhbGlkRmllbGRzLnB1c2goLi4uZ3JvdXAuZmllbGRzLmZpbHRlcihmaWVsZCA9PlxuICAgICAgICAgICAgKCFmaWVsZC52YWxpZCAmJiAhZmllbGQuZGlzYWJsZWQpIHx8ICghZmllbGQudmFsaWRSZXF1aXJlZCAmJiAhZmllbGQuZGlzYWJsZWQpKSkpO1xuICAgICAgICByZXR1cm4gaW52YWxpZEZpZWxkcztcbiAgICB9XG5cbiAgICBwdWJsaWMgdmFsaWRhdGVEeW5hbWljRW51bUZpZWxkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX3Rhc2sgfHwgIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuX3Rhc2suZGF0YUdyb3Vwcy5zb21lKGdyb3VwID0+IGdyb3VwLmZpZWxkcy5zb21lKGZpZWxkID0+IGZpZWxkIGluc3RhbmNlb2YgRHluYW1pY0VudW1lcmF0aW9uRmllbGQpKTtcbiAgICAgICAgaWYgKCFleGlzdHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCB2YWxpZCA9IHRydWU7XG4gICAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgdGhpcy5fdGFzay5kYXRhR3JvdXBzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGdyb3VwLmZpZWxkcykge1xuICAgICAgICAgICAgICAgIGlmIChmaWVsZCBpbnN0YW5jZW9mIER5bmFtaWNFbnVtZXJhdGlvbkZpZWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5jaG9pY2VzICE9PSB1bmRlZmluZWQgJiYgZmllbGQuY2hvaWNlcy5sZW5ndGggIT09IDAgJiYgZmllbGQudmFsdWUgIT09ICcnICYmIGZpZWxkLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmllbGQuY2hvaWNlcy5zb21lKGNob2ljZSA9PiBjaG9pY2Uua2V5ID09PSBmaWVsZC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5iZWhhdmlvci5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2Uub3BlbkVycm9yU25hY2tCYXIodGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoJ3Rhc2tzLnNuYWNrYmFyLm1pc3NpbmdSZXF1aXJlZCcpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hhbmdlcyB0aGUgYmxvY2tpbmcgc3RhdGUgb2YgYWxsIGZpZWxkcyBpbiB0aGUgbWFuYWdlZCBUYXNrLlxuICAgICAqIEBwYXJhbSBibG9ja2luZ1N0YXRlIHdoZXRoZXIgdGhlIGZpZWxkIHNob3VsZCBiZSBibG9ja2VkIG9yIG5vdFxuICAgICAqL1xuICAgIHB1YmxpYyBibG9ja0ZpZWxkcyhibG9ja2luZ1N0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90YXNrICYmIHRoaXMuX3Rhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgdGhpcy5fdGFzay5kYXRhR3JvdXBzLmZvckVhY2goZ3JvdXAgPT4ge1xuICAgICAgICAgICAgICAgIGdyb3VwLmZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQuYmxvY2sgPSBibG9ja2luZ1N0YXRlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgdGhlIGFzc2lnbmVlLCBzdGFydCBkYXRlIGFuZCBmaW5pc2ggZGF0ZSBmcm9tIHRoZSBtYW5hZ2VkIFRhc2suXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZVN0YXRlRGF0YShldmVudE91dGNvbWU6IFRhc2tFdmVudE91dGNvbWUsIGlzU3RpbGxFeGVjdXRhYmxlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fdGFzaykge1xuICAgICAgICAgICAgdGhpcy5fdGFzay51c2VyID0gZXZlbnRPdXRjb21lLnRhc2sudXNlcjtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2suc3RhcnREYXRlID0gZXZlbnRPdXRjb21lLnRhc2suc3RhcnREYXRlO1xuICAgICAgICAgICAgdGhpcy5fdGFzay5maW5pc2hEYXRlID0gZXZlbnRPdXRjb21lLnRhc2suZmluaXNoRGF0ZTtcbiAgICAgICAgICAgIHRoaXMuX3Rhc2suaXNTdGlsbEV4ZWN1dGFibGUgPSBpc1N0aWxsRXhlY3V0YWJsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHByb3BlcnRpZXMgb2YgZmllbGRzIGluIHRoZSBtYW5hZ2VkIHRhc2sgYmFzZWQgb24gYSBkZWx0YSBvZiBjaGFuZ2VzIGZyb20gcHJldmlvdXMgc3RhdGUuXG4gICAgICogQHBhcmFtIGNoRmllbGRzIG9iamVjdCBjb250YWluaW5nIHRoZSBkZWx0YSBvZiB0aGUgY2hhbmdlcyBmcm9tIHRoZSBwcmV2aW91cyBzdGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGVGcm9tQ2hhbmdlZEZpZWxkcyhjaEZpZWxkczogQ2hhbmdlZEZpZWxkcyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3Rhc2sgfHwgIXRoaXMuX3Rhc2suZGF0YUdyb3Vwcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZyb250ZW5kQWN0aW9ucyA9IGNoRmllbGRzLnRhc2tJZCA9PT0gdGhpcy50YXNrLnN0cmluZ0lkICYmIGNoRmllbGRzW1Rhc2tDb250ZW50U2VydmljZS5GUk9OVEVORF9BQ1RJT05TX0tFWV07XG4gICAgICAgIE9iamVjdC5rZXlzKGNoRmllbGRzKS5mb3JFYWNoKGNoYW5nZWRGaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoY2hGaWVsZHMudGFza0lkID09PSB0aGlzLl90YXNrLnN0cmluZ0lkICYmIHRoaXMuaXNGaWVsZEluVGFzayhjaEZpZWxkcy50YXNrSWQsIGNoYW5nZWRGaWVsZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkKGNoRmllbGRzLCB0aGlzLnRhc2tGaWVsZHNJbmRleFtjaEZpZWxkcy50YXNrSWRdLmZpZWxkc1tjaGFuZ2VkRmllbGRdLCBmcm9udGVuZEFjdGlvbnMpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghIXRoaXMuZ2V0UmVmZXJlbmNlZFRhc2tJZChjaGFuZ2VkRmllbGQsIGNoRmllbGRzKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlRmllbGQoY2hGaWVsZHMsIHRoaXMudGFza0ZpZWxkc0luZGV4W3RoaXMuZ2V0UmVmZXJlbmNlZFRhc2tJZChjaGFuZ2VkRmllbGQsIGNoRmllbGRzKV0uZmllbGRzW2NoYW5nZWRGaWVsZF0sIGZyb250ZW5kQWN0aW9ucywgdHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuJHNob3VsZENyZWF0ZS5uZXh0KHRoaXMuX3Rhc2suZGF0YUdyb3Vwcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZUZpZWxkKGNoRmllbGRzOiBDaGFuZ2VkRmllbGRzLCBmaWVsZDogRGF0YUZpZWxkPGFueT4sIGZyb250ZW5kQWN0aW9uczogQ2hhbmdlLCByZWZlcmVuY2VkOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpZWxkQ29udmVydGVyU2VydmljZS5yZXNvbHZlVHlwZShmaWVsZCkgPT09IEZpZWxkVHlwZVJlc291cmNlLlRBU0tfUkVGICYmICghIXRoaXMuX3Rhc2s/LmlzU3RpbGxFeGVjdXRhYmxlIHx8IHRoaXMuX3Rhc2s/LmlzU3RpbGxFeGVjdXRhYmxlID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICB0aGlzLl90YXNrRGF0YVJlbG9hZFJlcXVlc3QkLm5leHQoZnJvbnRlbmRBY3Rpb25zID8gZnJvbnRlbmRBY3Rpb25zIDogdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVwZGF0ZWRGaWVsZCA9IGNoRmllbGRzW2ZpZWxkLnN0cmluZ0lkXTtcbiAgICAgICAgT2JqZWN0LmtleXModXBkYXRlZEZpZWxkKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3R5cGUnOlxuICAgICAgICAgICAgICAgICAgICAvLyB0eXBlIGlzIGp1c3QgYW4gaW5mb3JtYXRpb24sIG5vdCBhbiB1cGRhdGUuIEEgZmllbGQgY2Fubm90IGNoYW5nZSBpdHMgdHlwZVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47IC8vIGNvbnRpbnVlIC0gdGhlIGZpZWxkIGRvZXMgbm90IG5lZWQgdXBkYXRpbmcsIHNpbmNlIG5vdGhpbmcgY2hhbmdlZFxuICAgICAgICAgICAgICAgIGNhc2UgJ3ZhbHVlJzpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQudmFsdWVXaXRob3V0Q2hhbmdlKHRoaXMuX2ZpZWxkQ29udmVydGVyU2VydmljZS5mb3JtYXRWYWx1ZUZyb21CYWNrZW5kKGZpZWxkLCB1cGRhdGVkRmllbGRba2V5XSkpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdiZWhhdmlvcic6XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVmZXJlbmNlZCAmJiB1cGRhdGVkRmllbGQuYmVoYXZpb3JbdGhpcy5fdGFzay50cmFuc2l0aW9uSWRdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5iZWhhdmlvciA9IHVwZGF0ZWRGaWVsZC5iZWhhdmlvclt0aGlzLl90YXNrLnRyYW5zaXRpb25JZF07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocmVmZXJlbmNlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFza0lkID0gdGhpcy5nZXRSZWZlcmVuY2VkVGFza0lkKGZpZWxkLnN0cmluZ0lkLCBjaEZpZWxkcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0YXNrUmVmID0gdGhpcy5maW5kVGFza1JlZklkKHRhc2tJZCwgdGhpcy50YXNrRmllbGRzSW5kZXhbdGhpcy5fdGFzay5zdHJpbmdJZF0uZmllbGRzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zaXRpb25JZCA9IHRoaXMudGFza0ZpZWxkc0luZGV4W3Rhc2tJZF0udHJhbnNpdGlvbklkO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEhdHJhbnNpdGlvbklkICYmIHRyYW5zaXRpb25JZCAhPT0gJycgJiYgdXBkYXRlZEZpZWxkLmJlaGF2aW9yW3RyYW5zaXRpb25JZF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuYmVoYXZpb3IgPSB0YXNrUmVmLmJlaGF2aW9yLmVkaXRhYmxlID8gdXBkYXRlZEZpZWxkLmJlaGF2aW9yW3RyYW5zaXRpb25JZF0gOiB0YXNrUmVmLmJlaGF2aW9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ2Nob2ljZXMnOlxuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdDaG9pY2VzOiBBcnJheTxFbnVtZXJhdGlvbkZpZWxkVmFsdWU+ID0gW107XG4gICAgICAgICAgICAgICAgICAgIGlmICh1cGRhdGVkRmllbGQuY2hvaWNlcyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVkRmllbGQuY2hvaWNlcy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDaG9pY2VzLnB1c2goe2tleTogaXQsIHZhbHVlOiBpdH0gYXMgRW51bWVyYXRpb25GaWVsZFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXModXBkYXRlZEZpZWxkLmNob2ljZXMpLmZvckVhY2goY2hvaWNlS2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDaG9pY2VzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IGNob2ljZUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHVwZGF0ZWRGaWVsZC5jaG9pY2VzW2Nob2ljZUtleV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIEVudW1lcmF0aW9uRmllbGRWYWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAoZmllbGQgYXMgRW51bWVyYXRpb25GaWVsZCB8IE11bHRpY2hvaWNlRmllbGQpLmNob2ljZXMgPSBuZXdDaG9pY2VzO1xuICAgICAgICAgICAgICAgICAgICAoZmllbGQgYXMgRW51bWVyYXRpb25GaWVsZCB8IE11bHRpY2hvaWNlRmllbGQpLnVwZGF0ZUNob2ljZSgpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdvcHRpb25zJzpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3T3B0aW9ucyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVkRmllbGQub3B0aW9ucykuZm9yRWFjaChvcHRpb25LZXkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3T3B0aW9ucy5wdXNoKHtrZXk6IG9wdGlvbktleSwgdmFsdWU6IHVwZGF0ZWRGaWVsZC5vcHRpb25zW29wdGlvbktleV19KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIChmaWVsZCBhcyBFbnVtZXJhdGlvbkZpZWxkIHwgTXVsdGljaG9pY2VGaWVsZCkuY2hvaWNlcyA9IG5ld09wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgIChmaWVsZCBhcyBFbnVtZXJhdGlvbkZpZWxkIHwgTXVsdGljaG9pY2VGaWVsZCkudXBkYXRlQ2hvaWNlKCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJ3ZhbGlkYXRpb25zJzpcbiAgICAgICAgICAgICAgICAgICAgZmllbGQucmVwbGFjZVZhbGlkYXRpb25zKHVwZGF0ZWRGaWVsZC52YWxpZGF0aW9ucy5tYXAoaXQgPT4gKGl0IGFzIFZhbGlkYXRpb24pKSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkW2tleV0gPSB1cGRhdGVkRmllbGRba2V5XTtcblxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmllbGQudXBkYXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc0ZpZWxkSW5UYXNrKHRhc2tJZDogc3RyaW5nLCBjaGFuZ2VkRmllbGQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0YXNrSWRcbiAgICAgICAgICAgICYmICEhdGhpcy50YXNrRmllbGRzSW5kZXhbdGFza0lkXVxuICAgICAgICAgICAgJiYgISF0aGlzLnRhc2tGaWVsZHNJbmRleFt0YXNrSWRdLmZpZWxkc1xuICAgICAgICAgICAgJiYgISF0aGlzLnRhc2tGaWVsZHNJbmRleFt0YXNrSWRdLmZpZWxkc1tjaGFuZ2VkRmllbGRdXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFJlZmVyZW5jZWRUYXNrSWQoY2hhbmdlZEZpZWxkOiBzdHJpbmcsIGNoRmllbGRzOiBDaGFuZ2VkRmllbGRzKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50YXNrRmllbGRzSW5kZXggP1xuICAgICAgICAgICAgKE9iamVjdC5rZXlzKHRoaXMudGFza0ZpZWxkc0luZGV4KS5maW5kKHRhc2tJZCA9PiB0YXNrSWQgIT09IHRoaXMudGFzay5zdHJpbmdJZCAmJiB0YXNrSWQgPT09IGNoRmllbGRzLnRhc2tJZCAmJiBPYmplY3Qua2V5cyh0aGlzLnRhc2tGaWVsZHNJbmRleFt0YXNrSWRdLmZpZWxkcykuaW5jbHVkZXMoY2hhbmdlZEZpZWxkKSlcbiAgICAgICAgICAgIHx8IE9iamVjdC5rZXlzKHRoaXMudGFza0ZpZWxkc0luZGV4KS5maW5kKHRhc2tJZCA9PiB0YXNrSWQgIT09IHRoaXMudGFzay5zdHJpbmdJZCAmJiBPYmplY3Qua2V5cyh0aGlzLnRhc2tGaWVsZHNJbmRleFt0YXNrSWRdLmZpZWxkcykuaW5jbHVkZXMoY2hhbmdlZEZpZWxkKSkpIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmaW5kVGFza1JlZklkKHRhc2tJZDogc3RyaW5nLCBmaWVsZHM6IHsgW2ZpZWxkSWQ6IHN0cmluZ106IERhdGFGaWVsZDxhbnk+fSk6IERhdGFGaWVsZDxhbnk+IHtcbiAgICAgICAgbGV0IHRhc2tSZWZJZCA9IE9iamVjdC52YWx1ZXMoZmllbGRzKS5maW5kKGYgPT4gZiBpbnN0YW5jZW9mIFRhc2tSZWZGaWVsZCAmJiBmLnZhbHVlLmluY2x1ZGVzKHRhc2tJZCkpO1xuICAgICAgICBpZiAoIXRhc2tSZWZJZCkge1xuICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlZFRhc2tJZHMgPSBBcnJheS5wcm90b3R5cGUuY29uY2F0LmFwcGx5KFtdLCBPYmplY3QudmFsdWVzKGZpZWxkcykuZmlsdGVyKGYgPT4gZiBpbnN0YW5jZW9mIFRhc2tSZWZGaWVsZCkubWFwKHRyID0+IHRyLnZhbHVlKSk7XG4gICAgICAgICAgICByZWZlcmVuY2VkVGFza0lkcy5mb3JFYWNoKGlkID0+IHtcbiAgICAgICAgICAgICAgICB0YXNrUmVmSWQgPSB0aGlzLmZpbmRUYXNrUmVmSWQodGFza0lkLCB0aGlzLnRhc2tGaWVsZHNJbmRleFtpZF0uZmllbGRzKTtcbiAgICAgICAgICAgICAgICBpZiAoISF0YXNrUmVmSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRhc2tSZWZJZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFza1JlZklkXG4gICAgfVxufVxuIl19
|
|
@@ -15679,11 +15679,12 @@ class TaskContentService {
|
|
|
15679
15679
|
/**
|
|
15680
15680
|
* Clears the assignee, start date and finish date from the managed Task.
|
|
15681
15681
|
*/
|
|
15682
|
-
updateStateData(eventOutcome) {
|
|
15682
|
+
updateStateData(eventOutcome, isStillExecutable = true) {
|
|
15683
15683
|
if (this._task) {
|
|
15684
15684
|
this._task.user = eventOutcome.task.user;
|
|
15685
15685
|
this._task.startDate = eventOutcome.task.startDate;
|
|
15686
15686
|
this._task.finishDate = eventOutcome.task.finishDate;
|
|
15687
|
+
this._task.isStillExecutable = isStillExecutable;
|
|
15687
15688
|
}
|
|
15688
15689
|
}
|
|
15689
15690
|
/**
|
|
@@ -15706,7 +15707,8 @@ class TaskContentService {
|
|
|
15706
15707
|
this.$shouldCreate.next(this._task.dataGroups);
|
|
15707
15708
|
}
|
|
15708
15709
|
updateField(chFields, field, frontendActions, referenced = false) {
|
|
15709
|
-
|
|
15710
|
+
var _a, _b;
|
|
15711
|
+
if (this._fieldConverterService.resolveType(field) === FieldTypeResource.TASK_REF && (!!((_a = this._task) === null || _a === void 0 ? void 0 : _a.isStillExecutable) || ((_b = this._task) === null || _b === void 0 ? void 0 : _b.isStillExecutable) === undefined)) {
|
|
15710
15712
|
this._taskDataReloadRequest$.next(frontendActions ? frontendActions : undefined);
|
|
15711
15713
|
return;
|
|
15712
15714
|
}
|
|
@@ -15780,7 +15782,7 @@ class TaskContentService {
|
|
|
15780
15782
|
findTaskRefId(taskId, fields) {
|
|
15781
15783
|
let taskRefId = Object.values(fields).find(f => f instanceof TaskRefField && f.value.includes(taskId));
|
|
15782
15784
|
if (!taskRefId) {
|
|
15783
|
-
const referencedTaskIds = Object.values(fields).filter(f => f instanceof TaskRefField).map(tr => tr.value);
|
|
15785
|
+
const referencedTaskIds = Array.prototype.concat.apply([], Object.values(fields).filter(f => f instanceof TaskRefField).map(tr => tr.value));
|
|
15784
15786
|
referencedTaskIds.forEach(id => {
|
|
15785
15787
|
taskRefId = this.findTaskRefId(taskId, this.taskFieldsIndex[id].fields);
|
|
15786
15788
|
if (!!taskRefId) {
|
|
@@ -20300,7 +20302,8 @@ class FinishTaskService extends TaskHandlingService {
|
|
|
20300
20302
|
return;
|
|
20301
20303
|
}
|
|
20302
20304
|
if (outcomeResource.success) {
|
|
20303
|
-
|
|
20305
|
+
const outcome = outcomeResource.outcome;
|
|
20306
|
+
this._taskContentService.updateStateData(outcome, outcome.isTaskStillExecutable);
|
|
20304
20307
|
const changedFieldsMap = this._eventService
|
|
20305
20308
|
.parseChangedFieldsFromOutcomeTree(outcomeResource.outcome);
|
|
20306
20309
|
if (!!changedFieldsMap) {
|