@netgrif/components-core 6.0.3 → 6.0.4
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/bundles/netgrif-components-core.umd.js +166 -61
- package/bundles/netgrif-components-core.umd.js.map +1 -1
- package/bundles/netgrif-components-core.umd.min.js +2 -2
- package/bundles/netgrif-components-core.umd.min.js.map +1 -1
- package/esm2015/lib/data-fields/file-field/abstract-file-field.component.js +2 -2
- package/esm2015/lib/groups/services/next-group.service.js +3 -2
- package/esm2015/lib/resources/abstract-endpoint/abstract-resource.service.js +3 -2
- package/esm2015/lib/resources/engine-endpoint/public/public-task-resource.service.js +1 -1
- package/esm2015/lib/search/models/category/case/case-dataset.js +3 -6
- package/esm2015/lib/search/models/category/case/case-simple-dataset.js +3 -3
- package/esm2015/lib/search/models/category/case/case-title.js +13 -3
- package/esm2015/lib/search/models/category/case/case-visual-id.js +13 -3
- package/esm2015/lib/search/models/category/category.js +10 -2
- package/esm2015/lib/search/models/operator/substring.js +3 -3
- package/esm2015/lib/search/search-keyword-resolver-service/search-index-resolver.service.js +18 -3
- package/esm2015/lib/search/search-service/search.service.js +3 -2
- package/esm2015/lib/side-menu/content-components/new-case/abstract-new-case.component.js +6 -1
- package/esm2015/lib/task/services/finish-task.service.js +18 -13
- package/esm2015/lib/task/services/task-data.service.js +2 -1
- package/esm2015/lib/user/services/user-list.service.js +4 -3
- package/esm2015/lib/utility/pagination/load-all-pages.js +4 -3
- package/esm2015/lib/utility/pagination/pagination-params.js +19 -0
- package/esm2015/lib/utility/pagination/pagination-sort.js +17 -0
- package/esm2015/lib/utility/public-api.js +3 -1
- package/esm2015/lib/utility/tests/mocks/mock-endpoint.js +4 -3
- package/esm2015/lib/view/abstract/sortable-view.js +4 -3
- package/esm2015/lib/view/case-view/service/case-view-service.js +6 -4
- package/esm2015/lib/view/public-api.js +3 -1
- package/esm2015/lib/view/task-view/service/task-view.service.js +6 -4
- package/esm2015/lib/view/tree-case-view/tree-component/case-tree.service.js +19 -5
- package/esm2015/lib/view/tree-case-view/tree-component/model/tree-case-view-configuration.js +2 -0
- package/esm2015/lib/view/tree-case-view/tree-component/model/tree-configuration-injection-token.js +3 -0
- package/esm2015/lib/view/workflow-view/workflow-view.service.js +4 -11
- package/esm5/lib/data-fields/file-field/abstract-file-field.component.js +2 -2
- package/esm5/lib/groups/services/next-group.service.js +3 -2
- package/esm5/lib/resources/abstract-endpoint/abstract-resource.service.js +3 -2
- package/esm5/lib/resources/engine-endpoint/public/public-task-resource.service.js +1 -1
- package/esm5/lib/search/models/category/case/case-dataset.js +3 -6
- package/esm5/lib/search/models/category/case/case-simple-dataset.js +3 -3
- package/esm5/lib/search/models/category/case/case-title.js +19 -4
- package/esm5/lib/search/models/category/case/case-visual-id.js +19 -4
- package/esm5/lib/search/models/category/category.js +10 -2
- package/esm5/lib/search/models/operator/substring.js +3 -3
- package/esm5/lib/search/search-keyword-resolver-service/search-index-resolver.service.js +17 -2
- package/esm5/lib/search/search-service/search.service.js +3 -2
- package/esm5/lib/side-menu/content-components/new-case/abstract-new-case.component.js +6 -1
- package/esm5/lib/task/services/finish-task.service.js +18 -13
- package/esm5/lib/task/services/task-data.service.js +2 -1
- package/esm5/lib/user/services/user-list.service.js +4 -3
- package/esm5/lib/utility/pagination/load-all-pages.js +4 -3
- package/esm5/lib/utility/pagination/pagination-params.js +19 -0
- package/esm5/lib/utility/pagination/pagination-sort.js +17 -0
- package/esm5/lib/utility/public-api.js +3 -1
- package/esm5/lib/utility/tests/mocks/mock-endpoint.js +4 -3
- package/esm5/lib/view/abstract/sortable-view.js +4 -3
- package/esm5/lib/view/case-view/service/case-view-service.js +6 -4
- package/esm5/lib/view/public-api.js +3 -1
- package/esm5/lib/view/task-view/service/task-view.service.js +6 -4
- package/esm5/lib/view/tree-case-view/tree-component/case-tree.service.js +19 -5
- package/esm5/lib/view/tree-case-view/tree-component/model/tree-case-view-configuration.js +2 -0
- package/esm5/lib/view/tree-case-view/tree-component/model/tree-configuration-injection-token.js +3 -0
- package/esm5/lib/view/workflow-view/workflow-view.service.js +4 -11
- package/fesm2015/netgrif-components-core.js +154 -61
- package/fesm2015/netgrif-components-core.js.map +1 -1
- package/fesm5/netgrif-components-core.js +165 -62
- package/fesm5/netgrif-components-core.js.map +1 -1
- package/lib/search/models/category/case/case-dataset.d.ts +0 -2
- package/lib/search/models/category/case/case-title.d.ts +4 -1
- package/lib/search/models/category/case/case-visual-id.d.ts +4 -1
- package/lib/search/models/category/category.d.ts +7 -0
- package/lib/search/search-keyword-resolver-service/search-index-resolver.service.d.ts +12 -0
- package/lib/side-menu/content-components/new-case/abstract-new-case.component.d.ts +1 -0
- package/lib/task/services/finish-task.service.d.ts +5 -0
- package/lib/utility/pagination/pagination-params.d.ts +17 -0
- package/lib/utility/pagination/pagination-sort.d.ts +13 -0
- package/lib/utility/public-api.d.ts +2 -0
- package/lib/view/public-api.d.ts +2 -0
- package/lib/view/tree-case-view/tree-component/case-tree.service.d.ts +4 -1
- package/lib/view/tree-case-view/tree-component/model/tree-case-view-configuration.d.ts +9 -0
- package/lib/view/tree-case-view/tree-component/model/tree-configuration-injection-token.d.ts +3 -0
- package/lib/view/workflow-view/workflow-view.service.d.ts +0 -1
- package/netgrif-components-core.metadata.json +1 -1
- package/package.json +2 -2
- package/schematics/collection.json +0 -3
|
@@ -197,12 +197,12 @@ export class CaseDataset extends Category {
|
|
|
197
197
|
return resolver.getIndex(datafield.fieldId, SearchIndex.BOOLEAN);
|
|
198
198
|
case 'file':
|
|
199
199
|
case 'fileList':
|
|
200
|
-
return resolver.getIndex(datafield.fieldId, SearchIndex.FILE_NAME, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals));
|
|
200
|
+
return resolver.getIndex(datafield.fieldId, SearchIndex.FILE_NAME, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring));
|
|
201
201
|
case 'user':
|
|
202
202
|
case 'userList':
|
|
203
203
|
return resolver.getIndex(datafield.fieldId, SearchIndex.USER_ID);
|
|
204
204
|
default:
|
|
205
|
-
return resolver.getIndex(datafield.fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals));
|
|
205
|
+
return resolver.getIndex(datafield.fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring));
|
|
206
206
|
}
|
|
207
207
|
}
|
|
208
208
|
get inputPlaceholder() {
|
|
@@ -338,9 +338,6 @@ export class CaseDataset extends Category {
|
|
|
338
338
|
}
|
|
339
339
|
return value;
|
|
340
340
|
}
|
|
341
|
-
isSelectedOperator(operatorClass) {
|
|
342
|
-
return this.selectedOperator === this._operatorService.getOperator(operatorClass);
|
|
343
|
-
}
|
|
344
341
|
serializeClass() {
|
|
345
342
|
return Categories.CASE_DATASET;
|
|
346
343
|
}
|
|
@@ -394,4 +391,4 @@ CaseDataset._i18n = 'search.category.case.dataset';
|
|
|
394
391
|
CaseDataset.DISABLED_TYPES = ['button', 'taskRef', 'caseRef', 'filter'];
|
|
395
392
|
CaseDataset.DATAFIELD_METADATA = 'datafield';
|
|
396
393
|
CaseDataset.AUTOCOMPLETE_ICON = 'account_circle';
|
|
397
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1kYXRhc2V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlYXJjaC9tb2RlbHMvY2F0ZWdvcnkvY2FzZS9jYXNlLWRhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBR2xGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1B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NkJBQWlCLEdBQUcsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09wZXJhdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vb3BlcmF0b3Itc2VydmljZS9vcGVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7T3BlcmF0b3J9IGZyb20gJy4uLy4uL29wZXJhdG9yL29wZXJhdG9yJztcbmltcG9ydCB7UXVlcnl9IGZyb20gJy4uLy4uL3F1ZXJ5L3F1ZXJ5JztcbmltcG9ydCB7T3B0aW9uYWxEZXBlbmRlbmNpZXN9IGZyb20gJy4uLy4uLy4uL2NhdGVnb3J5LWZhY3Rvcnkvb3B0aW9uYWwtZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7U2VhcmNoSW5wdXRUeXBlfSBmcm9tICcuLi9zZWFyY2gtaW5wdXQtdHlwZSc7XG5pbXBvcnQge0RhdGFmaWVsZE1hcEtleX0gZnJvbSAnLi4vLi4vZGF0YWZpZWxkLW1hcC1rZXknO1xuaW1wb3J0IHtTZWFyY2hBdXRvY29tcGxldGVPcHRpb259IGZyb20gJy4uL3NlYXJjaC1hdXRvY29tcGxldGUtb3B0aW9uJztcbmltcG9ydCB7Qm9vbGVhbk9wZXJhdG9yfSBmcm9tICcuLi8uLi9ib29sZWFuLW9wZXJhdG9yJztcbmltcG9ydCB7Q2FzZVByb2Nlc3N9IGZyb20gJy4vY2FzZS1wcm9jZXNzJztcbmltcG9ydCB7RXF1YWxzRGF0ZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzLWRhdGUnO1xuaW1wb3J0IHtTdWJzdHJpbmd9IGZyb20gJy4uLy4uL29wZXJhdG9yL3N1YnN0cmluZyc7XG5pbXBvcnQge0VxdWFsc0RhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMtZGF0ZS10aW1lJztcbmltcG9ydCB7RXF1YWxzfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7aGFzQ29udGVudH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0eS9wYWdpbmF0aW9uL3BhZ2UtaGFzLWNvbnRlbnQnO1xuaW1wb3J0IHtDYXRlZ29yeX0gZnJvbSAnLi4vY2F0ZWdvcnknO1xuaW1wb3J0IHtOb3RFcXVhbHN9IGZyb20gJy4uLy4uL29wZXJhdG9yL25vdC1lcXVhbHMnO1xuaW1wb3J0IHtNb3JlVGhhbn0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuJztcbmltcG9ydCB7TGVzc1RoYW59IGZyb20gJy4uLy4uL29wZXJhdG9yL2xlc3MtdGhhbic7XG5pbXBvcnQge0luUmFuZ2V9IGZyb20gJy4uLy4uL29wZXJhdG9yL2luLXJhbmdlJztcbmltcG9ydCB7SXNOdWxsfSBmcm9tICcuLi8uLi9vcGVyYXRvci9pcy1udWxsJztcbmltcG9ydCB7TGlrZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGlrZSc7XG5pbXBvcnQge05vdEVxdWFsc0RhdGV9IGZyb20gJy4uLy4uL29wZXJhdG9yL25vdC1lcXVhbHMtZGF0ZSc7XG5pbXBvcnQge01vcmVUaGFuRGF0ZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuLWRhdGUnO1xuaW1wb3J0IHtMZXNzVGhhbkRhdGV9IGZyb20gJy4uLy4uL29wZXJhdG9yL2xlc3MtdGhhbi1kYXRlJztcbmltcG9ydCB7SW5SYW5nZURhdGV9IGZyb20gJy4uLy4uL29wZXJhdG9yL2luLXJhbmdlLWRhdGUnO1xuaW1wb3J0IHtNb3JlVGhhbkRhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9tb3JlLXRoYW4tZGF0ZS10aW1lJztcbmltcG9ydCB7TGVzc1RoYW5EYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuLWRhdGUtdGltZSc7XG5pbXBvcnQge0luUmFuZ2VEYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvaW4tcmFuZ2UtZGF0ZS10aW1lJztcbmltcG9ydCB7QXV0b2NvbXBsZXRlT3B0aW9uc30gZnJvbSAnLi4vYXV0b2NvbXBsZXRlLW9wdGlvbnMnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9uSW5wdXR9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24taW5wdXQnO1xuaW1wb3J0IHtTZWFyY2hJbmRleH0gZnJvbSAnLi4vLi4vc2VhcmNoLWluZGV4JztcbmltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NhdGVnb3JpZXN9IGZyb20gJy4uL2NhdGVnb3JpZXMnO1xuaW1wb3J0IHtGb3JtQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IG1vbWVudCwge01vbWVudH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7Q2F0ZWdvcnlNZXRhZGF0YUNvbmZpZ3VyYXRpb259IGZyb20gJy4uLy4uL3BlcnNpc3RhbmNlL2dlbmVyYXRvci1tZXRhZGF0YSc7XG5pbXBvcnQge01vcmVUaGFuRXF1YWx9IGZyb20gJy4uLy4uL29wZXJhdG9yL21vcmUtdGhhbi1lcXVhbCc7XG5pbXBvcnQge0xlc3NUaGFuRXF1YWx9IGZyb20gJy4uLy4uL29wZXJhdG9yL2xlc3MtdGhhbi1lcXVhbCc7XG5pbXBvcnQge01vcmVUaGFuRXF1YWxEYXRlfSBmcm9tICcuLi8uLi9vcGVyYXRvci9tb3JlLXRoYW4tZXF1YWwtZGF0ZSc7XG5pbXBvcnQge0xlc3NUaGFuRXF1YWxEYXRlfSBmcm9tICcuLi8uLi9vcGVyYXRvci9sZXNzLXRoYW4tZXF1YWwtZGF0ZSc7XG5pbXBvcnQge01vcmVUaGFuRXF1YWxEYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuLWVxdWFsLWRhdGUtdGltZSc7XG5pbXBvcnQge0xlc3NUaGFuRXF1YWxEYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuLWVxdWFsLWRhdGUtdGltZSc7XG5pbXBvcnQge0ZpbHRlclRleHRTZWdtZW50fSBmcm9tICcuLi8uLi9wZXJzaXN0YW5jZS9maWx0ZXItdGV4dC1zZWdtZW50JztcbmltcG9ydCB7VXNlckF1dG9jb21wbGV0ZX0gZnJvbSAnLi4vdXNlci1hdXRvY29tcGxldGUnO1xuXG5pbnRlcmZhY2UgRGF0YWZpZWxkIHtcbiAgICBuZXRJZGVudGlmaWVyOiBzdHJpbmc7XG4gICAgZmllbGRJZDogc3RyaW5nO1xuICAgIGZpZWxkVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ2FzZURhdGFzZXQgZXh0ZW5kcyBDYXRlZ29yeTxEYXRhZmllbGQ+IGltcGxlbWVudHMgQXV0b2NvbXBsZXRlT3B0aW9ucyB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfaTE4biA9ICdzZWFyY2guY2F0ZWdvcnkuY2FzZS5kYXRhc2V0JztcbiAgICBwcm90ZWN0ZWQgc3RhdGljIERJU0FCTEVEX1RZUEVTID0gWydidXR0b24nLCAndGFza1JlZicsICdjYXNlUmVmJywgJ2ZpbHRlciddO1xuICAgIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgREFUQUZJRUxEX01FVEFEQVRBID0gJ2RhdGFmaWVsZCc7XG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQVVUT0NPTVBMRVRFX0lDT04gPSAnYWNjb3VudF9jaXJjbGUnO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9EQVRBRklFTERfSU5QVVQ6IENvbmZpZ3VyYXRpb25JbnB1dDtcblxuICAgIHByb3RlY3RlZCBfcHJvY2Vzc0NhdGVnb3J5OiBDYXNlUHJvY2VzcztcblxuICAgIHByb3RlY3RlZCBfY29uZmlndXJhdGlvbklucHV0cyQ6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxDb25maWd1cmF0aW9uSW5wdXQ+PjtcblxuICAgIHByb3RlY3RlZCBfZGF0YWZpZWxkT3B0aW9uczogTWFwPHN0cmluZywgQXJyYXk8RGF0YWZpZWxkPj47XG5cbiAgICBwcml2YXRlIF9kYXRhZmllbGRPcHRpb25zSW5pdGlhbGl6ZWQkOiBSZXBsYXlTdWJqZWN0PHZvaWQ+O1xuICAgIHByaXZhdGUgX2FsbG93ZWROZXRzU3ViOiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBfdXNlckF1dG9jb21wbGV0ZTogVXNlckF1dG9jb21wbGV0ZTtcblxuICAgIHB1YmxpYyBzdGF0aWMgRmllbGRUeXBlVG9JbnB1dFR5cGUoZmllbGRUeXBlOiBzdHJpbmcpOiBTZWFyY2hJbnB1dFR5cGUge1xuICAgICAgICBzd2l0Y2ggKGZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlYXJjaElucHV0VHlwZS5EQVRFO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZVRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuREFURV9USU1FO1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoSW5wdXRUeXBlLk5VTUJFUjtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuQk9PTEVBTjtcbiAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoSW5wdXRUeXBlLlRFWFQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihvcGVyYXRvcnM6IE9wZXJhdG9yU2VydmljZSwgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwcm90ZWN0ZWQgX29wdGlvbmFsRGVwZW5kZW5jaWVzOiBPcHRpb25hbERlcGVuZGVuY2llcykge1xuICAgICAgICBzdXBlcih1bmRlZmluZWQsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBgJHtDYXNlRGF0YXNldC5faTE4bn0ubmFtZWAsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBsb2dnZXIsXG4gICAgICAgICAgICBvcGVyYXRvcnMpO1xuXG4gICAgICAgIHRoaXMuX3Byb2Nlc3NDYXRlZ29yeSA9IHRoaXMuX29wdGlvbmFsRGVwZW5kZW5jaWVzLmNhdGVnb3J5RmFjdG9yeS5nZXQoQ2FzZVByb2Nlc3MpIGFzIENhc2VQcm9jZXNzO1xuICAgICAgICB0aGlzLl9wcm9jZXNzQ2F0ZWdvcnkuc2VsZWN0RGVmYXVsdE9wZXJhdG9yKCk7XG5cbiAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxEYXRhZmllbGQ+PigpO1xuICAgICAgICB0aGlzLl91c2VyQXV0b2NvbXBsZXRlID0gbmV3IFVzZXJBdXRvY29tcGxldGUodGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuICAgICAgICB0aGlzLmNyZWF0ZURhdGFmaWVsZE9wdGlvbnMoKTtcblxuICAgICAgICB0aGlzLl9EQVRBRklFTERfSU5QVVQgPSBuZXcgQ29uZmlndXJhdGlvbklucHV0KFxuICAgICAgICAgICAgU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURSxcbiAgICAgICAgICAgICdzZWFyY2guY2F0ZWdvcnkuY2FzZS5kYXRhc2V0LnBsYWNlaG9sZGVyLmZpZWxkJyxcbiAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zLFxuICAgICAgICAgICAgKG1hcEtleXMsIG5ld1ZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1hcEtleXMubWFwKHNlcmlhbGl6ZWRNYXBLZXkgPT4gRGF0YWZpZWxkTWFwS2V5LnBhcnNlKHNlcmlhbGl6ZWRNYXBLZXkpKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKG1hcEtleSA9PiBtYXBLZXkudGl0bGUudG9Mb2NhbGVMb3dlckNhc2UoKS5zdGFydHNXaXRoKG5ld1ZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbmZpZ3VyYXRpb25JbnB1dD4+KFt0aGlzLl9EQVRBRklFTERfSU5QVVRdKTtcblxuICAgICAgICB0aGlzLl9EQVRBRklFTERfSU5QVVQudmFsdWVDaGFuZ2VzJCgpLnN1YnNjcmliZShuZXdWYWx1ZSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3VmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgbmV3VmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQubmV4dChbdGhpcy5fREFUQUZJRUxEX0lOUFVUXSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX2NvbmZpZ3VyYXRpb25JbnB1dHMkLmdldFZhbHVlKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQubmV4dChbdGhpcy5fREFUQUZJRUxEX0lOUFVULCB0aGlzLl9PUEVSQVRPUl9JTlBVVF0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JGb3JtQ29udHJvbC5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyYXRpb25JbnB1dHMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQuY29tcGxldGUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2FsbG93ZWROZXRzU3ViICYmICF0aGlzLl9hbGxvd2VkTmV0c1N1Yi5jbG9zZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2FsbG93ZWROZXRzU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcHJvY2Vzc0NhdGVnb3J5LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBnZXQgY29uZmlndXJhdGlvbklucHV0cyQoKTogT2JzZXJ2YWJsZTxBcnJheTxDb25maWd1cmF0aW9uSW5wdXQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9uSW5wdXRzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0VHlwZSgpOiBTZWFyY2hJbnB1dFR5cGUge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0lucHV0IHR5cGUgb2YgYXJndW1lbnRzIGNhbm5vdCBiZSBkZXRlcm1pbmVkIGJlZm9yZSBzZWxlY3RpbmcgYSBkYXRhIGZpZWxkIGR1cmluZyB0aGUgY29uZmlndXJhdGlvbi4nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQ2FzZURhdGFzZXQuRmllbGRUeXBlVG9JbnB1dFR5cGUodGhpcy5fc2VsZWN0ZWREYXRhZmllbGRzWzBdLmZpZWxkVHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGFsbG93ZWQgb3BlcmF0b3JzIGFyZSBkZXBlbmRhbnQgb24gdGhlIHNlbGVjdGVkIGRhdGEgZmllbGQuXG4gICAgICpcbiAgICAgKiBCZXdhcmUgdGhhdCBpZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlIG9yZGVyIG9mIHRoZSBhbGxvd2VkIG9wZXJhdG9ycywgdGhlbiB5b3UgbXVzdCBhbHNvIHVwZGF0ZSB0aGVcbiAgICAgKiBbc2VsZWN0RGVmYXVsdE9wZXJhdG9yKClde0BsaW5rIENhdGVnb3J5I3NlbGVjdERlZmF1bHRPcGVyYXRvcn0gbWV0aG9kLCBzbyB0aGF0IGRlZmF1bHQgb3BlcmF0b3IgZm9yIGVhY2ggZGF0YSBmaWVsZCB0eXBlIG1hdGNoZXNcbiAgICAgKiB0aGUgZGVmYXVsdCBvcGVyYXRvciBvZiB0aGUge0BsaW5rIENhc2VTaW1wbGVEYXRhc2V0fSBzZWFyY2ggY2F0ZWdvcnkuIE90aGVyd2lzZSB0aGUgdHJhbnNpdGlvbiBvZiBoZWFkZXIgc2VhcmNoIGludG8gdGhlIHNlYXJjaCBHVUlcbiAgICAgKiB3b24ndCB3b3JrIHByb3Blcmx5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYWxsb3dlZE9wZXJhdG9ycygpOiBBcnJheTxPcGVyYXRvcjxhbnk+PiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZERhdGFmaWVsZHMpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKHRoaXMuX3NlbGVjdGVkRGF0YWZpZWxkc1swXS5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFscyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW4pLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW5FcXVhbCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbiksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbkVxdWFsKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEluUmFuZ2UpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE5vdEVxdWFscylcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICBjYXNlICd1c2VyTGlzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFscyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHNEYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE1vcmVUaGFuRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihNb3JlVGhhbkVxdWFsRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbkRhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTGVzc1RoYW5FcXVhbERhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSW5SYW5nZURhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFsc0RhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE1vcmVUaGFuRGF0ZVRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW5FcXVhbERhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKExlc3NUaGFuRGF0ZVRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTGVzc1RoYW5FcXVhbERhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEluUmFuZ2VEYXRlVGltZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihJc051bGwpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKFN1YnN0cmluZyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTm90RXF1YWxzKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKElzTnVsbCksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMaWtlKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyBgQ2FzZURhdGFzZXRgIGNhdGVnb3J5IGlzIG5vdCBkaXNwbGF5ZWQgaW4gYm9sZCBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5XG4gICAgICovXG4gICAgZ2V0IGRpc3BsYXlCb2xkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNTZWxlY3RlZERhdGFmaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9EQVRBRklFTERfSU5QVVQuaXNPcHRpb25TZWxlY3RlZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IF9zZWxlY3RlZERhdGFmaWVsZHMoKTogQXJyYXk8RGF0YWZpZWxkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhZmllbGRPcHRpb25zLmdldCh0aGlzLl9EQVRBRklFTERfSU5QVVQuZm9ybUNvbnRyb2wudmFsdWUudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldCgpIHtcbiAgICAgICAgc3VwZXIucmVzZXQoKTtcbiAgICAgICAgdGhpcy5fREFUQUZJRUxEX0lOUFVULmNsZWFyKCk7XG4gICAgfVxuXG4gICAgZHVwbGljYXRlKCk6IENhc2VEYXRhc2V0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXNlRGF0YXNldCh0aGlzLl9vcGVyYXRvclNlcnZpY2UsIHRoaXMuX2xvZywgdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZWxhc3RpY0tleXdvcmRzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXRhZmllbGRzLm1hcChkYXRhZmllbGQgPT4gdGhpcy5yZXNvbHZlRWxhc3RpY0tleXdvcmQoZGF0YWZpZWxkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzb2x2ZUVsYXN0aWNLZXl3b3JkKGRhdGFmaWVsZDogRGF0YWZpZWxkKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcy5zZWFyY2hJbmRleFJlc29sdmVyO1xuICAgICAgICBzd2l0Y2ggKGRhdGFmaWVsZC5maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5OVU1CRVIpO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5USU1FU1RBTVApO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5CT09MRUFOKTtcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgY2FzZSAnZmlsZUxpc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlci5nZXRJbmRleChkYXRhZmllbGQuZmllbGRJZCwgU2VhcmNoSW5kZXguRklMRV9OQU1FLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihFcXVhbHMpIHx8IHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKE5vdEVxdWFscykpO1xuICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICBjYXNlICd1c2VyTGlzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5VU0VSX0lEKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5GVUxMVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoRXF1YWxzKSB8fCB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihOb3RFcXVhbHMpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpbnB1dFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZERhdGFmaWVsZHMpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtDYXNlRGF0YXNldC5faTE4bn0ucGxhY2Vob2xkZXIuZmllbGRgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtDYXNlRGF0YXNldC5faTE4bn0ucGxhY2Vob2xkZXIudmFsdWVgO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZGF0YWZpZWxkT3B0aW9uc0luaXRpYWxpemVkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlUXVlcnkodXNlcklucHV0OiBBcnJheTx1bmtub3duPik6IFF1ZXJ5IHtcbiAgICAgICAgbGV0IHF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5O1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoSXNOdWxsKSkge1xuICAgICAgICAgICAgcXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3kgPSAoZCwgXykgPT4gdGhpcy5pc051bGxPcGVyYXRvclF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5KGQpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRUeXBlID09PSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFKSB7XG4gICAgICAgICAgICBxdWVyeUdlbmVyYXRpb25TdHJhdGVneSA9IChkLCB1aSkgPT4gdGhpcy5zdGFuZGFyZFF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5KGQsIHVpWzBdLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeUdlbmVyYXRpb25TdHJhdGVneSA9IChkLCB1aSkgPT4gdGhpcy5zdGFuZGFyZFF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5KGQsIHVpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHF1ZXJpZXMgPSB0aGlzLl9zZWxlY3RlZERhdGFmaWVsZHMubWFwKGRhdGFmaWVsZCA9PiBxdWVyeUdlbmVyYXRpb25TdHJhdGVneShkYXRhZmllbGQsIHVzZXJJbnB1dCkpO1xuICAgICAgICByZXR1cm4gUXVlcnkuY29tYmluZVF1ZXJpZXMocXVlcmllcywgQm9vbGVhbk9wZXJhdG9yLk9SKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhbmRhcmRRdWVyeUdlbmVyYXRpb25TdHJhdGVneShkYXRhZmllbGQ6IERhdGFmaWVsZCwgdXNlcklucHV0OiBBcnJheTx1bmtub3duPiwgZXNjYXBlSW5wdXQgPSB0cnVlKTogUXVlcnkge1xuICAgICAgICBjb25zdCB2YWx1ZVF1ZXJ5ID0gdGhpcy5zZWxlY3RlZE9wZXJhdG9yLmNyZWF0ZVF1ZXJ5KHRoaXMuZWxhc3RpY0tleXdvcmRzLCB1c2VySW5wdXQsIGVzY2FwZUlucHV0KTtcbiAgICAgICAgY29uc3QgbmV0UXVlcnkgPSB0aGlzLmdlbmVyYXRlTmV0Q29uc3RyYWludChkYXRhZmllbGQpO1xuICAgICAgICByZXR1cm4gUXVlcnkuY29tYmluZVF1ZXJpZXMoW3ZhbHVlUXVlcnksIG5ldFF1ZXJ5XSwgQm9vbGVhbk9wZXJhdG9yLkFORCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzTnVsbE9wZXJhdG9yUXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3koZGF0YWZpZWxkOiBEYXRhZmllbGQpOiBRdWVyeSB7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnQgPSB0aGlzLmdlbmVyYXRlTmV0Q29uc3RyYWludChkYXRhZmllbGQpO1xuICAgICAgICByZXR1cm4gKHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihJc051bGwpIGFzIElzTnVsbCkuY3JlYXRlUXVlcnlXaXRoQ29uc3RyYWludCh0aGlzLmVsYXN0aWNLZXl3b3JkcywgY29uc3RyYWludCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlTmV0Q29uc3RyYWludChkYXRhZmllbGQ6IERhdGFmaWVsZCk6IFF1ZXJ5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3NDYXRlZ29yeS5nZW5lcmF0ZVByZWRpY2F0ZShbW2RhdGFmaWVsZC5uZXRJZGVudGlmaWVyXV0pLnF1ZXJ5O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVEYXRhZmllbGRPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zSW5pdGlhbGl6ZWQkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG4gICAgICAgIHRoaXMuX2FsbG93ZWROZXRzU3ViID0gdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMuYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzJC5zdWJzY3JpYmUoYWxsb3dlZE5ldHMgPT4ge1xuICAgICAgICAgICAgYWxsb3dlZE5ldHMuZm9yRWFjaChwZXRyaU5ldCA9PiB7XG4gICAgICAgICAgICAgICAgcGV0cmlOZXQuaW1tZWRpYXRlRGF0YVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGltbWVkaWF0ZURhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGltbWVkaWF0ZURhdGEudGl0bGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGltbWVkaWF0ZURhdGEudGl0bGUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhQ2FzZURhdGFzZXQuRElTQUJMRURfVFlQRVMuaW5jbHVkZXMoaW1tZWRpYXRlRGF0YS50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goaW1tZWRpYXRlRGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZSA9IGltbWVkaWF0ZURhdGEudHlwZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHNlYXJjaCBwdXJwb3NlcywgZW51bWVyYXRpb24gYW5kIG11bHRpY2hvaWNlIG1hcHMgYXJlIGVxdWl2YWxlbnQgdG8gdGhlaXIgc2ltcGxlciBjb3VudGVycGFydHNcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnZW51bWVyYXRpb25fbWFwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnZW51bWVyYXRpb24nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbXVsdGljaG9pY2VfbWFwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnbXVsdGljaG9pY2UnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFRvRGF0YWZpZWxkT3B0aW9uc01hcChEYXRhZmllbGRNYXBLZXkuc2VyaWFsaXplZEZvcm0oaW1tZWRpYXRlRGF0YS50eXBlLCBpbW1lZGlhdGVEYXRhLnRpdGxlKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldElkZW50aWZpZXI6IHBldHJpTmV0LmlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogaW1tZWRpYXRlRGF0YS5zdHJpbmdJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFR5cGU6IGltbWVkaWF0ZURhdGEudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9uc0luaXRpYWxpemVkJC5uZXh0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZpbHRlck9wdGlvbnModXNlcklucHV0OiBPYnNlcnZhYmxlPHN0cmluZyB8IFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbjxBcnJheTxzdHJpbmc+Pj4pOlxuICAgICAgICBPYnNlcnZhYmxlPEFycmF5PFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbjxBcnJheTxzdHJpbmc+Pj4+IHtcblxuICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjYXRlZ29yeSBtdXN0IGJlIGZ1bGx5IGNvbmZpZ3VyZWQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZ2V0IGF1dG9jb21wbGV0ZSBvcHRpb25zIScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlucHV0VHlwZSAhPT0gU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmlsdGVyIG9wdGlvbnMgb2Ygbm9uLWF1dG9jb21wbGV0ZSBvcGVyYW5kcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJBdXRvY29tcGxldGUuZmlsdGVyT3B0aW9ucyh1c2VySW5wdXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3REYXRhZmllbGRzKGRhdGFmaWVsZE1hcEtleTogc3RyaW5nLCBzZWxlY3REZWZhdWx0T3BlcmF0b3IgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0YWZpZWxkT3B0aW9ucy5oYXMoZGF0YWZpZWxkTWFwS2V5KSkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLndhcm4oYFRoZSBwcm92aWRlZCAnZGF0YWZpZWxkTWFwS2V5JyAoJHtkYXRhZmllbGRNYXBLZXl9KSBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9EQVRBRklFTERfSU5QVVQuZm9ybUNvbnRyb2wuc2V0VmFsdWUoRGF0YWZpZWxkTWFwS2V5LnBhcnNlKGRhdGFmaWVsZE1hcEtleSkpO1xuICAgICAgICBpZiAoc2VsZWN0RGVmYXVsdE9wZXJhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERlZmF1bHRPcGVyYXRvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyBlbnRyeSBvciBwdXNoZXMgdmFsdWUgaW50byBhbiBleGlzdGluZyBlbnRyeS5cbiAgICAgKiBXaGVuIGEgbmV3IGVudHJ5IGlzIGNyZWF0ZWQsIGl0IGlzIGNyZWF0ZWQgYXMgYW4gQXJyYXkgb2Ygb25lIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIGtleSB3aGVyZSBpbiB0aGUgbWFwIHNob3VsZCB0aGUgdmFsdWUgYmUgYWRkZWRcbiAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBtYXBcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWRkVG9EYXRhZmllbGRPcHRpb25zTWFwKGtleTogc3RyaW5nLCB2YWx1ZTogRGF0YWZpZWxkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9kYXRhZmllbGRPcHRpb25zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zLmdldChrZXkpLnB1c2godmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9ucy5zZXQoa2V5LCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc09wZXJhbmRWYWx1ZVNlbGVjdGVkKG5ld1ZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlcmF0b3JTZWxlY3RlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGlucHV0VHlwZTogU2VhcmNoSW5wdXRUeXBlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW5wdXRUeXBlID0gdGhpcy5pbnB1dFR5cGU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5OVU1CRVI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBuZXdWYWx1ZSA9PT0gJ251bWJlcic7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5CT09MRUFOOlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgbmV3VmFsdWUgPT09ICdib29sZWFuJztcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURTpcbiAgICAgICAgICAgICAgICByZXR1cm4gISghbmV3VmFsdWUgfHwgdHlwZW9mIG5ld1ZhbHVlID09PSAnc3RyaW5nJyk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAhIW5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSB0cmFuc2Zvcm1hdGlvbiBvZiB0aGUgYEZvcm1Db250cm9sYCB2YWx1ZSBiZWZvcmUgcGFzc2luZyBpdCBpbnRvIHRoZSBzZWxlY3RlZCBgT3BlcmF0b3JgIGZvciBxdWVyeSBnZW5lcmF0aW9uLlxuICAgICAqIEl0IGlzIG1vc3RseSB1c2VmdWwgb25seSBmb3IgQXV0b2NvbXBsZXRlQ2F0ZWdvcmllcywgd2hlcmUgdGhlIHNlbGVjdGVkIHZhbHVlIG9mIHRoZSBGb3JtQ29udHJvbCBpcyBhbiBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIEZvcm1Db250cm9sVmFsdWVcbiAgICAgKiBAcmV0dXJucyBJZiB0aGUgc2VsZWN0ZWQgZGF0YSBmaWVsZCBoYXMgaW5wdXQgdHlwZSBgQVVUT0NPTVBMRVRFYCB0aGVuIHJldHVybnMgdGhlIHtAbGluayBTZWFyY2hBdXRvY29tcGxldGVPcHRpb259IGB2YWx1ZWBcbiAgICAgKiBhdHRyaWJ1dGUuIE90aGVyd2lzZSBwZXJmb3JtcyBhbiBpZGVudGl0eSBvcGVyYXRpb24uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHRyYW5zZm9ybUNhdGVnb3J5VmFsdWUodmFsdWU6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0VHlwZSA9PT0gU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURSkge1xuICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBTZWFyY2hBdXRvY29tcGxldGVPcHRpb248QXJyYXk8bnVtYmVyPj4pLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNTZWxlY3RlZE9wZXJhdG9yKG9wZXJhdG9yQ2xhc3M6IFR5cGU8YW55Pik6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wZXJhdG9yID09PSB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3Iob3BlcmF0b3JDbGFzcyk7XG4gICAgfVxuXG4gICAgc2VyaWFsaXplQ2xhc3MoKTogQ2F0ZWdvcmllcyB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDYXRlZ29yaWVzLkNBU0VfREFUQVNFVDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2VyaWFsaXplT3BlcmFuZFZhbHVlKHZhbHVlRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sKTogdW5rbm93biB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5pbnB1dFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURTpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdXNlckF1dG9jb21wbGV0ZS5zZXJpYWxpemVPcGVyYW5kVmFsdWUodmFsdWVGb3JtQ29udHJvbCk7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5EQVRFOlxuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuREFURV9USU1FOlxuICAgICAgICAgICAgICAgIHJldHVybiAodmFsdWVGb3JtQ29udHJvbC52YWx1ZSBhcyBNb21lbnQpLnZhbHVlT2YoKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLnNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2YWx1ZUZvcm1Db250cm9sKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVNZXRhZGF0YUNvbmZpZ3VyYXRpb24oKTogQ2F0ZWdvcnlNZXRhZGF0YUNvbmZpZ3VyYXRpb24ge1xuICAgICAgICBjb25zdCBjb25maWcgPSBzdXBlci5jcmVhdGVNZXRhZGF0YUNvbmZpZ3VyYXRpb24oKTtcbiAgICAgICAgY29uZmlnW0Nhc2VEYXRhc2V0LkRBVEFGSUVMRF9NRVRBREFUQV0gPSAodGhpcy5fREFUQUZJRUxEX0lOUFVULmZvcm1Db250cm9sLnZhbHVlIGFzIERhdGFmaWVsZE1hcEtleSkudG9TZXJpYWxpemVkRm9ybSgpO1xuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBsb2FkQ29uZmlndXJhdGlvbkZyb21NZXRhZGF0YShjb25maWd1cmF0aW9uOiBDYXRlZ29yeU1ldGFkYXRhQ29uZmlndXJhdGlvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCByZXN1bHQkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG4gICAgICAgIHRoaXMuZGF0YWZpZWxkT3B0aW9uc0luaXRpYWxpemVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VyaWFsaXplZE1hcEtleSA9IGNvbmZpZ3VyYXRpb25bQ2FzZURhdGFzZXQuREFUQUZJRUxEX01FVEFEQVRBXSBhcyBzdHJpbmc7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERhdGFmaWVsZHMoc2VyaWFsaXplZE1hcEtleSwgZmFsc2UpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhhc1NlbGVjdGVkRGF0YWZpZWxkcykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU2VhcmNoZWQgZGF0YSBmaWVsZHMgY2Fubm90IGJlIHJlc3RvcmVkIGZyb20gdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gKCR7c2VyaWFsaXplZE1hcEtleVxuICAgICAgICAgICAgICAgIH0pLiBNYWtlIHN1cmUsIHRoYXQgdGhlIGNvcnJlY3QgYWxsb3dlZCBuZXRzIGFyZSBwcm92aWRlZCBpbiB0aGlzIHZpZXcuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdXBlci5sb2FkQ29uZmlndXJhdGlvbkZyb21NZXRhZGF0YShjb25maWd1cmF0aW9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdCQubmV4dCgpO1xuICAgICAgICAgICAgICAgIHJlc3VsdCQuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRlc2VyaWFsaXplT3BlcmFuZFZhbHVlKHZhbHVlOiB1bmtub3duKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmlucHV0VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl91c2VyQXV0b2NvbXBsZXRlLmRlc2VyaWFsaXplT3BlcmFuZFZhbHVlKHZhbHVlIGFzIFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbjxBcnJheTxzdHJpbmc+Pik7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5EQVRFOlxuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuREFURV9USU1FOlxuICAgICAgICAgICAgICAgIHJldHVybiBvZihtb21lbnQodmFsdWUgYXMgc3RyaW5nKSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5kZXNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlQ29uZmlndXJhdGlvbkZpbHRlclRleHRTZWdtZW50cygpOiBBcnJheTxGaWx0ZXJUZXh0U2VnbWVudD4ge1xuICAgICAgICByZXR1cm4gW3tzZWdtZW50OiB0aGlzLl9jb25maWd1cmF0aW9uSW5wdXRzJC52YWx1ZVswXS5mb3JtQ29udHJvbC52YWx1ZS50ZXh0LCBib2xkOiB0cnVlfV07XG4gICAgfVxufVxuIl19
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1kYXRhc2V0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5ldGdyaWYvY29tcG9uZW50cy1jb3JlLyIsInNvdXJjZXMiOlsibGliL3NlYXJjaC9tb2RlbHMvY2F0ZWdvcnkvY2FzZS9jYXNlLWRhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBYyxFQUFFLEVBQUUsYUFBYSxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBR2xGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM5QyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLE1BQWdCLE1BQU0sUUFBUSxDQUFDO0FBRXRDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFFL0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFRdEQsTUFBTSxPQUFPLFdBQVksU0FBUSxRQUFtQjtJQW9DaEQsWUFBWSxTQUEwQixFQUFFLE1BQXFCLEVBQVkscUJBQTJDO1FBQ2hILEtBQUssQ0FBQyxTQUFTLEVBQ1gsU0FBUyxFQUNULEdBQUcsV0FBVyxDQUFDLEtBQUssT0FBTyxFQUMzQixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsQ0FBQyxDQUFDO1FBTnNELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFRaEgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBZ0IsQ0FBQztRQUNuRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUU5QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQTRCLENBQUM7UUFDN0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFOUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksa0JBQWtCLENBQzFDLGVBQWUsQ0FBQyxZQUFZLEVBQzVCLGdEQUFnRCxFQUNoRCxJQUFJLEVBQ0osSUFBSSxDQUFDLGlCQUFpQixFQUN0QixDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUNsQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDMUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2pGLENBQUMsQ0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksZUFBZSxDQUE0QixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFFckcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN2RCxJQUFJLFFBQVEsS0FBSyxTQUFTLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFO2dCQUN4RCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQzthQUM1RDtpQkFBTSxJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUMzRCxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2FBQ2xGO1lBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFyRE0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLFNBQWlCO1FBQ2hELFFBQVEsU0FBUyxFQUFFO1lBQ2YsS0FBSyxNQUFNO2dCQUNQLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQztZQUNoQyxLQUFLLFVBQVU7Z0JBQ1gsT0FBTyxlQUFlLENBQUMsU0FBUyxDQUFDO1lBQ3JDLEtBQUssUUFBUTtnQkFDVCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUM7WUFDbEMsS0FBSyxTQUFTO2dCQUNWLE9BQU8sZUFBZSxDQUFDLE9BQU8sQ0FBQztZQUNuQyxLQUFLLE1BQU07Z0JBQ1AsT0FBTyxlQUFlLENBQUMsWUFBWSxDQUFDO1lBQ3hDO2dCQUNJLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQztTQUNuQztJQUNMLENBQUM7SUF3Q0QsT0FBTztRQUNILEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzlDLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFO1lBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLHNHQUFzRyxDQUFDLENBQUM7U0FDM0g7UUFDRCxPQUFPLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLGdCQUFnQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzdCLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFDRCxRQUFRLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7WUFDM0MsS0FBSyxRQUFRO2dCQUNULE9BQU87b0JBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO29CQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztvQkFDM0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7b0JBQ2hELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO29CQUMzQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztvQkFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7b0JBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2lCQUM1QyxDQUFDO1lBQ04sS0FBSyxTQUFTO2dCQUNWLE9BQU87b0JBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7b0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO2lCQUMvQyxDQUFDO1lBQ04sS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFVBQVU7Z0JBQ1gsT0FBTztvQkFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztvQkFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7b0JBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO2lCQUM1QyxDQUFDO1lBQ04sS0FBSyxNQUFNO2dCQUNQLE9BQU87b0JBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7b0JBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO29CQUNoRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztvQkFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDcEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7b0JBQy9DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7b0JBQ3BELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO29CQUM5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztpQkFDNUMsQ0FBQztZQUNOLEtBQUssVUFBVTtnQkFDWCxPQUFPO29CQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO29CQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO29CQUNuRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDO29CQUN4RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO29CQUNuRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLHFCQUFxQixDQUFDO29CQUN4RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQztvQkFDbEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7aUJBQzVDLENBQUM7WUFDTjtnQkFDSSxPQUFPO29CQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO29CQUM1QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztvQkFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7b0JBQzVDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO29CQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztpQkFDMUMsQ0FBQztTQUNUO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxXQUFXO1FBQ1gsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELElBQVcscUJBQXFCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFjLG1CQUFtQjtRQUM3QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVNLEtBQUs7UUFDUixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUM3QixPQUFPLEVBQUUsQ0FBQztTQUNiO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUMzRjtJQUNMLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxTQUFvQjtRQUNoRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUM7UUFDaEUsUUFBUSxTQUFTLENBQUMsU0FBUyxFQUFFO1lBQ3pCLEtBQUssUUFBUTtnQkFDVCxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEUsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFVBQVU7Z0JBQ1gsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZFLEtBQUssU0FBUztnQkFDVixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckUsS0FBSyxNQUFNLENBQUM7WUFDWixLQUFLLFVBQVU7Z0JBQ1gsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFNBQVMsRUFDN0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNySCxLQUFLLE1BQU0sQ0FBQztZQUNaLEtBQUssVUFBVTtnQkFDWCxPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckU7Z0JBQ0ksT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFDNUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUN4SDtJQUNMLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzdCLE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxvQkFBb0IsQ0FBQztTQUNuRDtRQUNELE9BQU8sR0FBRyxXQUFXLENBQUMsS0FBSyxvQkFBb0IsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBYyw0QkFBNEI7UUFDdEMsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVTLGFBQWEsQ0FBQyxTQUF5QjtRQUM3QyxJQUFJLHVCQUF1QixDQUFDO1FBQzVCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pDLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3JGO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxZQUFZLEVBQUU7WUFDeEQsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM5RjthQUFNO1lBQ0gsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3BGO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pHLE9BQU8sS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFUywrQkFBK0IsQ0FBQyxTQUFvQixFQUFFLFNBQXlCLEVBQUUsV0FBVyxHQUFHLElBQUk7UUFDekcsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRVMscUNBQXFDLENBQUMsU0FBb0I7UUFDaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELE9BQVEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQVksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzdILENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxTQUFvQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEYsQ0FBQztJQUVTLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsNkJBQTZCLEdBQUcsSUFBSSxhQUFhLENBQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN0RyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMzQixRQUFRLENBQUMsYUFBYTtxQkFDakIsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUNwQixPQUFPLGFBQWEsQ0FBQyxLQUFLLEtBQUssU0FBUzsyQkFDakMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQzsyQkFDckMsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BFLENBQUMsQ0FBQztxQkFDRCxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQ3JCLElBQUksSUFBSSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBRTlCLHFHQUFxRztvQkFDckcsSUFBSSxJQUFJLEtBQUssaUJBQWlCLEVBQUU7d0JBQzVCLElBQUksR0FBRyxhQUFhLENBQUM7cUJBQ3hCO3lCQUFNLElBQUksSUFBSSxLQUFLLGlCQUFpQixFQUFFO3dCQUNuQyxJQUFJLEdBQUcsYUFBYSxDQUFDO3FCQUN4QjtvQkFFRCxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDbkcsYUFBYSxFQUFFLFFBQVEsQ0FBQyxVQUFVO3dCQUNsQyxPQUFPLEVBQUUsYUFBYSxDQUFDLFFBQVE7d0JBQy9CLFNBQVMsRUFBRSxhQUFhLENBQUMsSUFBSTtxQkFDaEMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsYUFBYSxDQUFDLFNBQXVFO1FBR2pGLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRkFBc0YsQ0FBQyxDQUFDO1NBQzNHO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxZQUFZLEVBQUU7WUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1NBQ3pFO1FBRUQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxlQUF1QixFQUFFLHFCQUFxQixHQUFHLElBQUk7UUFDekUsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUNBQW1DLGVBQWUsbUJBQW1CLENBQUMsQ0FBQztZQUN0RixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxxQkFBcUIsRUFBRTtZQUN2QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUNoQztJQUNMLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLHdCQUF3QixDQUFDLEdBQVcsRUFBRSxLQUFnQjtRQUM1RCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0M7YUFBTTtZQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM1QztJQUNMLENBQUM7SUFFUyxzQkFBc0IsQ0FBQyxRQUFhO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRTtZQUM1QixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELElBQUksU0FBMEIsQ0FBQztRQUMvQixJQUFJO1lBQ0EsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDOUI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsUUFBUSxTQUFTLEVBQUU7WUFDZixLQUFLLGVBQWUsQ0FBQyxNQUFNO2dCQUN2QixPQUFPLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQztZQUN4QyxLQUFLLGVBQWUsQ0FBQyxPQUFPO2dCQUN4QixPQUFPLE9BQU8sUUFBUSxLQUFLLFNBQVMsQ0FBQztZQUN6QyxLQUFLLGVBQWUsQ0FBQyxZQUFZO2dCQUM3QixPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztZQUN4RDtnQkFDSSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNPLHNCQUFzQixDQUFDLEtBQVU7UUFDdkMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxZQUFZLEVBQUU7WUFDakQsT0FBUSxLQUFpRCxDQUFDLEtBQUssQ0FBQztTQUNuRTtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQ25DLENBQUM7SUFFUyxxQkFBcUIsQ0FBQyxnQkFBNkI7UUFDekQsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3BCLEtBQUssZUFBZSxDQUFDLFlBQVk7Z0JBQzdCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDMUUsS0FBSyxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQzFCLEtBQUssZUFBZSxDQUFDLFNBQVM7Z0JBQzFCLE9BQVEsZ0JBQWdCLENBQUMsS0FBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN4RDtnQkFDSSxPQUFPLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQUVTLDJCQUEyQjtRQUNqQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNuRCxNQUFNLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDLEdBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxLQUF5QixDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVTLDZCQUE2QixDQUFDLGFBQTRDO1FBQ2hGLE1BQU0sT0FBTyxHQUFHLElBQUksYUFBYSxDQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzdDLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBVyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO2dCQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDRFQUE0RSxnQkFDNUYsd0VBQXdFLENBQUMsQ0FBQzthQUM3RTtZQUNELEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUM5RCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRVMsdUJBQXVCLENBQUMsS0FBYztRQUM1QyxRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDcEIsS0FBSyxlQUFlLENBQUMsWUFBWTtnQkFDN0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsS0FBZ0QsQ0FBQyxDQUFDO1lBQzVHLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQztZQUMxQixLQUFLLGVBQWUsQ0FBQyxTQUFTO2dCQUMxQixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBZSxDQUFDLENBQUMsQ0FBQztZQUN2QztnQkFDSSxPQUFPLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuRDtJQUNMLENBQUM7SUFFUyxxQ0FBcUM7UUFDM0MsT0FBTyxDQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQzs7QUFoYXVCLGlCQUFLLEdBQUcsOEJBQThCLENBQUM7QUFDOUMsMEJBQWMsR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ25ELDhCQUFrQixHQUFHLFdBQVcsQ0FBQztBQUNuQyw2QkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3BlcmF0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9vcGVyYXRvci1zZXJ2aWNlL29wZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtPcGVyYXRvcn0gZnJvbSAnLi4vLi4vb3BlcmF0b3Ivb3BlcmF0b3InO1xuaW1wb3J0IHtRdWVyeX0gZnJvbSAnLi4vLi4vcXVlcnkvcXVlcnknO1xuaW1wb3J0IHtPcHRpb25hbERlcGVuZGVuY2llc30gZnJvbSAnLi4vLi4vLi4vY2F0ZWdvcnktZmFjdG9yeS9vcHRpb25hbC1kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHtTZWFyY2hJbnB1dFR5cGV9IGZyb20gJy4uL3NlYXJjaC1pbnB1dC10eXBlJztcbmltcG9ydCB7RGF0YWZpZWxkTWFwS2V5fSBmcm9tICcuLi8uLi9kYXRhZmllbGQtbWFwLWtleSc7XG5pbXBvcnQge1NlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbn0gZnJvbSAnLi4vc2VhcmNoLWF1dG9jb21wbGV0ZS1vcHRpb24nO1xuaW1wb3J0IHtCb29sZWFuT3BlcmF0b3J9IGZyb20gJy4uLy4uL2Jvb2xlYW4tb3BlcmF0b3InO1xuaW1wb3J0IHtDYXNlUHJvY2Vzc30gZnJvbSAnLi9jYXNlLXByb2Nlc3MnO1xuaW1wb3J0IHtFcXVhbHNEYXRlfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMtZGF0ZSc7XG5pbXBvcnQge1N1YnN0cmluZ30gZnJvbSAnLi4vLi4vb3BlcmF0b3Ivc3Vic3RyaW5nJztcbmltcG9ydCB7RXF1YWxzRGF0ZVRpbWV9IGZyb20gJy4uLy4uL29wZXJhdG9yL2VxdWFscy1kYXRlLXRpbWUnO1xuaW1wb3J0IHtFcXVhbHN9IGZyb20gJy4uLy4uL29wZXJhdG9yL2VxdWFscyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtoYXNDb250ZW50fSBmcm9tICcuLi8uLi8uLi8uLi91dGlsaXR5L3BhZ2luYXRpb24vcGFnZS1oYXMtY29udGVudCc7XG5pbXBvcnQge0NhdGVnb3J5fSBmcm9tICcuLi9jYXRlZ29yeSc7XG5pbXBvcnQge05vdEVxdWFsc30gZnJvbSAnLi4vLi4vb3BlcmF0b3Ivbm90LWVxdWFscyc7XG5pbXBvcnQge01vcmVUaGFufSBmcm9tICcuLi8uLi9vcGVyYXRvci9tb3JlLXRoYW4nO1xuaW1wb3J0IHtMZXNzVGhhbn0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuJztcbmltcG9ydCB7SW5SYW5nZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvaW4tcmFuZ2UnO1xuaW1wb3J0IHtJc051bGx9IGZyb20gJy4uLy4uL29wZXJhdG9yL2lzLW51bGwnO1xuaW1wb3J0IHtMaWtlfSBmcm9tICcuLi8uLi9vcGVyYXRvci9saWtlJztcbmltcG9ydCB7Tm90RXF1YWxzRGF0ZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3Ivbm90LWVxdWFscy1kYXRlJztcbmltcG9ydCB7TW9yZVRoYW5EYXRlfSBmcm9tICcuLi8uLi9vcGVyYXRvci9tb3JlLXRoYW4tZGF0ZSc7XG5pbXBvcnQge0xlc3NUaGFuRGF0ZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuLWRhdGUnO1xuaW1wb3J0IHtJblJhbmdlRGF0ZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvaW4tcmFuZ2UtZGF0ZSc7XG5pbXBvcnQge01vcmVUaGFuRGF0ZVRpbWV9IGZyb20gJy4uLy4uL29wZXJhdG9yL21vcmUtdGhhbi1kYXRlLXRpbWUnO1xuaW1wb3J0IHtMZXNzVGhhbkRhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9sZXNzLXRoYW4tZGF0ZS10aW1lJztcbmltcG9ydCB7SW5SYW5nZURhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9pbi1yYW5nZS1kYXRlLXRpbWUnO1xuaW1wb3J0IHtBdXRvY29tcGxldGVPcHRpb25zfSBmcm9tICcuLi9hdXRvY29tcGxldGUtb3B0aW9ucyc7XG5pbXBvcnQge0NvbmZpZ3VyYXRpb25JbnB1dH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbi1pbnB1dCc7XG5pbXBvcnQge1NlYXJjaEluZGV4fSBmcm9tICcuLi8uLi9zZWFyY2gtaW5kZXgnO1xuaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q2F0ZWdvcmllc30gZnJvbSAnLi4vY2F0ZWdvcmllcyc7XG5pbXBvcnQge0Zvcm1Db250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgbW9tZW50LCB7TW9tZW50fSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtDYXRlZ29yeU1ldGFkYXRhQ29uZmlndXJhdGlvbn0gZnJvbSAnLi4vLi4vcGVyc2lzdGFuY2UvZ2VuZXJhdG9yLW1ldGFkYXRhJztcbmltcG9ydCB7TW9yZVRoYW5FcXVhbH0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbW9yZS10aGFuLWVxdWFsJztcbmltcG9ydCB7TGVzc1RoYW5FcXVhbH0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGVzcy10aGFuLWVxdWFsJztcbmltcG9ydCB7TW9yZVRoYW5FcXVhbERhdGV9IGZyb20gJy4uLy4uL29wZXJhdG9yL21vcmUtdGhhbi1lcXVhbC1kYXRlJztcbmltcG9ydCB7TGVzc1RoYW5FcXVhbERhdGV9IGZyb20gJy4uLy4uL29wZXJhdG9yL2xlc3MtdGhhbi1lcXVhbC1kYXRlJztcbmltcG9ydCB7TW9yZVRoYW5FcXVhbERhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9tb3JlLXRoYW4tZXF1YWwtZGF0ZS10aW1lJztcbmltcG9ydCB7TGVzc1RoYW5FcXVhbERhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9sZXNzLXRoYW4tZXF1YWwtZGF0ZS10aW1lJztcbmltcG9ydCB7RmlsdGVyVGV4dFNlZ21lbnR9IGZyb20gJy4uLy4uL3BlcnNpc3RhbmNlL2ZpbHRlci10ZXh0LXNlZ21lbnQnO1xuaW1wb3J0IHtVc2VyQXV0b2NvbXBsZXRlfSBmcm9tICcuLi91c2VyLWF1dG9jb21wbGV0ZSc7XG5cbmludGVyZmFjZSBEYXRhZmllbGQge1xuICAgIG5ldElkZW50aWZpZXI6IHN0cmluZztcbiAgICBmaWVsZElkOiBzdHJpbmc7XG4gICAgZmllbGRUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDYXNlRGF0YXNldCBleHRlbmRzIENhdGVnb3J5PERhdGFmaWVsZD4gaW1wbGVtZW50cyBBdXRvY29tcGxldGVPcHRpb25zIHtcblxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9pMThuID0gJ3NlYXJjaC5jYXRlZ29yeS5jYXNlLmRhdGFzZXQnO1xuICAgIHByb3RlY3RlZCBzdGF0aWMgRElTQUJMRURfVFlQRVMgPSBbJ2J1dHRvbicsICd0YXNrUmVmJywgJ2Nhc2VSZWYnLCAnZmlsdGVyJ107XG4gICAgcHJvdGVjdGVkIHN0YXRpYyByZWFkb25seSBEQVRBRklFTERfTUVUQURBVEEgPSAnZGF0YWZpZWxkJztcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBVVRPQ09NUExFVEVfSUNPTiA9ICdhY2NvdW50X2NpcmNsZSc7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX0RBVEFGSUVMRF9JTlBVVDogQ29uZmlndXJhdGlvbklucHV0O1xuXG4gICAgcHJvdGVjdGVkIF9wcm9jZXNzQ2F0ZWdvcnk6IENhc2VQcm9jZXNzO1xuXG4gICAgcHJvdGVjdGVkIF9jb25maWd1cmF0aW9uSW5wdXRzJDogQmVoYXZpb3JTdWJqZWN0PEFycmF5PENvbmZpZ3VyYXRpb25JbnB1dD4+O1xuXG4gICAgcHJvdGVjdGVkIF9kYXRhZmllbGRPcHRpb25zOiBNYXA8c3RyaW5nLCBBcnJheTxEYXRhZmllbGQ+PjtcblxuICAgIHByaXZhdGUgX2RhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQ6IFJlcGxheVN1YmplY3Q8dm9pZD47XG4gICAgcHJpdmF0ZSBfYWxsb3dlZE5ldHNTdWI6IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIF91c2VyQXV0b2NvbXBsZXRlOiBVc2VyQXV0b2NvbXBsZXRlO1xuXG4gICAgcHVibGljIHN0YXRpYyBGaWVsZFR5cGVUb0lucHV0VHlwZShmaWVsZFR5cGU6IHN0cmluZyk6IFNlYXJjaElucHV0VHlwZSB7XG4gICAgICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gU2VhcmNoSW5wdXRUeXBlLkRBVEU7XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlYXJjaElucHV0VHlwZS5EQVRFX1RJTUU7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuTlVNQkVSO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlYXJjaElucHV0VHlwZS5CT09MRUFOO1xuICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFNlYXJjaElucHV0VHlwZS5BVVRPQ09NUExFVEU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBTZWFyY2hJbnB1dFR5cGUuVEVYVDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKG9wZXJhdG9yczogT3BlcmF0b3JTZXJ2aWNlLCBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHByb3RlY3RlZCBfb3B0aW9uYWxEZXBlbmRlbmNpZXM6IE9wdGlvbmFsRGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHN1cGVyKHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGAke0Nhc2VEYXRhc2V0Ll9pMThufS5uYW1lYCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgIG9wZXJhdG9ycyk7XG5cbiAgICAgICAgdGhpcy5fcHJvY2Vzc0NhdGVnb3J5ID0gdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMuY2F0ZWdvcnlGYWN0b3J5LmdldChDYXNlUHJvY2VzcykgYXMgQ2FzZVByb2Nlc3M7XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NDYXRlZ29yeS5zZWxlY3REZWZhdWx0T3BlcmF0b3IoKTtcblxuICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zID0gbmV3IE1hcDxzdHJpbmcsIEFycmF5PERhdGFmaWVsZD4+KCk7XG4gICAgICAgIHRoaXMuX3VzZXJBdXRvY29tcGxldGUgPSBuZXcgVXNlckF1dG9jb21wbGV0ZSh0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcyk7XG4gICAgICAgIHRoaXMuY3JlYXRlRGF0YWZpZWxkT3B0aW9ucygpO1xuXG4gICAgICAgIHRoaXMuX0RBVEFGSUVMRF9JTlBVVCA9IG5ldyBDb25maWd1cmF0aW9uSW5wdXQoXG4gICAgICAgICAgICBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFLFxuICAgICAgICAgICAgJ3NlYXJjaC5jYXRlZ29yeS5jYXNlLmRhdGFzZXQucGxhY2Vob2xkZXIuZmllbGQnLFxuICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnMsXG4gICAgICAgICAgICAobWFwS2V5cywgbmV3VmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWFwS2V5cy5tYXAoc2VyaWFsaXplZE1hcEtleSA9PiBEYXRhZmllbGRNYXBLZXkucGFyc2Uoc2VyaWFsaXplZE1hcEtleSkpXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobWFwS2V5ID0+IG1hcEtleS50aXRsZS50b0xvY2FsZUxvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgobmV3VmFsdWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLl9jb25maWd1cmF0aW9uSW5wdXRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8Q29uZmlndXJhdGlvbklucHV0Pj4oW3RoaXMuX0RBVEFGSUVMRF9JTlBVVF0pO1xuXG4gICAgICAgIHRoaXMuX0RBVEFGSUVMRF9JTlBVVC52YWx1ZUNoYW5nZXMkKCkuc3Vic2NyaWJlKG5ld1ZhbHVlID0+IHtcbiAgICAgICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBuZXdWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb25maWd1cmF0aW9uSW5wdXRzJC5uZXh0KFt0aGlzLl9EQVRBRklFTERfSU5QVVRdKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQuZ2V0VmFsdWUoKS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb25maWd1cmF0aW9uSW5wdXRzJC5uZXh0KFt0aGlzLl9EQVRBRklFTERfSU5QVVQsIHRoaXMuX09QRVJBVE9SX0lOUFVUXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9vcGVyYXRvckZvcm1Db250cm9sLnNldFZhbHVlKHVuZGVmaW5lZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fY29uZmlndXJhdGlvbklucHV0cyQuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9uc0luaXRpYWxpemVkJC5jb21wbGV0ZSgpO1xuICAgICAgICBpZiAodGhpcy5fYWxsb3dlZE5ldHNTdWIgJiYgIXRoaXMuX2FsbG93ZWROZXRzU3ViLmNsb3NlZCkge1xuICAgICAgICAgICAgdGhpcy5fYWxsb3dlZE5ldHNTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wcm9jZXNzQ2F0ZWdvcnkuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIGdldCBjb25maWd1cmF0aW9uSW5wdXRzJCgpOiBPYnNlcnZhYmxlPEFycmF5PENvbmZpZ3VyYXRpb25JbnB1dD4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb25JbnB1dHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaW5wdXRUeXBlKCk6IFNlYXJjaElucHV0VHlwZSB7XG4gICAgICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZERhdGFmaWVsZHMpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5wdXQgdHlwZSBvZiBhcmd1bWVudHMgY2Fubm90IGJlIGRldGVybWluZWQgYmVmb3JlIHNlbGVjdGluZyBhIGRhdGEgZmllbGQgZHVyaW5nIHRoZSBjb25maWd1cmF0aW9uLicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBDYXNlRGF0YXNldC5GaWVsZFR5cGVUb0lucHV0VHlwZSh0aGlzLl9zZWxlY3RlZERhdGFmaWVsZHNbMF0uZmllbGRUeXBlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYWxsb3dlZCBvcGVyYXRvcnMgYXJlIGRlcGVuZGFudCBvbiB0aGUgc2VsZWN0ZWQgZGF0YSBmaWVsZC5cbiAgICAgKlxuICAgICAqIEJld2FyZSB0aGF0IGlmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgb3JkZXIgb2YgdGhlIGFsbG93ZWQgb3BlcmF0b3JzLCB0aGVuIHlvdSBtdXN0IGFsc28gdXBkYXRlIHRoZVxuICAgICAqIFtzZWxlY3REZWZhdWx0T3BlcmF0b3IoKV17QGxpbmsgQ2F0ZWdvcnkjc2VsZWN0RGVmYXVsdE9wZXJhdG9yfSBtZXRob2QsIHNvIHRoYXQgZGVmYXVsdCBvcGVyYXRvciBmb3IgZWFjaCBkYXRhIGZpZWxkIHR5cGUgbWF0Y2hlc1xuICAgICAqIHRoZSBkZWZhdWx0IG9wZXJhdG9yIG9mIHRoZSB7QGxpbmsgQ2FzZVNpbXBsZURhdGFzZXR9IHNlYXJjaCBjYXRlZ29yeS4gT3RoZXJ3aXNlIHRoZSB0cmFuc2l0aW9uIG9mIGhlYWRlciBzZWFyY2ggaW50byB0aGUgc2VhcmNoIEdVSVxuICAgICAqIHdvbid0IHdvcmsgcHJvcGVybHkuXG4gICAgICovXG4gICAgcHVibGljIGdldCBhbGxvd2VkT3BlcmF0b3JzKCk6IEFycmF5PE9wZXJhdG9yPGFueT4+IHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc1NlbGVjdGVkRGF0YWZpZWxkcykge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAodGhpcy5fc2VsZWN0ZWREYXRhZmllbGRzWzBdLmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE5vdEVxdWFscyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihNb3JlVGhhbiksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihNb3JlVGhhbkVxdWFsKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKExlc3NUaGFuKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKExlc3NUaGFuRXF1YWwpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSW5SYW5nZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihJc051bGwpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTm90RXF1YWxzKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICBjYXNlICd1c2VyJzpcbiAgICAgICAgICAgIGNhc2UgJ3VzZXJMaXN0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE5vdEVxdWFscyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihJc051bGwpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHNEYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE5vdEVxdWFsc0RhdGUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW5EYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKE1vcmVUaGFuRXF1YWxEYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKExlc3NUaGFuRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbkVxdWFsRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihJblJhbmdlRGF0ZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihJc051bGwpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzRGF0ZVRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTW9yZVRoYW5EYXRlVGltZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihNb3JlVGhhbkVxdWFsRGF0ZVRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoTGVzc1RoYW5EYXRlVGltZSksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihMZXNzVGhhbkVxdWFsRGF0ZVRpbWUpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSW5SYW5nZURhdGVUaW1lKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKElzTnVsbClcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoU3Vic3RyaW5nKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFscyksXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihOb3RFcXVhbHMpLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoSXNOdWxsKSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKExpa2UpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIGBDYXNlRGF0YXNldGAgY2F0ZWdvcnkgaXMgbm90IGRpc3BsYXllZCBpbiBib2xkIGZvciBiZXR0ZXIgcmVhZGFiaWxpdHlcbiAgICAgKi9cbiAgICBnZXQgZGlzcGxheUJvbGQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1NlbGVjdGVkRGF0YWZpZWxkcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX0RBVEFGSUVMRF9JTlBVVC5pc09wdGlvblNlbGVjdGVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgX3NlbGVjdGVkRGF0YWZpZWxkcygpOiBBcnJheTxEYXRhZmllbGQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnMuZ2V0KHRoaXMuX0RBVEFGSUVMRF9JTlBVVC5mb3JtQ29udHJvbC52YWx1ZS52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0KCkge1xuICAgICAgICBzdXBlci5yZXNldCgpO1xuICAgICAgICB0aGlzLl9EQVRBRklFTERfSU5QVVQuY2xlYXIoKTtcbiAgICB9XG5cbiAgICBkdXBsaWNhdGUoKTogQ2FzZURhdGFzZXQge1xuICAgICAgICByZXR1cm4gbmV3IENhc2VEYXRhc2V0KHRoaXMuX29wZXJhdG9yU2VydmljZSwgdGhpcy5fbG9nLCB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBlbGFzdGljS2V5d29yZHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZERhdGFmaWVsZHMpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZERhdGFmaWVsZHMubWFwKGRhdGFmaWVsZCA9PiB0aGlzLnJlc29sdmVFbGFzdGljS2V5d29yZChkYXRhZmllbGQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlRWxhc3RpY0tleXdvcmQoZGF0YWZpZWxkOiBEYXRhZmllbGQpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZXNvbHZlciA9IHRoaXMuX29wdGlvbmFsRGVwZW5kZW5jaWVzLnNlYXJjaEluZGV4UmVzb2x2ZXI7XG4gICAgICAgIHN3aXRjaCAoZGF0YWZpZWxkLmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZXIuZ2V0SW5kZXgoZGF0YWZpZWxkLmZpZWxkSWQsIFNlYXJjaEluZGV4Lk5VTUJFUik7XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZXIuZ2V0SW5kZXgoZGF0YWZpZWxkLmZpZWxkSWQsIFNlYXJjaEluZGV4LlRJTUVTVEFNUCk7XG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZXIuZ2V0SW5kZXgoZGF0YWZpZWxkLmZpZWxkSWQsIFNlYXJjaEluZGV4LkJPT0xFQU4pO1xuICAgICAgICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgICAgICBjYXNlICdmaWxlTGlzdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVyLmdldEluZGV4KGRhdGFmaWVsZC5maWVsZElkLCBTZWFyY2hJbmRleC5GSUxFX05BTUUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKEVxdWFscykgfHwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoTm90RXF1YWxzKSB8fCB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihTdWJzdHJpbmcpKTtcbiAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgY2FzZSAndXNlckxpc3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlci5nZXRJbmRleChkYXRhZmllbGQuZmllbGRJZCwgU2VhcmNoSW5kZXguVVNFUl9JRCk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlci5nZXRJbmRleChkYXRhZmllbGQuZmllbGRJZCwgU2VhcmNoSW5kZXguRlVMTFRFWFQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKEVxdWFscykgfHwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoTm90RXF1YWxzKSB8fCB0aGlzLmlzU2VsZWN0ZWRPcGVyYXRvcihTdWJzdHJpbmcpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpbnB1dFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghdGhpcy5oYXNTZWxlY3RlZERhdGFmaWVsZHMpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtDYXNlRGF0YXNldC5faTE4bn0ucGxhY2Vob2xkZXIuZmllbGRgO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtDYXNlRGF0YXNldC5faTE4bn0ucGxhY2Vob2xkZXIudmFsdWVgO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZGF0YWZpZWxkT3B0aW9uc0luaXRpYWxpemVkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFmaWVsZE9wdGlvbnNJbml0aWFsaXplZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlUXVlcnkodXNlcklucHV0OiBBcnJheTx1bmtub3duPik6IFF1ZXJ5IHtcbiAgICAgICAgbGV0IHF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5O1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoSXNOdWxsKSkge1xuICAgICAgICAgICAgcXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3kgPSAoZCwgXykgPT4gdGhpcy5pc051bGxPcGVyYXRvclF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5KGQpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRUeXBlID09PSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFKSB7XG4gICAgICAgICAgICBxdWVyeUdlbmVyYXRpb25TdHJhdGVneSA9IChkLCB1aSkgPT4gdGhpcy5zdGFuZGFyZFF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5KGQsIHVpWzBdLCBmYWxzZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBxdWVyeUdlbmVyYXRpb25TdHJhdGVneSA9IChkLCB1aSkgPT4gdGhpcy5zdGFuZGFyZFF1ZXJ5R2VuZXJhdGlvblN0cmF0ZWd5KGQsIHVpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHF1ZXJpZXMgPSB0aGlzLl9zZWxlY3RlZERhdGFmaWVsZHMubWFwKGRhdGFmaWVsZCA9PiBxdWVyeUdlbmVyYXRpb25TdHJhdGVneShkYXRhZmllbGQsIHVzZXJJbnB1dCkpO1xuICAgICAgICByZXR1cm4gUXVlcnkuY29tYmluZVF1ZXJpZXMocXVlcmllcywgQm9vbGVhbk9wZXJhdG9yLk9SKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc3RhbmRhcmRRdWVyeUdlbmVyYXRpb25TdHJhdGVneShkYXRhZmllbGQ6IERhdGFmaWVsZCwgdXNlcklucHV0OiBBcnJheTx1bmtub3duPiwgZXNjYXBlSW5wdXQgPSB0cnVlKTogUXVlcnkge1xuICAgICAgICBjb25zdCB2YWx1ZVF1ZXJ5ID0gdGhpcy5zZWxlY3RlZE9wZXJhdG9yLmNyZWF0ZVF1ZXJ5KHRoaXMuZWxhc3RpY0tleXdvcmRzLCB1c2VySW5wdXQsIGVzY2FwZUlucHV0KTtcbiAgICAgICAgY29uc3QgbmV0UXVlcnkgPSB0aGlzLmdlbmVyYXRlTmV0Q29uc3RyYWludChkYXRhZmllbGQpO1xuICAgICAgICByZXR1cm4gUXVlcnkuY29tYmluZVF1ZXJpZXMoW3ZhbHVlUXVlcnksIG5ldFF1ZXJ5XSwgQm9vbGVhbk9wZXJhdG9yLkFORCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGlzTnVsbE9wZXJhdG9yUXVlcnlHZW5lcmF0aW9uU3RyYXRlZ3koZGF0YWZpZWxkOiBEYXRhZmllbGQpOiBRdWVyeSB7XG4gICAgICAgIGNvbnN0IGNvbnN0cmFpbnQgPSB0aGlzLmdlbmVyYXRlTmV0Q29uc3RyYWludChkYXRhZmllbGQpO1xuICAgICAgICByZXR1cm4gKHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihJc051bGwpIGFzIElzTnVsbCkuY3JlYXRlUXVlcnlXaXRoQ29uc3RyYWludCh0aGlzLmVsYXN0aWNLZXl3b3JkcywgY29uc3RyYWludCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlTmV0Q29uc3RyYWludChkYXRhZmllbGQ6IERhdGFmaWVsZCk6IFF1ZXJ5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3NDYXRlZ29yeS5nZW5lcmF0ZVByZWRpY2F0ZShbW2RhdGFmaWVsZC5uZXRJZGVudGlmaWVyXV0pLnF1ZXJ5O1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVEYXRhZmllbGRPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zSW5pdGlhbGl6ZWQkID0gbmV3IFJlcGxheVN1YmplY3Q8dm9pZD4oMSk7XG4gICAgICAgIHRoaXMuX2FsbG93ZWROZXRzU3ViID0gdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMuYWxsb3dlZE5ldHNTZXJ2aWNlLmFsbG93ZWROZXRzJC5zdWJzY3JpYmUoYWxsb3dlZE5ldHMgPT4ge1xuICAgICAgICAgICAgYWxsb3dlZE5ldHMuZm9yRWFjaChwZXRyaU5ldCA9PiB7XG4gICAgICAgICAgICAgICAgcGV0cmlOZXQuaW1tZWRpYXRlRGF0YVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGltbWVkaWF0ZURhdGEgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGltbWVkaWF0ZURhdGEudGl0bGUgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICYmIGltbWVkaWF0ZURhdGEudGl0bGUudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhQ2FzZURhdGFzZXQuRElTQUJMRURfVFlQRVMuaW5jbHVkZXMoaW1tZWRpYXRlRGF0YS50eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLmZvckVhY2goaW1tZWRpYXRlRGF0YSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZSA9IGltbWVkaWF0ZURhdGEudHlwZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yIHNlYXJjaCBwdXJwb3NlcywgZW51bWVyYXRpb24gYW5kIG11bHRpY2hvaWNlIG1hcHMgYXJlIGVxdWl2YWxlbnQgdG8gdGhlaXIgc2ltcGxlciBjb3VudGVycGFydHNcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnZW51bWVyYXRpb25fbWFwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnZW51bWVyYXRpb24nO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbXVsdGljaG9pY2VfbWFwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnbXVsdGljaG9pY2UnO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFRvRGF0YWZpZWxkT3B0aW9uc01hcChEYXRhZmllbGRNYXBLZXkuc2VyaWFsaXplZEZvcm0oaW1tZWRpYXRlRGF0YS50eXBlLCBpbW1lZGlhdGVEYXRhLnRpdGxlKSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldElkZW50aWZpZXI6IHBldHJpTmV0LmlkZW50aWZpZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRJZDogaW1tZWRpYXRlRGF0YS5zdHJpbmdJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFR5cGU6IGltbWVkaWF0ZURhdGEudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9uc0luaXRpYWxpemVkJC5uZXh0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZpbHRlck9wdGlvbnModXNlcklucHV0OiBPYnNlcnZhYmxlPHN0cmluZyB8IFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbjxBcnJheTxzdHJpbmc+Pj4pOlxuICAgICAgICBPYnNlcnZhYmxlPEFycmF5PFNlYXJjaEF1dG9jb21wbGV0ZU9wdGlvbjxBcnJheTxzdHJpbmc+Pj4+IHtcblxuICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBjYXRlZ29yeSBtdXN0IGJlIGZ1bGx5IGNvbmZpZ3VyZWQgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZ2V0IGF1dG9jb21wbGV0ZSBvcHRpb25zIScpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlucHV0VHlwZSAhPT0gU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmlsdGVyIG9wdGlvbnMgb2Ygbm9uLWF1dG9jb21wbGV0ZSBvcGVyYW5kcycpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJBdXRvY29tcGxldGUuZmlsdGVyT3B0aW9ucyh1c2VySW5wdXQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWxlY3REYXRhZmllbGRzKGRhdGFmaWVsZE1hcEtleTogc3RyaW5nLCBzZWxlY3REZWZhdWx0T3BlcmF0b3IgPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0YWZpZWxkT3B0aW9ucy5oYXMoZGF0YWZpZWxkTWFwS2V5KSkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLndhcm4oYFRoZSBwcm92aWRlZCAnZGF0YWZpZWxkTWFwS2V5JyAoJHtkYXRhZmllbGRNYXBLZXl9KSBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9EQVRBRklFTERfSU5QVVQuZm9ybUNvbnRyb2wuc2V0VmFsdWUoRGF0YWZpZWxkTWFwS2V5LnBhcnNlKGRhdGFmaWVsZE1hcEtleSkpO1xuICAgICAgICBpZiAoc2VsZWN0RGVmYXVsdE9wZXJhdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdERlZmF1bHRPcGVyYXRvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyBlbnRyeSBvciBwdXNoZXMgdmFsdWUgaW50byBhbiBleGlzdGluZyBlbnRyeS5cbiAgICAgKiBXaGVuIGEgbmV3IGVudHJ5IGlzIGNyZWF0ZWQsIGl0IGlzIGNyZWF0ZWQgYXMgYW4gQXJyYXkgb2Ygb25lIGVsZW1lbnQuXG4gICAgICogQHBhcmFtIGtleSB3aGVyZSBpbiB0aGUgbWFwIHNob3VsZCB0aGUgdmFsdWUgYmUgYWRkZWRcbiAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIHZhbHVlIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBtYXBcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWRkVG9EYXRhZmllbGRPcHRpb25zTWFwKGtleTogc3RyaW5nLCB2YWx1ZTogRGF0YWZpZWxkKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9kYXRhZmllbGRPcHRpb25zLmhhcyhrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhZmllbGRPcHRpb25zLmdldChrZXkpLnB1c2godmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGF0YWZpZWxkT3B0aW9ucy5zZXQoa2V5LCBbdmFsdWVdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc09wZXJhbmRWYWx1ZVNlbGVjdGVkKG5ld1ZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlcmF0b3JTZWxlY3RlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGlucHV0VHlwZTogU2VhcmNoSW5wdXRUeXBlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW5wdXRUeXBlID0gdGhpcy5pbnB1dFR5cGU7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoaW5wdXRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5OVU1CRVI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZiBuZXdWYWx1ZSA9PT0gJ251bWJlcic7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5CT09MRUFOOlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YgbmV3VmFsdWUgPT09ICdib29sZWFuJztcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURTpcbiAgICAgICAgICAgICAgICByZXR1cm4gISghbmV3VmFsdWUgfHwgdHlwZW9mIG5ld1ZhbHVlID09PSAnc3RyaW5nJyk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAhIW5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUGVyZm9ybXMgYSB0cmFuc2Zvcm1hdGlvbiBvZiB0aGUgYEZvcm1Db250cm9sYCB2YWx1ZSBiZWZvcmUgcGFzc2luZyBpdCBpbnRvIHRoZSBzZWxlY3RlZCBgT3BlcmF0b3JgIGZvciBxdWVyeSBnZW5lcmF0aW9uLlxuICAgICAqIEl0IGlzIG1vc3RseSB1c2VmdWwgb25seSBmb3IgQXV0b2NvbXBsZXRlQ2F0ZWdvcmllcywgd2hlcmUgdGhlIHNlbGVjdGVkIHZhbHVlIG9mIHRoZSBGb3JtQ29udHJvbCBpcyBhbiBvYmplY3QuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgdGhlIEZvcm1Db250cm9sVmFsdWVcbiAgICAgKiBAcmV0dXJucyBJZiB0aGUgc2VsZWN0ZWQgZGF0YSBmaWVsZCBoYXMgaW5wdXQgdHlwZSBgQVVUT0NPTVBMRVRFYCB0aGVuIHJldHVybnMgdGhlIHtAbGluayBTZWFyY2hBdXRvY29tcGxldGVPcHRpb259IGB2YWx1ZWBcbiAgICAgKiBhdHRyaWJ1dGUuIE90aGVyd2lzZSBwZXJmb3JtcyBhbiBpZGVudGl0eSBvcGVyYXRpb24uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHRyYW5zZm9ybUNhdGVnb3J5VmFsdWUodmFsdWU6IGFueSk6IGFueSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0VHlwZSA9PT0gU2VhcmNoSW5wdXRUeXBlLkFVVE9DT01QTEVURSkge1xuICAgICAgICAgICAgcmV0dXJuICh2YWx1ZSBhcyBTZWFyY2hBdXRvY29tcGxldGVPcHRpb248QXJyYXk8bnVtYmVyPj4pLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBzZXJpYWxpemVDbGFzcygpOiBDYXRlZ29yaWVzIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENhdGVnb3JpZXMuQ0FTRV9EQVRBU0VUO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXJpYWxpemVPcGVyYW5kVmFsdWUodmFsdWVGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wpOiB1bmtub3duIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmlucHV0VHlwZSkge1xuICAgICAgICAgICAgY2FzZSBTZWFyY2hJbnB1dFR5cGUuQVVUT0NPTVBMRVRFOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl91c2VyQXV0b2NvbXBsZXRlLnNlcmlhbGl6ZU9wZXJhbmRWYWx1ZSh2YWx1ZUZvcm1Db250cm9sKTtcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkRBVEU6XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5EQVRFX1RJTUU6XG4gICAgICAgICAgICAgICAgcmV0dXJuICh2YWx1ZUZvcm1Db250cm9sLnZhbHVlIGFzIE1vbWVudCkudmFsdWVPZigpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuc2VyaWFsaXplT3BlcmFuZFZhbHVlKHZhbHVlRm9ybUNvbnRyb2wpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNyZWF0ZU1ldGFkYXRhQ29uZmlndXJhdGlvbigpOiBDYXRlZ29yeU1ldGFkYXRhQ29uZmlndXJhdGlvbiB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHN1cGVyLmNyZWF0ZU1ldGFkYXRhQ29uZmlndXJhdGlvbigpO1xuICAgICAgICBjb25maWdbQ2FzZURhdGFzZXQuREFUQUZJRUxEX01FVEFEQVRBXSA9ICh0aGlzLl9EQVRBRklFTERfSU5QVVQuZm9ybUNvbnRyb2wudmFsdWUgYXMgRGF0YWZpZWxkTWFwS2V5KS50b1NlcmlhbGl6ZWRGb3JtKCk7XG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGxvYWRDb25maWd1cmF0aW9uRnJvbU1ldGFkYXRhKGNvbmZpZ3VyYXRpb246IENhdGVnb3J5TWV0YWRhdGFDb25maWd1cmF0aW9uKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcbiAgICAgICAgdGhpcy5kYXRhZmllbGRPcHRpb25zSW5pdGlhbGl6ZWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZXJpYWxpemVkTWFwS2V5ID0gY29uZmlndXJhdGlvbltDYXNlRGF0YXNldC5EQVRBRklFTERfTUVUQURBVEFdIGFzIHN0cmluZztcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0RGF0YWZpZWxkcyhzZXJpYWxpemVkTWFwS2V5LCBmYWxzZSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaGFzU2VsZWN0ZWREYXRhZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZWFyY2hlZCBkYXRhIGZpZWxkcyBjYW5ub3QgYmUgcmVzdG9yZWQgZnJvbSB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbiAoJHtzZXJpYWxpemVkTWFwS2V5XG4gICAgICAgICAgICAgICAgfSkuIE1ha2Ugc3VyZSwgdGhhdCB0aGUgY29ycmVjdCBhbGxvd2VkIG5ldHMgYXJlIHByb3ZpZGVkIGluIHRoaXMgdmlldy5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN1cGVyLmxvYWRDb25maWd1cmF0aW9uRnJvbU1ldGFkYXRhKGNvbmZpZ3VyYXRpb24pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0JC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgcmVzdWx0JC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZXJpYWxpemVPcGVyYW5kVmFsdWUodmFsdWU6IHVua25vd24pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuaW5wdXRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5BVVRPQ09NUExFVEU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3VzZXJBdXRvY29tcGxldGUuZGVzZXJpYWxpemVPcGVyYW5kVmFsdWUodmFsdWUgYXMgU2VhcmNoQXV0b2NvbXBsZXRlT3B0aW9uPEFycmF5PHN0cmluZz4+KTtcbiAgICAgICAgICAgIGNhc2UgU2VhcmNoSW5wdXRUeXBlLkRBVEU6XG4gICAgICAgICAgICBjYXNlIFNlYXJjaElucHV0VHlwZS5EQVRFX1RJTUU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKG1vbWVudCh2YWx1ZSBhcyBzdHJpbmcpKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmRlc2VyaWFsaXplT3BlcmFuZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVDb25maWd1cmF0aW9uRmlsdGVyVGV4dFNlZ21lbnRzKCk6IEFycmF5PEZpbHRlclRleHRTZWdtZW50PiB7XG4gICAgICAgIHJldHVybiBbe3NlZ21lbnQ6IHRoaXMuX2NvbmZpZ3VyYXRpb25JbnB1dHMkLnZhbHVlWzBdLmZvcm1Db250cm9sLnZhbHVlLnRleHQsIGJvbGQ6IHRydWV9XTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -58,14 +58,14 @@ export class CaseSimpleDataset extends NoConfigurationCategory {
|
|
|
58
58
|
break;
|
|
59
59
|
case 'file':
|
|
60
60
|
case 'fileList':
|
|
61
|
-
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.FILE_NAME);
|
|
61
|
+
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.FILE_NAME, this.isSelectedOperator(Substring));
|
|
62
62
|
break;
|
|
63
63
|
case 'user':
|
|
64
64
|
case 'userList':
|
|
65
65
|
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.USER_ID);
|
|
66
66
|
break;
|
|
67
67
|
default:
|
|
68
|
-
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.FULLTEXT);
|
|
68
|
+
this._elasticKeyword = resolver.getIndex(this._fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Substring));
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
71
|
get elasticKeywords() {
|
|
@@ -132,4 +132,4 @@ export class CaseSimpleDataset extends NoConfigurationCategory {
|
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
CaseSimpleDataset._i18n = 'search.category.case.dataset';
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaW1wbGUtZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2gvbW9kZWxzL2NhdGVnb3J5L2Nhc2UvY2FzZS1zaW1wbGUtZGF0YXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFeEMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUl6Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsdUJBQStCO0lBV2xFLFlBQVksU0FBMEIsRUFDMUIsTUFBcUIsRUFDWCxxQkFBMkM7UUFDN0QsS0FBSyxDQUFDLFNBQVMsRUFDWCxTQUFTLEVBQ1QsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLE9BQU8sRUFDakMsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLENBQUMsQ0FBQztRQU5H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QUMsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUNyRixlQUFlLENBQUMsRUFBRSxDQUNyQixDQUFDO1FBQ0YsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sVUFBVSxDQUFDLG1CQUFtQixDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDVixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsUUFBbUM7UUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7O0FBMUl1Qix1QkFBSyxHQUFHLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPcGVyYXRvclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL29wZXJhdG9yLXNlcnZpY2Uvb3BlcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge1F1ZXJ5fSBmcm9tICcuLi8uLi9xdWVyeS9xdWVyeSc7XG5pbXBvcnQge09wZXJhdG9yfSBmcm9tICcuLi8uLi9vcGVyYXRvci9vcGVyYXRvcic7XG5pbXBvcnQge0VxdWFsc30gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzJztcbmltcG9ydCB7RXF1YWxzRGF0ZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzLWRhdGUnO1xuaW1wb3J0IHtFcXVhbHNEYXRlVGltZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzLWRhdGUtdGltZSc7XG5pbXBvcnQge1N1YnN0cmluZ30gZnJvbSAnLi4vLi4vb3BlcmF0b3Ivc3Vic3RyaW5nJztcbmltcG9ydCB7Q2FzZVByb2Nlc3N9IGZyb20gJy4vY2FzZS1wcm9jZXNzJztcbmltcG9ydCB7T3B0aW9uYWxEZXBlbmRlbmNpZXN9IGZyb20gJy4uLy4uLy4uL2NhdGVnb3J5LWZhY3Rvcnkvb3B0aW9uYWwtZGVwZW5kZW5jaWVzJztcbmltcG9ydCB7Qm9vbGVhbk9wZXJhdG9yfSBmcm9tICcuLi8uLi9ib29sZWFuLW9wZXJhdG9yJztcbmltcG9ydCB7Tm9Db25maWd1cmF0aW9uQ2F0ZWdvcnl9IGZyb20gJy4uL25vLWNvbmZpZ3VyYXRpb24tY2F0ZWdvcnknO1xuaW1wb3J0IHtDYXNlRGF0YXNldH0gZnJvbSAnLi9jYXNlLWRhdGFzZXQnO1xuaW1wb3J0IHtEYXRhZmllbGRNYXBLZXl9IGZyb20gJy4uLy4uL2RhdGFmaWVsZC1tYXAta2V5JztcbmltcG9ydCB7U2VhcmNoSW5kZXh9IGZyb20gJy4uLy4uL3NlYXJjaC1pbmRleCc7XG5pbXBvcnQge0NhdGVnb3JpZXN9IGZyb20gJy4uL2NhdGVnb3JpZXMnO1xuaW1wb3J0IHtDYXRlZ29yeUdlbmVyYXRvck1ldGFkYXRhfSBmcm9tICcuLi8uLi9wZXJzaXN0YW5jZS9nZW5lcmF0b3ItbWV0YWRhdGEnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGlzIGNsYXNzIGFpbXMgdG8gYmUgYSBzaW1wbGVyIG1vcmUgbGltaXRlZCB2ZXJzaW9uIG9mIHRoZSB7QGxpbmsgQ2FzZURhdGFzZXR9IHtAbGluayBDYXRlZ29yeX0gaW1wbGVtZW50YXRpb24uXG4gKlxuICogSXQgY2FuIG9ubHkgZ2VuZXJhdGUgXCJlcXVhbGl0eVwiIHF1ZXJpZXMgZm9yIGEgc2luZ2xlIGZpZWxkLiBUaGUgY2F0ZWdvcnkgbXVzdCBiZSBjb25maWd1cmVkIGJlZm9yZSBpdCBjYW4gYmUgdXNlZCB0byBnZW5lcmF0ZSBxdWVyaWVzLlxuICpcbiAqIFRoaXMgY2F0ZWdvcnkgY2Fubm90IGJlIHNlcmlhbGl6ZWQuIElmIHlvdSB3YW50IHRvIHByZXNlcnZlIHRoaXMgY2F0ZWdvcnkncyBzdGF0ZSBjb252ZXJ0IGl0IHRvIHtAbGluayBDYXNlRGF0YXNldH1cbiAqIHdpdGggdGhlIFt0cmFuc2Zvcm1Ub0Nhc2VEYXRhc2V0KClde0BsaW5rIENhc2VTaW1wbGVEYXRhc2V0I3RyYW5zZm9ybVRvQ2FzZURhdGFzZXR9IG1ldGhvZCBhbmQgc2VyaWFsaXplIHRoZSByZXN1bHQuXG4gKlxuICogU2VlIFtjb25maWd1cmVde0BsaW5rIENhc2VTaW1wbGVEYXRhc2V0I2NvbmZpZ3VyZX0gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDYXNlU2ltcGxlRGF0YXNldCBleHRlbmRzIE5vQ29uZmlndXJhdGlvbkNhdGVnb3J5PHN0cmluZz4ge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgX2kxOG4gPSAnc2VhcmNoLmNhdGVnb3J5LmNhc2UuZGF0YXNldCc7XG5cbiAgICBwcm90ZWN0ZWQgX2ZpZWxkSWQ6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2ZpZWxkVHlwZTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfbmV0SWRlbnRpZmllcnM6IEFycmF5PHN0cmluZz47XG4gICAgcHJvdGVjdGVkIF9lbGFzdGljS2V5d29yZDogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9wcm9jZXNzQ2F0ZWdvcnk6IENhc2VQcm9jZXNzO1xuXG4gICAgY29uc3RydWN0b3Iob3BlcmF0b3JzOiBPcGVyYXRvclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfb3B0aW9uYWxEZXBlbmRlbmNpZXM6IE9wdGlvbmFsRGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHN1cGVyKHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGAke0Nhc2VTaW1wbGVEYXRhc2V0Ll9pMThufS5uYW1lYCxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgIG9wZXJhdG9ycyk7XG5cbiAgICAgICAgdGhpcy5fcHJvY2Vzc0NhdGVnb3J5ID0gX29wdGlvbmFsRGVwZW5kZW5jaWVzLmNhdGVnb3J5RmFjdG9yeS5nZXRXaXRoRGVmYXVsdE9wZXJhdG9yKENhc2VQcm9jZXNzKSBhcyBDYXNlUHJvY2VzcztcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX3Byb2Nlc3NDYXRlZ29yeS5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb25maWd1cmUoZmllbGRJZDogc3RyaW5nLCBmaWVsZFR5cGU6IHN0cmluZywgbmV0SWRlbnRpZmllcnM6IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcbiAgICAgICAgaWYgKCFmaWVsZElkIHx8ICFmaWVsZFR5cGUgfHwgIW5ldElkZW50aWZpZXJzIHx8IG5ldElkZW50aWZpZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5fbG9nLmVycm9yKCdDYXNlU2ltcGxlRGF0YXNldCBtdXN0IGJlIGNvbmZpZ3VyZWQgd2l0aCBkZWZpbmVkIHZhbHVlcyBhbmQgYSBub24tZW1wdHkgYXJyYXknKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9maWVsZElkID0gZmllbGRJZDtcbiAgICAgICAgdGhpcy5fZmllbGRUeXBlID0gZmllbGRUeXBlO1xuICAgICAgICB0aGlzLl9uZXRJZGVudGlmaWVycyA9IG5ldElkZW50aWZpZXJzO1xuICAgICAgICB0aGlzLnJlc29sdmVFbGFzdGljS2V5d29yZCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlRWxhc3RpY0tleXdvcmQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVyID0gdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMuc2VhcmNoSW5kZXhSZXNvbHZlcjtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5OVU1CRVIpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5USU1FU1RBTVApO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5CT09MRUFOKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgICAgICAgY2FzZSAnZmlsZUxpc3QnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VsYXN0aWNLZXl3b3JkID0gcmVzb2x2ZXIuZ2V0SW5kZXgodGhpcy5fZmllbGRJZCwgU2VhcmNoSW5kZXguRklMRV9OQU1FKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgY2FzZSAndXNlckxpc3QnOlxuICAgICAgICAgICAgICAgIHRoaXMuX2VsYXN0aWNLZXl3b3JkID0gcmVzb2x2ZXIuZ2V0SW5kZXgodGhpcy5fZmllbGRJZCwgU2VhcmNoSW5kZXguVVNFUl9JRCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHRoaXMuX2VsYXN0aWNLZXl3b3JkID0gcmVzb2x2ZXIuZ2V0SW5kZXgodGhpcy5fZmllbGRJZCwgU2VhcmNoSW5kZXguRlVMTFRFWFQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBlbGFzdGljS2V5d29yZHMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgICAgIGlmICghdGhpcy5fZmllbGRJZCkge1xuICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFt0aGlzLl9lbGFzdGljS2V5d29yZF07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkT3BlcmF0b3IoKTogT3BlcmF0b3I8YW55PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5fZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKTtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKTtcbiAgICAgICAgICAgIGNhc2UgJ3VzZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzKTtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoRXF1YWxzRGF0ZSk7XG4gICAgICAgICAgICBjYXNlICdkYXRlVGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHNEYXRlVGltZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclNlcnZpY2UuZ2V0T3BlcmF0b3IoU3Vic3RyaW5nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGR1cGxpY2F0ZSgpOiBDYXNlU2ltcGxlRGF0YXNldCB7XG4gICAgICAgIHJldHVybiBuZXcgQ2FzZVNpbXBsZURhdGFzZXQodGhpcy5fb3BlcmF0b3JTZXJ2aWNlLCB0aGlzLl9sb2csIHRoaXMuX29wdGlvbmFsRGVwZW5kZW5jaWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGVzIGEge0BsaW5rIENhc2VEYXRhc2V0fSBpbnN0YW5jZSBhbmQgY29uZmlndXJlcyBpdCBzbywgdGhhdCB0aGUgcXVlcnkgaXQgZ2VuZXJhdGVzIHRhcmdldHNcbiAgICAgKiB0aGUgc2VsZWN0ZWQgZmllbGQsIHVzZXMgdGhlIGRlZmF1bHQgb3BlcmF0b3IgYW5kIGl0cyBvcGVyYW5kcyBhcmUgd2hhdCB0aGUgdXNlciBwcm92aWRlZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWVsZFR5cGUgdGhlIHR5cGUgb2YgdGhlIGZpZWxkIHRoYXQgc2hvdWxkIGJlIHRhcmdldGVkIGJ5IHRoZSB0cmFuc2Zvcm1lZCBDYXRlZ29yeVxuICAgICAqIEBwYXJhbSBmaWVsZFRpdGxlIHRoZSB0aXRsZSBvZiB0aGUgZmllbGQgdGhhdCBzaG91bGQgYmUgdGFyZ2V0ZWQgYnkgdGhlIHRyYW5zZm9ybWVkIENhdGVnb3J5XG4gICAgICogQHBhcmFtIHVzZXJJbnB1dCB0aGUgb3BlcmFuZHMgZm9yIHRoZSBxdWVyaWVkIGZpZWxkXG4gICAgICogQHJldHVybnMgYSBuZXcge0BsaW5rIENhc2VEYXRhc2V0fSBjb25maWd1cmVkIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlc1xuICAgICAqL1xuICAgIHB1YmxpYyB0cmFuc2Zvcm1Ub0Nhc2VEYXRhc2V0KGZpZWxkVHlwZTogc3RyaW5nLCBmaWVsZFRpdGxlOiBzdHJpbmcsIHVzZXJJbnB1dDogQXJyYXk8YW55Pik6IENhc2VEYXRhc2V0IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMuY2F0ZWdvcnlGYWN0b3J5LmdldChDYXNlRGF0YXNldCkgYXMgQ2FzZURhdGFzZXQ7XG4gICAgICAgIHJlc3VsdC5zZWxlY3REYXRhZmllbGRzKERhdGFmaWVsZE1hcEtleS5zZXJpYWxpemVkRm9ybShmaWVsZFR5cGUsIGZpZWxkVGl0bGUpKTtcbiAgICAgICAgcmVzdWx0LnNldE9wZXJhbmRzKHVzZXJJbnB1dCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlUXVlcnkodXNlcklucHV0OiBBcnJheTx1bmtub3duPik6IFF1ZXJ5IHtcbiAgICAgICAgY29uc3QgdmFsdWVRdWVyeSA9IHRoaXMuc2VsZWN0ZWRPcGVyYXRvci5jcmVhdGVRdWVyeSh0aGlzLmVsYXN0aWNLZXl3b3JkcywgdXNlcklucHV0KTtcbiAgICAgICAgY29uc3QgbmV0c1F1ZXJ5ID0gUXVlcnkuY29tYmluZVF1ZXJpZXMoXG4gICAgICAgICAgICB0aGlzLl9uZXRJZGVudGlmaWVycy5tYXAoaWQgPT4gdGhpcy5fcHJvY2Vzc0NhdGVnb3J5LmdlbmVyYXRlUHJlZGljYXRlKFtbaWRdXSkucXVlcnkpLFxuICAgICAgICAgICAgQm9vbGVhbk9wZXJhdG9yLk9SXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBRdWVyeS5jb21iaW5lUXVlcmllcyhbdmFsdWVRdWVyeSwgbmV0c1F1ZXJ5XSwgQm9vbGVhbk9wZXJhdG9yLkFORCk7XG4gICAgfVxuXG4gICAgc2VyaWFsaXplQ2xhc3MoKTogQ2F0ZWdvcmllcyB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDYXRlZ29yaWVzLkNBU0VfU0lNUExFX0RBVEFTRVQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VyaWFsaXphdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiBUaHJvd3MgYW4gZXJyb3IuXG4gICAgICovXG4gICAgY3JlYXRlTWV0YWRhdGEoKTogbmV2ZXIge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhc2VTaW1wbGVEYXRhc2V0IGRvZXMgbm90IHN1cHBvcnQgc2VyaWFsaXphdGlvbiEnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXNlcmlhbGl6YXRpb24gaXMgbm90IHN1cHBvcnRlZC4gVGhyb3dzIGFuIGVycm9yLlxuICAgICAqL1xuICAgIGxvYWRGcm9tTWV0YWRhdGEobWV0YWRhdGE6IENhdGVnb3J5R2VuZXJhdG9yTWV0YWRhdGEpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYXNlU2ltcGxlRGF0YXNldCBkb2VzIG5vdCBzdXBwb3J0IGRlc2VyaWFsaXphdGlvbiEnKTtcbiAgICB9XG59XG4iXX0=
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1zaW1wbGUtZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2gvbW9kZWxzL2NhdGVnb3J5L2Nhc2UvY2FzZS1zaW1wbGUtZGF0YXNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFeEMsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUl6Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsdUJBQStCO0lBV2xFLFlBQVksU0FBMEIsRUFDMUIsTUFBcUIsRUFDWCxxQkFBMkM7UUFDN0QsS0FBSyxDQUFDLFNBQVMsRUFDWCxTQUFTLEVBQ1QsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLE9BQU8sRUFDakMsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLENBQUMsQ0FBQztRQU5H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LE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQ3JGLGVBQWUsQ0FBQyxFQUFFLENBQ3JCLENBQUM7UUFDRixPQUFPLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxVQUFVLENBQUMsbUJBQW1CLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxRQUFtQztRQUNoRCxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFDM0UsQ0FBQzs7QUExSXVCLHVCQUFLLEdBQUcsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09wZXJhdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vb3BlcmF0b3Itc2VydmljZS9vcGVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vbG9nZ2VyL3NlcnZpY2VzL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7UXVlcnl9IGZyb20gJy4uLy4uL3F1ZXJ5L3F1ZXJ5JztcbmltcG9ydCB7T3BlcmF0b3J9IGZyb20gJy4uLy4uL29wZXJhdG9yL29wZXJhdG9yJztcbmltcG9ydCB7RXF1YWxzfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMnO1xuaW1wb3J0IHtFcXVhbHNEYXRlfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMtZGF0ZSc7XG5pbXBvcnQge0VxdWFsc0RhdGVUaW1lfSBmcm9tICcuLi8uLi9vcGVyYXRvci9lcXVhbHMtZGF0ZS10aW1lJztcbmltcG9ydCB7U3Vic3RyaW5nfSBmcm9tICcuLi8uLi9vcGVyYXRvci9zdWJzdHJpbmcnO1xuaW1wb3J0IHtDYXNlUHJvY2Vzc30gZnJvbSAnLi9jYXNlLXByb2Nlc3MnO1xuaW1wb3J0IHtPcHRpb25hbERlcGVuZGVuY2llc30gZnJvbSAnLi4vLi4vLi4vY2F0ZWdvcnktZmFjdG9yeS9vcHRpb25hbC1kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHtCb29sZWFuT3BlcmF0b3J9IGZyb20gJy4uLy4uL2Jvb2xlYW4tb3BlcmF0b3InO1xuaW1wb3J0IHtOb0NvbmZpZ3VyYXRpb25DYXRlZ29yeX0gZnJvbSAnLi4vbm8tY29uZmlndXJhdGlvbi1jYXRlZ29yeSc7XG5pbXBvcnQge0Nhc2VEYXRhc2V0fSBmcm9tICcuL2Nhc2UtZGF0YXNldCc7XG5pbXBvcnQge0RhdGFmaWVsZE1hcEtleX0gZnJvbSAnLi4vLi4vZGF0YWZpZWxkLW1hcC1rZXknO1xuaW1wb3J0IHtTZWFyY2hJbmRleH0gZnJvbSAnLi4vLi4vc2VhcmNoLWluZGV4JztcbmltcG9ydCB7Q2F0ZWdvcmllc30gZnJvbSAnLi4vY2F0ZWdvcmllcyc7XG5pbXBvcnQge0NhdGVnb3J5R2VuZXJhdG9yTWV0YWRhdGF9IGZyb20gJy4uLy4uL3BlcnNpc3RhbmNlL2dlbmVyYXRvci1tZXRhZGF0YSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRoaXMgY2xhc3MgYWltcyB0byBiZSBhIHNpbXBsZXIgbW9yZSBsaW1pdGVkIHZlcnNpb24gb2YgdGhlIHtAbGluayBDYXNlRGF0YXNldH0ge0BsaW5rIENhdGVnb3J5fSBpbXBsZW1lbnRhdGlvbi5cbiAqXG4gKiBJdCBjYW4gb25seSBnZW5lcmF0ZSBcImVxdWFsaXR5XCIgcXVlcmllcyBmb3IgYSBzaW5nbGUgZmllbGQuIFRoZSBjYXRlZ29yeSBtdXN0IGJlIGNvbmZpZ3VyZWQgYmVmb3JlIGl0IGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIHF1ZXJpZXMuXG4gKlxuICogVGhpcyBjYXRlZ29yeSBjYW5ub3QgYmUgc2VyaWFsaXplZC4gSWYgeW91IHdhbnQgdG8gcHJlc2VydmUgdGhpcyBjYXRlZ29yeSdzIHN0YXRlIGNvbnZlcnQgaXQgdG8ge0BsaW5rIENhc2VEYXRhc2V0fVxuICogd2l0aCB0aGUgW3RyYW5zZm9ybVRvQ2FzZURhdGFzZXQoKV17QGxpbmsgQ2FzZVNpbXBsZURhdGFzZXQjdHJhbnNmb3JtVG9DYXNlRGF0YXNldH0gbWV0aG9kIGFuZCBzZXJpYWxpemUgdGhlIHJlc3VsdC5cbiAqXG4gKiBTZWUgW2NvbmZpZ3VyZV17QGxpbmsgQ2FzZVNpbXBsZURhdGFzZXQjY29uZmlndXJlfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENhc2VTaW1wbGVEYXRhc2V0IGV4dGVuZHMgTm9Db25maWd1cmF0aW9uQ2F0ZWdvcnk8c3RyaW5nPiB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfaTE4biA9ICdzZWFyY2guY2F0ZWdvcnkuY2FzZS5kYXRhc2V0JztcblxuICAgIHByb3RlY3RlZCBfZmllbGRJZDogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfZmllbGRUeXBlOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9uZXRJZGVudGlmaWVyczogQXJyYXk8c3RyaW5nPjtcbiAgICBwcm90ZWN0ZWQgX2VsYXN0aWNLZXl3b3JkOiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX3Byb2Nlc3NDYXRlZ29yeTogQ2FzZVByb2Nlc3M7XG5cbiAgICBjb25zdHJ1Y3RvcihvcGVyYXRvcnM6IE9wZXJhdG9yU2VydmljZSxcbiAgICAgICAgICAgICAgICBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF9vcHRpb25hbERlcGVuZGVuY2llczogT3B0aW9uYWxEZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgc3VwZXIodW5kZWZpbmVkLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgYCR7Q2FzZVNpbXBsZURhdGFzZXQuX2kxOG59Lm5hbWVgLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgb3BlcmF0b3JzKTtcblxuICAgICAgICB0aGlzLl9wcm9jZXNzQ2F0ZWdvcnkgPSBfb3B0aW9uYWxEZXBlbmRlbmNpZXMuY2F0ZWdvcnlGYWN0b3J5LmdldFdpdGhEZWZhdWx0T3BlcmF0b3IoQ2FzZVByb2Nlc3MpIGFzIENhc2VQcm9jZXNzO1xuICAgIH1cblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5fcHJvY2Vzc0NhdGVnb3J5LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbmZpZ3VyZShmaWVsZElkOiBzdHJpbmcsIGZpZWxkVHlwZTogc3RyaW5nLCBuZXRJZGVudGlmaWVyczogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICBpZiAoIWZpZWxkSWQgfHwgIWZpZWxkVHlwZSB8fCAhbmV0SWRlbnRpZmllcnMgfHwgbmV0SWRlbnRpZmllcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2cuZXJyb3IoJ0Nhc2VTaW1wbGVEYXRhc2V0IG11c3QgYmUgY29uZmlndXJlZCB3aXRoIGRlZmluZWQgdmFsdWVzIGFuZCBhIG5vbi1lbXB0eSBhcnJheScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZpZWxkSWQgPSBmaWVsZElkO1xuICAgICAgICB0aGlzLl9maWVsZFR5cGUgPSBmaWVsZFR5cGU7XG4gICAgICAgIHRoaXMuX25ldElkZW50aWZpZXJzID0gbmV0SWRlbnRpZmllcnM7XG4gICAgICAgIHRoaXMucmVzb2x2ZUVsYXN0aWNLZXl3b3JkKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVFbGFzdGljS2V5d29yZCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcy5zZWFyY2hJbmRleFJlc29sdmVyO1xuICAgICAgICBzd2l0Y2ggKHRoaXMuX2ZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGFzdGljS2V5d29yZCA9IHJlc29sdmVyLmdldEluZGV4KHRoaXMuX2ZpZWxkSWQsIFNlYXJjaEluZGV4Lk5VTUJFUik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkYXRlJzpcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGFzdGljS2V5d29yZCA9IHJlc29sdmVyLmdldEluZGV4KHRoaXMuX2ZpZWxkSWQsIFNlYXJjaEluZGV4LlRJTUVTVEFNUCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGFzdGljS2V5d29yZCA9IHJlc29sdmVyLmdldEluZGV4KHRoaXMuX2ZpZWxkSWQsIFNlYXJjaEluZGV4LkJPT0xFQU4pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgICAgICBjYXNlICdmaWxlTGlzdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5GSUxFX05BTUUsIHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKFN1YnN0cmluZykpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICBjYXNlICd1c2VyTGlzdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5VU0VSX0lEKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxhc3RpY0tleXdvcmQgPSByZXNvbHZlci5nZXRJbmRleCh0aGlzLl9maWVsZElkLCBTZWFyY2hJbmRleC5GVUxMVEVYVCwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoU3Vic3RyaW5nKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGVsYXN0aWNLZXl3b3JkcygpOiBBcnJheTxzdHJpbmc+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9maWVsZElkKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gW3RoaXMuX2VsYXN0aWNLZXl3b3JkXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRPcGVyYXRvcigpOiBPcGVyYXRvcjxhbnk+IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLl9maWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpO1xuICAgICAgICAgICAgY2FzZSAndXNlcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHMpO1xuICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihFcXVhbHNEYXRlKTtcbiAgICAgICAgICAgIGNhc2UgJ2RhdGVUaW1lJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3JTZXJ2aWNlLmdldE9wZXJhdG9yKEVxdWFsc0RhdGVUaW1lKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yU2VydmljZS5nZXRPcGVyYXRvcihTdWJzdHJpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHVwbGljYXRlKCk6IENhc2VTaW1wbGVEYXRhc2V0IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDYXNlU2ltcGxlRGF0YXNldCh0aGlzLl9vcGVyYXRvclNlcnZpY2UsIHRoaXMuX2xvZywgdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSB7QGxpbmsgQ2FzZURhdGFzZXR9IGluc3RhbmNlIGFuZCBjb25maWd1cmVzIGl0IHNvLCB0aGF0IHRoZSBxdWVyeSBpdCBnZW5lcmF0ZXMgdGFyZ2V0c1xuICAgICAqIHRoZSBzZWxlY3RlZCBmaWVsZCwgdXNlcyB0aGUgZGVmYXVsdCBvcGVyYXRvciBhbmQgaXRzIG9wZXJhbmRzIGFyZSB3aGF0IHRoZSB1c2VyIHByb3ZpZGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGZpZWxkVHlwZSB0aGUgdHlwZSBvZiB0aGUgZmllbGQgdGhhdCBzaG91bGQgYmUgdGFyZ2V0ZWQgYnkgdGhlIHRyYW5zZm9ybWVkIENhdGVnb3J5XG4gICAgICogQHBhcmFtIGZpZWxkVGl0bGUgdGhlIHRpdGxlIG9mIHRoZSBmaWVsZCB0aGF0IHNob3VsZCBiZSB0YXJnZXRlZCBieSB0aGUgdHJhbnNmb3JtZWQgQ2F0ZWdvcnlcbiAgICAgKiBAcGFyYW0gdXNlcklucHV0IHRoZSBvcGVyYW5kcyBmb3IgdGhlIHF1ZXJpZWQgZmllbGRcbiAgICAgKiBAcmV0dXJucyBhIG5ldyB7QGxpbmsgQ2FzZURhdGFzZXR9IGNvbmZpZ3VyZWQgd2l0aCB0aGUgcHJvdmlkZWQgdmFsdWVzXG4gICAgICovXG4gICAgcHVibGljIHRyYW5zZm9ybVRvQ2FzZURhdGFzZXQoZmllbGRUeXBlOiBzdHJpbmcsIGZpZWxkVGl0bGU6IHN0cmluZywgdXNlcklucHV0OiBBcnJheTxhbnk+KTogQ2FzZURhdGFzZXQge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcy5jYXRlZ29yeUZhY3RvcnkuZ2V0KENhc2VEYXRhc2V0KSBhcyBDYXNlRGF0YXNldDtcbiAgICAgICAgcmVzdWx0LnNlbGVjdERhdGFmaWVsZHMoRGF0YWZpZWxkTWFwS2V5LnNlcmlhbGl6ZWRGb3JtKGZpZWxkVHlwZSwgZmllbGRUaXRsZSkpO1xuICAgICAgICByZXN1bHQuc2V0T3BlcmFuZHModXNlcklucHV0KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVRdWVyeSh1c2VySW5wdXQ6IEFycmF5PHVua25vd24+KTogUXVlcnkge1xuICAgICAgICBjb25zdCB2YWx1ZVF1ZXJ5ID0gdGhpcy5zZWxlY3RlZE9wZXJhdG9yLmNyZWF0ZVF1ZXJ5KHRoaXMuZWxhc3RpY0tleXdvcmRzLCB1c2VySW5wdXQpO1xuICAgICAgICBjb25zdCBuZXRzUXVlcnkgPSBRdWVyeS5jb21iaW5lUXVlcmllcyhcbiAgICAgICAgICAgIHRoaXMuX25ldElkZW50aWZpZXJzLm1hcChpZCA9PiB0aGlzLl9wcm9jZXNzQ2F0ZWdvcnkuZ2VuZXJhdGVQcmVkaWNhdGUoW1tpZF1dKS5xdWVyeSksXG4gICAgICAgICAgICBCb29sZWFuT3BlcmF0b3IuT1JcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIFF1ZXJ5LmNvbWJpbmVRdWVyaWVzKFt2YWx1ZVF1ZXJ5LCBuZXRzUXVlcnldLCBCb29sZWFuT3BlcmF0b3IuQU5EKTtcbiAgICB9XG5cbiAgICBzZXJpYWxpemVDbGFzcygpOiBDYXRlZ29yaWVzIHwgc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIENhdGVnb3JpZXMuQ0FTRV9TSU1QTEVfREFUQVNFVDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXJpYWxpemF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIFRocm93cyBhbiBlcnJvci5cbiAgICAgKi9cbiAgICBjcmVhdGVNZXRhZGF0YSgpOiBuZXZlciB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignQ2FzZVNpbXBsZURhdGFzZXQgZG9lcyBub3Qgc3VwcG9ydCBzZXJpYWxpemF0aW9uIScpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlc2VyaWFsaXphdGlvbiBpcyBub3Qgc3VwcG9ydGVkLiBUaHJvd3MgYW4gZXJyb3IuXG4gICAgICovXG4gICAgbG9hZEZyb21NZXRhZGF0YShtZXRhZGF0YTogQ2F0ZWdvcnlHZW5lcmF0b3JNZXRhZGF0YSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhc2VTaW1wbGVEYXRhc2V0IGRvZXMgbm90IHN1cHBvcnQgZGVzZXJpYWxpemF0aW9uIScpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -7,23 +7,33 @@ import { Like } from '../../operator/like';
|
|
|
7
7
|
import { Categories } from '../categories';
|
|
8
8
|
import { CaseSearch } from './case-search.enum';
|
|
9
9
|
export class CaseTitle extends NoConfigurationCategory {
|
|
10
|
-
constructor(operators, logger) {
|
|
10
|
+
constructor(operators, logger, _optionalDependencies) {
|
|
11
11
|
super([CaseSearch.TITLE], [
|
|
12
12
|
operators.getOperator(Substring),
|
|
13
13
|
operators.getOperator(Equals),
|
|
14
14
|
operators.getOperator(NotEquals),
|
|
15
15
|
operators.getOperator(Like)
|
|
16
16
|
], `${CaseTitle._i18n}.name`, SearchInputType.TEXT, logger, operators);
|
|
17
|
+
this._optionalDependencies = _optionalDependencies;
|
|
17
18
|
}
|
|
18
19
|
get inputPlaceholder() {
|
|
19
20
|
return `${CaseTitle._i18n}.placeholder`;
|
|
20
21
|
}
|
|
21
22
|
duplicate() {
|
|
22
|
-
return new CaseTitle(this._operatorService, this._log);
|
|
23
|
+
return new CaseTitle(this._operatorService, this._log, this._optionalDependencies);
|
|
23
24
|
}
|
|
24
25
|
serializeClass() {
|
|
25
26
|
return Categories.CASE_TITLE;
|
|
26
27
|
}
|
|
28
|
+
get elasticKeywords() {
|
|
29
|
+
if (!!this._optionalDependencies) {
|
|
30
|
+
const resolver = this._optionalDependencies.searchIndexResolver;
|
|
31
|
+
return [resolver.getCoreIndex(CaseSearch.TITLE, this.isSelectedOperator(Substring))];
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return this._elasticKeywords;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
27
37
|
}
|
|
28
38
|
CaseTitle._i18n = 'search.category.case.title';
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS10aXRsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZXRncmlmL2NvbXBvbmVudHMtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zZWFyY2gvbW9kZWxzL2NhdGVnb3J5L2Nhc2UvY2FzZS10aXRsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDcEQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRzlDLE1BQU0sT0FBTyxTQUFVLFNBQVEsdUJBQStCO0lBSTFELFlBQVksU0FBMEIsRUFBRSxNQUFxQixFQUFZLHFCQUE0QztRQUNqSCxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQ3BCO1lBQ0ksU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDaEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDN0IsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDaEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7U0FDOUIsRUFDRCxHQUFHLFNBQVMsQ0FBQyxLQUFLLE9BQU8sRUFDekIsZUFBZSxDQUFDLElBQUksRUFDcEIsTUFBTSxFQUNOLFNBQVMsQ0FBQyxDQUFDO1FBWHNELDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFZckgsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2hCLE9BQU8sR0FBRyxTQUFTLENBQUMsS0FBSyxjQUFjLENBQUM7SUFDNUMsQ0FBQztJQUVELFNBQVM7UUFDTCxPQUFPLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxjQUFjO1FBQ1YsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDekIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQztZQUNoRSxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDeEY7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQ2hDO0lBQ0wsQ0FBQzs7QUFuQ3VCLGVBQUssR0FBRyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3BlcmF0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9vcGVyYXRvci1zZXJ2aWNlL29wZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJzdHJpbmd9IGZyb20gJy4uLy4uL29wZXJhdG9yL3N1YnN0cmluZyc7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL2xvZ2dlci9zZXJ2aWNlcy9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge1NlYXJjaElucHV0VHlwZX0gZnJvbSAnLi4vc2VhcmNoLWlucHV0LXR5cGUnO1xuaW1wb3J0IHtOb0NvbmZpZ3VyYXRpb25DYXRlZ29yeX0gZnJvbSAnLi4vbm8tY29uZmlndXJhdGlvbi1jYXRlZ29yeSc7XG5pbXBvcnQge0VxdWFsc30gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzJztcbmltcG9ydCB7Tm90RXF1YWxzfSBmcm9tICcuLi8uLi9vcGVyYXRvci9ub3QtZXF1YWxzJztcbmltcG9ydCB7TGlrZX0gZnJvbSAnLi4vLi4vb3BlcmF0b3IvbGlrZSc7XG5pbXBvcnQge0NhdGVnb3JpZXN9IGZyb20gJy4uL2NhdGVnb3JpZXMnO1xuaW1wb3J0IHtDYXNlU2VhcmNofSBmcm9tICcuL2Nhc2Utc2VhcmNoLmVudW0nO1xuaW1wb3J0IHtPcHRpb25hbERlcGVuZGVuY2llc30gZnJvbSAnLi4vLi4vLi4vY2F0ZWdvcnktZmFjdG9yeS9vcHRpb25hbC1kZXBlbmRlbmNpZXMnO1xuXG5leHBvcnQgY2xhc3MgQ2FzZVRpdGxlIGV4dGVuZHMgTm9Db25maWd1cmF0aW9uQ2F0ZWdvcnk8c3RyaW5nPiB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBfaTE4biA9ICdzZWFyY2guY2F0ZWdvcnkuY2FzZS50aXRsZSc7XG5cbiAgICBjb25zdHJ1Y3RvcihvcGVyYXRvcnM6IE9wZXJhdG9yU2VydmljZSwgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwcm90ZWN0ZWQgX29wdGlvbmFsRGVwZW5kZW5jaWVzPzogT3B0aW9uYWxEZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgc3VwZXIoW0Nhc2VTZWFyY2guVElUTEVdLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIG9wZXJhdG9ycy5nZXRPcGVyYXRvcihTdWJzdHJpbmcpLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9ycy5nZXRPcGVyYXRvcihFcXVhbHMpLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9ycy5nZXRPcGVyYXRvcihOb3RFcXVhbHMpLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9ycy5nZXRPcGVyYXRvcihMaWtlKVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGAke0Nhc2VUaXRsZS5faTE4bn0ubmFtZWAsXG4gICAgICAgICAgICBTZWFyY2hJbnB1dFR5cGUuVEVYVCxcbiAgICAgICAgICAgIGxvZ2dlcixcbiAgICAgICAgICAgIG9wZXJhdG9ycyk7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke0Nhc2VUaXRsZS5faTE4bn0ucGxhY2Vob2xkZXJgO1xuICAgIH1cblxuICAgIGR1cGxpY2F0ZSgpOiBDYXNlVGl0bGUge1xuICAgICAgICByZXR1cm4gbmV3IENhc2VUaXRsZSh0aGlzLl9vcGVyYXRvclNlcnZpY2UsIHRoaXMuX2xvZywgdGhpcy5fb3B0aW9uYWxEZXBlbmRlbmNpZXMpO1xuICAgIH1cblxuICAgIHNlcmlhbGl6ZUNsYXNzKCk6IENhdGVnb3JpZXMgfCBzdHJpbmcge1xuICAgICAgICByZXR1cm4gQ2F0ZWdvcmllcy5DQVNFX1RJVExFO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZWxhc3RpY0tleXdvcmRzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICBpZiAoISF0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcy5zZWFyY2hJbmRleFJlc29sdmVyO1xuICAgICAgICAgICAgcmV0dXJuIFtyZXNvbHZlci5nZXRDb3JlSW5kZXgoQ2FzZVNlYXJjaC5USVRMRSwgdGhpcy5pc1NlbGVjdGVkT3BlcmF0b3IoU3Vic3RyaW5nKSldO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2VsYXN0aWNLZXl3b3JkcztcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -6,18 +6,28 @@ import { NotEquals } from '../../operator/not-equals';
|
|
|
6
6
|
import { Categories } from '../categories';
|
|
7
7
|
import { CaseSearch } from './case-search.enum';
|
|
8
8
|
export class CaseVisualId extends NoConfigurationCategory {
|
|
9
|
-
constructor(operators, logger) {
|
|
9
|
+
constructor(operators, logger, _optionalDependencies) {
|
|
10
10
|
super([CaseSearch.VISUAL_ID], [operators.getOperator(Substring), operators.getOperator(Equals), operators.getOperator(NotEquals)], `${CaseVisualId._i18n}.name`, SearchInputType.TEXT, logger, operators);
|
|
11
|
+
this._optionalDependencies = _optionalDependencies;
|
|
11
12
|
}
|
|
12
13
|
get inputPlaceholder() {
|
|
13
14
|
return `${CaseVisualId._i18n}.placeholder`;
|
|
14
15
|
}
|
|
15
16
|
duplicate() {
|
|
16
|
-
return new CaseVisualId(this._operatorService, this._log);
|
|
17
|
+
return new CaseVisualId(this._operatorService, this._log, this._optionalDependencies);
|
|
17
18
|
}
|
|
18
19
|
serializeClass() {
|
|
19
20
|
return Categories.CASE_VISUAL_ID;
|
|
20
21
|
}
|
|
22
|
+
get elasticKeywords() {
|
|
23
|
+
if (!!this._optionalDependencies) {
|
|
24
|
+
const resolver = this._optionalDependencies.searchIndexResolver;
|
|
25
|
+
return [resolver.getCoreIndex(CaseSearch.VISUAL_ID, this.isSelectedOperator(Substring))];
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
return this._elasticKeywords;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
21
31
|
}
|
|
22
32
|
CaseVisualId._i18n = 'search.category.case.visualId';
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS12aXN1YWwtaWQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUvIiwic291cmNlcyI6WyJsaWIvc2VhcmNoL21vZGVscy9jYXRlZ29yeS9jYXNlL2Nhc2UtdmlzdWFsLWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUc5QyxNQUFNLE9BQU8sWUFBYSxTQUFRLHVCQUErQjtJQUk3RCxZQUFZLFNBQTBCLEVBQUUsTUFBcUIsRUFBWSxxQkFBNEM7UUFDakgsS0FBSyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUN4QixDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQ25HLEdBQUcsWUFBWSxDQUFDLEtBQUssT0FBTyxFQUM1QixlQUFlLENBQUMsSUFBSSxFQUNwQixNQUFNLEVBQ04sU0FBUyxDQUFDLENBQUM7UUFOc0QsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQU9ySCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxHQUFHLFlBQVksQ0FBQyxLQUFLLGNBQWMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsU0FBUztRQUNMLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDMUYsQ0FBQztJQUVELGNBQWM7UUFDVixPQUFPLFVBQVUsQ0FBQyxjQUFjLENBQUM7SUFDckMsQ0FBQztJQUVELElBQWMsZUFBZTtRQUN6QixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDO1lBQ2hFLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1RjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDaEM7SUFDTCxDQUFDOztBQTlCdUIsa0JBQUssR0FBRywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T3BlcmF0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9vcGVyYXRvci1zZXJ2aWNlL29wZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtMb2dnZXJTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9sb2dnZXIvc2VydmljZXMvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtTdWJzdHJpbmd9IGZyb20gJy4uLy4uL29wZXJhdG9yL3N1YnN0cmluZyc7XG5pbXBvcnQge1NlYXJjaElucHV0VHlwZX0gZnJvbSAnLi4vc2VhcmNoLWlucHV0LXR5cGUnO1xuaW1wb3J0IHtOb0NvbmZpZ3VyYXRpb25DYXRlZ29yeX0gZnJvbSAnLi4vbm8tY29uZmlndXJhdGlvbi1jYXRlZ29yeSc7XG5pbXBvcnQge0VxdWFsc30gZnJvbSAnLi4vLi4vb3BlcmF0b3IvZXF1YWxzJztcbmltcG9ydCB7Tm90RXF1YWxzfSBmcm9tICcuLi8uLi9vcGVyYXRvci9ub3QtZXF1YWxzJztcbmltcG9ydCB7Q2F0ZWdvcmllc30gZnJvbSAnLi4vY2F0ZWdvcmllcyc7XG5pbXBvcnQge0Nhc2VTZWFyY2h9IGZyb20gJy4vY2FzZS1zZWFyY2guZW51bSc7XG5pbXBvcnQge09wdGlvbmFsRGVwZW5kZW5jaWVzfSBmcm9tICcuLi8uLi8uLi9jYXRlZ29yeS1mYWN0b3J5L29wdGlvbmFsLWRlcGVuZGVuY2llcyc7XG5cbmV4cG9ydCBjbGFzcyBDYXNlVmlzdWFsSWQgZXh0ZW5kcyBOb0NvbmZpZ3VyYXRpb25DYXRlZ29yeTxzdHJpbmc+IHtcblxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IF9pMThuID0gJ3NlYXJjaC5jYXRlZ29yeS5jYXNlLnZpc3VhbElkJztcblxuICAgIGNvbnN0cnVjdG9yKG9wZXJhdG9yczogT3BlcmF0b3JTZXJ2aWNlLCBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHByb3RlY3RlZCBfb3B0aW9uYWxEZXBlbmRlbmNpZXM/OiBPcHRpb25hbERlcGVuZGVuY2llcykge1xuICAgICAgICBzdXBlcihbQ2FzZVNlYXJjaC5WSVNVQUxfSURdLFxuICAgICAgICAgICAgW29wZXJhdG9ycy5nZXRPcGVyYXRvcihTdWJzdHJpbmcpLCBvcGVyYXRvcnMuZ2V0T3BlcmF0b3IoRXF1YWxzKSwgb3BlcmF0b3JzLmdldE9wZXJhdG9yKE5vdEVxdWFscyldLFxuICAgICAgICAgICAgYCR7Q2FzZVZpc3VhbElkLl9pMThufS5uYW1lYCxcbiAgICAgICAgICAgIFNlYXJjaElucHV0VHlwZS5URVhULFxuICAgICAgICAgICAgbG9nZ2VyLFxuICAgICAgICAgICAgb3BlcmF0b3JzKTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7Q2FzZVZpc3VhbElkLl9pMThufS5wbGFjZWhvbGRlcmA7XG4gICAgfVxuXG4gICAgZHVwbGljYXRlKCk6IENhc2VWaXN1YWxJZCB7XG4gICAgICAgIHJldHVybiBuZXcgQ2FzZVZpc3VhbElkKHRoaXMuX29wZXJhdG9yU2VydmljZSwgdGhpcy5fbG9nLCB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcyk7XG4gICAgfVxuXG4gICAgc2VyaWFsaXplQ2xhc3MoKTogQ2F0ZWdvcmllcyB8IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBDYXRlZ29yaWVzLkNBU0VfVklTVUFMX0lEO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgZWxhc3RpY0tleXdvcmRzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICBpZiAoISF0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZXIgPSB0aGlzLl9vcHRpb25hbERlcGVuZGVuY2llcy5zZWFyY2hJbmRleFJlc29sdmVyO1xuICAgICAgICAgICAgcmV0dXJuIFtyZXNvbHZlci5nZXRDb3JlSW5kZXgoQ2FzZVNlYXJjaC5WSVNVQUxfSUQsIHRoaXMuaXNTZWxlY3RlZE9wZXJhdG9yKFN1YnN0cmluZykpXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9lbGFzdGljS2V5d29yZHM7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|