@yuuvis/client-core 0.7.4 → 0.9.0

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/esm2022/index.mjs CHANGED
@@ -44,7 +44,10 @@ export * from './lib/service/pending-changes/pending-changes-guard.service';
44
44
  export * from './lib/service/pending-changes/pending-changes.service';
45
45
  export * from './lib/service/prediction/prediction.interface';
46
46
  export * from './lib/service/prediction/prediction.service';
47
+ export * from './lib/service/retention/retention.service';
48
+ export * from './lib/service/retention/retention.interface';
47
49
  export * from './lib/service/search/search.service';
50
+ export * from './lib/service/search/search.utils';
48
51
  export * from './lib/service/search/search.service.interface';
49
52
  export * from './lib/service/session-storage/session-storage.service';
50
53
  export * from './lib/service/system/object-form.interface';
@@ -54,6 +57,7 @@ export * from './lib/service/system/system.service';
54
57
  export * from './lib/service/upload/upload.interface';
55
58
  export * from './lib/service/upload/upload.service';
56
59
  export * from './lib/service/user/user.service';
60
+ export * from './lib/service/user/user-storage.service';
57
61
  export * from './lib/util/utils';
58
62
  export * from './lib/util/utils.helper.enum';
59
63
  export * from './lib/client-core.module';
@@ -62,4 +66,4 @@ export * from './lib/common/pipes';
62
66
  // COMMON SERVICES
63
67
  export * from './lib/common/services/native-notifications';
64
68
  // TOKENS
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxlQUFlO0FBQ2YsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxrQkFBa0I7QUFDbEIsY0FBYyw0Q0FBNEMsQ0FBQztBQUUzRCxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVMb2FkZXIsIFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xpZW50LWNvcmUuc2hhcmVkLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9kbXMtb2JqZWN0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9vYmplY3QtZmxhdm9yLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC9kbXMtb2JqZWN0Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3JhbmdlLXZhbHVlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC95dXYtZXJyb3IubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwveXV2LXVzZXIubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9hdWRpdC9hdWRpdC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9hdWRpdC9hdWRpdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYXV0aC9hdXRoLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYXV0aC9vaWRjLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9iYWNrZW5kL2FwaS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYmFja2VuZC9iYWNrZW5kLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYnBtL2JwbS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYnBtL2JwbS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jYWNoZS9hcHAtY2FjaGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NhdGFsb2cvY2F0YWxvZy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jYXRhbG9nL2NhdGFsb2cuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NsaXBib2FyZC9jbGlwYm9hcmQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY2xpcGJvYXJkL2NsaXBib2FyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY29uZmlnL2NvbmZpZy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb25maWcvY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb25maWcvY29yZS1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb25maWcvY29yZS1jb25maWcudG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY29ubmVjdGlvbi9jb25uZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb3JlLWluaXQvY29yZS1pbml0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9kZXZpY2UvZGV2aWNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9kZXZpY2UvZGV2aWNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2Rtcy9kbXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2Rtcy9kbXMuc2VydmljZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9ldmVudC9ldmVudC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9ldmVudC9ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvZXZlbnQvZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvaWRtL2lkbS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9pZG0vaWRtLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9sb2dnZXIvbG9nZ2VyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvb2JqZWN0LWNvbmZpZy9vYmplY3QtY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL29iamVjdC1jb25maWcvb2JqZWN0LWNvbmZpZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy1ndWFyZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvcGVuZGluZy1jaGFuZ2VzL3BlbmRpbmctY2hhbmdlcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvcHJlZGljdGlvbi9wcmVkaWN0aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3ByZWRpY3Rpb24vcHJlZGljdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3Nlc3Npb24tc3RvcmFnZS9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS9vYmplY3QtZm9ybS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9zeXN0ZW0vc3lzdGVtLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9zeXN0ZW0vc3lzdGVtLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3VwbG9hZC91cGxvYWQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdXBsb2FkL3VwbG9hZC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdXNlci91c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbC91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsL3V0aWxzLmhlbHBlci5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xpZW50LWNvcmUubW9kdWxlJztcblxuLy8gQ09NTU9OIFBJUEVTXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vcGlwZXMnO1xuXG4vLyBDT01NT04gU0VSVklDRVNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9zZXJ2aWNlcy9uYXRpdmUtbm90aWZpY2F0aW9ucyc7XG5cbi8vIFRPS0VOU1xuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUgsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGVBQWU7QUFDZixjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGtCQUFrQjtBQUNsQixjQUFjLDRDQUE0QyxDQUFDO0FBRTNELFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZUxvYWRlciwgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVQaXBlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGllbnQtY29yZS5zaGFyZWQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2Rtcy1vYmplY3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL29iamVjdC1mbGF2b3IuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL2Rtcy1vYmplY3QubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWwvcmFuZ2UtdmFsdWUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsL3l1di1lcnJvci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbC95dXYtdXNlci5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2F1ZGl0L2F1ZGl0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2F1ZGl0L2F1ZGl0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9hdXRoL2F1dGguaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYXV0aC9hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9hdXRoL29pZGMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2JhY2tlbmQvYXBpLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9iYWNrZW5kL2JhY2tlbmQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvYmFja2VuZC9iYWNrZW5kLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9icG0vYnBtLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9icG0vYnBtLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NhY2hlL2FwcC1jYWNoZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY2F0YWxvZy9jYXRhbG9nLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NhdGFsb2cvY2F0YWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvY2xpcGJvYXJkL2NsaXBib2FyZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jbGlwYm9hcmQvY2xpcGJvYXJkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb25maWcvY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NvbmZpZy9jb25maWcuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NvbmZpZy9jb3JlLWNvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NvbmZpZy9jb3JlLWNvbmZpZy50b2tlbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9jb25uZWN0aW9uL2Nvbm5lY3Rpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2NvcmUtaW5pdC9jb3JlLWluaXQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2RldmljZS9kZXZpY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2RldmljZS9kZXZpY2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvZG1zL2Rtcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvZG1zL2Rtcy5zZXJ2aWNlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2V2ZW50L2V2ZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2V2ZW50L2V2ZW50LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9ldmVudC9ldmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9pZG0vaWRtLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2lkbS9pZG0uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL2xvZ2dlci9sb2dnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9vYmplY3QtY29uZmlnL29iamVjdC1jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvb2JqZWN0LWNvbmZpZy9vYmplY3QtY29uZmlnLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLWd1YXJkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9wcmVkaWN0aW9uL3ByZWRpY3Rpb24uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvcHJlZGljdGlvbi9wcmVkaWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9yZXRlbnRpb24vcmV0ZW50aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9yZXRlbnRpb24vcmV0ZW50aW9uLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3NlYXJjaC9zZWFyY2gudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS9zZWFyY2gvc2VhcmNoLnNlcnZpY2UuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc3lzdGVtL29iamVjdC1mb3JtLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS9zeXN0ZW0uZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3N5c3RlbS9zeXN0ZW0uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2Uvc3lzdGVtL3N5c3RlbS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2UvdXBsb2FkL3VwbG9hZC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS91cGxvYWQvdXBsb2FkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZS91c2VyL3VzZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlL3VzZXIvdXNlci1zdG9yYWdlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdXRpbC91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlsL3V0aWxzLmhlbHBlci5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xpZW50LWNvcmUubW9kdWxlJztcblxuLy8gQ09NTU9OIFBJUEVTXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21tb24vcGlwZXMnO1xuXG4vLyBDT01NT04gU0VSVklDRVNcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbW1vbi9zZXJ2aWNlcy9uYXRpdmUtbm90aWZpY2F0aW9ucyc7XG5cbi8vIFRPS0VOU1xuIl19
@@ -78,6 +78,15 @@ export class ClipboardService {
78
78
  }
79
79
  this.#clipboardSource.next(this.#clipboard);
80
80
  }
81
+ async addToNavigatorClipBoard(data) {
82
+ try {
83
+ await navigator.clipboard.writeText(data);
84
+ console.log('Text copied to clipboard');
85
+ }
86
+ catch (error) {
87
+ console.error('Failed to copy text: ', error);
88
+ }
89
+ }
81
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
82
91
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, providedIn: 'root' }); }
83
92
  }
@@ -87,4 +96,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
87
96
  providedIn: 'root'
88
97
  }]
89
98
  }] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvY2xpcGJvYXJkL2NsaXBib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU9oRixNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLGVBQWUsR0FBbUI7UUFDaEMsT0FBTyxFQUFFLFNBQVM7UUFDbEIsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztJQUVGLFVBQVUsR0FBbUIsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuRSxnQkFBZ0IsR0FBRyxJQUFJLGFBQWEsRUFBa0IsQ0FBQztJQUN2RCxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRW5ELFlBQVksR0FBRyxLQUFLLENBQ2xCLFNBQVMsQ0FBZ0IsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsRUFDMUgsU0FBUyxDQUFpQixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM3QyxNQUFNLENBQUMsQ0FBQyxLQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUss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RSxDQUFDO1lBQzNELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN2QyxDQUFDOztZQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQWU7UUFDbkIsSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM5QyxDQUFDOytHQXRGVSxnQkFBZ0I7bUhBQWhCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZmlsdGVyLCBmcm9tRXZlbnQsIG1hcCwgbWVyZ2UsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERtc09iamVjdCB9IGZyb20gJy4uLy4uL21vZGVsL2Rtcy1vYmplY3QubW9kZWwnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkRGF0YSwgQ2xpcGJvYXJkRGF0YU1vZGUsIENsaXBib2FyZFN0b3JlIH0gZnJvbSAnLi9jbGlwYm9hcmQuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2xpcGJvYXJkU2VydmljZSB7XG4gICNlbXB0eUNsaXBib2FyZDogQ2xpcGJvYXJkU3RvcmUgPSB7XG4gICAgYnVja2V0czogdW5kZWZpbmVkLFxuICAgIG1haW46IHVuZGVmaW5lZFxuICB9O1xuXG4gICNjbGlwYm9hcmQ6IENsaXBib2FyZFN0b3JlID0gc3RydWN0dXJlZENsb25lKHRoaXMuI2VtcHR5Q2xpcGJvYXJkKTtcbiAgI2NsaXBib2FyZFNvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PENsaXBib2FyZFN0b3JlPigpO1xuICAjY2xpcGJvYXJkJCA9IHRoaXMuI2NsaXBib2FyZFNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICAjcGFzdGVFdmVudHMgPSBtZXJnZShcbiAgICBmcm9tRXZlbnQ8S2V5Ym9hcmRFdmVudD4od2luZG93LCAna2V5ZG93bicpLnBpcGUoZmlsdGVyKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gZXZlbnQuY3RybEtleSAmJiBldmVudC5jb2RlID09PSAnS2V5VicpKSxcbiAgICBmcm9tRXZlbnQ8Q2xpcGJvYXJkRXZlbnQ+KHdpbmRvdywgJ3Bhc3RlJykucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiAhIWV2ZW50LmNsaXBib2FyZERhdGEgJiYgZXZlbnQuY2xpcGJvYXJkRGF0YS5maWxlcy5sZW5ndGggPiAwKVxuICAgIClcbiAgKTtcblxuICBjbGlwYm9hcmQoYnVja2V0Pzogc3RyaW5nKTogU2lnbmFsPENsaXBib2FyZERhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdG9TaWduYWwodGhpcy5jbGlwYm9hcmQkKGJ1Y2tldCkpO1xuICB9XG5cbiAgY2xpcGJvYXJkJChidWNrZXQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPENsaXBib2FyZERhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jY2xpcGJvYXJkJC5waXBlKFxuICAgICAgbWFwKChjczogQ2xpcGJvYXJkU3RvcmUpID0+IHtcbiAgICAgICAgaWYgKGJ1Y2tldCkge1xuICAgICAgICAgIHJldHVybiBjcy5idWNrZXRzID8gY3MuYnVja2V0c1tidWNrZXRdIDogdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIGNzLm1haW47XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwYXN0ZSQoYnVja2V0Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxDbGlwYm9hcmREYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuI3Bhc3RlRXZlbnRzLnBpcGUoXG4gICAgICBtYXAoKGU6IEtleWJvYXJkRXZlbnQgfCBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICBsZXQgY2Q6IENsaXBib2FyZERhdGEgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICAgICAgICBjb25zdCBmaWxlTGlzdDogRmlsZUxpc3QgPSBlLmNsaXBib2FyZERhdGEhLmZpbGVzO1xuICAgICAgICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmaWxlcy5wdXNoKGZpbGVMaXN0Lml0ZW0oaSkgYXMgRmlsZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2QgPSBmaWxlcy5sZW5ndGhcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGZpbGVzXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNkID0gYnVja2V0ID8gKHRoaXMuI2NsaXBib2FyZC5idWNrZXRzID8gdGhpcy4jY2xpcGJvYXJkLmJ1Y2tldHNbYnVja2V0XSA6IHVuZGVmaW5lZCkgOiB0aGlzLiNjbGlwYm9hcmQubWFpbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2Q7XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcigoY2Q6IGFueSkgPT4gY2QgIT09IHVuZGVmaW5lZCAmJiAoY2QuZmlsZXMgfHwgY2Qub2JqZWN0cykpLFxuICAgICAgbWFwKChjZDogQ2xpcGJvYXJkRGF0YSkgPT4gY2QpXG4gICAgKTtcbiAgfVxuXG4gIGdldENsaXBib2FyZERhdGEoYnVja2V0Pzogc3RyaW5nKTogQ2xpcGJvYXJkRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgcmV0dXJuIHRoaXMuI2NsaXBib2FyZC5idWNrZXRzID8gdGhpcy4jY2xpcGJvYXJkLmJ1Y2tldHNbYnVja2V0XSA6IHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgcmV0dXJuIHRoaXMuI2NsaXBib2FyZC5tYWluO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBvYmplY3RzIHRvIHRoZSBjbGlwYm9hcmRcbiAgICogQHBhcmFtIGJ1Y2tldCBCdWNrZXRzIGFyZSB3YXlzIHRvIHNlcGFyYXRlIGRhdGEgZnJvbSB0aGUgZ2xvYmFsIHNjb3BlLlxuICAgKiBJZiB5b3UgaGF2ZSBhbiBhcHAgdGhhdCB3b3VsZCBsaWtlIHRvIGhhdmUgYSBzZXBhcmF0ZSBzZWN0aW9uIGluIHRoZSBjbGlwYm9hcmRcbiAgICogeW91J2xsIHVzZSBhIHVuaXF1ZSBidWNrZXQgdG8gc3RvcmUgeW91ciBzdHVmZi4gV2hlbiBvYnNlcnZpbmcgY2hhZ2VzIHRvIHRoZVxuICAgKiBjbGlwYm9hcmQgeW91IGNvdWxzIGFzIHdlbGwgcHJvdmlkZSB0aGUgYnVja2V0IGFuZCB5b3Ugd2lsbCBvbmx5IGdldFxuICAgKi9cbiAgYWRkT2JqZWN0cyhvYmplY3RzOiBEbXNPYmplY3RbXSwgbW9kZTogQ2xpcGJvYXJkRGF0YU1vZGUsIGJ1Y2tldD86IHN0cmluZykge1xuICAgIGNvbnN0IGNkOiBDbGlwYm9hcmREYXRhID0geyBtb2RlLCBvYmplY3RzIH07XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgaWYgKCF0aGlzLiNjbGlwYm9hcmQuYnVja2V0cykgdGhpcy4jY2xpcGJvYXJkLmJ1Y2tldHMgPSB7fTtcbiAgICAgIHRoaXMuI2NsaXBib2FyZC5idWNrZXRzW2J1Y2tldF0gPSBjZDtcbiAgICB9IGVsc2UgdGhpcy4jY2xpcGJvYXJkLm1haW4gPSBjZDtcbiAgICB0aGlzLiNjbGlwYm9hcmRTb3VyY2UubmV4dCh0aGlzLiNjbGlwYm9hcmQpO1xuICB9XG5cbiAgY2xlYXIoYnVja2V0Pzogc3RyaW5nKSB7XG4gICAgaWYgKGJ1Y2tldCAmJiB0aGlzLiNjbGlwYm9hcmQuYnVja2V0cykge1xuICAgICAgZGVsZXRlIHRoaXMuI2NsaXBib2FyZC5idWNrZXRzW2J1Y2tldF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2NsaXBib2FyZCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLiNlbXB0eUNsaXBib2FyZCk7XG4gICAgfVxuICAgIHRoaXMuI2NsaXBib2FyZFNvdXJjZS5uZXh0KHRoaXMuI2NsaXBib2FyZCk7XG4gIH1cbn1cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpcGJvYXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvY2xpcGJvYXJkL2NsaXBib2FyZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU9oRixNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLGVBQWUsR0FBbUI7UUFDaEMsT0FBTyxFQUFFLFNBQVM7UUFDbEIsSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQztJQUVGLFVBQVUsR0FBbUIsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuRSxnQkFBZ0IsR0FBRyxJQUFJLGFBQWEsRUFBa0IsQ0FBQztJQUN2RCxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRW5ELFlBQVksR0FBRyxLQUFLLENBQ2xCLFNBQVMsQ0FBZ0IsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLENBQUMsRUFDMUgsU0FBUyxDQUFpQixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxD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b20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBmaWx0ZXIsIGZyb21FdmVudCwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRG1zT2JqZWN0IH0gZnJvbSAnLi4vLi4vbW9kZWwvZG1zLW9iamVjdC5tb2RlbCc7XG5pbXBvcnQgeyBDbGlwYm9hcmREYXRhLCBDbGlwYm9hcmREYXRhTW9kZSwgQ2xpcGJvYXJkU3RvcmUgfSBmcm9tICcuL2NsaXBib2FyZC5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDbGlwYm9hcmRTZXJ2aWNlIHtcbiAgI2VtcHR5Q2xpcGJvYXJkOiBDbGlwYm9hcmRTdG9yZSA9IHtcbiAgICBidWNrZXRzOiB1bmRlZmluZWQsXG4gICAgbWFpbjogdW5kZWZpbmVkXG4gIH07XG5cbiAgI2NsaXBib2FyZDogQ2xpcGJvYXJkU3RvcmUgPSBzdHJ1Y3R1cmVkQ2xvbmUodGhpcy4jZW1wdHlDbGlwYm9hcmQpO1xuICAjY2xpcGJvYXJkU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8Q2xpcGJvYXJkU3RvcmU+KCk7XG4gICNjbGlwYm9hcmQkID0gdGhpcy4jY2xpcGJvYXJkU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICNwYXN0ZUV2ZW50cyA9IG1lcmdlKFxuICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih3aW5kb3csICdrZXlkb3duJykucGlwZShmaWx0ZXIoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiBldmVudC5jdHJsS2V5ICYmIGV2ZW50LmNvZGUgPT09ICdLZXlWJykpLFxuICAgIGZyb21FdmVudDxDbGlwYm9hcmRFdmVudD4od2luZG93LCAncGFzdGUnKS5waXBlKGZpbHRlcigoZXZlbnQ6IENsaXBib2FyZEV2ZW50KSA9PiAhIWV2ZW50LmNsaXBib2FyZERhdGEgJiYgZXZlbnQuY2xpcGJvYXJkRGF0YS5maWxlcy5sZW5ndGggPiAwKSlcbiAgKTtcblxuICBjbGlwYm9hcmQoYnVja2V0Pzogc3RyaW5nKTogU2lnbmFsPENsaXBib2FyZERhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdG9TaWduYWwodGhpcy5jbGlwYm9hcmQkKGJ1Y2tldCkpO1xuICB9XG5cbiAgY2xpcGJvYXJkJChidWNrZXQ/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPENsaXBib2FyZERhdGEgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jY2xpcGJvYXJkJC5waXBlKFxuICAgICAgbWFwKChjczogQ2xpcGJvYXJkU3RvcmUpID0+IHtcbiAgICAgICAgaWYgKGJ1Y2tldCkge1xuICAgICAgICAgIHJldHVybiBjcy5idWNrZXRzID8gY3MuYnVja2V0c1tidWNrZXRdIDogdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2UgcmV0dXJuIGNzLm1haW47XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwYXN0ZSQoYnVja2V0Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxDbGlwYm9hcmREYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuI3Bhc3RlRXZlbnRzLnBpcGUoXG4gICAgICBtYXAoKGU6IEtleWJvYXJkRXZlbnQgfCBDbGlwYm9hcmRFdmVudCkgPT4ge1xuICAgICAgICBsZXQgY2Q6IENsaXBib2FyZERhdGEgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICAgICAgICBjb25zdCBmaWxlTGlzdDogRmlsZUxpc3QgPSBlLmNsaXBib2FyZERhdGEhLmZpbGVzO1xuICAgICAgICAgIGNvbnN0IGZpbGVzOiBGaWxlW10gPSBbXTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBmaWxlcy5wdXNoKGZpbGVMaXN0Lml0ZW0oaSkgYXMgRmlsZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2QgPSBmaWxlcy5sZW5ndGhcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGZpbGVzXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNkID0gYnVja2V0ID8gKHRoaXMuI2NsaXBib2FyZC5idWNrZXRzID8gdGhpcy4jY2xpcGJvYXJkLmJ1Y2tldHNbYnVja2V0XSA6IHVuZGVmaW5lZCkgOiB0aGlzLiNjbGlwYm9hcmQubWFpbjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2Q7XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcigoY2Q6IGFueSkgPT4gY2QgIT09IHVuZGVmaW5lZCAmJiAoY2QuZmlsZXMgfHwgY2Qub2JqZWN0cykpLFxuICAgICAgbWFwKChjZDogQ2xpcGJvYXJkRGF0YSkgPT4gY2QpXG4gICAgKTtcbiAgfVxuXG4gIGdldENsaXBib2FyZERhdGEoYnVja2V0Pzogc3RyaW5nKTogQ2xpcGJvYXJkRGF0YSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgcmV0dXJuIHRoaXMuI2NsaXBib2FyZC5idWNrZXRzID8gdGhpcy4jY2xpcGJvYXJkLmJ1Y2tldHNbYnVja2V0XSA6IHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgcmV0dXJuIHRoaXMuI2NsaXBib2FyZC5tYWluO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBvYmplY3RzIHRvIHRoZSBjbGlwYm9hcmRcbiAgICogQHBhcmFtIGJ1Y2tldCBCdWNrZXRzIGFyZSB3YXlzIHRvIHNlcGFyYXRlIGRhdGEgZnJvbSB0aGUgZ2xvYmFsIHNjb3BlLlxuICAgKiBJZiB5b3UgaGF2ZSBhbiBhcHAgdGhhdCB3b3VsZCBsaWtlIHRvIGhhdmUgYSBzZXBhcmF0ZSBzZWN0aW9uIGluIHRoZSBjbGlwYm9hcmRcbiAgICogeW91J2xsIHVzZSBhIHVuaXF1ZSBidWNrZXQgdG8gc3RvcmUgeW91ciBzdHVmZi4gV2hlbiBvYnNlcnZpbmcgY2hhZ2VzIHRvIHRoZVxuICAgKiBjbGlwYm9hcmQgeW91IGNvdWxzIGFzIHdlbGwgcHJvdmlkZSB0aGUgYnVja2V0IGFuZCB5b3Ugd2lsbCBvbmx5IGdldFxuICAgKi9cbiAgYWRkT2JqZWN0cyhvYmplY3RzOiBEbXNPYmplY3RbXSwgbW9kZTogQ2xpcGJvYXJkRGF0YU1vZGUsIGJ1Y2tldD86IHN0cmluZykge1xuICAgIGNvbnN0IGNkOiBDbGlwYm9hcmREYXRhID0geyBtb2RlLCBvYmplY3RzIH07XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgaWYgKCF0aGlzLiNjbGlwYm9hcmQuYnVja2V0cykgdGhpcy4jY2xpcGJvYXJkLmJ1Y2tldHMgPSB7fTtcbiAgICAgIHRoaXMuI2NsaXBib2FyZC5idWNrZXRzW2J1Y2tldF0gPSBjZDtcbiAgICB9IGVsc2UgdGhpcy4jY2xpcGJvYXJkLm1haW4gPSBjZDtcbiAgICB0aGlzLiNjbGlwYm9hcmRTb3VyY2UubmV4dCh0aGlzLiNjbGlwYm9hcmQpO1xuICB9XG5cbiAgY2xlYXIoYnVja2V0Pzogc3RyaW5nKSB7XG4gICAgaWYgKGJ1Y2tldCAmJiB0aGlzLiNjbGlwYm9hcmQuYnVja2V0cykge1xuICAgICAgZGVsZXRlIHRoaXMuI2NsaXBib2FyZC5idWNrZXRzW2J1Y2tldF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2NsaXBib2FyZCA9IHN0cnVjdHVyZWRDbG9uZSh0aGlzLiNlbXB0eUNsaXBib2FyZCk7XG4gICAgfVxuICAgIHRoaXMuI2NsaXBib2FyZFNvdXJjZS5uZXh0KHRoaXMuI2NsaXBib2FyZCk7XG4gIH1cblxuICBhc3luYyBhZGRUb05hdmlnYXRvckNsaXBCb2FyZChkYXRhOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoZGF0YSk7XG4gICAgICBjb25zb2xlLmxvZygnVGV4dCBjb3BpZWQgdG8gY2xpcGJvYXJkJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjb3B5IHRleHQ6ICcsIGVycm9yKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -35,7 +35,6 @@ export class ObjectConfigService {
35
35
  #objectConfigs;
36
36
  // called on core init (auth.service -> initApp)
37
37
  init() {
38
- console.log('ObjectConfigService.init', this.#user.getCurrentUser().userSettings);
39
38
  return this.#user.loadObjectConfig().pipe(tap((res) => {
40
39
  this.#getDefaultObjectConfig();
41
40
  this.#objectConfigs = res || {
@@ -226,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
226
225
  providedIn: 'root'
227
226
  }]
228
227
  }] });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL29iamVjdC1jb25maWcvb2JqZWN0LWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxhQUFhLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVVuRDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUlFLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1Qiw4QkFBeUIsR0FBRyw2QkFBNkIsQ0FBQztRQUMxRCx5QkFBb0IsR0FBRyxJQUFJLGFBQWEsRUFBc0IsQ0FBQztRQUMvRCxvQkFBZSxHQUFtQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFM0YsMEJBQXFCLEdBQWlDLEVBQUUsQ0FBQztRQUN6RCxvQ0FBK0IsR0FBdUI7WUFDcEQsSUFBSSxFQUFFLEVBQUU7WUFDUixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixtQkFBYyxHQUF1QjtZQUNuQyxJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztLQXFNSDtJQXBOQyxPQUFPLENBQXlCO0lBQ2hDLEtBQUssQ0FBdUI7SUFHNUIsb0JBQW9CLENBQTJDO0lBQy9ELGVBQWUsQ0FBNEU7SUFFM0YscUJBQXFCLENBQW9DO0lBQ3pELCtCQUErQixDQUc3QjtJQUNGLGNBQWMsQ0FHWjtJQUVGLGdEQUFnRDtJQUNoRCxJQUFJO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsSUFBSTtnQkFDM0IsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFDO1lBQ0YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFlLEVBQUUsZUFBeUI7UUFDMUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDOUIsR0FBRyxDQUFDLENBQUMsR0FBdUIsRUFBRSxFQUFFO1lBQzlCLElBQUksR0FBRyxHQUF1QixHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ3ZDLE1BQU0sUUFBUSxHQUF1QixFQUFFLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFFL0csSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxNQUFNLFVBQVUsR0FBbUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQzVGLElBQUksVUFBVTtvQkFBRSxHQUFHLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUMzQyxDQUFDO1lBRUQsT0FBTyxlQUFlO2dCQUNwQixDQUFDLENBQUM7b0JBQ0UsR0FBRyxRQUFRO29CQUNYLEdBQUcsR0FBRztpQkFDUDtnQkFDSCxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsZ0JBQWdCLENBQUMsT0FBMkIsRUFBRSxNQUFlO1FBQzNELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxxQkFBcUI7WUFDckIsTUFBTSxhQUFhLEdBQVcsSUFBSSxDQUFDLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDN0csSUFBSSxhQUFhLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLEdBQUc7b0JBQ3BFLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPO29CQUN0RSxHQUFHLE9BQU87aUJBQ1gsQ0FBQztZQUNKLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztvQkFDaEQsRUFBRSxFQUFFLE1BQU07b0JBQ1YsT0FBTztpQkFDUixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQzs7WUFBTSxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsK0JBQStCLENBQUMsSUFBSSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDbEgsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQTJCLEVBQUUsTUFBZTtRQUM3RCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gscUJBQXFCO1lBQ3JCLE1BQU0sYUFBYSxHQUFXLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQzdHLElBQUksYUFBYSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNuQyxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQWU7UUFDcEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0saUJBQWlCLEdBQW1DLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ3BJLE9BQU8saUJBQWlCLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUMxQyxDQUFDOztZQUFNLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGVBQWUsQ0FBQyxJQUF1QixFQUFFLE1BQWU7UUFDdEQsTUFBTSxDQUFDLEdBQW1DLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDeEgsTUFBTSxHQUFHLEdBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7UUFFekUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUF1QixFQUFFLE1BQW9CLEVBQUUsTUFBZTtRQUM3RSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRztnQkFDcEIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFDO1FBQ0osSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLHFCQUFxQjtZQUNyQixNQUFNLGFBQWEsR0FBVyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDNUYsSUFBSSxhQUFhLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUM7WUFDdkUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sT0FBTyxHQUF1QixFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUUxQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQy9CLEVBQUUsRUFBRSxNQUFNO29CQUNWLE9BQU87aUJBQ1IsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUM3QyxDQUFDO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsWUFBb0I7UUFDbkMsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELHVCQUF1QixDQUFDLElBQXlCLEVBQUUsSUFBdUIsRUFBRSxNQUFlLEVBQUUsZUFBeUI7UUFDcEgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLFVBQVUsQ0FBQztRQUMxRCxJQUFJLGVBQWU7WUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ25ELE1BQU0sR0FBRyxHQUFrQztZQUN6QyxFQUFFLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQztZQUN2QyxZQUFZLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQztZQUN0RCxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU87WUFDbkIsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1NBQ25CLENBQUM7UUFFRixJQUFJLEVBQUUsQ0FBQyxLQUFLO1lBQ1YsR0FBRyxDQUFDLEtBQUssR0FBRztnQkFDVixZQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2FBQ25DLENBQUM7UUFDSixJQUFJLEVBQUUsQ0FBQyxXQUFXO1lBQ2hCLEdBQUcsQ0FBQyxXQUFXLEdBQUc7Z0JBQ2hCLFlBQVksRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVk7Z0JBQ3pDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7YUFDekMsQ0FBQztRQUNKLElBQUksRUFBRSxDQUFDLElBQUk7WUFDVCxHQUFHLENBQUMsSUFBSSxHQUFHO2dCQUNULFlBQVksRUFBRSxRQUFRO2dCQUN0QixLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHO2FBQ25CLENBQUM7UUFDSixJQUFJLEVBQUUsQ0FBQyxJQUFJO1lBQ1QsR0FBRyxDQUFDLElBQUksR0FBRztnQkFDVCxZQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZO2dCQUNsQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ2xDLENBQUM7UUFDSixJQUFJLEVBQUUsQ0FBQyxLQUFLO1lBQ1YsR0FBRyxDQUFDLEtBQUssR0FBRztnQkFDVixZQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO2FBQ25DLENBQUM7UUFFSixPQUFPLEdBQTJCLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNILHVCQUF1QjtRQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFxQixFQUFFLEVBQUU7WUFDbEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRztnQkFDbEMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakQsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDNUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQXNCO1FBQ3RDLE9BQU8sS0FBSztZQUNWLENBQUMsQ0FBQztnQkFDRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMvQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUU7YUFDdkI7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hCLENBQUM7K0dBcE5VLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIG1hcCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCYXNlT2JqZWN0VHlwZUZpZWxkIH0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5lbnVtJztcbmltcG9ydCB7IEdlbmVyaWNPYmplY3RUeXBlLCBPYmplY3RUeXBlRmllbGQsIFZpcnR1YWxPYmplY3RUeXBlIH0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXIvdXNlci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIE9iamVjdENvbmZpZyxcbiAgT2JqZWN0Q29uZmlnQnVja2V0LFxuICBPYmplY3RDb25maWdQcm9wZXJ0eSxcbiAgT2JqZWN0Q29uZmlnUmVjb3JkLFxuICBSZXNvbHZlZE9iamVjdENvbmZpZyxcbiAgU3RvcmVkT2JqZWN0Q29uZmlnXG59IGZyb20gJy4vb2JqZWN0LWNvbmZpZy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIFNlcnZpY2UgbWFuYWdpbmcgdGhlIGNvbmZpZ3VhcmlvbnMgZm9yIG9iamVjdCB0eXBlcy5cbiAqIENvbmZpZ3VyYXRpb24gbWVhbnMgdGhhdCB5b3UgY2FuIHBpY2sgY2VydGFpbiBmaWVsZHNcbiAqIG9mIGFuIG9iamVjdCB0eXBlIGFuZCBhc3NpZ24gdGhlbSB0byBhIGNvbmZpZyBvYmplY3QuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENvbmZpZ1NlcnZpY2Uge1xuICAjc3lzdGVtID0gaW5qZWN0KFN5c3RlbVNlcnZpY2UpO1xuICAjdXNlciA9IGluamVjdChVc2VyU2VydmljZSk7XG5cbiAgT0JKRUNUX0NPTkZJR19TVE9SQUdFX0tFWSA9ICd5dXYuZnJhbWV3b3JrLm9iamVjdC1jb25maWcnO1xuICAjb2JqZWN0Q29uZmlnc1NvdXJjZSA9IG5ldyBSZXBsYXlTdWJqZWN0PFN0b3JlZE9iamVjdENvbmZpZz4oKTtcbiAgI29iamVjdENvbmZpZ3MkOiBPYnNlcnZhYmxlPFN0b3JlZE9iamVjdENvbmZpZz4gPSB0aGlzLiNvYmplY3RDb25maWdzU291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICNkZWZhdWx0T2JqZWN0Q29uZmlnczogUmVjb3JkPHN0cmluZywgT2JqZWN0Q29uZmlnPiA9IHt9O1xuICAjcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzOiBTdG9yZWRPYmplY3RDb25maWcgPSB7XG4gICAgbWFpbjoge30sXG4gICAgYnVja2V0czogW11cbiAgfTtcbiAgI29iamVjdENvbmZpZ3M6IFN0b3JlZE9iamVjdENvbmZpZyA9IHtcbiAgICBtYWluOiB7fSxcbiAgICBidWNrZXRzOiBbXVxuICB9O1xuXG4gIC8vIGNhbGxlZCBvbiBjb3JlIGluaXQgKGF1dGguc2VydmljZSAtPiBpbml0QXBwKVxuICBpbml0KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc29sZS5sb2coJ09iamVjdENvbmZpZ1NlcnZpY2UuaW5pdCcsIHRoaXMuI3VzZXIuZ2V0Q3VycmVudFVzZXIoKS51c2VyU2V0dGluZ3MpO1xuICAgIHJldHVybiB0aGlzLiN1c2VyLmxvYWRPYmplY3RDb25maWcoKS5waXBlKFxuICAgICAgdGFwKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy4jZ2V0RGVmYXVsdE9iamVjdENvbmZpZygpO1xuICAgICAgICB0aGlzLiNvYmplY3RDb25maWdzID0gcmVzIHx8IHtcbiAgICAgICAgICBtYWluOiB7fSxcbiAgICAgICAgICBidWNrZXRzOiBbXVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLiNvYmplY3RDb25maWdzU291cmNlLm5leHQodGhpcy4jb2JqZWN0Q29uZmlncyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBnZXRPYmplY3RDb25maWdzJChidWNrZXQ/OiBzdHJpbmcsIGluY2x1ZGVEZWZhdWx0cz86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPE9iamVjdENvbmZpZ1JlY29yZD4ge1xuICAgIHJldHVybiB0aGlzLiNvYmplY3RDb25maWdzJC5waXBlKFxuICAgICAgbWFwKChzb2M6IFN0b3JlZE9iamVjdENvbmZpZykgPT4ge1xuICAgICAgICBsZXQgb2NyOiBPYmplY3RDb25maWdSZWNvcmQgPSBzb2MubWFpbjtcbiAgICAgICAgY29uc3QgZGVmYXVsdHM6IE9iamVjdENvbmZpZ1JlY29yZCA9IHsgLi4udGhpcy4jZGVmYXVsdE9iamVjdENvbmZpZ3MsIC4uLnRoaXMuI2dldFJlZ2lzdGVyZWREZWZhdWx0cyhidWNrZXQpIH07XG5cbiAgICAgICAgaWYgKGJ1Y2tldCkge1xuICAgICAgICAgIGNvbnN0IHRpbGVCdWNrZXQ6IE9iamVjdENvbmZpZ0J1Y2tldCB8IHVuZGVmaW5lZCA9IHNvYy5idWNrZXRzLmZpbmQoKGIpID0+IGIuaWQgPT09IGJ1Y2tldCk7XG4gICAgICAgICAgaWYgKHRpbGVCdWNrZXQpIG9jciA9IHRpbGVCdWNrZXQuY29uZmlncztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbmNsdWRlRGVmYXVsdHNcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAgICAgICAgIC4uLm9jclxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogeyAuLi5vY3IgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBkZWZhdWx0IG9iamVjdCBjb25maWdzLiBBcHBzIGNhbiBwcmUtZGVmaW5lIGhvdyB0aGVpclxuICAgKiBvYmplY3RzIHNob3VsZCBiZSByZW5kZXJlZC5cbiAgICogQHBhcmFtIGJ1Y2tldCBOYW1lIG9mIGEgYnVja2V0IHRvIGJpbmQgY29uZmlncyB0byAodXN1YWxseSB0aGUgSUQgb2YgdGhlIGFwcCkgdG9cbiAgICogc2VwYXJhdGUgdGhlIGNvbmZpZ3MgZnJvbSBvdGhlciBhcHBzLiBJZiBub3QgcHJvdmlkZWQgY29uZmlncyB3aWxsIGJlIHNhdmVkIGZvclxuICAgKiB0aGUgZ2xvYmFsIHNjb3BlXG4gICAqL1xuICByZWdpc3RlckRlZmF1bHRzKGNvbmZpZ3M6IE9iamVjdENvbmZpZ1JlY29yZCwgYnVja2V0Pzogc3RyaW5nKSB7XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgLy8gZG9lcyBidWNrZXQgZXhpc3Q/XG4gICAgICBjb25zdCB0aWxlQnVja2V0SWR4OiBudW1iZXIgPSB0aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MuYnVja2V0cy5maW5kSW5kZXgoKGIpID0+IGIuaWQgPT09IGJ1Y2tldCk7XG4gICAgICBpZiAodGlsZUJ1Y2tldElkeCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLmJ1Y2tldHNbdGlsZUJ1Y2tldElkeF0uY29uZmlncyA9IHtcbiAgICAgICAgICAuLi50aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MuYnVja2V0c1t0aWxlQnVja2V0SWR4XS5jb25maWdzLFxuICAgICAgICAgIC4uLmNvbmZpZ3NcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5idWNrZXRzLnB1c2goe1xuICAgICAgICAgIGlkOiBidWNrZXQsXG4gICAgICAgICAgY29uZmlnc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2UgdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLm1haW4gPSB7IC4uLnRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5tYWluLCAuLi5jb25maWdzIH07XG4gIH1cblxuICB1bnJlZ2lzdGVyRGVmYXVsdHMoY29uZmlnczogT2JqZWN0Q29uZmlnUmVjb3JkLCBidWNrZXQ/OiBzdHJpbmcpIHtcbiAgICBpZiAoYnVja2V0KSB7XG4gICAgICAvLyBkb2VzIGJ1Y2tldCBleGlzdD9cbiAgICAgIGNvbnN0IHRpbGVCdWNrZXRJZHg6IG51bWJlciA9IHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5idWNrZXRzLmZpbmRJbmRleCgoYikgPT4gYi5pZCA9PT0gYnVja2V0KTtcbiAgICAgIGlmICh0aWxlQnVja2V0SWR4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MuYnVja2V0cy5zcGxpY2UodGlsZUJ1Y2tldElkeCwgMSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5rZXlzKGNvbmZpZ3MpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICBkZWxldGUgdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLm1haW5ba2V5XTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNnZXRSZWdpc3RlcmVkRGVmYXVsdHMoYnVja2V0Pzogc3RyaW5nKTogT2JqZWN0Q29uZmlnUmVjb3JkIHtcbiAgICBpZiAoYnVja2V0KSB7XG4gICAgICBjb25zdCBkZWZhdWx0VGlsZUJ1Y2tldDogT2JqZWN0Q29uZmlnQnVja2V0IHwgdW5kZWZpbmVkID0gdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLmJ1Y2tldHMuZmluZCgoYikgPT4gYi5pZCA9PT0gYnVja2V0KTtcbiAgICAgIHJldHVybiBkZWZhdWx0VGlsZUJ1Y2tldD8uY29uZmlncyB8fCB7fTtcbiAgICB9IGVsc2UgcmV0dXJuIHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5tYWluO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvYmplY3QgY29uZmlnIGZvciBhbiBvYmplY3QgdHlwZS5cbiAgICogQHBhcmFtIG9iamVjdFR5cGVJZCBJRCBvZiB0aGUgb2JqZWN0IHR5cGUgdG8gZ2V0IHRoZSBjb25maWcgZm9yXG4gICAqIEBwYXJhbSBidWNrZXQgT3B0aW9uYWwgYnVja2V0IElEIHRvIGZldGNoIHRoZSBjb25maWcgZnJvbS4gQnVja2V0c1xuICAgKiBkZWZpbmUgc2VwYXJhdGVkIGFyZWFzIHRvIHN0b3JlL3JlY2VpdmUgdGhvc2UgY29uZmlncy4gVGhpcyB3YXlcbiAgICogY29tcG9uZW50cy9hcHBzIGNhbiBzdG9yZSBkaWZmZXJlbnQgb2JqZWN0IGNvbmZpZ3MgdGhhbiB0aGUgb25lc1xuICAgKiB1c2VkIGFjY3Jvc3MgdGhlIHdob2xlIGNsaWVudCBhcHBsaWNhdGlvbi5cbiAgICovXG4gIGdldE9iamVjdENvbmZpZyh0eXBlOiBWaXJ0dWFsT2JqZWN0VHlwZSwgYnVja2V0Pzogc3RyaW5nKTogT2JqZWN0Q29uZmlnIHtcbiAgICBjb25zdCBiOiBPYmplY3RDb25maWdCdWNrZXQgfCB1bmRlZmluZWQgPSBidWNrZXQgPyB0aGlzLiNvYmplY3RDb25maWdzLmJ1Y2tldHMuZmluZCgoYikgPT4gYi5pZCA9PT0gYnVja2V0KSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBvdHI6IE9iamVjdENvbmZpZ1JlY29yZCA9IGIgPyBiLmNvbmZpZ3MgOiB0aGlzLiNvYmplY3RDb25maWdzLm1haW47XG5cbiAgICBjb25zdCBvYyA9IG90clt0eXBlLmlkXTtcbiAgICByZXR1cm4gb2MgfHwgdGhpcy4jZ2V0UmVnaXN0ZXJlZERlZmF1bHRzKGJ1Y2tldClbdHlwZS5pZF07XG4gIH1cblxuICBzYXZlT2JqZWN0Q29uZmlnKHR5cGU6IFZpcnR1YWxPYmplY3RUeXBlLCBjb25maWc6IE9iamVjdENvbmZpZywgYnVja2V0Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuI29iamVjdENvbmZpZ3MpXG4gICAgICB0aGlzLiNvYmplY3RDb25maWdzID0ge1xuICAgICAgICBtYWluOiB7fSxcbiAgICAgICAgYnVja2V0czogW11cbiAgICAgIH07XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgLy8gZG9lcyBidWNrZXQgZXhpc3Q/XG4gICAgICBjb25zdCB0aWxlQnVja2V0SWR4OiBudW1iZXIgPSB0aGlzLiNvYmplY3RDb25maWdzLmJ1Y2tldHMuZmluZEluZGV4KChiKSA9PiBiLmlkID09PSBidWNrZXQpO1xuICAgICAgaWYgKHRpbGVCdWNrZXRJZHggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuI29iamVjdENvbmZpZ3MuYnVja2V0c1t0aWxlQnVja2V0SWR4XS5jb25maWdzW3R5cGUuaWRdID0gY29uZmlnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29uZmlnczogT2JqZWN0Q29uZmlnUmVjb3JkID0ge307XG4gICAgICAgIGNvbmZpZ3NbdHlwZS5pZF0gPSBjb25maWc7XG5cbiAgICAgICAgdGhpcy4jb2JqZWN0Q29uZmlncy5idWNrZXRzLnB1c2goe1xuICAgICAgICAgIGlkOiBidWNrZXQsXG4gICAgICAgICAgY29uZmlnc1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jb2JqZWN0Q29uZmlncy5tYWluW3R5cGUuaWRdID0gY29uZmlnO1xuICAgIH1cblxuICAgIHRoaXMuI29iamVjdENvbmZpZ3NTb3VyY2UubmV4dCh0aGlzLiNvYmplY3RDb25maWdzKTtcbiAgICByZXR1cm4gdGhpcy4jdXNlci5zYXZlT2JqZWN0Q29uZmlnKHRoaXMuI29iamVjdENvbmZpZ3MpO1xuICB9XG5cbiAgZ2V0RGVmYXVsdENvbmZpZyhvYmplY3RUeXBlSUQ6IHN0cmluZyk6IE9iamVjdENvbmZpZyB7XG4gICAgcmV0dXJuIHRoaXMuI2RlZmF1bHRPYmplY3RDb25maWdzW29iamVjdFR5cGVJRF07XG4gIH1cblxuICBnZXRSZXNvbHZlZE9iamVjdENvbmZpZyhkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCB0eXBlOiBWaXJ0dWFsT2JqZWN0VHlwZSwgYnVja2V0Pzogc3RyaW5nLCBpbmNsdWRlRGVmYXVsdHM/OiBib29sZWFuKTogUmVzb2x2ZWRPYmplY3RDb25maWcge1xuICAgIGNvbnN0IGRlZmF1bHRDZmcgPSB0aGlzLiNkZWZhdWx0T2JqZWN0Q29uZmlnc1tkYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX1RZUEVfSURdXTtcbiAgICBsZXQgb2MgPSB0aGlzLmdldE9iamVjdENvbmZpZyh0eXBlLCBidWNrZXQpIHx8IGRlZmF1bHRDZmc7XG4gICAgaWYgKGluY2x1ZGVEZWZhdWx0cykgb2MgPSB7IC4uLmRlZmF1bHRDZmcsIC4uLm9jIH07XG4gICAgY29uc3QgcmVzOiBQYXJ0aWFsPFJlc29sdmVkT2JqZWN0Q29uZmlnPiA9IHtcbiAgICAgIGlkOiBkYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX0lEXSxcbiAgICAgIG9iamVjdFR5cGVJZDogZGF0YVtCYXNlT2JqZWN0VHlwZUZpZWxkLk9CSkVDVF9UWVBFX0lEXSxcbiAgICAgIGFjdGlvbnM6IG9jLmFjdGlvbnMsXG4gICAgICBiYWRnZXM6IG9jLmJhZGdlcyxcbiAgICAgIGluc3RhbmNlRGF0YTogZGF0YVxuICAgIH07XG5cbiAgICBpZiAob2MudGl0bGUpXG4gICAgICByZXMudGl0bGUgPSB7XG4gICAgICAgIHByb3BlcnR5TmFtZTogb2MudGl0bGUucHJvcGVydHlOYW1lLFxuICAgICAgICB2YWx1ZTogZGF0YVtvYy50aXRsZS5wcm9wZXJ0eU5hbWVdXG4gICAgICB9O1xuICAgIGlmIChvYy5kZXNjcmlwdGlvbilcbiAgICAgIHJlcy5kZXNjcmlwdGlvbiA9IHtcbiAgICAgICAgcHJvcGVydHlOYW1lOiBvYy5kZXNjcmlwdGlvbi5wcm9wZXJ0eU5hbWUsXG4gICAgICAgIHZhbHVlOiBkYXRhW29jLmRlc2NyaXB0aW9uLnByb3BlcnR5TmFtZV1cbiAgICAgIH07XG4gICAgaWYgKG9jLmljb24pXG4gICAgICByZXMuaWNvbiA9IHtcbiAgICAgICAgcHJvcGVydHlOYW1lOiAnY3VzdG9tJyxcbiAgICAgICAgdmFsdWU6IG9jLmljb24uc3ZnXG4gICAgICB9O1xuICAgIGlmIChvYy5tZXRhKVxuICAgICAgcmVzLm1ldGEgPSB7XG4gICAgICAgIHByb3BlcnR5TmFtZTogb2MubWV0YS5wcm9wZXJ0eU5hbWUsXG4gICAgICAgIHZhbHVlOiBkYXRhW29jLm1ldGEucHJvcGVydHlOYW1lXVxuICAgICAgfTtcbiAgICBpZiAob2MuYXNpZGUpXG4gICAgICByZXMuYXNpZGUgPSB7XG4gICAgICAgIHByb3BlcnR5TmFtZTogb2MuYXNpZGUucHJvcGVydHlOYW1lLFxuICAgICAgICB2YWx1ZTogZGF0YVtvYy5hc2lkZS5wcm9wZXJ0eU5hbWVdXG4gICAgICB9O1xuXG4gICAgcmV0dXJuIHJlcyBhcyBSZXNvbHZlZE9iamVjdENvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkIGRlZmF1bHQvZmFsbGJhYyBjb25maWdzIGJhc2VkIG9uIHRoZSBvYmplY3QgdHlwZXMgYW5kXG4gICAqIHRoZWlyIGZpcnN0IHByb3BlcnRpZXNcbiAgICovXG4gICNnZXREZWZhdWx0T2JqZWN0Q29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuI3N5c3RlbS5nZXRPYmplY3RUeXBlcyh0cnVlKS5mb3JFYWNoKChvdDogR2VuZXJpY09iamVjdFR5cGUpID0+IHtcbiAgICAgIHRoaXMuI2RlZmF1bHRPYmplY3RDb25maWdzW290LmlkXSA9IHtcbiAgICAgICAgb2JqZWN0VHlwZUlkOiBvdC5pZCxcbiAgICAgICAgdGl0bGU6IHRoaXMuI3RvT2JqZWN0UHJvcGVydHkob3QuZmllbGRzWzBdKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuI3RvT2JqZWN0UHJvcGVydHkob3QuZmllbGRzWzFdKSxcbiAgICAgICAgbWV0YTogdGhpcy4jdG9PYmplY3RQcm9wZXJ0eShvdC5maWVsZHNbMl0pLFxuICAgICAgICBhc2lkZTogdGhpcy4jdG9PYmplY3RQcm9wZXJ0eShvdC5maWVsZHNbM10pXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgI3RvT2JqZWN0UHJvcGVydHkoZmllbGQ6IE9iamVjdFR5cGVGaWVsZCk6IE9iamVjdENvbmZpZ1Byb3BlcnR5IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZmllbGRcbiAgICAgID8ge1xuICAgICAgICAgIGxhYmVsOiB0aGlzLiNzeXN0ZW0uZ2V0TG9jYWxpemVkTGFiZWwoZmllbGQuaWQpLFxuICAgICAgICAgIHByb3BlcnR5TmFtZTogZmllbGQuaWRcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNvbmZpZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL29iamVjdC1jb25maWcvb2JqZWN0LWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxhQUFhLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQVVuRDs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUhoQztRQUlFLFlBQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1Qiw4QkFBeUIsR0FBRyw2QkFBNkIsQ0FBQztRQUMxRCx5QkFBb0IsR0FBRyxJQUFJLGFBQWEsRUFBc0IsQ0FBQztRQUMvRCxvQkFBZSxHQUFtQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFM0YsMEJBQXFCLEdBQWlDLEVBQUUsQ0FBQztRQUN6RCxvQ0FBK0IsR0FBdUI7WUFDcEQsSUFBSSxFQUFFLEVBQUU7WUFDUixPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixtQkFBYyxHQUF1QjtZQUNuQyxJQUFJLEVBQUUsRUFBRTtZQUNSLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztLQW9NSDtJQW5OQyxPQUFPLENBQXlCO0lBQ2hDLEtBQUssQ0FBdUI7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LEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsV0FBVyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM1QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBc0I7UUFDdEMsT0FBTyxLQUFLO1lBQ1YsQ0FBQyxDQUFDO2dCQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQy9DLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRTthQUN2QjtZQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDaEIsQ0FBQzsrR0FuTlUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgbWFwLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhc2VPYmplY3RUeXBlRmllbGQgfSBmcm9tICcuLi9zeXN0ZW0vc3lzdGVtLmVudW0nO1xuaW1wb3J0IHsgR2VuZXJpY09iamVjdFR5cGUsIE9iamVjdFR5cGVGaWVsZCwgVmlydHVhbE9iamVjdFR5cGUgfSBmcm9tICcuLi9zeXN0ZW0vc3lzdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci91c2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgT2JqZWN0Q29uZmlnLFxuICBPYmplY3RDb25maWdCdWNrZXQsXG4gIE9iamVjdENvbmZpZ1Byb3BlcnR5LFxuICBPYmplY3RDb25maWdSZWNvcmQsXG4gIFJlc29sdmVkT2JqZWN0Q29uZmlnLFxuICBTdG9yZWRPYmplY3RDb25maWdcbn0gZnJvbSAnLi9vYmplY3QtY29uZmlnLmludGVyZmFjZSc7XG5cbi8qKlxuICogU2VydmljZSBtYW5hZ2luZyB0aGUgY29uZmlndWFyaW9ucyBmb3Igb2JqZWN0IHR5cGVzLlxuICogQ29uZmlndXJhdGlvbiBtZWFucyB0aGF0IHlvdSBjYW4gcGljayBjZXJ0YWluIGZpZWxkc1xuICogb2YgYW4gb2JqZWN0IHR5cGUgYW5kIGFzc2lnbiB0aGVtIHRvIGEgY29uZmlnIG9iamVjdC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Q29uZmlnU2VydmljZSB7XG4gICNzeXN0ZW0gPSBpbmplY3QoU3lzdGVtU2VydmljZSk7XG4gICN1c2VyID0gaW5qZWN0KFVzZXJTZXJ2aWNlKTtcblxuICBPQkpFQ1RfQ09ORklHX1NUT1JBR0VfS0VZID0gJ3l1di5mcmFtZXdvcmsub2JqZWN0LWNvbmZpZyc7XG4gICNvYmplY3RDb25maWdzU291cmNlID0gbmV3IFJlcGxheVN1YmplY3Q8U3RvcmVkT2JqZWN0Q29uZmlnPigpO1xuICAjb2JqZWN0Q29uZmlncyQ6IE9ic2VydmFibGU8U3RvcmVkT2JqZWN0Q29uZmlnPiA9IHRoaXMuI29iamVjdENvbmZpZ3NTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgI2RlZmF1bHRPYmplY3RDb25maWdzOiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RDb25maWc+ID0ge307XG4gICNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3M6IFN0b3JlZE9iamVjdENvbmZpZyA9IHtcbiAgICBtYWluOiB7fSxcbiAgICBidWNrZXRzOiBbXVxuICB9O1xuICAjb2JqZWN0Q29uZmlnczogU3RvcmVkT2JqZWN0Q29uZmlnID0ge1xuICAgIG1haW46IHt9LFxuICAgIGJ1Y2tldHM6IFtdXG4gIH07XG5cbiAgLy8gY2FsbGVkIG9uIGNvcmUgaW5pdCAoYXV0aC5zZXJ2aWNlIC0+IGluaXRBcHApXG4gIGluaXQoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy4jdXNlci5sb2FkT2JqZWN0Q29uZmlnKCkucGlwZShcbiAgICAgIHRhcCgocmVzKSA9PiB7XG4gICAgICAgIHRoaXMuI2dldERlZmF1bHRPYmplY3RDb25maWcoKTtcbiAgICAgICAgdGhpcy4jb2JqZWN0Q29uZmlncyA9IHJlcyB8fCB7XG4gICAgICAgICAgbWFpbjoge30sXG4gICAgICAgICAgYnVja2V0czogW11cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy4jb2JqZWN0Q29uZmlnc1NvdXJjZS5uZXh0KHRoaXMuI29iamVjdENvbmZpZ3MpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0T2JqZWN0Q29uZmlncyQoYnVja2V0Pzogc3RyaW5nLCBpbmNsdWRlRGVmYXVsdHM/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxPYmplY3RDb25maWdSZWNvcmQ+IHtcbiAgICByZXR1cm4gdGhpcy4jb2JqZWN0Q29uZmlncyQucGlwZShcbiAgICAgIG1hcCgoc29jOiBTdG9yZWRPYmplY3RDb25maWcpID0+IHtcbiAgICAgICAgbGV0IG9jcjogT2JqZWN0Q29uZmlnUmVjb3JkID0gc29jLm1haW47XG4gICAgICAgIGNvbnN0IGRlZmF1bHRzOiBPYmplY3RDb25maWdSZWNvcmQgPSB7IC4uLnRoaXMuI2RlZmF1bHRPYmplY3RDb25maWdzLCAuLi50aGlzLiNnZXRSZWdpc3RlcmVkRGVmYXVsdHMoYnVja2V0KSB9O1xuXG4gICAgICAgIGlmIChidWNrZXQpIHtcbiAgICAgICAgICBjb25zdCB0aWxlQnVja2V0OiBPYmplY3RDb25maWdCdWNrZXQgfCB1bmRlZmluZWQgPSBzb2MuYnVja2V0cy5maW5kKChiKSA9PiBiLmlkID09PSBidWNrZXQpO1xuICAgICAgICAgIGlmICh0aWxlQnVja2V0KSBvY3IgPSB0aWxlQnVja2V0LmNvbmZpZ3M7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5jbHVkZURlZmF1bHRzXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgICAgICAgICAuLi5vY3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHsgLi4ub2NyIH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgZGVmYXVsdCBvYmplY3QgY29uZmlncy4gQXBwcyBjYW4gcHJlLWRlZmluZSBob3cgdGhlaXJcbiAgICogb2JqZWN0cyBzaG91bGQgYmUgcmVuZGVyZWQuXG4gICAqIEBwYXJhbSBidWNrZXQgTmFtZSBvZiBhIGJ1Y2tldCB0byBiaW5kIGNvbmZpZ3MgdG8gKHVzdWFsbHkgdGhlIElEIG9mIHRoZSBhcHApIHRvXG4gICAqIHNlcGFyYXRlIHRoZSBjb25maWdzIGZyb20gb3RoZXIgYXBwcy4gSWYgbm90IHByb3ZpZGVkIGNvbmZpZ3Mgd2lsbCBiZSBzYXZlZCBmb3JcbiAgICogdGhlIGdsb2JhbCBzY29wZVxuICAgKi9cbiAgcmVnaXN0ZXJEZWZhdWx0cyhjb25maWdzOiBPYmplY3RDb25maWdSZWNvcmQsIGJ1Y2tldD86IHN0cmluZykge1xuICAgIGlmIChidWNrZXQpIHtcbiAgICAgIC8vIGRvZXMgYnVja2V0IGV4aXN0P1xuICAgICAgY29uc3QgdGlsZUJ1Y2tldElkeDogbnVtYmVyID0gdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLmJ1Y2tldHMuZmluZEluZGV4KChiKSA9PiBiLmlkID09PSBidWNrZXQpO1xuICAgICAgaWYgKHRpbGVCdWNrZXRJZHggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5idWNrZXRzW3RpbGVCdWNrZXRJZHhdLmNvbmZpZ3MgPSB7XG4gICAgICAgICAgLi4udGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLmJ1Y2tldHNbdGlsZUJ1Y2tldElkeF0uY29uZmlncyxcbiAgICAgICAgICAuLi5jb25maWdzXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MuYnVja2V0cy5wdXNoKHtcbiAgICAgICAgICBpZDogYnVja2V0LFxuICAgICAgICAgIGNvbmZpZ3NcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5tYWluID0geyAuLi50aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MubWFpbiwgLi4uY29uZmlncyB9O1xuICB9XG5cbiAgdW5yZWdpc3RlckRlZmF1bHRzKGNvbmZpZ3M6IE9iamVjdENvbmZpZ1JlY29yZCwgYnVja2V0Pzogc3RyaW5nKSB7XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgLy8gZG9lcyBidWNrZXQgZXhpc3Q/XG4gICAgICBjb25zdCB0aWxlQnVja2V0SWR4OiBudW1iZXIgPSB0aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MuYnVja2V0cy5maW5kSW5kZXgoKGIpID0+IGIuaWQgPT09IGJ1Y2tldCk7XG4gICAgICBpZiAodGlsZUJ1Y2tldElkeCAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy4jcmVnaXN0ZXJlZERlZmF1bHRPYmplY3RDb25maWdzLmJ1Y2tldHMuc3BsaWNlKHRpbGVCdWNrZXRJZHgsIDEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3Qua2V5cyhjb25maWdzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgZGVsZXRlIHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5tYWluW2tleV07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAjZ2V0UmVnaXN0ZXJlZERlZmF1bHRzKGJ1Y2tldD86IHN0cmluZyk6IE9iamVjdENvbmZpZ1JlY29yZCB7XG4gICAgaWYgKGJ1Y2tldCkge1xuICAgICAgY29uc3QgZGVmYXVsdFRpbGVCdWNrZXQ6IE9iamVjdENvbmZpZ0J1Y2tldCB8IHVuZGVmaW5lZCA9IHRoaXMuI3JlZ2lzdGVyZWREZWZhdWx0T2JqZWN0Q29uZmlncy5idWNrZXRzLmZpbmQoKGIpID0+IGIuaWQgPT09IGJ1Y2tldCk7XG4gICAgICByZXR1cm4gZGVmYXVsdFRpbGVCdWNrZXQ/LmNvbmZpZ3MgfHwge307XG4gICAgfSBlbHNlIHJldHVybiB0aGlzLiNyZWdpc3RlcmVkRGVmYXVsdE9iamVjdENvbmZpZ3MubWFpbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgb2JqZWN0IGNvbmZpZyBmb3IgYW4gb2JqZWN0IHR5cGUuXG4gICAqIEBwYXJhbSBvYmplY3RUeXBlSWQgSUQgb2YgdGhlIG9iamVjdCB0eXBlIHRvIGdldCB0aGUgY29uZmlnIGZvclxuICAgKiBAcGFyYW0gYnVja2V0IE9wdGlvbmFsIGJ1Y2tldCBJRCB0byBmZXRjaCB0aGUgY29uZmlnIGZyb20uIEJ1Y2tldHNcbiAgICogZGVmaW5lIHNlcGFyYXRlZCBhcmVhcyB0byBzdG9yZS9yZWNlaXZlIHRob3NlIGNvbmZpZ3MuIFRoaXMgd2F5XG4gICAqIGNvbXBvbmVudHMvYXBwcyBjYW4gc3RvcmUgZGlmZmVyZW50IG9iamVjdCBjb25maWdzIHRoYW4gdGhlIG9uZXNcbiAgICogdXNlZCBhY2Nyb3NzIHRoZSB3aG9sZSBjbGllbnQgYXBwbGljYXRpb24uXG4gICAqL1xuICBnZXRPYmplY3RDb25maWcodHlwZTogVmlydHVhbE9iamVjdFR5cGUsIGJ1Y2tldD86IHN0cmluZyk6IE9iamVjdENvbmZpZyB7XG4gICAgY29uc3QgYjogT2JqZWN0Q29uZmlnQnVja2V0IHwgdW5kZWZpbmVkID0gYnVja2V0ID8gdGhpcy4jb2JqZWN0Q29uZmlncy5idWNrZXRzLmZpbmQoKGIpID0+IGIuaWQgPT09IGJ1Y2tldCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb3RyOiBPYmplY3RDb25maWdSZWNvcmQgPSBiID8gYi5jb25maWdzIDogdGhpcy4jb2JqZWN0Q29uZmlncy5tYWluO1xuXG4gICAgY29uc3Qgb2MgPSBvdHJbdHlwZS5pZF07XG4gICAgcmV0dXJuIG9jIHx8IHRoaXMuI2dldFJlZ2lzdGVyZWREZWZhdWx0cyhidWNrZXQpW3R5cGUuaWRdO1xuICB9XG5cbiAgc2F2ZU9iamVjdENvbmZpZyh0eXBlOiBWaXJ0dWFsT2JqZWN0VHlwZSwgY29uZmlnOiBPYmplY3RDb25maWcsIGJ1Y2tldD86IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKCF0aGlzLiNvYmplY3RDb25maWdzKVxuICAgICAgdGhpcy4jb2JqZWN0Q29uZmlncyA9IHtcbiAgICAgICAgbWFpbjoge30sXG4gICAgICAgIGJ1Y2tldHM6IFtdXG4gICAgICB9O1xuICAgIGlmIChidWNrZXQpIHtcbiAgICAgIC8vIGRvZXMgYnVja2V0IGV4aXN0P1xuICAgICAgY29uc3QgdGlsZUJ1Y2tldElkeDogbnVtYmVyID0gdGhpcy4jb2JqZWN0Q29uZmlncy5idWNrZXRzLmZpbmRJbmRleCgoYikgPT4gYi5pZCA9PT0gYnVja2V0KTtcbiAgICAgIGlmICh0aWxlQnVja2V0SWR4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLiNvYmplY3RDb25maWdzLmJ1Y2tldHNbdGlsZUJ1Y2tldElkeF0uY29uZmlnc1t0eXBlLmlkXSA9IGNvbmZpZztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3M6IE9iamVjdENvbmZpZ1JlY29yZCA9IHt9O1xuICAgICAgICBjb25maWdzW3R5cGUuaWRdID0gY29uZmlnO1xuXG4gICAgICAgIHRoaXMuI29iamVjdENvbmZpZ3MuYnVja2V0cy5wdXNoKHtcbiAgICAgICAgICBpZDogYnVja2V0LFxuICAgICAgICAgIGNvbmZpZ3NcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI29iamVjdENvbmZpZ3MubWFpblt0eXBlLmlkXSA9IGNvbmZpZztcbiAgICB9XG5cbiAgICB0aGlzLiNvYmplY3RDb25maWdzU291cmNlLm5leHQodGhpcy4jb2JqZWN0Q29uZmlncyk7XG4gICAgcmV0dXJuIHRoaXMuI3VzZXIuc2F2ZU9iamVjdENvbmZpZyh0aGlzLiNvYmplY3RDb25maWdzKTtcbiAgfVxuXG4gIGdldERlZmF1bHRDb25maWcob2JqZWN0VHlwZUlEOiBzdHJpbmcpOiBPYmplY3RDb25maWcge1xuICAgIHJldHVybiB0aGlzLiNkZWZhdWx0T2JqZWN0Q29uZmlnc1tvYmplY3RUeXBlSURdO1xuICB9XG5cbiAgZ2V0UmVzb2x2ZWRPYmplY3RDb25maWcoZGF0YTogUmVjb3JkPHN0cmluZywgYW55PiwgdHlwZTogVmlydHVhbE9iamVjdFR5cGUsIGJ1Y2tldD86IHN0cmluZywgaW5jbHVkZURlZmF1bHRzPzogYm9vbGVhbik6IFJlc29sdmVkT2JqZWN0Q29uZmlnIHtcbiAgICBjb25zdCBkZWZhdWx0Q2ZnID0gdGhpcy4jZGVmYXVsdE9iamVjdENvbmZpZ3NbZGF0YVtCYXNlT2JqZWN0VHlwZUZpZWxkLk9CSkVDVF9UWVBFX0lEXV07XG4gICAgbGV0IG9jID0gdGhpcy5nZXRPYmplY3RDb25maWcodHlwZSwgYnVja2V0KSB8fCBkZWZhdWx0Q2ZnO1xuICAgIGlmIChpbmNsdWRlRGVmYXVsdHMpIG9jID0geyAuLi5kZWZhdWx0Q2ZnLCAuLi5vYyB9O1xuICAgIGNvbnN0IHJlczogUGFydGlhbDxSZXNvbHZlZE9iamVjdENvbmZpZz4gPSB7XG4gICAgICBpZDogZGF0YVtCYXNlT2JqZWN0VHlwZUZpZWxkLk9CSkVDVF9JRF0sXG4gICAgICBvYmplY3RUeXBlSWQ6IGRhdGFbQmFzZU9iamVjdFR5cGVGaWVsZC5PQkpFQ1RfVFlQRV9JRF0sXG4gICAgICBhY3Rpb25zOiBvYy5hY3Rpb25zLFxuICAgICAgYmFkZ2VzOiBvYy5iYWRnZXMsXG4gICAgICBpbnN0YW5jZURhdGE6IGRhdGFcbiAgICB9O1xuXG4gICAgaWYgKG9jLnRpdGxlKVxuICAgICAgcmVzLnRpdGxlID0ge1xuICAgICAgICBwcm9wZXJ0eU5hbWU6IG9jLnRpdGxlLnByb3BlcnR5TmFtZSxcbiAgICAgICAgdmFsdWU6IGRhdGFbb2MudGl0bGUucHJvcGVydHlOYW1lXVxuICAgICAgfTtcbiAgICBpZiAob2MuZGVzY3JpcHRpb24pXG4gICAgICByZXMuZGVzY3JpcHRpb24gPSB7XG4gICAgICAgIHByb3BlcnR5TmFtZTogb2MuZGVzY3JpcHRpb24ucHJvcGVydHlOYW1lLFxuICAgICAgICB2YWx1ZTogZGF0YVtvYy5kZXNjcmlwdGlvbi5wcm9wZXJ0eU5hbWVdXG4gICAgICB9O1xuICAgIGlmIChvYy5pY29uKVxuICAgICAgcmVzLmljb24gPSB7XG4gICAgICAgIHByb3BlcnR5TmFtZTogJ2N1c3RvbScsXG4gICAgICAgIHZhbHVlOiBvYy5pY29uLnN2Z1xuICAgICAgfTtcbiAgICBpZiAob2MubWV0YSlcbiAgICAgIHJlcy5tZXRhID0ge1xuICAgICAgICBwcm9wZXJ0eU5hbWU6IG9jLm1ldGEucHJvcGVydHlOYW1lLFxuICAgICAgICB2YWx1ZTogZGF0YVtvYy5tZXRhLnByb3BlcnR5TmFtZV1cbiAgICAgIH07XG4gICAgaWYgKG9jLmFzaWRlKVxuICAgICAgcmVzLmFzaWRlID0ge1xuICAgICAgICBwcm9wZXJ0eU5hbWU6IG9jLmFzaWRlLnByb3BlcnR5TmFtZSxcbiAgICAgICAgdmFsdWU6IGRhdGFbb2MuYXNpZGUucHJvcGVydHlOYW1lXVxuICAgICAgfTtcblxuICAgIHJldHVybiByZXMgYXMgUmVzb2x2ZWRPYmplY3RDb25maWc7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBkZWZhdWx0L2ZhbGxiYWMgY29uZmlncyBiYXNlZCBvbiB0aGUgb2JqZWN0IHR5cGVzIGFuZFxuICAgKiB0aGVpciBmaXJzdCBwcm9wZXJ0aWVzXG4gICAqL1xuICAjZ2V0RGVmYXVsdE9iamVjdENvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLiNzeXN0ZW0uZ2V0T2JqZWN0VHlwZXModHJ1ZSkuZm9yRWFjaCgob3Q6IEdlbmVyaWNPYmplY3RUeXBlKSA9PiB7XG4gICAgICB0aGlzLiNkZWZhdWx0T2JqZWN0Q29uZmlnc1tvdC5pZF0gPSB7XG4gICAgICAgIG9iamVjdFR5cGVJZDogb3QuaWQsXG4gICAgICAgIHRpdGxlOiB0aGlzLiN0b09iamVjdFByb3BlcnR5KG90LmZpZWxkc1swXSksXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLiN0b09iamVjdFByb3BlcnR5KG90LmZpZWxkc1sxXSksXG4gICAgICAgIG1ldGE6IHRoaXMuI3RvT2JqZWN0UHJvcGVydHkob3QuZmllbGRzWzJdKSxcbiAgICAgICAgYXNpZGU6IHRoaXMuI3RvT2JqZWN0UHJvcGVydHkob3QuZmllbGRzWzNdKVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gICN0b09iamVjdFByb3BlcnR5KGZpZWxkOiBPYmplY3RUeXBlRmllbGQpOiBPYmplY3RDb25maWdQcm9wZXJ0eSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGZpZWxkXG4gICAgICA/IHtcbiAgICAgICAgICBsYWJlbDogdGhpcy4jc3lzdGVtLmdldExvY2FsaXplZExhYmVsKGZpZWxkLmlkKSxcbiAgICAgICAgICBwcm9wZXJ0eU5hbWU6IGZpZWxkLmlkXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0ZW50aW9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMveXV1dmlzL2NsaWVudC1jb3JlL3NyYy9saWIvc2VydmljZS9yZXRlbnRpb24vcmV0ZW50aW9uLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgaW50ZXJmYWNlIFJldGVudGlvblN0YXRlIHtcbiAgICAvLyBkb2N1bWVudCBpcyBjdXJyZW50bHkgdW5kZXIgcmV0ZW50aW9uICh3aXRoaW4gcmV0ZW50aW9uIHBlcmlvZClcbiAgICB1bmRlclJldGVudGlvbjogYm9vbGVhbjtcbiAgICBzdGFydD86IERhdGU7XG4gICAgZW5kPzogRGF0ZTtcbn0iXX0=
@@ -0,0 +1,65 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { BaseObjectTypeField, RetentionField, SystemSOT } from '../system/system.enum';
3
+ import { DmsService } from '../dms/dms.service';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Service to manage retention for DMS objects. This service allows to set retention
7
+ * for objects and revert retention if necessary/possible.
8
+ */
9
+ export class RetentionService {
10
+ #dms = inject(DmsService);
11
+ /**
12
+ * Set retention for given objects. This will add the retention SOT to the objects
13
+ * and set the retention start and end date. If the retetion start date is in the
14
+ * future, you can revert the retention until then by calling `revertRetention`.
15
+ * @param dmsObjects The objects to set retention for
16
+ * @param retentionStart Date when retention period should begin
17
+ * @param retentionEnd Date when retention period should end
18
+ * @param destructionDate Date when the object should be destroyed. This right now is just a
19
+ * marker and has no effect on the object lifecycle.
20
+ * @returns The updated objects
21
+ */
22
+ setRetention(dmsObjects, retentionStart, retentionEnd, destructionDate) {
23
+ const payload = [];
24
+ dmsObjects.forEach((o) => {
25
+ const data = {
26
+ [BaseObjectTypeField.SECONDARY_OBJECT_TYPE_IDS]: [
27
+ ...o.data[BaseObjectTypeField.SECONDARY_OBJECT_TYPE_IDS],
28
+ SystemSOT.DESTRUCTION_RETENTION
29
+ ],
30
+ [RetentionField.RETENTION_START]: retentionStart
31
+ };
32
+ if (retentionEnd)
33
+ data[RetentionField.RETENTION_END] = retentionEnd;
34
+ if (destructionDate)
35
+ data[RetentionField.DESTRUCTION_DATE] = destructionDate;
36
+ payload.push({ id: o.id, data });
37
+ });
38
+ return this.#dms.updateDmsObjects(payload);
39
+ }
40
+ getRetentionState(dmsObject) {
41
+ const hasRetentionSOT = dmsObject.data[BaseObjectTypeField.SECONDARY_OBJECT_TYPE_IDS].includes(SystemSOT.DESTRUCTION_RETENTION);
42
+ if (hasRetentionSOT) {
43
+ const now = new Date();
44
+ const retentionStart = new Date(dmsObject.data[RetentionField.RETENTION_START]);
45
+ const retentionEnd = dmsObject.data[RetentionField.RETENTION_END] ? new Date(dmsObject.data[RetentionField.RETENTION_END]) : null;
46
+ const underRetention = !!(retentionStart < now || (retentionEnd && retentionEnd > now));
47
+ return {
48
+ underRetention,
49
+ start: new Date(retentionStart),
50
+ end: retentionEnd ? new Date(retentionEnd) : undefined
51
+ };
52
+ }
53
+ else
54
+ return { underRetention: false };
55
+ }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RetentionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
57
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RetentionService, providedIn: 'root' }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RetentionService, decorators: [{
60
+ type: Injectable,
61
+ args: [{
62
+ providedIn: 'root'
63
+ }]
64
+ }] });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0ZW50aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2UvcmV0ZW50aW9uL3JldGVudGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUloRDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFMUI7Ozs7Ozs7Ozs7T0FVRztJQUNILFlBQVksQ0FBQyxVQUF1QixFQUFFLGNBQW9CLEVBQUUsWUFBa0IsRUFBRSxlQUFzQjtRQUNwRyxNQUFNLE9BQU8sR0FBbUQsRUFBRSxDQUFDO1FBQ25FLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN2QixNQUFNLElBQUksR0FBNEI7Z0JBQ3BDLENBQUMsbUJBQW1CLENBQUMseUJBQXlCLENBQUMsRUFBRTtvQkFDL0MsR0FBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHlCQUF5QixDQUFjO29CQUN0RSxTQUFTLENBQUMscUJBQXFCO2lCQUNoQztnQkFDRCxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsRUFBRSxjQUFjO2FBQ2pELENBQUM7WUFDRixJQUFJLFlBQVk7Z0JBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsR0FBRyxZQUFZLENBQUM7WUFDcEUsSUFBSSxlQUFlO2dCQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxlQUFlLENBQUM7WUFDN0UsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQixDQUFDLFNBQW9CO1FBQ3BDLE1BQU0sZUFBZSxHQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMseUJBQXlCLENBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUksSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUNwQixNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBVyxDQUFDLENBQUM7WUFDMUYsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM1SSxNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLFlBQVksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLE9BQU87Z0JBQ0wsY0FBYztnQkFDZCxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUMvQixHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUN2RCxDQUFDO1FBQ0osQ0FBQzs7WUFBTSxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFDLENBQUM7K0dBN0NVLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG1zT2JqZWN0IH0gZnJvbSAnLi4vLi4vbW9kZWwvZG1zLW9iamVjdC5tb2RlbCc7XG5pbXBvcnQgeyBCYXNlT2JqZWN0VHlwZUZpZWxkLCBSZXRlbnRpb25GaWVsZCwgU3lzdGVtU09UIH0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5lbnVtJztcbmltcG9ydCB7IERtc1NlcnZpY2UgfSBmcm9tICcuLi9kbXMvZG1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmV0ZW50aW9uU3RhdGUgfSBmcm9tICcuL3JldGVudGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBTZXJ2aWNlIHRvIG1hbmFnZSByZXRlbnRpb24gZm9yIERNUyBvYmplY3RzLiBUaGlzIHNlcnZpY2UgYWxsb3dzIHRvIHNldCByZXRlbnRpb25cbiAqIGZvciBvYmplY3RzIGFuZCByZXZlcnQgcmV0ZW50aW9uIGlmIG5lY2Vzc2FyeS9wb3NzaWJsZS5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmV0ZW50aW9uU2VydmljZSB7XG4gICNkbXMgPSBpbmplY3QoRG1zU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFNldCByZXRlbnRpb24gZm9yIGdpdmVuIG9iamVjdHMuIFRoaXMgd2lsbCBhZGQgdGhlIHJldGVudGlvbiBTT1QgdG8gdGhlIG9iamVjdHNcbiAgICogYW5kIHNldCB0aGUgcmV0ZW50aW9uIHN0YXJ0IGFuZCBlbmQgZGF0ZS4gSWYgdGhlIHJldGV0aW9uIHN0YXJ0IGRhdGUgaXMgaW4gdGhlXG4gICAqIGZ1dHVyZSwgeW91IGNhbiByZXZlcnQgdGhlIHJldGVudGlvbiB1bnRpbCB0aGVuIGJ5IGNhbGxpbmcgYHJldmVydFJldGVudGlvbmAuXG4gICAqIEBwYXJhbSBkbXNPYmplY3RzIFRoZSBvYmplY3RzIHRvIHNldCByZXRlbnRpb24gZm9yXG4gICAqIEBwYXJhbSByZXRlbnRpb25TdGFydCBEYXRlIHdoZW4gcmV0ZW50aW9uIHBlcmlvZCBzaG91bGQgYmVnaW5cbiAgICogQHBhcmFtIHJldGVudGlvbkVuZCBEYXRlIHdoZW4gcmV0ZW50aW9uIHBlcmlvZCBzaG91bGQgZW5kXG4gICAqIEBwYXJhbSBkZXN0cnVjdGlvbkRhdGUgRGF0ZSB3aGVuIHRoZSBvYmplY3Qgc2hvdWxkIGJlIGRlc3Ryb3llZC4gVGhpcyByaWdodCBub3cgaXMganVzdCBhXG4gICAqIG1hcmtlciBhbmQgaGFzIG5vIGVmZmVjdCBvbiB0aGUgb2JqZWN0IGxpZmVjeWNsZS5cbiAgICogQHJldHVybnMgVGhlIHVwZGF0ZWQgb2JqZWN0c1xuICAgKi9cbiAgc2V0UmV0ZW50aW9uKGRtc09iamVjdHM6IERtc09iamVjdFtdLCByZXRlbnRpb25TdGFydDogRGF0ZSwgcmV0ZW50aW9uRW5kOiBEYXRlLCBkZXN0cnVjdGlvbkRhdGU/OiBEYXRlKTogT2JzZXJ2YWJsZTxEbXNPYmplY3RbXT4ge1xuICAgIGNvbnN0IHBheWxvYWQ6IHsgaWQ6IHN0cmluZzsgZGF0YTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9W10gPSBbXTtcbiAgICBkbXNPYmplY3RzLmZvckVhY2goKG8pID0+IHtcbiAgICAgIGNvbnN0IGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgICBbQmFzZU9iamVjdFR5cGVGaWVsZC5TRUNPTkRBUllfT0JKRUNUX1RZUEVfSURTXTogW1xuICAgICAgICAgIC4uLihvLmRhdGFbQmFzZU9iamVjdFR5cGVGaWVsZC5TRUNPTkRBUllfT0JKRUNUX1RZUEVfSURTXSBhcyBzdHJpbmdbXSksXG4gICAgICAgICAgU3lzdGVtU09ULkRFU1RSVUNUSU9OX1JFVEVOVElPTlxuICAgICAgICBdLFxuICAgICAgICBbUmV0ZW50aW9uRmllbGQuUkVURU5USU9OX1NUQVJUXTogcmV0ZW50aW9uU3RhcnRcbiAgICAgIH07XG4gICAgICBpZiAocmV0ZW50aW9uRW5kKSBkYXRhW1JldGVudGlvbkZpZWxkLlJFVEVOVElPTl9FTkRdID0gcmV0ZW50aW9uRW5kO1xuICAgICAgaWYgKGRlc3RydWN0aW9uRGF0ZSkgZGF0YVtSZXRlbnRpb25GaWVsZC5ERVNUUlVDVElPTl9EQVRFXSA9IGRlc3RydWN0aW9uRGF0ZTtcbiAgICAgIHBheWxvYWQucHVzaCh7IGlkOiBvLmlkLCBkYXRhIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRoaXMuI2Rtcy51cGRhdGVEbXNPYmplY3RzKHBheWxvYWQpO1xuICB9XG5cbiAgZ2V0UmV0ZW50aW9uU3RhdGUoZG1zT2JqZWN0OiBEbXNPYmplY3QpOiBSZXRlbnRpb25TdGF0ZSB7XG4gICAgY29uc3QgaGFzUmV0ZW50aW9uU09UID0gKGRtc09iamVjdC5kYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuU0VDT05EQVJZX09CSkVDVF9UWVBFX0lEU10gYXMgc3RyaW5nW10pLmluY2x1ZGVzKFN5c3RlbVNPVC5ERVNUUlVDVElPTl9SRVRFTlRJT04pO1xuICAgIGlmIChoYXNSZXRlbnRpb25TT1QpIHtcbiAgICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgICBjb25zdCByZXRlbnRpb25TdGFydCA9IG5ldyBEYXRlKGRtc09iamVjdC5kYXRhW1JldGVudGlvbkZpZWxkLlJFVEVOVElPTl9TVEFSVF0gYXMgc3RyaW5nKTtcbiAgICAgIGNvbnN0IHJldGVudGlvbkVuZCA9IGRtc09iamVjdC5kYXRhW1JldGVudGlvbkZpZWxkLlJFVEVOVElPTl9FTkRdID8gbmV3IERhdGUoZG1zT2JqZWN0LmRhdGFbUmV0ZW50aW9uRmllbGQuUkVURU5USU9OX0VORF0gYXMgc3RyaW5nKSA6IG51bGw7XG4gICAgICBjb25zdCB1bmRlclJldGVudGlvbiA9ICEhKHJldGVudGlvblN0YXJ0IDwgbm93IHx8IChyZXRlbnRpb25FbmQgJiYgcmV0ZW50aW9uRW5kID4gbm93KSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB1bmRlclJldGVudGlvbixcbiAgICAgICAgc3RhcnQ6IG5ldyBEYXRlKHJldGVudGlvblN0YXJ0KSxcbiAgICAgICAgZW5kOiByZXRlbnRpb25FbmQgPyBuZXcgRGF0ZShyZXRlbnRpb25FbmQpIDogdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH0gZWxzZSByZXR1cm4geyB1bmRlclJldGVudGlvbjogZmFsc2UgfTtcbiAgfVxufVxuIl19
@@ -36,4 +36,4 @@ export const OperatorLabel = {
36
36
  LIKE: '~', // like
37
37
  CONTAINS: '~' // contains
38
38
  };
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL3NlYXJjaC9zZWFyY2guc2VydmljZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkRBLE1BQU0sQ0FBTixJQUFZLFFBZVg7QUFmRCxXQUFZLFFBQVE7SUFDbEIsd0JBQVksQ0FBQTtJQUNaLDBCQUFjLENBQUE7SUFDZCxxQkFBUyxDQUFBO0lBQ1QsK0JBQW1CLENBQUE7SUFDbkIsb0NBQXdCLENBQUE7SUFDeEIsNEJBQWdCLENBQUE7SUFDaEIsaUNBQXFCLENBQUE7SUFDckIsNkJBQWlCLENBQUE7SUFDakIsNENBQWdDLENBQUE7SUFDaEMseUNBQTZCLENBQUE7SUFDN0IsMkNBQStCLENBQUE7SUFDL0Isd0JBQVksQ0FBQTtJQUNaLHlCQUFhLENBQUE7SUFDYixpQ0FBcUIsQ0FBQSxDQUFDLFdBQVc7QUFDbkMsQ0FBQyxFQWZXLFFBQVEsS0FBUixRQUFRLFFBZW5CO0FBQ0QsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLFlBQVk7SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLGtCQUFrQjtJQUNsQixNQUFNLEVBQUUsSUFBSTtJQUNaLDRFQUE0RTtJQUM1RSxFQUFFLEVBQUUsR0FBRztJQUNQLG1CQUFtQjtJQUNuQixZQUFZLEVBQUUsR0FBRztJQUNqQiw0QkFBNEI7SUFDNUIsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDekIsU0FBUyxFQUFFLEdBQUcsRUFBRSxZQUFZO0lBQzVCLGFBQWEsRUFBRSxHQUFHLEVBQUUscUJBQXFCO0lBQ3pDLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVztJQUMzQixxQkFBcUIsRUFBRSxHQUFHLEVBQUUsa0NBQWtDO0lBQzlELG1CQUFtQixFQUFFLElBQUksRUFBRSx5QkFBeUI7SUFDcEQscUJBQXFCLEVBQUUsSUFBSSxFQUFFLHdCQUF3QjtJQUNyRCxLQUFLLEVBQUUsR0FBRyxFQUFFLG9CQUFvQjtJQUNoQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU87SUFDbEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxXQUFXO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50U3RyZWFtLCBDb3JlQXBpT2JqZWN0IH0gZnJvbSAnLi4vZG1zL2Rtcy5zZXJ2aWNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUXVlcnkge1xuICAvLyAtLSBGdWxsdGV4dCAtLVxuICAvLyBTZWFyY2ggdGVybVxuICB0ZXJtPzogc3RyaW5nO1xuICAvLyB3aGVyZSB0byBzZWFyY2hcbiAgc2NvcGU/OiAnYWxsJyB8ICdtZXRhZGF0YScgfCAnY29udGVudCc7XG5cbiAgLy8gLS0gUGFnaW5hdGlvbiAtLVxuICAvLyBOdW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuXG4gIHNpemU/OiBudW1iZXI7XG4gIC8vIE51bWJlciBvZiBpdGVtcyB0byBza2lwIChvZmZzZXQpXG4gIGZyb20/OiBudW1iZXI7XG5cbiAgLy8gLS0gRmllbGRzIC0tXG4gIC8vIE9iamVjdCBmaWVsZHMgdG8gcmV0dXJuXG4gIGZpZWxkcz86IHN0cmluZ1tdO1xuXG4gIC8vIC0tIEFnZ3JlZ2F0aW9ucyAtLVxuICAvLyBBZ2dyZWdhdGlvbnMgdG8gcmV0dXJuXG4gIGFnZ3M/OiBzdHJpbmdbXTtcblxuICAvLyAtLSBPYmplY3QgVHlwZXMgLS1cbiAgLy8gT2JqZWN0IHR5cGVzIChpbmNsLiBTT1RzKSB0byBzZWFyY2ggZm9yXG4gIHR5cGVzPzogc3RyaW5nW107XG5cbiAgLy8gLS0gRmlsdGVycyAtLVxuICAvLyBGaWx0ZXIgYnkgZmllbGRcbiAgZmlsdGVycz86IFNlYXJjaEZpbHRlcltdO1xuICAvLyBmaWx0ZXJzIHRvIGJlIGFwcGxpZWQgdG8gdGFibGUgY29sdW1uc1xuICB0YWJsZUZpbHRlcnM/OiBUYWJsZUZpbHRlcltdO1xuXG4gIC8vIC0tIFNvcnQgLS1cbiAgLy8gU29ydCBieSBmaWVsZFxuICBzb3J0PzogU29ydE9wdGlvbltdO1xuICBpbmNsdWRlUGVybWlzc2lvbnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRPcHRpb24ge1xuICBmaWVsZDogc3RyaW5nO1xuICBvcmRlcjogJ2FzYycgfCAnZGVzYyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoRmlsdGVyIHtcbiAgLy8gZmllbGQgdG8gZmlsdGVyIGJ5XG4gIGY6IHN0cmluZztcbiAgbzogT3BlcmF0b3I7XG4gIC8vIHZhbHVlIGZvciB0aGUgZmlsdGVyXG4gIHYxOiB1bmtub3duO1xuICAvLyBvcHRpb25hbCBzZWNvbmQgdmFsdWUgZm9yIGludGVydmFsIGZpbHRlcnNcbiAgdjI/OiB1bmtub3duO1xuICAvLyB3aGV0aGVyIHRvIG5lZ2F0ZSB0aGUgZmlsdGVyXG4gIHVzZU5vdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVGaWx0ZXIge1xuICB0YWJsZTogc3RyaW5nO1xuICBjb2x1bW5GaWx0ZXJzOiBTZWFyY2hGaWx0ZXJbXTtcbn1cblxuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xuICBFUVVBTCA9ICdlcScsIC8vIGVxdWFsXG4gIEVFUVVBTCA9ICdlZXEnLCAvLyBleGFjdCBlcXVhbFxuICBJTiA9ICdpbicsIC8vIG1hdGNoIGF0IGxlYXN0IG9uZSBvZiB0aGUgcHJvdmlkZWQgdmFsdWVzICh2YWx1ZSBoYXMgdG8gYmUgYW4gYXJyYXkpXG4gIEdSRUFURVJfVEhBTiA9ICdndCcsIC8vIGdyZWF0ZXIgdGhhblxuICBHUkVBVEVSX09SX0VRVUFMID0gJ2d0ZScsIC8vIGdyZWF0ZXIgdGhhbiBvciBlcXVhbFxuICBMRVNTX1RIQU4gPSAnbHQnLCAvLyBsZXNzIHRoYW5cbiAgTEVTU19PUl9FUVVBTCA9ICdsdGUnLCAvLyBsZXNzIHRoYW4gb3IgZXF1YWxcbiAgSU5URVJWQUwgPSAnZ3RsdCcsIC8vIGludGVydmFsXG4gIElOVEVSVkFMX0lOQ0xVREVfQk9USCA9ICdndGVsdGUnLCAvLyBpbnRlcnZhbCBpbmNsdWRlIGxlZnQgYW5kIHJpZ2h0XG4gIElOVEVSVkFMX0lOQ0xVREVfVE8gPSAnZ3RsdGUnLCAvLyBpbnRlcnZhbCBpbmNsdWRlIHJpZ2h0XG4gIElOVEVSVkFMX0lOQ0xVREVfRlJPTSA9ICdndGVsdCcsIC8vIGludGVydmFsIGluY2x1ZGUgbGVmdFxuICBSQU5HRSA9ICdyZycsIC8vIGFnZ2VnYXRpb24gcmFuZ2VzXG4gIExJS0UgPSAnbGlrZScsIC8vIGxpa2VcbiAgQ09OVEFJTlMgPSAnY29udGFpbnMnIC8vIGNvbnRhaW5zXG59XG5leHBvcnQgY29uc3QgT3BlcmF0b3JMYWJlbCA9IHtcbiAgLyoqIGVxdWFsICovXG4gIEVRVUFMOiAnPScsXG4gIC8qKiBleGFjdCBlcXVhbCAqL1xuICBFRVFVQUw6ICc9PScsXG4gIC8qKiBtYXRjaCBhdCBsZWFzdCBvbmUgb2YgdGhlIHByb3ZpZGVkIHZhbHVlcyAodmFsdWUgaGFzIHRvIGJlIGFuIGFycmF5KSAgKi9cbiAgSU46ICd+JyxcbiAgLyoqIGdyZWF0ZXIgdGhhbiAqL1xuICBHUkVBVEVSX1RIQU46ICc+JyxcbiAgLyoqIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCAqL1xuICBHUkVBVEVSX09SX0VRVUFMOiAn4om9JywgLy9cbiAgTEVTU19USEFOOiAnPCcsIC8vIGxlc3MgdGhhblxuICBMRVNTX09SX0VRVUFMOiAn4om8JywgLy8gbGVzcyB0aGFuIG9yIGVxdWFsXG4gIElOVEVSVkFMOiAnPD4nLCAvLyBpbnRlcnZhbFxuICBJTlRFUlZBTF9JTkNMVURFX0JPVEg6ICctJywgLy8gaW50ZXJ2YWwgaW5jbHVkZSBsZWZ0IGFuZCByaWdodFxuICBJTlRFUlZBTF9JTkNMVURFX1RPOiAnPi0nLCAvLyBpbnRlcnZhbCBpbmNsdWRlIHJpZ2h0XG4gIElOVEVSVkFMX0lOQ0xVREVfRlJPTTogJy08JywgLy8gaW50ZXJ2YWwgaW5jbHVkZSBsZWZ0XG4gIFJBTkdFOiAnPScsIC8vIGFnZ2VnYXRpb24gcmFuZ2VzXG4gIExJS0U6ICd+JywgLy8gbGlrZVxuICBDT05UQUlOUzogJ34nIC8vIGNvbnRhaW5zXG59O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzcG9uc2Uge1xuICBoYXNNb3JlSXRlbXM6IGJvb2xlYW47XG4gIG51bUl0ZW1zOiBudW1iZXI7XG4gIHRvdGFsTnVtSXRlbXM6IG51bWJlcjtcbiAgb2JqZWN0czogQ29yZUFwaU9iamVjdFtdO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBwcm92aWRpbmcgYSBzZWFyY2ggc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFJlc3VsdCB7XG4gIGhhc01vcmVJdGVtczogYm9vbGVhbjtcbiAgdG90YWxOdW1JdGVtczogbnVtYmVyO1xuICBpdGVtczogU2VhcmNoUmVzdWx0SXRlbVtdO1xuICAvKipcbiAgICogb2JqZWN0IHR5cGVzIHdpdGhpbiB0aGUgcmVzdWx0XG4gICAqL1xuXG4gIG9iamVjdFR5cGVzOiBzdHJpbmdbXTtcbn1cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgaXRlbSBvZiBzZWFyY2ggcmVzdWx0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFJlc3VsdEl0ZW0ge1xuICBvYmplY3RUeXBlSWQ6IHN0cmluZztcbiAgY29udGVudD86IFNlYXJjaFJlc3VsdENvbnRlbnQ7XG4gIHBlcm1pc3Npb25zPzogU2VhcmNoUmVzdWx0UGVybWlzc2lvbnM7XG4gIGZpZWxkczogTWFwPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSZXN1bHRQZXJtaXNzaW9ucyB7XG4gIHJlYWQ6IEFycmF5PCdtZXRhZGF0YScgfCAnY29udGVudCc+O1xuICB3cml0ZTogQXJyYXk8J21ldGFkYXRhJyB8ICdjb250ZW50Jz47XG4gIGRlbGV0ZTogQXJyYXk8J29iamVjdCcgfCAnY29udGVudCc+O1xufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hSZXN1bHRDb250ZW50ID0gQ29udGVudFN0cmVhbTtcbi8vIC8qKlxuLy8gICogSW50ZXJmYWNlIHByb3ZpZGluZyBzZWFyY2ggcXVlcnkgcHJvcGVydGllcywgdGhhdCBjYW4gYmUgc2VuZCB0b1xuLy8gICogdGhlIHNlYXJjaCBzZXJ2aWNlXG4vLyAgKi9cbi8vIGV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUXVlcnlQcm9wZXJ0aWVzIHtcbi8vICAgdGVybT86IHN0cmluZztcbi8vICAgc2l6ZT86IG51bWJlcjtcbi8vICAgZmllbGRzPzogc3RyaW5nW107XG4vLyAgIGZyb20/OiBudW1iZXI7XG4vLyAgIGFnZ3M/OiBzdHJpbmdbXTtcbi8vICAgbWF4SXRlbXM/OiBudW1iZXI7XG4vLyAgIHR5cGVzPzogc3RyaW5nW107IC8vIG1peGVkIGxpc3Qgb2YgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IG9iamVjdCB0eXBlc1xuLy8gICBsb3RzPzogc3RyaW5nW107IC8vIGxpc3Qgb2YgbGVhZGluZyBvYmplY3QgdHlwZXNcbi8vICAgZmlsdGVycz86IGFueTtcbi8vICAgaGlkZGVuRmlsdGVycz86IGFueTsgLy8gaGlkZGVuIGZpbHRlcnMgdGhhdCB3aWxsIGJlIGNvbWJpbmVkIHdpdGggU2VhcmNoUXVlcnkgZmlsdGVycyB2aWEgc2VhcmNoIHNlcnZpY2Vcbi8vICAgdGFibGVGaWx0ZXJzPzogYW55OyAvLyB0YWJsZSBmaWx0ZXJzIHRoYXQgYWxsb3dzIHRvIHNlYXJjaCBjb21wbGV4IHF1ZXJpZXNcbi8vICAgc29ydD86IGFueTtcbi8vICAgdGFncz86IGFueTtcbi8vICAgc2NvcGU/OiAnYWxsJyB8ICdtZXRhZGF0YScgfCAnY29udGVudCc7XG4vLyB9XG5cbi8qKlxuICogSW50ZXJmYWNlIHByb3ZpZGluZyB0aGUgZXN0aW1hdGVkIHJlc3VsdCBvZiB0aGUgY3VycmVudCBxdWVyeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGVSZXN1bHQge1xuICAvKipcbiAgICogbnVtYmVyIG9mIHJlc3VsdHMgZm91bmRcbiAgICovXG4gIHRvdGFsTnVtSXRlbXM6IG51bWJlcjtcbiAgYWdncmVnYXRpb25zOiBBZ2dyZWdhdGlvbltdO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG9mIGEgb25lIHNlYXJjaCBxdWVyeSBhZ2dyZWdhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0aW9uIHtcbiAgYWdnS2V5OiBzdHJpbmc7XG4gIGVudHJpZXM6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBjb3VudDogbnVtYmVyO1xuICB9W107XG59XG4iXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy95dXV2aXMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlL3NlYXJjaC9zZWFyY2guc2VydmljZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0VBLE1BQU0sQ0FBTixJQUFZLFFBZVg7QUFmRCxXQUFZLFFBQVE7SUFDbEIsd0JBQVksQ0FBQTtJQUNaLDBCQUFjLENBQUE7SUFDZCxxQkFBUyxDQUFBO0lBQ1QsK0JBQW1CLENBQUE7SUFDbkIsb0NBQXdCLENBQUE7SUFDeEIsNEJBQWdCLENBQUE7SUFDaEIsaUNBQXFCLENBQUE7SUFDckIsNkJBQWlCLENBQUE7SUFDakIsNENBQWdDLENBQUE7SUFDaEMseUNBQTZCLENBQUE7SUFDN0IsMkNBQStCLENBQUE7SUFDL0Isd0JBQVksQ0FBQTtJQUNaLHlCQUFhLENBQUE7SUFDYixpQ0FBcUIsQ0FBQSxDQUFDLFdBQVc7QUFDbkMsQ0FBQyxFQWZXLFFBQVEsS0FBUixRQUFRLFFBZW5CO0FBQ0QsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLFlBQVk7SUFDWixLQUFLLEVBQUUsR0FBRztJQUNWLGtCQUFrQjtJQUNsQixNQUFNLEVBQUUsSUFBSTtJQUNaLDRFQUE0RTtJQUM1RSxFQUFFLEVBQUUsR0FBRztJQUNQLG1CQUFtQjtJQUNuQixZQUFZLEVBQUUsR0FBRztJQUNqQiw0QkFBNEI7SUFDNUIsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDekIsU0FBUyxFQUFFLEdBQUcsRUFBRSxZQUFZO0lBQzVCLGFBQWEsRUFBRSxHQUFHLEVBQUUscUJBQXFCO0lBQ3pDLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVztJQUMzQixxQkFBcUIsRUFBRSxHQUFHLEVBQUUsa0NBQWtDO0lBQzlELG1CQUFtQixFQUFFLElBQUksRUFBRSx5QkFBeUI7SUFDcEQscUJBQXFCLEVBQUUsSUFBSSxFQUFFLHdCQUF3QjtJQUNyRCxLQUFLLEVBQUUsR0FBRyxFQUFFLG9CQUFvQjtJQUNoQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU87SUFDbEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxXQUFXO0NBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50U3RyZWFtLCBDb3JlQXBpT2JqZWN0IH0gZnJvbSAnLi4vZG1zL2Rtcy5zZXJ2aWNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIERhdGVSYW5nZSA9ICd0b2RheScgfCAneWVzdGVyZGF5JyB8ICd0aGlzV2VlaycgfCAnbGFzdFdlZWsnIHwgJ3RoaXNNb250aCcgfCAnbGFzdE1vbnRoJyB8ICd0aGlzWWVhcicgfCAnbGFzdFllYXInO1xuZXhwb3J0IHR5cGUgRmlsZXNpemVSYW5nZSA9ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgfCAndmVyeWxhcmdlJztcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hRdWVyeSB7XG4gIC8vIC0tIEZ1bGx0ZXh0IC0tXG4gIC8vIFNlYXJjaCB0ZXJtXG4gIHRlcm0/OiBzdHJpbmc7XG4gIC8vIHdoZXJlIHRvIHNlYXJjaFxuICBzY29wZT86ICdtZXRhZGF0YScgfCAnY29udGVudCc7XG5cbiAgLy8gLS0gUGFnaW5hdGlvbiAtLVxuICAvLyBOdW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuXG4gIHNpemU/OiBudW1iZXI7XG4gIC8vIE51bWJlciBvZiBpdGVtcyB0byBza2lwIChvZmZzZXQpXG4gIGZyb20/OiBudW1iZXI7XG5cbiAgLy8gLS0gRmllbGRzIC0tXG4gIC8vIE9iamVjdCBmaWVsZHMgdG8gcmV0dXJuXG4gIGZpZWxkcz86IHN0cmluZ1tdO1xuXG4gIC8vIC0tIEFnZ3JlZ2F0aW9ucyAtLVxuICAvLyBBZ2dyZWdhdGlvbnMgdG8gcmV0dXJuXG4gIGFnZ3M/OiBzdHJpbmdbXTtcblxuICAvLyAtLSBPYmplY3QgVHlwZXMgLS1cbiAgLy8gT2JqZWN0IHR5cGVzIChpbmNsLiBTT1RzKSB0byBzZWFyY2ggZm9yXG4gIHR5cGVzPzogc3RyaW5nW107XG5cbiAgLy8gLS0gRmlsdGVycyAtLVxuICAvLyBGaWx0ZXIgYnkgZmllbGRcbiAgZmlsdGVycz86IFNlYXJjaEZpbHRlcltdO1xuICAvLyBmaWx0ZXJzIHRvIGJlIGFwcGxpZWQgdG8gdGFibGUgY29sdW1uc1xuICB0YWJsZUZpbHRlcnM/OiBUYWJsZUZpbHRlcltdO1xuXG4gIC8vIC0tIFNvcnQgLS1cbiAgLy8gU29ydCBieSBmaWVsZFxuICBzb3J0PzogU29ydE9wdGlvbltdO1xuICBpbmNsdWRlUGVybWlzc2lvbnM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvcnRPcHRpb24ge1xuICBmaWVsZDogc3RyaW5nO1xuICBvcmRlcjogJ2FzYycgfCAnZGVzYyc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoRmlsdGVyIHtcbiAgLy8gZmllbGQgdG8gZmlsdGVyIGJ5XG4gIGY6IHN0cmluZztcbiAgbzogT3BlcmF0b3I7XG4gIC8vIHZhbHVlIGZvciB0aGUgZmlsdGVyXG4gIHYxOiB1bmtub3duO1xuICAvLyBvcHRpb25hbCBzZWNvbmQgdmFsdWUgZm9yIGludGVydmFsIGZpbHRlcnNcbiAgdjI/OiB1bmtub3duO1xuICAvLyB3aGV0aGVyIHRvIG5lZ2F0ZSB0aGUgZmlsdGVyXG4gIHVzZU5vdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVGaWx0ZXIge1xuICB0YWJsZTogc3RyaW5nO1xuICBjb2x1bW5GaWx0ZXJzOiBTZWFyY2hGaWx0ZXJbXTtcbn1cblxuZXhwb3J0IGVudW0gT3BlcmF0b3Ige1xuICBFUVVBTCA9ICdlcScsIC8vIGVxdWFsXG4gIEVFUVVBTCA9ICdlZXEnLCAvLyBleGFjdCBlcXVhbFxuICBJTiA9ICdpbicsIC8vIG1hdGNoIGF0IGxlYXN0IG9uZSBvZiB0aGUgcHJvdmlkZWQgdmFsdWVzICh2YWx1ZSBoYXMgdG8gYmUgYW4gYXJyYXkpXG4gIEdSRUFURVJfVEhBTiA9ICdndCcsIC8vIGdyZWF0ZXIgdGhhblxuICBHUkVBVEVSX09SX0VRVUFMID0gJ2d0ZScsIC8vIGdyZWF0ZXIgdGhhbiBvciBlcXVhbFxuICBMRVNTX1RIQU4gPSAnbHQnLCAvLyBsZXNzIHRoYW5cbiAgTEVTU19PUl9FUVVBTCA9ICdsdGUnLCAvLyBsZXNzIHRoYW4gb3IgZXF1YWxcbiAgSU5URVJWQUwgPSAnZ3RsdCcsIC8vIGludGVydmFsXG4gIElOVEVSVkFMX0lOQ0xVREVfQk9USCA9ICdndGVsdGUnLCAvLyBpbnRlcnZhbCBpbmNsdWRlIGxlZnQgYW5kIHJpZ2h0XG4gIElOVEVSVkFMX0lOQ0xVREVfVE8gPSAnZ3RsdGUnLCAvLyBpbnRlcnZhbCBpbmNsdWRlIHJpZ2h0XG4gIElOVEVSVkFMX0lOQ0xVREVfRlJPTSA9ICdndGVsdCcsIC8vIGludGVydmFsIGluY2x1ZGUgbGVmdFxuICBSQU5HRSA9ICdyZycsIC8vIGFnZ2VnYXRpb24gcmFuZ2VzXG4gIExJS0UgPSAnbGlrZScsIC8vIGxpa2VcbiAgQ09OVEFJTlMgPSAnY29udGFpbnMnIC8vIGNvbnRhaW5zXG59XG5leHBvcnQgY29uc3QgT3BlcmF0b3JMYWJlbCA9IHtcbiAgLyoqIGVxdWFsICovXG4gIEVRVUFMOiAnPScsXG4gIC8qKiBleGFjdCBlcXVhbCAqL1xuICBFRVFVQUw6ICc9PScsXG4gIC8qKiBtYXRjaCBhdCBsZWFzdCBvbmUgb2YgdGhlIHByb3ZpZGVkIHZhbHVlcyAodmFsdWUgaGFzIHRvIGJlIGFuIGFycmF5KSAgKi9cbiAgSU46ICd+JyxcbiAgLyoqIGdyZWF0ZXIgdGhhbiAqL1xuICBHUkVBVEVSX1RIQU46ICc+JyxcbiAgLyoqIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCAqL1xuICBHUkVBVEVSX09SX0VRVUFMOiAn4om9JywgLy9cbiAgTEVTU19USEFOOiAnPCcsIC8vIGxlc3MgdGhhblxuICBMRVNTX09SX0VRVUFMOiAn4om8JywgLy8gbGVzcyB0aGFuIG9yIGVxdWFsXG4gIElOVEVSVkFMOiAnPD4nLCAvLyBpbnRlcnZhbFxuICBJTlRFUlZBTF9JTkNMVURFX0JPVEg6ICctJywgLy8gaW50ZXJ2YWwgaW5jbHVkZSBsZWZ0IGFuZCByaWdodFxuICBJTlRFUlZBTF9JTkNMVURFX1RPOiAnPi0nLCAvLyBpbnRlcnZhbCBpbmNsdWRlIHJpZ2h0XG4gIElOVEVSVkFMX0lOQ0xVREVfRlJPTTogJy08JywgLy8gaW50ZXJ2YWwgaW5jbHVkZSBsZWZ0XG4gIFJBTkdFOiAnPScsIC8vIGFnZ2VnYXRpb24gcmFuZ2VzXG4gIExJS0U6ICd+JywgLy8gbGlrZVxuICBDT05UQUlOUzogJ34nIC8vIGNvbnRhaW5zXG59O1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzcG9uc2Uge1xuICBoYXNNb3JlSXRlbXM6IGJvb2xlYW47XG4gIG51bUl0ZW1zOiBudW1iZXI7XG4gIHRvdGFsTnVtSXRlbXM6IG51bWJlcjtcbiAgb2JqZWN0czogQ29yZUFwaU9iamVjdFtdO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBwcm92aWRpbmcgYSBzZWFyY2ggc2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFJlc3VsdCB7XG4gIGhhc01vcmVJdGVtczogYm9vbGVhbjtcbiAgdG90YWxOdW1JdGVtczogbnVtYmVyO1xuICBpdGVtczogU2VhcmNoUmVzdWx0SXRlbVtdO1xuICAvKipcbiAgICogb2JqZWN0IHR5cGVzIHdpdGhpbiB0aGUgcmVzdWx0XG4gICAqL1xuXG4gIG9iamVjdFR5cGVzOiBzdHJpbmdbXTtcbn1cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgaXRlbSBvZiBzZWFyY2ggcmVzdWx0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFJlc3VsdEl0ZW0ge1xuICBvYmplY3RUeXBlSWQ6IHN0cmluZztcbiAgY29udGVudD86IFNlYXJjaFJlc3VsdENvbnRlbnQ7XG4gIHBlcm1pc3Npb25zPzogU2VhcmNoUmVzdWx0UGVybWlzc2lvbnM7XG4gIGZpZWxkczogTWFwPHN0cmluZywgYW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSZXN1bHRQZXJtaXNzaW9ucyB7XG4gIHJlYWQ6IEFycmF5PCdtZXRhZGF0YScgfCAnY29udGVudCc+O1xuICB3cml0ZTogQXJyYXk8J21ldGFkYXRhJyB8ICdjb250ZW50Jz47XG4gIGRlbGV0ZTogQXJyYXk8J29iamVjdCcgfCAnY29udGVudCc+O1xufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hSZXN1bHRDb250ZW50ID0gQ29udGVudFN0cmVhbTtcbi8vIC8qKlxuLy8gICogSW50ZXJmYWNlIHByb3ZpZGluZyBzZWFyY2ggcXVlcnkgcHJvcGVydGllcywgdGhhdCBjYW4gYmUgc2VuZCB0b1xuLy8gICogdGhlIHNlYXJjaCBzZXJ2aWNlXG4vLyAgKi9cbi8vIGV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUXVlcnlQcm9wZXJ0aWVzIHtcbi8vICAgdGVybT86IHN0cmluZztcbi8vICAgc2l6ZT86IG51bWJlcjtcbi8vICAgZmllbGRzPzogc3RyaW5nW107XG4vLyAgIGZyb20/OiBudW1iZXI7XG4vLyAgIGFnZ3M/OiBzdHJpbmdbXTtcbi8vICAgbWF4SXRlbXM/OiBudW1iZXI7XG4vLyAgIHR5cGVzPzogc3RyaW5nW107IC8vIG1peGVkIGxpc3Qgb2YgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IG9iamVjdCB0eXBlc1xuLy8gICBsb3RzPzogc3RyaW5nW107IC8vIGxpc3Qgb2YgbGVhZGluZyBvYmplY3QgdHlwZXNcbi8vICAgZmlsdGVycz86IGFueTtcbi8vICAgaGlkZGVuRmlsdGVycz86IGFueTsgLy8gaGlkZGVuIGZpbHRlcnMgdGhhdCB3aWxsIGJlIGNvbWJpbmVkIHdpdGggU2VhcmNoUXVlcnkgZmlsdGVycyB2aWEgc2VhcmNoIHNlcnZpY2Vcbi8vICAgdGFibGVGaWx0ZXJzPzogYW55OyAvLyB0YWJsZSBmaWx0ZXJzIHRoYXQgYWxsb3dzIHRvIHNlYXJjaCBjb21wbGV4IHF1ZXJpZXNcbi8vICAgc29ydD86IGFueTtcbi8vICAgdGFncz86IGFueTtcbi8vICAgc2NvcGU/OiAnYWxsJyB8ICdtZXRhZGF0YScgfCAnY29udGVudCc7XG4vLyB9XG5cbi8qKlxuICogSW50ZXJmYWNlIHByb3ZpZGluZyB0aGUgZXN0aW1hdGVkIHJlc3VsdCBvZiB0aGUgY3VycmVudCBxdWVyeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGVSZXN1bHQge1xuICAvKipcbiAgICogbnVtYmVyIG9mIHJlc3VsdHMgZm91bmRcbiAgICovXG4gIHRvdGFsTnVtSXRlbXM6IG51bWJlcjtcbiAgYWdncmVnYXRpb25zOiBBZ2dyZWdhdGlvbltdO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG9mIGEgb25lIHNlYXJjaCBxdWVyeSBhZ2dyZWdhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0aW9uIHtcbiAgYWdnS2V5OiBzdHJpbmc7XG4gIGVudHJpZXM6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBjb3VudDogbnVtYmVyO1xuICB9W107XG59XG4iXX0=
@@ -2,9 +2,12 @@ import { inject, Injectable } from '@angular/core';
2
2
  import { map } from 'rxjs/operators';
3
3
  import { BackendService } from '../backend/backend.service';
4
4
  import { BaseObjectTypeField, ContentStreamField } from '../system/system.enum';
5
+ import { Operator } from './search.service.interface';
6
+ import { SystemService } from '../system/system.service';
5
7
  import * as i0 from "@angular/core";
6
8
  export class SearchService {
7
9
  #backend = inject(BackendService);
10
+ #system = inject(SystemService);
8
11
  static { this.DEFAULT_QUERY_SIZE = 50; }
9
12
  /**
10
13
  * Execute a search query ans transform the result to a SearchResult object
@@ -166,6 +169,86 @@ export class SearchService {
166
169
  };
167
170
  return result;
168
171
  }
172
+ /**
173
+ * Maps data extracted from a search form to search filters. Every key of the form data object
174
+ * will be mapped to a search filter.
175
+ * @param formData form data
176
+ * @returns Array of search filters
177
+ */
178
+ formDataToSearchFilter(formData) {
179
+ const isRangeValue = (v) => {
180
+ return typeof v === 'object' && v !== null && 'firstValue' in v && 'operator' in v;
181
+ };
182
+ const filters = [];
183
+ Object.keys(formData).forEach((key) => {
184
+ const value = formData[key];
185
+ if (isRangeValue(value)) {
186
+ const f = this.rangeValueToSearchFilter(value, key);
187
+ if (f)
188
+ filters.push(f);
189
+ }
190
+ else {
191
+ filters.push({
192
+ f: key,
193
+ o: Array.isArray(value) ? Operator.IN : Operator.EQUAL,
194
+ v1: value
195
+ });
196
+ }
197
+ });
198
+ return filters;
199
+ }
200
+ rangeValueToSearchFilter(value, property) {
201
+ return this.#system.getObjectTypeField(property)?.propertyType === 'datetime'
202
+ ? this.#dateRangeValueToSearchFilter(value, property)
203
+ : {
204
+ f: property,
205
+ o: value.operator,
206
+ v1: value.firstValue,
207
+ v2: value.secondValue
208
+ };
209
+ }
210
+ #dateRangeValueToSearchFilter(rv, property) {
211
+ const v1 = rv.firstValue.toISOString();
212
+ const v2 = rv.secondValue ? rv.secondValue.toISOString() : undefined;
213
+ let filter;
214
+ switch (rv.operator) {
215
+ case Operator.EQUAL: {
216
+ filter = {
217
+ f: property,
218
+ o: Operator.INTERVAL_INCLUDE_BOTH,
219
+ v1: v1.split('T')[0] + 'T00:00:00.000',
220
+ v2: v1.split('T')[0] + 'T23:59:59.000'
221
+ };
222
+ break;
223
+ }
224
+ case Operator.GREATER_OR_EQUAL: {
225
+ filter = {
226
+ f: property,
227
+ o: rv.operator,
228
+ v1: v1.split('T')[0] + 'T00:00:00.000'
229
+ };
230
+ break;
231
+ }
232
+ case Operator.LESS_OR_EQUAL: {
233
+ filter = {
234
+ f: property,
235
+ o: rv.operator,
236
+ v1: v1.split('T')[0] + 'T23:59:59.000'
237
+ };
238
+ break;
239
+ }
240
+ case Operator.INTERVAL_INCLUDE_BOTH: {
241
+ filter = {
242
+ f: property,
243
+ o: rv.operator,
244
+ v1: v1.split('T')[0] + 'T00:00:00.000',
245
+ v2: v2.split('T')[0] + 'T23:59:59.000'
246
+ };
247
+ break;
248
+ }
249
+ }
250
+ return filter;
251
+ }
169
252
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
170
253
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchService, providedIn: 'root' }); }
171
254
  }
@@ -175,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
175
258
  providedIn: 'root'
176
259
  }]
177
260
  }] });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTWhGLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7YUFFM0IsdUJBQWtCLEdBQUcsRUFBRSxBQUFMLENBQU07SUFFL0I7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxLQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQUMsS0FBa0I7UUFDMUIsSUFBRyxDQUFDLEtBQUssQ0FBQyxJQUFJO1lBQUUsS0FBSyxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsa0JBQWtCLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsU0FBaUIsRUFBRSxJQUFJLEdBQUcsRUFBRTtR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Z3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYWNrZW5kU2VydmljZSB9IGZyb20gJy4uL2JhY2tlbmQvYmFja2VuZC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VPYmplY3RUeXBlRmllbGQsIENvbnRlbnRTdHJlYW1GaWVsZCB9IGZyb20gJy4uL3N5c3RlbS9zeXN0ZW0uZW51bSc7XG5pbXBvcnQgeyBBZ2dyZWdhdGVSZXN1bHQsIEFnZ3JlZ2F0aW9uLCBTZWFyY2hRdWVyeSwgU2VhcmNoUmVzcG9uc2UsIFNlYXJjaFJlc3VsdCwgU2VhcmNoUmVzdWx0Q29udGVudCwgU2VhcmNoUmVzdWx0SXRlbSB9IGZyb20gJy4vc2VhcmNoLnNlcnZpY2UuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XG4gICNiYWNrZW5kID0gaW5qZWN0KEJhY2tlbmRTZXJ2aWNlKTtcblxuICBzdGF0aWMgREVGQVVMVF9RVUVSWV9TSVpFID0gNTA7XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYSBzZWFyY2ggcXVlcnkgYW5zIHRyYW5zZm9ybSB0aGUgcmVzdWx0IHRvIGEgU2VhcmNoUmVzdWx0IG9iamVjdFxuICAgKiBAcGFyYW0gcXVlcnkgVGhlIHNlYXJjaCBxdWVyeVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIGEgU2VhcmNoUmVzdWx0XG4gICAqL1xuICBzZWFyY2gocXVlcnk6IFNlYXJjaFF1ZXJ5KTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSYXcocXVlcnkpLnBpcGUobWFwKChyZXMpID0+IHRoaXMudG9TZWFyY2hSZXN1bHQocmVzKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYSByYXcgc2VhcmNoIHF1ZXJ5IGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBpcy5cbiAgICogQHBhcmFtIHF1ZXJ5IFRoZSBzZWFyY2ggcXVlcnlcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0aGUgcmF3IHNlYXJjaCByZXN1bHRcbiAgICovXG4gIHNlYXJjaFJhdyhxdWVyeTogU2VhcmNoUXVlcnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmKCFxdWVyeS5zaXplKSBxdWVyeS5zaXplID0gU2VhcmNoU2VydmljZS5ERUZBVUxUX1FVRVJZX1NJWkU7XG4gICAgcmV0dXJuIHRoaXMuI2JhY2tlbmQucG9zdChgL2Rtcy9vYmplY3RzL3NlYXJjaGAsIHF1ZXJ5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWFyY2ggZm9yIG9iamVjdHMgaW4gdGhlIGRtcyB1c2luZyBDTUlTIGxpa2UgU1FMIHN5bnRheC5cbiAgICogQHBhcmFtIHN0YXRlbWVudCBUaGUgcXVlcnkgc3RhdGVtZW50XG4gICAqIEBwYXJhbSBzaXplIFRoZSBudW1iZXIgb2YgaXRlbXMgdG8gcmV0dXJuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgb2YgYSBTZWFyY2hSZXN1bHRcbiAgICovXG4gIHNlYXJjaENtaXMoc3RhdGVtZW50OiBzdHJpbmcsIHNpemUgPSA1MCk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0PiB7XG4gICAgcmV0dXJuIHRoaXMuI2JhY2tlbmRcbiAgICAgIC5wb3N0KFxuICAgICAgICAnL2Rtcy9vYmplY3RzL3NlYXJjaCcsXG4gICAgICAgIHtcbiAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgc3RhdGVtZW50LFxuICAgICAgICAgICAgc2tpcENvdW50OiAwLFxuICAgICAgICAgICAgbWF4SXRlbXM6IHNpemUsXG4gICAgICAgICAgICBoYW5kbGVEZWxldGVkRG9jdW1lbnRzOiAnREVMRVRFRF9ET0NVTUVOVFNfRVhDTFVERSdcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gVXNpbmcgQVBJLVdFQiBiZWNhdXNlIGl0IGVucmljaGVzIHRoZSByZXNwb25zZSB3aXRoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gKHJlc29sdmVkIHVzZXIgbmFtZXMsIGV0Yy4pXG4gICAgICAgIC8vIEFwaUJhc2UuY29yZVxuICAgICAgKVxuICAgICAgLnBpcGUobWFwKChyZXMpID0+IHRoaXMudG9TZWFyY2hSZXN1bHQocmVzIGFzIFNlYXJjaFJlc3BvbnNlKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIGFnZ3JhZ2F0aW9ucyBmb3IgYSBnaXZlbiBxdWVyeS5cbiAgICogQHBhcmFtIHEgVGhlIHF1ZXJ5XG4gICAqIEBwYXJhbSBhZ2dyZWdhdGlvbnMgTGlzdCBvZiBhZ2dyZWdhdGlvbnMgdG8gYmUgZmV0Y2hlZCAoZS5nLiBgZW5haW86b2JqZWN0VHlwZUlkYFxuICAgKiB0byBnZXQgYW4gYWdncmVnYXRpb24gb2Ygb2JqZWN0IHR5cGVzKVxuICAgKi9cbiAgYWdncmVnYXRlKHE6IFNlYXJjaFF1ZXJ5LCBhZ2dyZWdhdGlvbnM6IHN0cmluZ1tdKSB7XG4gICAgcS5hZ2dzID0gYWdncmVnYXRpb25zO1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFJhdyhxKS5waXBlKG1hcCgocmVzKSA9PiB0aGlzLiN0b0FnZ3JlZ2F0ZVJlc3VsdChyZXMsIGFnZ3JlZ2F0aW9ucykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXAgc2VhcmNoIHJlc3VsdCBmcm9tIHRoZSBiYWNrZW5kIHRvIGFwcGxpY2F0aW9ucyBBZ2dyZWdhdGVSZXN1bHQgb2JqZWN0XG4gICAqIEBwYXJhbSBzZWFyY2hSZXNwb25zZSBUaGUgYmFja2VuZCByZXNwb25zZVxuICAgKiBAcGFyYW0gYWdncmVnYXRpb25zIFRoZSBhZ2dyZWdhdGlvbnMgdG8gYmUgZmV0Y2hlZFxuICAgKi9cbiAgI3RvQWdncmVnYXRlUmVzdWx0KHNlYXJjaFJlc3BvbnNlOiBhbnksIGFnZ3JlZ2F0aW9ucz86IHN0cmluZ1tdKTogQWdncmVnYXRlUmVzdWx0IHtcbiAgICBjb25zdCBhZ2c6IEFnZ3JlZ2F0aW9uW10gPSBbXTtcbiAgICBpZiAoYWdncmVnYXRpb25zKSB7XG4gICAgICBhZ2dyZWdhdGlvbnMuZm9yRWFjaCgoYSkgPT4ge1xuICAgICAgICBjb25zdCBhZzogQWdncmVnYXRpb24gPSB7XG4gICAgICAgICAgYWdnS2V5OiBhLFxuICAgICAgICAgIGVudHJpZXM6IHNlYXJjaFJlc3BvbnNlLm9iamVjdHMubWFwKChvOiBhbnkpID0+ICh7XG4gICAgICAgICAgICBrZXk6IG8ucHJvcGVydGllc1thXS52YWx1ZSxcbiAgICAgICAgICAgIGNvdW50OiBvLnByb3BlcnRpZXNbJ09CSkVDVF9DT1VOVCddLnZhbHVlXG4gICAgICAgICAgfSkpXG4gICAgICAgIH07XG4gICAgICAgIGFnZy5wdXNoKGFnKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdG90YWxOdW1JdGVtczogc2VhcmNoUmVzcG9uc2UudG90YWxOdW1JdGVtcyxcbiAgICAgIGFnZ3JlZ2F0aW9uczogYWdnXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHbyB0byBhIHBhZ2Ugb2YgYSBzZWFyY2ggcmVzdWx0LlxuICAgKiBAcGFyYW0gc2VhcmNoUmVzdWx0IFRoZSBzZWFyY2ggcmVzdWx0ICh0aGF0IHN1cHBvcnRzIHBhZ2luYXRpb24pXG4gICAqIEBwYXJhbSBwYWdlIFRoZSBudW1iZXIgb2YgdGhlIHBhZ2UgdG8gZ28gdG9cbiAgICovXG4gIGdldFBhZ2UocXVlcnk6IFNlYXJjaFF1ZXJ5LCBwYWdlOiBudW1iZXIpOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdD4ge1xuICAgIHF1ZXJ5LmZyb20gPSAocGFnZSAtIDEpICogKHF1ZXJ5LnNpemUgfHwgU2VhcmNoU2VydmljZS5ERUZBVUxUX1FVRVJZX1NJWkUpO1xuICAgIHJldHVybiB0aGlzLnNlYXJjaChxdWVyeSk7XG4gIH1cblxuICAvKipcbiAgICogTWFwIHNlYXJjaCByZXN1bHQgZnJvbSB0aGUgYmFja2VuZCB0byBhcHBsaWNhdGlvbnMgU2VhcmNoUmVzdWx0IG9iamVjdFxuICAgKiBAcGFyYW0gc2VhcmNoUmVzcG9uc2UgVGhlIGJhY2tlbmQgcmVzcG9uc2VcbiAgICovXG4gIHRvU2VhcmNoUmVzdWx0KHNlYXJjaFJlc3BvbnNlOiBTZWFyY2hSZXNwb25zZSk6IFNlYXJjaFJlc3VsdCB7XG4gICAgY29uc3QgcmVzdWx0TGlzdEl0ZW1zOiBTZWFyY2hSZXN1bHRJdGVtW10gPSBbXTtcbiAgICBjb25zdCBvYmplY3RUeXBlczogc3RyaW5nW10gPSBbXTtcblxuICAgIHNlYXJjaFJlc3BvbnNlLm9iamVjdHMuZm9yRWFjaCgobzogYW55KSA9PiB7XG4gICAgICBjb25zdCBmaWVsZHMgPSBuZXcgTWFwKCk7XG4gICAgICAvLyBwcm9jZXNzIHByb3BlcnRpZXMgc2VjdGlvbiBvZiByZXN1bHRcbiAgICAgIE9iamVjdC5rZXlzKG8ucHJvcGVydGllcykuZm9yRWFjaCgoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IHZhbHVlID0gby5wcm9wZXJ0aWVzW2tleV0udmFsdWU7XG4gICAgICAgIGlmIChvLnByb3BlcnRpZXNba2V5XS5jbHZhbHVlKSB7XG4gICAgICAgICAgLy8gdGFibGUgZmllbGRzIHdpbGwgaGF2ZSBhIGNsaWVudFZhbHVlIHRvbyAuLi5cbiAgICAgICAgICB2YWx1ZSA9IG8ucHJvcGVydGllc1trZXldLmNsdmFsdWU7XG4gICAgICAgICAgLy8gLi4uIGFuZCBhbHNvIG1heSBjb250YWluIHZhbHVlcyB0aGF0IG5lZWQgdG8gYmUgcmVzb2x2ZWRcbiAgICAgICAgICBpZiAoby5wcm9wZXJ0aWVzW2tleV0ucmVzb2x2ZWRWYWx1ZXMpIHtcbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goKHY6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBPYmplY3Qua2V5cyh2KS5mb3JFYWNoKChrKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzVmFsdWUgPSBBcnJheS5pc0FycmF5KHZba10pID8gdltrXS5tYXAoKGk6IGFueSkgPT4gby5wcm9wZXJ0aWVzW2tleV0ucmVzb2x2ZWRWYWx1ZXNbaV0pIDogby5wcm9wZXJ0aWVzW2tleV0ucmVzb2x2ZWRWYWx1ZXNbdltrXV07XG4gICAgICAgICAgICAgICAgaWYgKHJlc1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICB2W2Ake2t9X3RpdGxlYF0gPSByZXNWYWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZmllbGRzLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgaWYgKG8ucHJvcGVydGllc1trZXldLnRpdGxlKSB7XG4gICAgICAgICAgZmllbGRzLnNldChrZXkgKyAnX3RpdGxlJywgby5wcm9wZXJ0aWVzW2tleV0udGl0bGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8gcHJvY2VzcyBjb250ZW50U3RyZWFtcyBzZWN0aW9uIG9mIHJlc3VsdCBpZiBhdmFpbGFibGUuXG4gICAgICAvLyBPYmplY3RzIHRoYXQgZG9uJ3QgaGF2ZSBmaWxlcyBhdHRhY2hlZCB3b24ndCBoYXZlIHRoaXMgc2VjdGlvblxuICAgICAgbGV0IGNvbnRlbnQ6IFNlYXJjaFJlc3VsdENvbnRlbnQgfCB1bmRlZmluZWQ7XG4gICAgICBpZiAoby5jb250ZW50U3RyZWFtcyAmJiBvLmNvbnRlbnRTdHJlYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgLy8gd2UgYXNzdW1lIHRoYXQgZWFjaCByZXN1bHQgb2JqZWN0IG9ubHkgaGFzIE9ORSBmaWxlIGF0dGFjaGVkLCBhbHRvdWdoXG4gICAgICAgIC8vIHRoaXMgaXMgYW4gYXJyYXkgYW5kIHRoZXJlIG1heSBiZSBtb3JlXG4gICAgICAgIGNvbnN0IGNvbnRlbnRTdHJlYW0gPSBvLmNvbnRlbnRTdHJlYW1zWzBdO1xuICAgICAgICAvLyBhbHNvIGFkZCBjb250ZW50c3RyZWFtIHJlbGF0ZWQgZmllbGRzIHRvIHRoZSByZXN1bHQgZmllbGRzXG4gICAgICAgIGZpZWxkcy5zZXQoQ29udGVudFN0cmVhbUZpZWxkLkxFTkdUSCwgY29udGVudFN0cmVhbS5sZW5ndGgpO1xuICAgICAgICBmaWVsZHMuc2V0KENvbnRlbnRTdHJlYW1GaWVsZC5NSU1FX1RZUEUsIGNvbnRlbnRTdHJlYW0ubWltZVR5cGUpO1xuICAgICAgICBmaWVsZHMuc2V0KENvbnRlbnRTdHJlYW1GaWVsZC5GSUxFTkFNRSwgY29udGVudFN0cmVhbS5maWxlTmFtZSk7XG4gICAgICAgIGZpZWxkcy5zZXQoQ29udGVudFN0cmVhbUZpZWxkLklELCBjb250ZW50U3RyZWFtLmNvbnRlbnRTdHJlYW1JZCk7XG4gICAgICAgIGZpZWxkcy5zZXQoQ29udGVudFN0cmVhbUZpZWxkLlJBTkdFLCBjb250ZW50U3RyZWFtLmNvbnRlbnRTdHJlYW1SYW5nZSk7XG4gICAgICAgIGZpZWxkcy5zZXQoQ29udGVudFN0cmVhbUZpZWxkLlJFUE9TSVRPUllfSUQsIGNvbnRlbnRTdHJlYW0ucmVwb3NpdG9yeUlkKTtcbiAgICAgICAgZmllbGRzLnNldChDb250ZW50U3RyZWFtRmllbGQuRElHRVNULCBjb250ZW50U3RyZWFtLmRpZ2VzdCk7XG4gICAgICAgIGZpZWxkcy5zZXQoQ29udGVudFN0cmVhbUZpZWxkLkFSQ0hJVkVfUEFUSCwgY29udGVudFN0cmVhbS5hcmNoaXZlUGF0aCk7XG5cbiAgICAgICAgY29udGVudCA9IHtcbiAgICAgICAgICBjb250ZW50U3RyZWFtSWQ6IGNvbnRlbnRTdHJlYW0uY29udGVudFN0cmVhbUlkLFxuICAgICAgICAgIHJlcG9zaXRvcnlJZDogY29udGVudFN0cmVhbS5yZXBvc2l0b3J5SWQsXG4gICAgICAgICAgcmFuZ2U6IGNvbnRlbnRTdHJlYW0ucmFuZ2UsXG4gICAgICAgICAgZGlnZXN0OiBjb250ZW50U3RyZWFtLmRpZ2VzdCxcbiAgICAgICAgICBhcmNoaXZlUGF0aDogY29udGVudFN0cmVhbS5hcmNoaXZlUGF0aCxcbiAgICAgICAgICBmaWxlTmFtZTogY29udGVudFN0cmVhbS5maWxlTmFtZSxcbiAgICAgICAgICBtaW1lVHlwZTogY29udGVudFN0cmVhbS5taW1lVHlwZSxcbiAgICAgICAgICBzaXplOiBjb250ZW50U3RyZWFtLmxlbmd0aFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBvYmplY3RUeXBlSWQgPSBvLnByb3BlcnRpZXNbQmFzZU9iamVjdFR5cGVGaWVsZC5PQkpFQ1RfVFlQRV9JRF0gPyBvLnByb3BlcnRpZXNbQmFzZU9iamVjdFR5cGVGaWVsZC5PQkpFQ1RfVFlQRV9JRF0udmFsdWUgOiBudWxsO1xuICAgICAgaWYgKG9iamVjdFR5cGVzLmluZGV4T2Yob2JqZWN0VHlwZUlkKSA9PT0gLTEpIHtcbiAgICAgICAgb2JqZWN0VHlwZXMucHVzaChvYmplY3RUeXBlSWQpO1xuICAgICAgfVxuXG4gICAgICByZXN1bHRMaXN0SXRlbXMucHVzaCh7XG4gICAgICAgIG9iamVjdFR5cGVJZCxcbiAgICAgICAgY29udGVudCxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICBwZXJtaXNzaW9uczogby5wZXJtaXNzaW9uc1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXN1bHQ6IFNlYXJjaFJlc3VsdCA9IHtcbiAgICAgIGhhc01vcmVJdGVtczogc2VhcmNoUmVzcG9uc2UuaGFzTW9yZUl0ZW1zLFxuICAgICAgdG90YWxOdW1JdGVtczogc2VhcmNoUmVzcG9uc2UudG90YWxOdW1JdGVtcyxcbiAgICAgIGl0ZW1zOiByZXN1bHRMaXN0SXRlbXMsXG4gICAgICBvYmplY3RUeXBlc1xuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3l1dXZpcy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2Uvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEYsT0FBTyxFQUdMLFFBQVEsRUFPVCxNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFLekQsTUFBTSxPQUFPLGFBQWE7SUFDeEIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsQyxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBRXpCLHVCQUFrQixHQUFHLEVBQUUsQUFBTCxDQUFNO0lBRS9COzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLEtBQWtCO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSTtZQUFFLEtBQUssQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLGtCQUFrQixDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLFNBQWlCLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDckMsT0FBTyxJQUFJLENBQUMsUUFBUTthQUNqQixJQUFJLENBQ0gscUJBQXFCLEVBQ3JCO1lBQ0UsS0FBSyxFQUFFO2dCQUNMLFNBQVM7Z0JBQ1QsU0FBUyxFQUFFLENBQUM7Z0JBQ1osUUFBUSxFQUFFLElBQUk7Z0JBQ2Qsc0JBQXNCLEVBQUUsMkJBQTJCO2FBQ3BEO1NBQ0Y7UUFDRCx5R0FBeUc7UUFDekcsZUFBZTtTQUNoQjthQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxTQUFTLENBQUMsQ0FBYyxFQUFFLFlBQXNCO1FBQzlDLENBQUMsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFDLGNBQW1CLEVBQUUsWUFBdUI7UUFDN0QsTUFBTSxHQUFHLEdBQWtCLEVBQUUsQ0FBQztRQUM5QixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekIsTUFBTSxFQUFFLEdBQWdCO29CQUN0QixNQUFNLEVBQUUsQ0FBQztvQkFDVCxPQUFPLEVBQUUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQy9DLEdBQUcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7d0JBQzFCLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUs7cUJBQzFDLENBQUMsQ0FBQztpQkFDSixDQUFDO2dCQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPO1lBQ0wsYUFBYSxFQUFFLGNBQWMsQ0FBQyxhQUFhO1lBQzNDLFlBQVksRUFBRSxHQUFHO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxLQUFrQixFQUFFLElBQVk7UUFDdEMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksYUFBYSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0UsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsY0FBOEI7UUFDM0MsTUFBTSxlQUFlLEdBQXVCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLFdBQVcsR0FBYSxFQUFFLENBQUM7UUFFakMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUN4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLHVDQUF1QztZQUN2QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFXLEVBQUUsRUFBRTtnQkFDaEQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDOUIsK0NBQStDO29CQUMvQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7b0JBQ2xDLDJEQUEyRDtvQkFDM0QsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7NEJBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0NBQzNCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUMxSSxJQUFJLFFBQVEsRUFBRSxDQUFDO29DQUNiLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO2dDQUM3QixDQUFDOzRCQUNILENBQUMsQ0FBQyxDQUFDO3dCQUNMLENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM1QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgseURBQXlEO1lBQ3pELGlFQUFpRTtZQUNqRSxJQUFJLE9BQXdDLENBQUM7WUFDN0MsSUFBSSxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNwRCx3RUFBd0U7Z0JBQ3hFLHlDQUF5QztnQkFDekMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsNkRBQTZEO2dCQUM3RCxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVELE1BQU0sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNoRSxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ2pFLE1BQU0sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUN2RSxNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3pFLE1BQU0sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUV2RSxPQUFPLEdBQUc7b0JBQ1IsZUFBZSxFQUFFLGFBQWEsQ0FBQyxlQUFlO29CQUM5QyxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQVk7b0JBQ3hDLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSztvQkFDMUIsTUFBTSxFQUFFLGFBQWEsQ0FBQyxNQUFNO29CQUM1QixXQUFXLEVBQUUsYUFBYSxDQUFDLFdBQVc7b0JBQ3RDLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUTtvQkFDaEMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRO29CQUNoQyxJQUFJLEVBQUUsYUFBYSxDQUFDLE1BQU07aUJBQzNCLENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN0SSxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBRUQsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDbkIsWUFBWTtnQkFDWixPQUFPO2dCQUNQLE1BQU07Z0JBQ04sV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO2FBQzNCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQWlCO1lBQzNCLFlBQVksRUFBRSxjQUFjLENBQUMsWUFBWTtZQUN6QyxhQUFhLEVBQUUsY0FBYyxDQUFDLGFBQWE7WUFDM0MsS0FBSyxFQUFFLGVBQWU7WUFDdEIsV0FBVztTQUNaLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxzQkFBc0IsQ0FBQyxRQUFpQztRQUN0RCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQVUsRUFBRSxFQUFFO1lBQ2xDLE9BQU8sT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksWUFBWSxJQUFJLENBQUMsSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3JGLENBQUMsQ0FBQztRQUVGLE1BQU0sT0FBTyxHQUFtQixFQUFFLENBQUM7UUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEtBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ2xFLElBQUksQ0FBQztvQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNYLENBQUMsRUFBRSxHQUFHO29CQUNOLENBQUMsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSztvQkFDdEQsRUFBRSxFQUFFLEtBQUs7aUJBQ1YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELHdCQUF3QixDQUFDLEtBQWlCLEVBQUUsUUFBZ0I7UUFDMUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVksS0FBSyxVQUFVO1lBQzNFLENBQUMsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQztZQUNyRCxDQUFDLENBQUM7Z0JBQ0UsQ0FBQyxFQUFFLFFBQVE7Z0JBQ1gsQ0FBQyxFQUFFLEtBQUssQ0FBQyxRQUFRO2dCQUNqQixFQUFFLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQ3BCLEVBQUUsRUFBRSxLQUFLLENBQUMsV0FBVzthQUN0QixDQUFDO0lBQ1IsQ0FBQztJQUVELDZCQUE2QixDQUFDLEVBQWMsRUFBRSxRQUFnQjtRQUM1RCxNQUFNLEVBQUUsR0FBSSxFQUFFLENBQUMsVUFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBRSxFQUFFLENBQUMsV0FBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQy9FLElBQUksTUFBTSxDQUFDO1FBQ1gsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEIsS0FBSyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDcEIsTUFBTSxHQUFHO29CQUNQLENBQUMsRUFBRSxRQUFRO29CQUNYLENBQUMsRUFBRSxRQUFRLENBQUMscUJBQXFCO29CQUNqQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlO29CQUN0QyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxlQUFlO2lCQUN2QyxDQUFDO2dCQUNGLE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO2dCQUMvQixNQUFNLEdBQUc7b0JBQ1AsQ0FBQyxFQUFFLFFBQVE7b0JBQ1gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRO29CQUNkLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGVBQWU7aUJBQ3ZDLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixNQUFNLEdBQUc7b0JBQ1AsQ0FBQyxFQUFFLFFBQVE7b0JBQ1gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRO29CQUNkLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGVBQWU7aUJBQ3ZDLENBQUM7Z0JBQ0YsTUFBTTtZQUNSLENBQUM7WUFDRCxLQUFLLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sR0FBRztvQkFDUCxDQUFDLEVBQUUsUUFBUTtvQkFDWCxDQUFDLEVBQUUsRUFBRSxDQUFDLFFBQVE7b0JBQ2QsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZTtvQkFDdEMsRUFBRSxFQUFFLEVBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsZUFBZTtpQkFDeEMsQ0FBQztnQkFDRixNQUFNO1lBQ1IsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOytHQXJRVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFja2VuZFNlcnZpY2UgfSBmcm9tICcuLi9iYWNrZW5kL2JhY2tlbmQuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlT2JqZWN0VHlwZUZpZWxkLCBDb250ZW50U3RyZWFtRmllbGQgfSBmcm9tICcuLi9zeXN0ZW0vc3lzdGVtLmVudW0nO1xuaW1wb3J0IHtcbiAgQWdncmVnYXRlUmVzdWx0LFxuICBBZ2dyZWdhdGlvbixcbiAgT3BlcmF0b3IsXG4gIFNlYXJjaEZpbHRlcixcbiAgU2VhcmNoUXVlcnksXG4gIFNlYXJjaFJlc3BvbnNlLFxuICBTZWFyY2hSZXN1bHQsXG4gIFNlYXJjaFJlc3VsdENvbnRlbnQsXG4gIFNlYXJjaFJlc3VsdEl0ZW1cbn0gZnJvbSAnLi9zZWFyY2guc2VydmljZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmFuZ2VWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVsL3JhbmdlLXZhbHVlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vc3lzdGVtL3N5c3RlbS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2VydmljZSB7XG4gICNiYWNrZW5kID0gaW5qZWN0KEJhY2tlbmRTZXJ2aWNlKTtcbiAgI3N5c3RlbSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcblxuICBzdGF0aWMgREVGQVVMVF9RVUVSWV9TSVpFID0gNTA7XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYSBzZWFyY2ggcXVlcnkgYW5zIHRyYW5zZm9ybSB0aGUgcmVzdWx0IHRvIGEgU2VhcmNoUmVzdWx0IG9iamVjdFxuICAgKiBAcGFyYW0gcXVlcnkgVGhlIHNlYXJjaCBxdWVyeVxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIGEgU2VhcmNoUmVzdWx0XG4gICAqL1xuICBzZWFyY2gocXVlcnk6IFNlYXJjaFF1ZXJ5KTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSYXcocXVlcnkpLnBpcGUobWFwKChyZXMpID0+IHRoaXMudG9TZWFyY2hSZXN1bHQocmVzKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYSByYXcgc2VhcmNoIHF1ZXJ5IGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBpcy5cbiAgICogQHBhcmFtIHF1ZXJ5IFRoZSBzZWFyY2ggcXVlcnlcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBvZiB0aGUgcmF3IHNlYXJjaCByZXN1bHRcbiAgICovXG4gIHNlYXJjaFJhdyhxdWVyeTogU2VhcmNoUXVlcnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICghcXVlcnkuc2l6ZSkgcXVlcnkuc2l6ZSA9IFNlYXJjaFNlcnZpY2UuREVGQVVMVF9RVUVSWV9TSVpFO1xuICAgIHJldHVybiB0aGlzLiNiYWNrZW5kLnBvc3QoYC9kbXMvb2JqZWN0cy9zZWFyY2hgLCBxdWVyeSk7XG4gIH1cblxuICAvKipcbiAgICogU2VhcmNoIGZvciBvYmplY3RzIGluIHRoZSBkbXMgdXNpbmcgQ01JUyBsaWtlIFNRTCBzeW50YXguXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgVGhlIHF1ZXJ5IHN0YXRlbWVudFxuICAgKiBAcGFyYW0gc2l6ZSBUaGUgbnVtYmVyIG9mIGl0ZW1zIHRvIHJldHVyblxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIG9mIGEgU2VhcmNoUmVzdWx0XG4gICAqL1xuICBzZWFyY2hDbWlzKHN0YXRlbWVudDogc3RyaW5nLCBzaXplID0gNTApOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLiNiYWNrZW5kXG4gICAgICAucG9zdChcbiAgICAgICAgJy9kbXMvb2JqZWN0cy9zZWFyY2gnLFxuICAgICAgICB7XG4gICAgICAgICAgcXVlcnk6IHtcbiAgICAgICAgICAgIHN0YXRlbWVudCxcbiAgICAgICAgICAgIHNraXBDb3VudDogMCxcbiAgICAgICAgICAgIG1heEl0ZW1zOiBzaXplLFxuICAgICAgICAgICAgaGFuZGxlRGVsZXRlZERvY3VtZW50czogJ0RFTEVURURfRE9DVU1FTlRTX0VYQ0xVREUnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFVzaW5nIEFQSS1XRUIgYmVjYXVzZSBpdCBlbnJpY2hlcyB0aGUgcmVzcG9uc2Ugd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIChyZXNvbHZlZCB1c2VyIG5hbWVzLCBldGMuKVxuICAgICAgICAvLyBBcGlCYXNlLmNvcmVcbiAgICAgIClcbiAgICAgIC5waXBlKG1hcCgocmVzKSA9PiB0aGlzLnRvU2VhcmNoUmVzdWx0KHJlcyBhcyBTZWFyY2hSZXNwb25zZSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBhZ2dyYWdhdGlvbnMgZm9yIGEgZ2l2ZW4gcXVlcnkuXG4gICAqIEBwYXJhbSBxIFRoZSBxdWVyeVxuICAgKiBAcGFyYW0gYWdncmVnYXRpb25zIExpc3Qgb2YgYWdncmVnYXRpb25zIHRvIGJlIGZldGNoZWQgKGUuZy4gYGVuYWlvOm9iamVjdFR5cGVJZGBcbiAgICogdG8gZ2V0IGFuIGFnZ3JlZ2F0aW9uIG9mIG9iamVjdCB0eXBlcylcbiAgICovXG4gIGFnZ3JlZ2F0ZShxOiBTZWFyY2hRdWVyeSwgYWdncmVnYXRpb25zOiBzdHJpbmdbXSkge1xuICAgIHEuYWdncyA9IGFnZ3JlZ2F0aW9ucztcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hSYXcocSkucGlwZShtYXAoKHJlcykgPT4gdGhpcy4jdG9BZ2dyZWdhdGVSZXN1bHQocmVzLCBhZ2dyZWdhdGlvbnMpKSk7XG4gIH1cblxuICAvKipcbiAgICogTWFwIHNlYXJjaCByZXN1bHQgZnJvbSB0aGUgYmFja2VuZCB0byBhcHBsaWNhdGlvbnMgQWdncmVnYXRlUmVzdWx0IG9iamVjdFxuICAgKiBAcGFyYW0gc2VhcmNoUmVzcG9uc2UgVGhlIGJhY2tlbmQgcmVzcG9uc2VcbiAgICogQHBhcmFtIGFnZ3JlZ2F0aW9ucyBUaGUgYWdncmVnYXRpb25zIHRvIGJlIGZldGNoZWRcbiAgICovXG4gICN0b0FnZ3JlZ2F0ZVJlc3VsdChzZWFyY2hSZXNwb25zZTogYW55LCBhZ2dyZWdhdGlvbnM/OiBzdHJpbmdbXSk6IEFnZ3JlZ2F0ZVJlc3VsdCB7XG4gICAgY29uc3QgYWdnOiBBZ2dyZWdhdGlvbltdID0gW107XG4gICAgaWYgKGFnZ3JlZ2F0aW9ucykge1xuICAgICAgYWdncmVnYXRpb25zLmZvckVhY2goKGEpID0+IHtcbiAgICAgICAgY29uc3QgYWc6IEFnZ3JlZ2F0aW9uID0ge1xuICAgICAgICAgIGFnZ0tleTogYSxcbiAgICAgICAgICBlbnRyaWVzOiBzZWFyY2hSZXNwb25zZS5vYmplY3RzLm1hcCgobzogYW55KSA9PiAoe1xuICAgICAgICAgICAga2V5OiBvLnByb3BlcnRpZXNbYV0udmFsdWUsXG4gICAgICAgICAgICBjb3VudDogby5wcm9wZXJ0aWVzWydPQkpFQ1RfQ09VTlQnXS52YWx1ZVxuICAgICAgICAgIH0pKVxuICAgICAgICB9O1xuICAgICAgICBhZ2cucHVzaChhZyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRvdGFsTnVtSXRlbXM6IHNlYXJjaFJlc3BvbnNlLnRvdGFsTnVtSXRlbXMsXG4gICAgICBhZ2dyZWdhdGlvbnM6IGFnZ1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR28gdG8gYSBwYWdlIG9mIGEgc2VhcmNoIHJlc3VsdC5cbiAgICogQHBhcmFtIHNlYXJjaFJlc3VsdCBUaGUgc2VhcmNoIHJlc3VsdCAodGhhdCBzdXBwb3J0cyBwYWdpbmF0aW9uKVxuICAgKiBAcGFyYW0gcGFnZSBUaGUgbnVtYmVyIG9mIHRoZSBwYWdlIHRvIGdvIHRvXG4gICAqL1xuICBnZXRQYWdlKHF1ZXJ5OiBTZWFyY2hRdWVyeSwgcGFnZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxTZWFyY2hSZXN1bHQ+IHtcbiAgICBxdWVyeS5mcm9tID0gKHBhZ2UgLSAxKSAqIChxdWVyeS5zaXplIHx8IFNlYXJjaFNlcnZpY2UuREVGQVVMVF9RVUVSWV9TSVpFKTtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2gocXVlcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcCBzZWFyY2ggcmVzdWx0IGZyb20gdGhlIGJhY2tlbmQgdG8gYXBwbGljYXRpb25zIFNlYXJjaFJlc3VsdCBvYmplY3RcbiAgICogQHBhcmFtIHNlYXJjaFJlc3BvbnNlIFRoZSBiYWNrZW5kIHJlc3BvbnNlXG4gICAqL1xuICB0b1NlYXJjaFJlc3VsdChzZWFyY2hSZXNwb25zZTogU2VhcmNoUmVzcG9uc2UpOiBTZWFyY2hSZXN1bHQge1xuICAgIGNvbnN0IHJlc3VsdExpc3RJdGVtczogU2VhcmNoUmVzdWx0SXRlbVtdID0gW107XG4gICAgY29uc3Qgb2JqZWN0VHlwZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBzZWFyY2hSZXNwb25zZS5vYmplY3RzLmZvckVhY2goKG86IGFueSkgPT4ge1xuICAgICAgY29uc3QgZmllbGRzID0gbmV3IE1hcCgpO1xuICAgICAgLy8gcHJvY2VzcyBwcm9wZXJ0aWVzIHNlY3Rpb24gb2YgcmVzdWx0XG4gICAgICBPYmplY3Qua2V5cyhvLnByb3BlcnRpZXMpLmZvckVhY2goKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IG8ucHJvcGVydGllc1trZXldLnZhbHVlO1xuICAgICAgICBpZiAoby5wcm9wZXJ0aWVzW2tleV0uY2x2YWx1ZSkge1xuICAgICAgICAgIC8vIHRhYmxlIGZpZWxkcyB3aWxsIGhhdmUgYSBjbGllbnRWYWx1ZSB0b28gLi4uXG4gICAgICAgICAgdmFsdWUgPSBvLnByb3BlcnRpZXNba2V5XS5jbHZhbHVlO1xuICAgICAgICAgIC8vIC4uLiBhbmQgYWxzbyBtYXkgY29udGFpbiB2YWx1ZXMgdGhhdCBuZWVkIHRvIGJlIHJlc29sdmVkXG4gICAgICAgICAgaWYgKG8ucHJvcGVydGllc1trZXldLnJlc29sdmVkVmFsdWVzKSB7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKCh2OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgT2JqZWN0LmtleXModikuZm9yRWFjaCgoaykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc1ZhbHVlID0gQXJyYXkuaXNBcnJheSh2W2tdKSA/IHZba10ubWFwKChpOiBhbnkpID0+IG8ucHJvcGVydGllc1trZXldLnJlc29sdmVkVmFsdWVzW2ldKSA6IG8ucHJvcGVydGllc1trZXldLnJlc29sdmVkVmFsdWVzW3Zba11dO1xuICAgICAgICAgICAgICAgIGlmIChyZXNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgdltgJHtrfV90aXRsZWBdID0gcmVzVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZpZWxkcy5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgIGlmIChvLnByb3BlcnRpZXNba2V5XS50aXRsZSkge1xuICAgICAgICAgIGZpZWxkcy5zZXQoa2V5ICsgJ190aXRsZScsIG8ucHJvcGVydGllc1trZXldLnRpdGxlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIHByb2Nlc3MgY29udGVudFN0cmVhbXMgc2VjdGlvbiBvZiByZXN1bHQgaWYgYXZhaWxhYmxlLlxuICAgICAgLy8gT2JqZWN0cyB0aGF0IGRvbid0IGhhdmUgZmlsZXMgYXR0YWNoZWQgd29uJ3QgaGF2ZSB0aGlzIHNlY3Rpb25cbiAgICAgIGxldCBjb250ZW50OiBTZWFyY2hSZXN1bHRDb250ZW50IHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG8uY29udGVudFN0cmVhbXMgJiYgby5jb250ZW50U3RyZWFtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIC8vIHdlIGFzc3VtZSB0aGF0IGVhY2ggcmVzdWx0IG9iamVjdCBvbmx5IGhhcyBPTkUgZmlsZSBhdHRhY2hlZCwgYWx0b3VnaFxuICAgICAgICAvLyB0aGlzIGlzIGFuIGFycmF5IGFuZCB0aGVyZSBtYXkgYmUgbW9yZVxuICAgICAgICBjb25zdCBjb250ZW50U3RyZWFtID0gby5jb250ZW50U3RyZWFtc1swXTtcbiAgICAgICAgLy8gYWxzbyBhZGQgY29udGVudHN0cmVhbSByZWxhdGVkIGZpZWxkcyB0byB0aGUgcmVzdWx0IGZpZWxkc1xuICAgICAgICBmaWVsZHMuc2V0KENvbnRlbnRTdHJlYW1GaWVsZC5MRU5HVEgsIGNvbnRlbnRTdHJlYW0ubGVuZ3RoKTtcbiAgICAgICAgZmllbGRzLnNldChDb250ZW50U3RyZWFtRmllbGQuTUlNRV9UWVBFLCBjb250ZW50U3RyZWFtLm1pbWVUeXBlKTtcbiAgICAgICAgZmllbGRzLnNldChDb250ZW50U3RyZWFtRmllbGQuRklMRU5BTUUsIGNvbnRlbnRTdHJlYW0uZmlsZU5hbWUpO1xuICAgICAgICBmaWVsZHMuc2V0KENvbnRlbnRTdHJlYW1GaWVsZC5JRCwgY29udGVudFN0cmVhbS5jb250ZW50U3RyZWFtSWQpO1xuICAgICAgICBmaWVsZHMuc2V0KENvbnRlbnRTdHJlYW1GaWVsZC5SQU5HRSwgY29udGVudFN0cmVhbS5jb250ZW50U3RyZWFtUmFuZ2UpO1xuICAgICAgICBmaWVsZHMuc2V0KENvbnRlbnRTdHJlYW1GaWVsZC5SRVBPU0lUT1JZX0lELCBjb250ZW50U3RyZWFtLnJlcG9zaXRvcnlJZCk7XG4gICAgICAgIGZpZWxkcy5zZXQoQ29udGVudFN0cmVhbUZpZWxkLkRJR0VTVCwgY29udGVudFN0cmVhbS5kaWdlc3QpO1xuICAgICAgICBmaWVsZHMuc2V0KENvbnRlbnRTdHJlYW1GaWVsZC5BUkNISVZFX1BBVEgsIGNvbnRlbnRTdHJlYW0uYXJjaGl2ZVBhdGgpO1xuXG4gICAgICAgIGNvbnRlbnQgPSB7XG4gICAgICAgICAgY29udGVudFN0cmVhbUlkOiBjb250ZW50U3RyZWFtLmNvbnRlbnRTdHJlYW1JZCxcbiAgICAgICAgICByZXBvc2l0b3J5SWQ6IGNvbnRlbnRTdHJlYW0ucmVwb3NpdG9yeUlkLFxuICAgICAgICAgIHJhbmdlOiBjb250ZW50U3RyZWFtLnJhbmdlLFxuICAgICAgICAgIGRpZ2VzdDogY29udGVudFN0cmVhbS5kaWdlc3QsXG4gICAgICAgICAgYXJjaGl2ZVBhdGg6IGNvbnRlbnRTdHJlYW0uYXJjaGl2ZVBhdGgsXG4gICAgICAgICAgZmlsZU5hbWU6IGNvbnRlbnRTdHJlYW0uZmlsZU5hbWUsXG4gICAgICAgICAgbWltZVR5cGU6IGNvbnRlbnRTdHJlYW0ubWltZVR5cGUsXG4gICAgICAgICAgc2l6ZTogY29udGVudFN0cmVhbS5sZW5ndGhcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2JqZWN0VHlwZUlkID0gby5wcm9wZXJ0aWVzW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX1RZUEVfSURdID8gby5wcm9wZXJ0aWVzW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX1RZUEVfSURdLnZhbHVlIDogbnVsbDtcbiAgICAgIGlmIChvYmplY3RUeXBlcy5pbmRleE9mKG9iamVjdFR5cGVJZCkgPT09IC0xKSB7XG4gICAgICAgIG9iamVjdFR5cGVzLnB1c2gob2JqZWN0VHlwZUlkKTtcbiAgICAgIH1cblxuICAgICAgcmVzdWx0TGlzdEl0ZW1zLnB1c2goe1xuICAgICAgICBvYmplY3RUeXBlSWQsXG4gICAgICAgIGNvbnRlbnQsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgcGVybWlzc2lvbnM6IG8ucGVybWlzc2lvbnNcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzdWx0OiBTZWFyY2hSZXN1bHQgPSB7XG4gICAgICBoYXNNb3JlSXRlbXM6IHNlYXJjaFJlc3BvbnNlLmhhc01vcmVJdGVtcyxcbiAgICAgIHRvdGFsTnVtSXRlbXM6IHNlYXJjaFJlc3BvbnNlLnRvdGFsTnVtSXRlbXMsXG4gICAgICBpdGVtczogcmVzdWx0TGlzdEl0ZW1zLFxuICAgICAgb2JqZWN0VHlwZXNcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogTWFwcyBkYXRhIGV4dHJhY3RlZCBmcm9tIGEgc2VhcmNoIGZvcm0gdG8gc2VhcmNoIGZpbHRlcnMuIEV2ZXJ5IGtleSBvZiB0aGUgZm9ybSBkYXRhIG9iamVjdFxuICAgKiB3aWxsIGJlIG1hcHBlZCB0byBhIHNlYXJjaCBmaWx0ZXIuXG4gICAqIEBwYXJhbSBmb3JtRGF0YSBmb3JtIGRhdGFcbiAgICogQHJldHVybnMgQXJyYXkgb2Ygc2VhcmNoIGZpbHRlcnNcbiAgICovXG4gIGZvcm1EYXRhVG9TZWFyY2hGaWx0ZXIoZm9ybURhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogU2VhcmNoRmlsdGVyW10ge1xuICAgIGNvbnN0IGlzUmFuZ2VWYWx1ZSA9ICh2OiB1bmtub3duKSA9PiB7XG4gICAgICByZXR1cm4gdHlwZW9mIHYgPT09ICdvYmplY3QnICYmIHYgIT09IG51bGwgJiYgJ2ZpcnN0VmFsdWUnIGluIHYgJiYgJ29wZXJhdG9yJyBpbiB2O1xuICAgIH07XG5cbiAgICBjb25zdCBmaWx0ZXJzOiBTZWFyY2hGaWx0ZXJbXSA9IFtdO1xuICAgIE9iamVjdC5rZXlzKGZvcm1EYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZm9ybURhdGFba2V5XTtcbiAgICAgIGlmIChpc1JhbmdlVmFsdWUodmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IGYgPSB0aGlzLnJhbmdlVmFsdWVUb1NlYXJjaEZpbHRlcih2YWx1ZSBhcyBSYW5nZVZhbHVlLCBrZXkpO1xuICAgICAgICBpZiAoZikgZmlsdGVycy5wdXNoKGYpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICBmOiBrZXksXG4gICAgICAgICAgbzogQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBPcGVyYXRvci5JTiA6IE9wZXJhdG9yLkVRVUFMLFxuICAgICAgICAgIHYxOiB2YWx1ZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmlsdGVycztcbiAgfVxuXG4gIHJhbmdlVmFsdWVUb1NlYXJjaEZpbHRlcih2YWx1ZTogUmFuZ2VWYWx1ZSwgcHJvcGVydHk6IHN0cmluZyk6IFNlYXJjaEZpbHRlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI3N5c3RlbS5nZXRPYmplY3RUeXBlRmllbGQocHJvcGVydHkpPy5wcm9wZXJ0eVR5cGUgPT09ICdkYXRldGltZSdcbiAgICAgID8gdGhpcy4jZGF0ZVJhbmdlVmFsdWVUb1NlYXJjaEZpbHRlcih2YWx1ZSwgcHJvcGVydHkpXG4gICAgICA6IHtcbiAgICAgICAgICBmOiBwcm9wZXJ0eSxcbiAgICAgICAgICBvOiB2YWx1ZS5vcGVyYXRvcixcbiAgICAgICAgICB2MTogdmFsdWUuZmlyc3RWYWx1ZSxcbiAgICAgICAgICB2MjogdmFsdWUuc2Vjb25kVmFsdWVcbiAgICAgICAgfTtcbiAgfVxuXG4gICNkYXRlUmFuZ2VWYWx1ZVRvU2VhcmNoRmlsdGVyKHJ2OiBSYW5nZVZhbHVlLCBwcm9wZXJ0eTogc3RyaW5nKTogU2VhcmNoRmlsdGVyIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCB2MSA9IChydi5maXJzdFZhbHVlIGFzIERhdGUpLnRvSVNPU3RyaW5nKCk7XG4gICAgY29uc3QgdjIgPSBydi5zZWNvbmRWYWx1ZSA/IChydi5zZWNvbmRWYWx1ZSBhcyBEYXRlKS50b0lTT1N0cmluZygpIDogdW5kZWZpbmVkO1xuICAgIGxldCBmaWx0ZXI7XG4gICAgc3dpdGNoIChydi5vcGVyYXRvcikge1xuICAgICAgY2FzZSBPcGVyYXRvci5FUVVBTDoge1xuICAgICAgICBmaWx0ZXIgPSB7XG4gICAgICAgICAgZjogcHJvcGVydHksXG4gICAgICAgICAgbzogT3BlcmF0b3IuSU5URVJWQUxfSU5DTFVERV9CT1RILFxuICAgICAgICAgIHYxOiB2MS5zcGxpdCgnVCcpWzBdICsgJ1QwMDowMDowMC4wMDAnLFxuICAgICAgICAgIHYyOiB2MS5zcGxpdCgnVCcpWzBdICsgJ1QyMzo1OTo1OS4wMDAnXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSBPcGVyYXRvci5HUkVBVEVSX09SX0VRVUFMOiB7XG4gICAgICAgIGZpbHRlciA9IHtcbiAgICAgICAgICBmOiBwcm9wZXJ0eSxcbiAgICAgICAgICBvOiBydi5vcGVyYXRvcixcbiAgICAgICAgICB2MTogdjEuc3BsaXQoJ1QnKVswXSArICdUMDA6MDA6MDAuMDAwJ1xuICAgICAgICB9O1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgT3BlcmF0b3IuTEVTU19PUl9FUVVBTDoge1xuICAgICAgICBmaWx0ZXIgPSB7XG4gICAgICAgICAgZjogcHJvcGVydHksXG4gICAgICAgICAgbzogcnYub3BlcmF0b3IsXG4gICAgICAgICAgdjE6IHYxLnNwbGl0KCdUJylbMF0gKyAnVDIzOjU5OjU5LjAwMCdcbiAgICAgICAgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlIE9wZXJhdG9yLklOVEVSVkFMX0lOQ0xVREVfQk9USDoge1xuICAgICAgICBmaWx0ZXIgPSB7XG4gICAgICAgICAgZjogcHJvcGVydHksXG4gICAgICAgICAgbzogcnYub3BlcmF0b3IsXG4gICAgICAgICAgdjE6IHYxLnNwbGl0KCdUJylbMF0gKyAnVDAwOjAwOjAwLjAwMCcsXG4gICAgICAgICAgdjI6IHYyIS5zcGxpdCgnVCcpWzBdICsgJ1QyMzo1OTo1OS4wMDAnXG4gICAgICAgIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmlsdGVyO1xuICB9XG59XG4iXX0=