@skyux/data-manager 7.0.0-beta.11 → 7.0.0-beta.13

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.
Files changed (25) hide show
  1. package/documentation.json +473 -584
  2. package/esm2020/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.mjs +51 -45
  3. package/esm2020/lib/modules/data-manager/data-manager-filter-context.mjs +2 -1
  4. package/esm2020/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.mjs +95 -76
  5. package/esm2020/lib/modules/data-manager/data-manager.component.mjs +39 -31
  6. package/esm2020/lib/modules/data-manager/data-manager.service.mjs +66 -61
  7. package/esm2020/lib/modules/data-manager/data-view.component.mjs +18 -21
  8. package/esm2020/lib/modules/data-manager/models/data-manager-config.mjs +1 -1
  9. package/esm2020/lib/modules/data-manager/models/data-manager-filter-data.mjs +1 -1
  10. package/esm2020/lib/modules/data-manager/models/data-manager-state-options.mjs +1 -1
  11. package/esm2020/lib/modules/data-manager/models/data-manager-state.mjs +1 -1
  12. package/esm2020/lib/modules/data-manager/models/data-view-state-options.mjs +1 -1
  13. package/esm2020/lib/modules/data-manager/models/data-view-state.mjs +1 -1
  14. package/fesm2015/skyux-data-manager.mjs +265 -228
  15. package/fesm2015/skyux-data-manager.mjs.map +1 -1
  16. package/fesm2020/skyux-data-manager.mjs +259 -227
  17. package/fesm2020/skyux-data-manager.mjs.map +1 -1
  18. package/lib/modules/data-manager/data-manager-column-picker/data-manager-column-picker.component.d.ts +1 -3
  19. package/lib/modules/data-manager/data-manager-filter-context.d.ts +1 -1
  20. package/lib/modules/data-manager/data-manager-toolbar/data-manager-toolbar.component.d.ts +8 -18
  21. package/lib/modules/data-manager/data-manager.component.d.ts +2 -9
  22. package/lib/modules/data-manager/data-manager.service.d.ts +3 -14
  23. package/lib/modules/data-manager/data-view.component.d.ts +6 -10
  24. package/lib/modules/data-manager/models/data-manager-state.d.ts +6 -6
  25. package/package.json +9 -9
@@ -1,3 +1,5 @@
1
+ var _SkyDataManagerService_instances, _SkyDataManagerService_activeViewId, _SkyDataManagerService_dataManagerConfig, _SkyDataManagerService_views, _SkyDataManagerService_dataStateChange, _SkyDataManagerService_isInitialized, _SkyDataManagerService_ngUnsubscribe, _SkyDataManagerService_initSource, _SkyDataManagerService_uiConfigService, _SkyDataManagerService_filterDataStateProperties, _SkyDataManagerService_getDefaultStateComparator;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Injectable } from '@angular/core';
2
4
  import { SkyUIConfigService } from '@skyux/core';
3
5
  import { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';
@@ -17,23 +19,25 @@ import * as i1 from "@skyux/core";
17
19
  */
18
20
  export class SkyDataManagerService {
19
21
  constructor(uiConfigService) {
20
- this.uiConfigService = uiConfigService;
22
+ _SkyDataManagerService_instances.add(this);
21
23
  this.viewkeeperClasses = new BehaviorSubject({});
22
- this.activeViewId = new ReplaySubject(1);
23
- this.dataManagerConfig = new BehaviorSubject(undefined);
24
- this.views = new BehaviorSubject([]);
25
- this.dataStateChange = new ReplaySubject(1);
26
- this._ngUnsubscribe = new Subject();
27
- this.initSource = 'dataManagerServiceInit';
28
- this.isInitialized = false;
24
+ _SkyDataManagerService_activeViewId.set(this, new ReplaySubject(1));
25
+ _SkyDataManagerService_dataManagerConfig.set(this, new BehaviorSubject({}));
26
+ _SkyDataManagerService_views.set(this, new BehaviorSubject([]));
27
+ _SkyDataManagerService_dataStateChange.set(this, new ReplaySubject(1));
28
+ _SkyDataManagerService_isInitialized.set(this, void 0);
29
+ _SkyDataManagerService_ngUnsubscribe.set(this, new Subject());
30
+ _SkyDataManagerService_initSource.set(this, 'dataManagerServiceInit');
31
+ _SkyDataManagerService_uiConfigService.set(this, void 0);
32
+ __classPrivateFieldSet(this, _SkyDataManagerService_uiConfigService, uiConfigService, "f");
29
33
  }
30
34
  ngOnDestroy() {
31
- this.activeViewId.complete();
32
- this.dataManagerConfig.complete();
33
- this.views.complete();
34
- this.dataStateChange.complete();
35
- this._ngUnsubscribe.next();
36
- this._ngUnsubscribe.complete();
35
+ __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").complete();
36
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f").complete();
37
+ __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").complete();
38
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").complete();
39
+ __classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f").next();
40
+ __classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f").complete();
37
41
  }
38
42
  /**
39
43
  * Initializes the data manager with the given settings and sets `isInitialized` to `true`.
@@ -43,32 +47,33 @@ export class SkyDataManagerService {
43
47
  * and saves any state changes to the service.
44
48
  */
45
49
  initDataManager(args) {
46
- if (this.isInitialized) {
50
+ if (__classPrivateFieldGet(this, _SkyDataManagerService_isInitialized, "f")) {
47
51
  console.warn('This data manager instance has already been initialized.');
48
52
  return;
49
53
  }
54
+ __classPrivateFieldSet(this, _SkyDataManagerService_isInitialized, true, "f");
50
55
  const defaultDataState = args.defaultDataState;
51
56
  const settingsKey = args.settingsKey;
52
57
  this.updateActiveViewId(args.activeViewId);
53
58
  this.updateDataManagerConfig(args.dataManagerConfig);
54
59
  if (settingsKey) {
55
- this.uiConfigService
60
+ __classPrivateFieldGet(this, _SkyDataManagerService_uiConfigService, "f")
56
61
  .getConfig(settingsKey, defaultDataState.getStateOptions())
57
62
  .pipe(take(1))
58
63
  .subscribe((config) => {
59
- this.updateDataState(new SkyDataManagerState(config), this.initSource);
64
+ this.updateDataState(new SkyDataManagerState(config), __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
60
65
  });
61
66
  }
62
67
  else {
63
- this.updateDataState(defaultDataState, this.initSource);
68
+ this.updateDataState(defaultDataState, __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
64
69
  }
65
70
  if (settingsKey) {
66
- this.getDataStateUpdates(this.initSource)
67
- .pipe(takeUntil(this._ngUnsubscribe))
71
+ this.getDataStateUpdates(__classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"))
72
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f")))
68
73
  .subscribe((state) => {
69
- this.uiConfigService
74
+ __classPrivateFieldGet(this, _SkyDataManagerService_uiConfigService, "f")
70
75
  .setConfig(settingsKey, state.getStateOptions())
71
- .pipe(takeUntil(this._ngUnsubscribe))
76
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataManagerService_ngUnsubscribe, "f")))
72
77
  .subscribe(
73
78
  // eslint-disable-next-line @typescript-eslint/no-empty-function
74
79
  () => { }, (err) => {
@@ -83,19 +88,19 @@ export class SkyDataManagerService {
83
88
  * @param viewConfig The SkyDataViewConfig settings for the view being registered.
84
89
  */
85
90
  initDataView(viewConfig) {
86
- const currentViews = this.views.value;
91
+ const currentViews = __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").value;
87
92
  if (this.getViewById(viewConfig.id)) {
88
93
  console.warn(`A data manager view with the id ${viewConfig.id} has already been initialized.`);
89
94
  return;
90
95
  }
91
96
  currentViews.push(viewConfig);
92
- this.views.next(currentViews);
97
+ __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").next(currentViews);
93
98
  // When the initial activeViewId is set there are no views registered. We have to re-emit
94
99
  // the activeId so the newly registered view is notified that it is active.
95
- this.activeViewId.pipe(take(1)).subscribe((id) => {
96
- this.activeViewId.next(id);
100
+ __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").pipe(take(1)).subscribe((id) => {
101
+ __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").next(id);
97
102
  });
98
- this.dataStateChange
103
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f")
99
104
  .pipe(take(1))
100
105
  .subscribe((change) => {
101
106
  const dataState = change.dataState;
@@ -119,20 +124,20 @@ export class SkyDataManagerService {
119
124
  newViewState.displayedColumnIds = displayedColumnIds;
120
125
  }
121
126
  const newDataState = dataState.addOrUpdateView(viewConfig.id, newViewState);
122
- this.updateDataState(newDataState, this.initSource);
127
+ this.updateDataState(newDataState, __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
123
128
  }
124
129
  else {
125
130
  const currentAvailableColumnIds = viewConfig.columnOptions?.map((columnOptions) => {
126
131
  return columnOptions.id;
127
- });
132
+ }) || [];
128
133
  // Ensure that the view state's available columns match with the view config. Also,
129
134
  // add new columns to the `displayedColumnIds` as long as they are not `initialHide`.
130
135
  // We only add columns to `displayedColumnsIds` if we had previously tracked
131
136
  // `columnIds` to avoid breaking changes.
132
137
  if (currentViewState.columnIds.length > 0) {
133
- let newColumnIds = currentAvailableColumnIds.filter((id) => currentViewState.columnIds.indexOf(id) < 0);
134
- newColumnIds = newColumnIds.filter((columnId) => {
135
- return viewConfig.columnOptions.find((columnOption) => columnOption.id === columnId && !columnOption.initialHide);
138
+ let newColumnIds = currentAvailableColumnIds?.filter((id) => currentViewState.columnIds.indexOf(id) < 0);
139
+ newColumnIds = newColumnIds?.filter((columnId) => {
140
+ return viewConfig.columnOptions?.find((columnOption) => columnOption.id === columnId && !columnOption.initialHide);
136
141
  });
137
142
  // Add the column IDs that now exist to the data manager state both as available
138
143
  // and as shown.
@@ -143,7 +148,7 @@ export class SkyDataManagerService {
143
148
  // and as shown.
144
149
  currentViewState.columnIds = currentAvailableColumnIds;
145
150
  const newDataState = dataState.addOrUpdateView(viewConfig.id, currentViewState);
146
- this.updateDataState(newDataState, this.initSource);
151
+ this.updateDataState(newDataState, __classPrivateFieldGet(this, _SkyDataManagerService_initSource, "f"));
147
152
  }
148
153
  })
149
154
  .unsubscribe();
@@ -158,12 +163,12 @@ export class SkyDataManagerService {
158
163
  getDataStateUpdates(sourceId, updateFilter) {
159
164
  // filter out events from the provided source and emit just the dataState
160
165
  if (updateFilter) {
161
- return this.dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState), updateFilter.comparator
166
+ return __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState), updateFilter.comparator
162
167
  ? distinctUntilChanged(updateFilter.comparator)
163
- : distinctUntilChanged(this.getDefaultStateComparator(updateFilter.properties)));
168
+ : distinctUntilChanged(__classPrivateFieldGet(this, _SkyDataManagerService_instances, "m", _SkyDataManagerService_getDefaultStateComparator).call(this, updateFilter.properties)));
164
169
  }
165
170
  else {
166
- return this.dataStateChange.pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState));
171
+ return __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").pipe(filter((stateChange) => sourceId !== stateChange.source), map((stateChange) => stateChange.dataState));
167
172
  }
168
173
  }
169
174
  /**
@@ -176,52 +181,52 @@ export class SkyDataManagerService {
176
181
  updateDataState(state, sourceId) {
177
182
  const newState = new SkyDataManagerState(state.getStateOptions());
178
183
  const newStateChange = new SkyDataManagerStateChange(newState, sourceId);
179
- this.dataStateChange.next(newStateChange);
184
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataStateChange, "f").next(newStateChange);
180
185
  }
181
186
  /**
182
187
  * Returns the current `SkyDataManagerConfig`.
183
188
  */
184
189
  getCurrentDataManagerConfig() {
185
- return this.dataManagerConfig.value;
190
+ return __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f").value;
186
191
  }
187
192
  /**
188
193
  * Returns an observable of data manager config changes that views and other data manager entities can subscribe to.
189
194
  */
190
195
  getDataManagerConfigUpdates() {
191
- return this.dataManagerConfig;
196
+ return __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f");
192
197
  }
193
198
  /**
194
199
  * Updates the data manager config and emits a new value to entities subscribed to data config changes.
195
200
  * @param value The new `SkyDataManagerConfig` value.
196
201
  */
197
202
  updateDataManagerConfig(value) {
198
- this.dataManagerConfig.next(value);
203
+ __classPrivateFieldGet(this, _SkyDataManagerService_dataManagerConfig, "f").next(value);
199
204
  }
200
205
  /**
201
206
  * Returns an observable of data view config changes that views and other data manager entities can subscribe to.
202
207
  */
203
208
  getDataViewsUpdates() {
204
- return this.views;
209
+ return __classPrivateFieldGet(this, _SkyDataManagerService_views, "f");
205
210
  }
206
211
  /**
207
212
  * Returns an observable of the active view ID that views and other data manager entities can subscribe to.
208
213
  */
209
214
  getActiveViewIdUpdates() {
210
- return this.activeViewId;
215
+ return __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f");
211
216
  }
212
217
  /**
213
218
  * Updates the active view ID. The data manager changes the displayed view.
214
219
  * @param id The new active view ID.
215
220
  */
216
221
  updateActiveViewId(id) {
217
- this.activeViewId.next(id);
222
+ __classPrivateFieldGet(this, _SkyDataManagerService_activeViewId, "f").next(id);
218
223
  }
219
224
  /**
220
225
  * Returns the `SkyDataViewConfig` for the given view ID.
221
226
  * @param viewId The ID of the view config to get.
222
227
  */
223
228
  getViewById(viewId) {
224
- const currentViews = this.views.value;
229
+ const currentViews = __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").value;
225
230
  const viewConfig = currentViews.find((view) => view.id === viewId);
226
231
  return viewConfig;
227
232
  }
@@ -232,14 +237,14 @@ export class SkyDataManagerService {
232
237
  * @param view The new `SkyDataViewConfig` containing all properties.
233
238
  */
234
239
  updateViewConfig(view) {
235
- const currentViews = this.views.value;
240
+ const currentViews = __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").value;
236
241
  const existingViewIndex = currentViews.findIndex((currentView) => currentView.id === view.id);
237
242
  if (existingViewIndex === -1) {
238
243
  console.error('A view with the id {id} does not exist.', view.id);
239
244
  }
240
245
  else {
241
246
  currentViews[existingViewIndex] = view;
242
- this.views.next(currentViews);
247
+ __classPrivateFieldGet(this, _SkyDataManagerService_views, "f").next(currentViews);
243
248
  }
244
249
  }
245
250
  /**
@@ -250,28 +255,28 @@ export class SkyDataManagerService {
250
255
  viewkeeperClasses[viewId] = classes;
251
256
  this.viewkeeperClasses.next(viewkeeperClasses);
252
257
  }
253
- filterDataStateProperties(state, properties) {
254
- const stateProperties = state.getStateOptions();
255
- const filteredStateProperties = {};
258
+ }
259
+ _SkyDataManagerService_activeViewId = new WeakMap(), _SkyDataManagerService_dataManagerConfig = new WeakMap(), _SkyDataManagerService_views = new WeakMap(), _SkyDataManagerService_dataStateChange = new WeakMap(), _SkyDataManagerService_isInitialized = new WeakMap(), _SkyDataManagerService_ngUnsubscribe = new WeakMap(), _SkyDataManagerService_initSource = new WeakMap(), _SkyDataManagerService_uiConfigService = new WeakMap(), _SkyDataManagerService_instances = new WeakSet(), _SkyDataManagerService_filterDataStateProperties = function _SkyDataManagerService_filterDataStateProperties(state, properties) {
260
+ const stateProperties = state.getStateOptions();
261
+ const filteredStateProperties = {};
262
+ if (properties) {
256
263
  for (const property of properties) {
257
- /* istanbul ignore else */
258
- if (Object.prototype.hasOwnProperty.call(stateProperties, property)) {
264
+ if (property in stateProperties) {
259
265
  filteredStateProperties[property] = stateProperties[property];
260
266
  }
261
267
  }
262
- return filteredStateProperties;
263
268
  }
264
- getDefaultStateComparator(properties) {
265
- return (state1, state2) => {
266
- const filteredState1 = this.filterDataStateProperties(state1, properties);
267
- const filteredState2 = this.filterDataStateProperties(state2, properties);
268
- return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);
269
- };
270
- }
271
- }
269
+ return filteredStateProperties;
270
+ }, _SkyDataManagerService_getDefaultStateComparator = function _SkyDataManagerService_getDefaultStateComparator(properties) {
271
+ return (state1, state2) => {
272
+ const filteredState1 = __classPrivateFieldGet(this, _SkyDataManagerService_instances, "m", _SkyDataManagerService_filterDataStateProperties).call(this, state1, properties);
273
+ const filteredState2 = __classPrivateFieldGet(this, _SkyDataManagerService_instances, "m", _SkyDataManagerService_filterDataStateProperties).call(this, state2, properties);
274
+ return JSON.stringify(filteredState1) === JSON.stringify(filteredState2);
275
+ };
276
+ };
272
277
  SkyDataManagerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataManagerService, deps: [{ token: i1.SkyUIConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
273
278
  SkyDataManagerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataManagerService });
274
279
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataManagerService, decorators: [{
275
280
  type: Injectable
276
281
  }], ctorParameters: function () { return [{ type: i1.SkyUIConfigService }]; } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxHQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFJeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFJL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUU1RDs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQW1CaEMsWUFBb0IsZUFBbUM7UUFBbkMsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBbEJoRCxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FFM0MsRUFBRSxDQUFDLENBQUM7UUFFVSxpQkFBWSxHQUFHLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBRTVDLHNCQUFpQixHQUNoQyxJQUFJLGVBQWUsQ0FBdUIsU0FBUyxDQUFDLENBQUM7UUFFdEMsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFzQixFQUFFLENBQUMsQ0FBQztRQUVyRCxvQkFBZSxHQUM5QixJQUFJLGFBQWEsQ0FBNEIsQ0FBQyxDQUFDLENBQUM7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Q2pDLDBCQUEwQjtZQUMxQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ25FLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvRDtTQUNGO1FBRUQsT0FBTyx1QkFBdUIsQ0FBQztJQUNqQyxDQUFDO0lBRU8seUJBQXlCLENBQy9CLFVBQW9CO1FBRXBCLE9BQU8sQ0FDTCxNQUEyQixFQUMzQixNQUEyQixFQUNsQixFQUFFO1lBQ1gsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUMxRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQztJQUNKLENBQUM7O2tIQWpWVSxxQkFBcUI7c0hBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lVSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbHRlcixcbiAgbWFwLFxuICB0YWtlLFxuICB0YWtlVW50aWwsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJDb25maWcgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VySW5pdEFyZ3MgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItaW5pdC1hcmdzJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZSB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUtb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlVXBkYXRlRmlsdGVyQXJncyB9IGZyb20gJy4vbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS11cGRhdGUtZmlsdGVyLWFyZ3MnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdDb25maWcgfSBmcm9tICcuL21vZGVscy9kYXRhLXZpZXctY29uZmlnJztcbmltcG9ydCB7IFNreURhdGFWaWV3U3RhdGUgfSBmcm9tICcuL21vZGVscy9kYXRhLXZpZXctc3RhdGUnO1xuXG4vKipcbiAqIFRoZSBkYXRhIG1hbmFnZXIgc2VydmljZSBwcm92aWRlcyB3YXlzIGZvciBkYXRhIHZpZXdzLCB0b29sYmFyIGl0ZW1zLCBhbmQgbW9yZSB0byBzdGF5IHVwIHRvIGRhdGVcbiAqIHdpdGggdGhlIGFjdGl2ZSB2aWV3IElELCBkYXRhIG1hbmFnZXIgY29uZmlnLCByZWdpc3RlcmVkIHZpZXdzIGFuZCB0aGVpciBjb25maWdzLCBhbmQgZGF0YSBzdGF0ZS5cbiAqIFRoZXJlIGFyZSBtZXRob2RzIHRvIGdldCBjdXJyZW50IHZhbHVlcywgdXBkYXRlIHZhbHVlcywgYW5kIGdldCBzdWJzY3JpcHRpb25zIHRvIHRoZSBjaGFuZ2luZyB2YWx1ZXMuPGJyLz4gPGJyLz5cbiAqIFByb3ZpZGUgdGhpcyBzZXJ2aWNlIGF0IHRoZSBjb21wb25lbnQgbGV2ZWwgZm9yIGVhY2ggaW5zdGFuY2Ugb2YgYSBkYXRhIG1hbmFnZXIuIERvIG5vdFxuICogcHJvdmlkZSBpdCBhdCB0aGUgbW9kdWxlIGxldmVsIG9yIGluIGBhcHAtZXh0cmFzYC4gVGhpcyBhbGxvd3MgbXVsdGlwbGUgZGF0YVxuICogbWFuYWdlcnMgdG8gYmUgdXNlZCBhbmQgc2VsZi1jb250YWluZWQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgdmlld2tlZXBlckNsYXNzZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHtcbiAgICBbdmlld0lkOiBzdHJpbmddOiBzdHJpbmdbXTtcbiAgfT4oe30pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aXZlVmlld0lkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFNYW5hZ2VyQ29uZmlnID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreURhdGFNYW5hZ2VyQ29uZmlnPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdmlld3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreURhdGFWaWV3Q29uZmlnW10+KFtdKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRhdGFTdGF0ZUNoYW5nZSA9XG4gICAgbmV3IFJlcGxheVN1YmplY3Q8U2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZT4oMSk7XG5cbiAgcHJpdmF0ZSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgaW5pdFNvdXJjZSA9ICdkYXRhTWFuYWdlclNlcnZpY2VJbml0JztcbiAgcHJpdmF0ZSBpc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB1aUNvbmZpZ1NlcnZpY2U6IFNreVVJQ29uZmlnU2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVWaWV3SWQuY29tcGxldGUoKTtcbiAgICB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnLmNvbXBsZXRlKCk7XG4gICAgdGhpcy52aWV3cy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBkYXRhIG1hbmFnZXIgd2l0aCB0aGUgZ2l2ZW4gc2V0dGluZ3MgYW5kIHNldHMgYGlzSW5pdGlhbGl6ZWRgIHRvIGB0cnVlYC5cbiAgICogVGhpcyBtdXN0IGJlIGNhbGxlZCBmb3IgdGhlIGRhdGEgbWFuYWdlciB0byByZW5kZXIuXG4gICAqIEBwYXJhbSBhcmdzIFRoZSBpbml0aWFsIGFjdGl2ZSB2aWV3IElELCBkYXRhIG1hbmFnZXIgY29uZmlnLCBhbmQgc3RhdGUgdG8gdXNlIGZvciB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBJZiBhIHNldHRpbmdzIGtleSBpcyBwcm92aWRlZCwgaXQgY2hlY2tzIGZvciBhIHNhdmVkIGRhdGEgc3RhdGUgaW4gdGhlIFNLWSBVSSBjb25maWcgc2VydmljZSBiZWZvcmUgdXNpbmcgdGhlIGRlZmF1bHQgZGF0YSBzdGF0ZVxuICAgKiBhbmQgc2F2ZXMgYW55IHN0YXRlIGNoYW5nZXMgdG8gdGhlIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgaW5pdERhdGFNYW5hZ2VyKGFyZ3M6IFNreURhdGFNYW5hZ2VySW5pdEFyZ3MpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1RoaXMgZGF0YSBtYW5hZ2VyIGluc3RhbmNlIGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdERhdGFTdGF0ZSA9IGFyZ3MuZGVmYXVsdERhdGFTdGF0ZTtcbiAgICBjb25zdCBzZXR0aW5nc0tleSA9IGFyZ3Muc2V0dGluZ3NLZXk7XG5cbiAgICB0aGlzLnVwZGF0ZUFjdGl2ZVZpZXdJZChhcmdzLmFjdGl2ZVZpZXdJZCk7XG4gICAgdGhpcy51cGRhdGVEYXRhTWFuYWdlckNvbmZpZyhhcmdzLmRhdGFNYW5hZ2VyQ29uZmlnKTtcblxuICAgIGlmIChzZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy51aUNvbmZpZ1NlcnZpY2VcbiAgICAgICAgLmdldENvbmZpZyhzZXR0aW5nc0tleSwgZGVmYXVsdERhdGFTdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29uZmlnOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucykgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICAgICAgbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoY29uZmlnKSxcbiAgICAgICAgICAgIHRoaXMuaW5pdFNvdXJjZVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShkZWZhdWx0RGF0YVN0YXRlLCB0aGlzLmluaXRTb3VyY2UpO1xuICAgIH1cblxuICAgIGlmIChzZXR0aW5nc0tleSkge1xuICAgICAgdGhpcy5nZXREYXRhU3RhdGVVcGRhdGVzKHRoaXMuaW5pdFNvdXJjZSlcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMudWlDb25maWdTZXJ2aWNlXG4gICAgICAgICAgICAuc2V0Q29uZmlnKHNldHRpbmdzS2V5LCBzdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgKCkgPT4ge30sXG4gICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBzYXZlIGRhdGEgbWFuYWdlciBzZXR0aW5ncy4nKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGEgdmlldyB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlci4gVGhpcyBtdXN0IGJlIGNhbGxlZCBmb3IgZWFjaCB2aWV3IGZvciB0aGUgdmlld3MgdG8gYXBwZWFyIHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBAcGFyYW0gdmlld0NvbmZpZyBUaGUgU2t5RGF0YVZpZXdDb25maWcgc2V0dGluZ3MgZm9yIHRoZSB2aWV3IGJlaW5nIHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwdWJsaWMgaW5pdERhdGFWaWV3KHZpZXdDb25maWc6IFNreURhdGFWaWV3Q29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZpZXdzOiBTa3lEYXRhVmlld0NvbmZpZ1tdID0gdGhpcy52aWV3cy52YWx1ZTtcblxuICAgIGlmICh0aGlzLmdldFZpZXdCeUlkKHZpZXdDb25maWcuaWQpKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgIGBBIGRhdGEgbWFuYWdlciB2aWV3IHdpdGggdGhlIGlkICR7dmlld0NvbmZpZy5pZH0gaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZC5gXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGN1cnJlbnRWaWV3cy5wdXNoKHZpZXdDb25maWcpO1xuICAgIHRoaXMudmlld3MubmV4dChjdXJyZW50Vmlld3MpO1xuXG4gICAgLy8gV2hlbiB0aGUgaW5pdGlhbCBhY3RpdmVWaWV3SWQgaXMgc2V0IHRoZXJlIGFyZSBubyB2aWV3cyByZWdpc3RlcmVkLiBXZSBoYXZlIHRvIHJlLWVtaXRcbiAgICAvLyB0aGUgYWN0aXZlSWQgc28gdGhlIG5ld2x5IHJlZ2lzdGVyZWQgdmlldyBpcyBub3RpZmllZCB0aGF0IGl0IGlzIGFjdGl2ZS5cbiAgICB0aGlzLmFjdGl2ZVZpZXdJZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoaWQpID0+IHtcbiAgICAgIHRoaXMuYWN0aXZlVmlld0lkLm5leHQoaWQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5kYXRhU3RhdGVDaGFuZ2VcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YVN0YXRlID0gY2hhbmdlLmRhdGFTdGF0ZTtcbiAgICAgICAgY29uc3QgY3VycmVudFZpZXdTdGF0ZSA9IGRhdGFTdGF0ZS5nZXRWaWV3U3RhdGVCeUlkKHZpZXdDb25maWcuaWQpO1xuXG4gICAgICAgIGlmICghY3VycmVudFZpZXdTdGF0ZSkge1xuICAgICAgICAgIGNvbnN0IG5ld1ZpZXdTdGF0ZSA9IG5ldyBTa3lEYXRhVmlld1N0YXRlKHsgdmlld0lkOiB2aWV3Q29uZmlnLmlkIH0pO1xuXG4gICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHZpZXcgc3RhdGUncyBhdmFpbGFibGUgY29sdW1ucyBtYXRjaCB3aXRoIHRoZSB2aWV3IGNvbmZpZy4gQWxzbyxcbiAgICAgICAgICAvLyBhZGQgY29sdW1ucyB0byB0aGUgYGRpc3BsYXllZENvbHVtbklkc2AgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgYGluaXRpYWxIaWRlYFxuICAgICAgICAgIGlmICh2aWV3Q29uZmlnLmNvbHVtbk9wdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9ucy5tYXAoKGNvbHVtbk9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbnMuaWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXllZENvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9uc1xuICAgICAgICAgICAgICAuZmlsdGVyKChjb2x1bW5PcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIWNvbHVtbk9wdGlvbi5pbml0aWFsSGlkZTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLm1hcCgoY29sdW1uT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbi5pZDtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG5ld1ZpZXdTdGF0ZS5jb2x1bW5JZHMgPSBjb2x1bW5JZHM7XG4gICAgICAgICAgICBuZXdWaWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzID0gZGlzcGxheWVkQ29sdW1uSWRzO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBuZXdEYXRhU3RhdGUgPSBkYXRhU3RhdGUuYWRkT3JVcGRhdGVWaWV3KFxuICAgICAgICAgICAgdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgIG5ld1ZpZXdTdGF0ZVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShuZXdEYXRhU3RhdGUsIHRoaXMuaW5pdFNvdXJjZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudEF2YWlsYWJsZUNvbHVtbklkcyA9IHZpZXdDb25maWcuY29sdW1uT3B0aW9ucz8ubWFwKFxuICAgICAgICAgICAgKGNvbHVtbk9wdGlvbnMpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGNvbHVtbk9wdGlvbnMuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHRoZSB2aWV3IHN0YXRlJ3MgYXZhaWxhYmxlIGNvbHVtbnMgbWF0Y2ggd2l0aCB0aGUgdmlldyBjb25maWcuIEFsc28sXG4gICAgICAgICAgLy8gYWRkIG5ldyBjb2x1bW5zIHRvIHRoZSBgZGlzcGxheWVkQ29sdW1uSWRzYCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBgaW5pdGlhbEhpZGVgLlxuICAgICAgICAgIC8vIFdlIG9ubHkgYWRkIGNvbHVtbnMgdG8gYGRpc3BsYXllZENvbHVtbnNJZHNgIGlmIHdlIGhhZCBwcmV2aW91c2x5IHRyYWNrZWRcbiAgICAgICAgICAvLyBgY29sdW1uSWRzYCB0byBhdm9pZCBicmVha2luZyBjaGFuZ2VzLlxuICAgICAgICAgIGlmIChjdXJyZW50Vmlld1N0YXRlLmNvbHVtbklkcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBsZXQgbmV3Q29sdW1uSWRzID0gY3VycmVudEF2YWlsYWJsZUNvbHVtbklkcy5maWx0ZXIoXG4gICAgICAgICAgICAgIChpZCkgPT4gY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMuaW5kZXhPZihpZCkgPCAwXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbmV3Q29sdW1uSWRzID0gbmV3Q29sdW1uSWRzLmZpbHRlcigoY29sdW1uSWQpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHZpZXdDb25maWcuY29sdW1uT3B0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2x1bW5PcHRpb24pID0+XG4gICAgICAgICAgICAgICAgICBjb2x1bW5PcHRpb24uaWQgPT09IGNvbHVtbklkICYmICFjb2x1bW5PcHRpb24uaW5pdGlhbEhpZGVcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBBZGQgdGhlIGNvbHVtbiBJRHMgdGhhdCBub3cgZXhpc3QgdG8gdGhlIGRhdGEgbWFuYWdlciBzdGF0ZSBib3RoIGFzIGF2YWlsYWJsZVxuICAgICAgICAgICAgLy8gYW5kIGFzIHNob3duLlxuICAgICAgICAgICAgY3VycmVudFZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMgPVxuICAgICAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcy5jb25jYXQobmV3Q29sdW1uSWRzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gQWRkIHRoZSBjb2x1bW4gSURzIHRoYXQgbm93IGV4aXN0IHRvIHRoZSBkYXRhIG1hbmFnZXIgc3RhdGUgYm90aCBhcyBhdmFpbGFibGVcbiAgICAgICAgICAvLyBhbmQgYXMgc2hvd24uXG4gICAgICAgICAgY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMgPSBjdXJyZW50QXZhaWxhYmxlQ29sdW1uSWRzO1xuXG4gICAgICAgICAgY29uc3QgbmV3RGF0YVN0YXRlID0gZGF0YVN0YXRlLmFkZE9yVXBkYXRlVmlldyhcbiAgICAgICAgICAgIHZpZXdDb25maWcuaWQsXG4gICAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKG5ld0RhdGFTdGF0ZSwgdGhpcy5pbml0U291cmNlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBkYXRhIHN0YXRlIGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqIEl0IGV4Y2x1ZGVzIHVwZGF0ZXMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlLiBUaGlzIGFsbG93cyBzdWJzY3JpYmVycyB0byBvbmx5IHJlc3BvbmQgdG9cbiAgICogY2hhbmdlcyB0aGV5IGRpZCBub3QgY3JlYXRlIGFuZCBoZWxwcyBwcmV2ZW50IGluZmluaXRlIGxvb3BzIG9mIHVwZGF0ZXMgYW5kIHJlc3BvbnNlcy5cbiAgICogQHBhcmFtIHNvdXJjZUlkIFRoZSBJRCBvZiB0aGUgZW50aXR5IHN1YnNjcmliaW5nIHRvIGRhdGEgc3RhdGUgdXBkYXRlcy4gVGhpcyBjYW4gYmUgYW55IHZhbHVlIHlvdSBjaG9vc2VcbiAgICogYnV0IHNob3VsZCBiZSB1bmlxdWUgd2l0aGluIHRoZSBkYXRhIG1hbmFnZXIgaW5zdGFuY2UgYW5kIHNob3VsZCBhbHNvIGJlIHVzZWQgd2hlbiB0aGF0IGVudGl0eSB1cGRhdGVzIHRoZSBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBnZXREYXRhU3RhdGVVcGRhdGVzKFxuICAgIHNvdXJjZUlkOiBzdHJpbmcsXG4gICAgdXBkYXRlRmlsdGVyPzogU2t5RGF0YU1hbmFnZXJTdGF0ZVVwZGF0ZUZpbHRlckFyZ3NcbiAgKTogT2JzZXJ2YWJsZTxTa3lEYXRhTWFuYWdlclN0YXRlPiB7XG4gICAgLy8gZmlsdGVyIG91dCBldmVudHMgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlIGFuZCBlbWl0IGp1c3QgdGhlIGRhdGFTdGF0ZVxuICAgIGlmICh1cGRhdGVGaWx0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZUNoYW5nZS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXRlQ2hhbmdlKSA9PiBzb3VyY2VJZCAhPT0gc3RhdGVDaGFuZ2Uuc291cmNlKSxcbiAgICAgICAgbWFwKChzdGF0ZUNoYW5nZSkgPT4gc3RhdGVDaGFuZ2UuZGF0YVN0YXRlKSxcbiAgICAgICAgdXBkYXRlRmlsdGVyLmNvbXBhcmF0b3JcbiAgICAgICAgICA/IGRpc3RpbmN0VW50aWxDaGFuZ2VkKHVwZGF0ZUZpbHRlci5jb21wYXJhdG9yKVxuICAgICAgICAgIDogZGlzdGluY3RVbnRpbENoYW5nZWQoXG4gICAgICAgICAgICAgIHRoaXMuZ2V0RGVmYXVsdFN0YXRlQ29tcGFyYXRvcih1cGRhdGVGaWx0ZXIucHJvcGVydGllcylcbiAgICAgICAgICAgIClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTdGF0ZUNoYW5nZS5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXRlQ2hhbmdlKSA9PiBzb3VyY2VJZCAhPT0gc3RhdGVDaGFuZ2Uuc291cmNlKSxcbiAgICAgICAgbWFwKChzdGF0ZUNoYW5nZSkgPT4gc3RhdGVDaGFuZ2UuZGF0YVN0YXRlKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZGF0YSBzdGF0ZSBhbmQgZW1pdHMgYSBuZXcgdmFsdWUgdG8gZW50aXRpZXMgc3Vic2NyaWJlZCB0byBkYXRhIHN0YXRlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBzdGF0ZSBUaGUgbmV3IGBTa3lEYXRhTWFuYWdlclN0YXRlYCB2YWx1ZS5cbiAgICogQHBhcmFtIHNvdXJjZUlkIFRoZSBJRCBvZiB0aGUgZW50aXR5IHVwZGF0aW5nIHRoZSBzdGF0ZS4gVGhpcyBjYW4gYmUgYW55IHZhbHVlIHlvdSBjaG9vc2UsXG4gICAqIGJ1dCBzaG91bGQgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyIGluc3RhbmNlIGFuZCBzaG91bGQgYWxzbyBiZSB1c2VkIHdoZW4gdGhhdCBlbnRpdHlcbiAgICogc3Vic2NyaWJlcyB0byBzdGF0ZSBjaGFuZ2VzIGZyb20gYGdldERhdGFTdGF0ZVVwZGF0ZXNgLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZURhdGFTdGF0ZShzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSwgc291cmNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5ld1N0YXRlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGUoc3RhdGUuZ2V0U3RhdGVPcHRpb25zKCkpO1xuICAgIGNvbnN0IG5ld1N0YXRlQ2hhbmdlID0gbmV3IFNreURhdGFNYW5hZ2VyU3RhdGVDaGFuZ2UobmV3U3RhdGUsIHNvdXJjZUlkKTtcblxuICAgIHRoaXMuZGF0YVN0YXRlQ2hhbmdlLm5leHQobmV3U3RhdGVDaGFuZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYFNreURhdGFNYW5hZ2VyQ29uZmlnYC5cbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50RGF0YU1hbmFnZXJDb25maWcoKTogU2t5RGF0YU1hbmFnZXJDb25maWcge1xuICAgIHJldHVybiB0aGlzLmRhdGFNYW5hZ2VyQ29uZmlnLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBkYXRhIG1hbmFnZXIgY29uZmlnIGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqL1xuICBwdWJsaWMgZ2V0RGF0YU1hbmFnZXJDb25maWdVcGRhdGVzKCk6IE9ic2VydmFibGU8U2t5RGF0YU1hbmFnZXJDb25maWc+IHtcbiAgICByZXR1cm4gdGhpcy5kYXRhTWFuYWdlckNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkYXRhIG1hbmFnZXIgY29uZmlnIGFuZCBlbWl0cyBhIG5ldyB2YWx1ZSB0byBlbnRpdGllcyBzdWJzY3JpYmVkIHRvIGRhdGEgY29uZmlnIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IGBTa3lEYXRhTWFuYWdlckNvbmZpZ2AgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlRGF0YU1hbmFnZXJDb25maWcodmFsdWU6IFNreURhdGFNYW5hZ2VyQ29uZmlnKTogdm9pZCB7XG4gICAgdGhpcy5kYXRhTWFuYWdlckNvbmZpZy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgb2YgZGF0YSB2aWV3IGNvbmZpZyBjaGFuZ2VzIHRoYXQgdmlld3MgYW5kIG90aGVyIGRhdGEgbWFuYWdlciBlbnRpdGllcyBjYW4gc3Vic2NyaWJlIHRvLlxuICAgKi9cbiAgcHVibGljIGdldERhdGFWaWV3c1VwZGF0ZXMoKTogT2JzZXJ2YWJsZTxTa3lEYXRhVmlld0NvbmZpZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMudmlld3M7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIG9mIHRoZSBhY3RpdmUgdmlldyBJRCB0aGF0IHZpZXdzIGFuZCBvdGhlciBkYXRhIG1hbmFnZXIgZW50aXRpZXMgY2FuIHN1YnNjcmliZSB0by5cbiAgICovXG4gIHB1YmxpYyBnZXRBY3RpdmVWaWV3SWRVcGRhdGVzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlVmlld0lkO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGFjdGl2ZSB2aWV3IElELiBUaGUgZGF0YSBtYW5hZ2VyIGNoYW5nZXMgdGhlIGRpc3BsYXllZCB2aWV3LlxuICAgKiBAcGFyYW0gaWQgVGhlIG5ldyBhY3RpdmUgdmlldyBJRC5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVBY3RpdmVWaWV3SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVmlld0lkLm5leHQoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhVmlld0NvbmZpZ2AgZm9yIHRoZSBnaXZlbiB2aWV3IElELlxuICAgKiBAcGFyYW0gdmlld0lkIFRoZSBJRCBvZiB0aGUgdmlldyBjb25maWcgdG8gZ2V0LlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdCeUlkKHZpZXdJZDogc3RyaW5nKTogU2t5RGF0YVZpZXdDb25maWcge1xuICAgIGNvbnN0IGN1cnJlbnRWaWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IHRoaXMudmlld3MudmFsdWU7XG4gICAgY29uc3Qgdmlld0NvbmZpZzogU2t5RGF0YVZpZXdDb25maWcgPSBjdXJyZW50Vmlld3MuZmluZChcbiAgICAgICh2aWV3KSA9PiB2aWV3LmlkID09PSB2aWV3SWRcbiAgICApO1xuXG4gICAgcmV0dXJuIHZpZXdDb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZ2l2ZW4gdmlldyBjb25maWcuIFRoZSByZWdpc3RlcmVkIHZpZXcgd2l0aCB0aGUgc2FtZSBJRCBpcyB1cGRhdGVkIHRvIHRoZVxuICAgKiBwcm92aWRlZCBjb25maWcsIHNvIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZXkgY2hhbmdlZC4gSWYgdGhlXG4gICAqIHZpZXcgd2FzIG5vdCBpbml0aWFsaXplZCBhbHJlYWR5LCBubyB1cGRhdGUgaGFwcGVucy5cbiAgICogQHBhcmFtIHZpZXcgVGhlIG5ldyBgU2t5RGF0YVZpZXdDb25maWdgIGNvbnRhaW5pbmcgYWxsIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlVmlld0NvbmZpZyh2aWV3OiBTa3lEYXRhVmlld0NvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRWaWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IHRoaXMudmlld3MudmFsdWU7XG4gICAgY29uc3QgZXhpc3RpbmdWaWV3SW5kZXggPSBjdXJyZW50Vmlld3MuZmluZEluZGV4KFxuICAgICAgKGN1cnJlbnRWaWV3KSA9PiBjdXJyZW50Vmlldy5pZCA9PT0gdmlldy5pZFxuICAgICk7XG5cbiAgICBpZiAoZXhpc3RpbmdWaWV3SW5kZXggPT09IC0xKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBIHZpZXcgd2l0aCB0aGUgaWQge2lkfSBkb2VzIG5vdCBleGlzdC4nLCB2aWV3LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY3VycmVudFZpZXdzW2V4aXN0aW5nVmlld0luZGV4XSA9IHZpZXc7XG4gICAgICB0aGlzLnZpZXdzLm5leHQoY3VycmVudFZpZXdzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0Vmlld2tlZXBlckNsYXNzZXModmlld0lkOiBzdHJpbmcsIGNsYXNzZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld2tlZXBlckNsYXNzZXMgPSB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnZhbHVlO1xuICAgIHZpZXdrZWVwZXJDbGFzc2VzW3ZpZXdJZF0gPSBjbGFzc2VzO1xuXG4gICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5uZXh0KHZpZXdrZWVwZXJDbGFzc2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyRGF0YVN0YXRlUHJvcGVydGllcyhcbiAgICBzdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSxcbiAgICBwcm9wZXJ0aWVzOiBzdHJpbmdbXVxuICApOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB7XG4gICAgY29uc3Qgc3RhdGVQcm9wZXJ0aWVzID0gc3RhdGUuZ2V0U3RhdGVPcHRpb25zKCkgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgICBjb25zdCBmaWx0ZXJlZFN0YXRlUHJvcGVydGllczogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0ZVByb3BlcnRpZXMsIHByb3BlcnR5KSkge1xuICAgICAgICBmaWx0ZXJlZFN0YXRlUHJvcGVydGllc1twcm9wZXJ0eV0gPSBzdGF0ZVByb3BlcnRpZXNbcHJvcGVydHldO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZFN0YXRlUHJvcGVydGllcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdFN0YXRlQ29tcGFyYXRvcihcbiAgICBwcm9wZXJ0aWVzOiBzdHJpbmdbXVxuICApOiAoc3RhdGUxOiBTa3lEYXRhTWFuYWdlclN0YXRlLCBzdGF0ZTI6IFNreURhdGFNYW5hZ2VyU3RhdGUpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICBzdGF0ZTE6IFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gICAgICBzdGF0ZTI6IFNreURhdGFNYW5hZ2VyU3RhdGVcbiAgICApOiBib29sZWFuID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkU3RhdGUxID0gdGhpcy5maWx0ZXJEYXRhU3RhdGVQcm9wZXJ0aWVzKHN0YXRlMSwgcHJvcGVydGllcyk7XG4gICAgICBjb25zdCBmaWx0ZXJlZFN0YXRlMiA9IHRoaXMuZmlsdGVyRGF0YVN0YXRlUHJvcGVydGllcyhzdGF0ZTIsIHByb3BlcnRpZXMpO1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkU3RhdGUxKSA9PT0gSlNPTi5zdHJpbmdpZnkoZmlsdGVyZWRTdGF0ZTIpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvZGF0YS1tYW5hZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFjLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0UsT0FBTyxFQUNMLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sR0FBRyxFQUNILElBQUksRUFDSixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUl4QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUkvRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRTVEOzs7Ozs7O0dBT0c7QUFFSCxNQUFNLE9BQU8scUJBQXFCO0lBYWhDLFlBQVksZUFBbUM7O1FBWnhDLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUEyQixFQUFFLENBQUMsQ0FBQztRQUU3RSw4Q0FBeUIsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLEVBQUM7UUFDdEQsbURBQThCLElBQUksZUFBZSxDQUF1QixFQUFFLENBQUMsRUFBQztRQUM1RSx1Q0FBa0IsSUFBSSxlQUFlLENBQXNCLEVBQUUsQ0FBQyxFQUFDO1FBQy9ELGlEQUE0QixJQUFJLGFBQWEsQ0FBNEIsQ0FBQyxDQUFDLEVBQUM7UUFFNUUsdURBQW9DO1FBQ3BDLCtDQUFpQixJQUFJLE9BQU8sRUFBUSxFQUFDO1FBQ3JDLDRDQUFjLHdCQUF3QixFQUFDO1FBQ3ZDLHlEQUFxQztRQUduQyx1QkFBQSxJQUFJLDBDQUFvQixlQUFlLE1BQUEsQ0FBQztJQUMxQyxDQUFDO0lBRU0sV0FBVztRQUNoQix1QkFBQSxJQUFJLDJDQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDOUIsdUJBQUEsSUFBSSxnREFBbUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQyx1QkFBQSxJQUFJLG9DQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkIsdUJBQUEsSUFBSSw4Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyx1QkFBQSxJQUFJLDRDQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsdUJBQUEsSUFBSSw0Q0FBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxlQUFlLENBQUMsSUFBNEI7UUFDakQsSUFBSSx1QkFBQSxJQUFJLDRDQUFlLEVBQUU7WUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1lBQ3pFLE9BQU87U0FDUjtRQUVELHVCQUFBLElBQUksd0NBQWtCLElBQUksTUFBQSxDQUFDO1FBRTNCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFckMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFckQsSUFBSSxXQUFXLEVBQUU7WUFDZix1QkFBQSxJQUFJLDhDQUFpQjtpQkFDbEIsU0FBUyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQztpQkFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDYixTQUFTLENBQUMsQ0FBQyxNQUFrQyxFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxlQUFlLENBQ2xCLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQy9CLHVCQUFBLElBQUkseUNBQVksQ0FDakIsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNMLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsdUJBQUEsSUFBSSx5Q0FBWSxDQUFDLENBQUM7U0FDMUQ7UUFFRCxJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx1QkFBQSxJQUFJLHlDQUFZLENBQUM7aUJBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQUEsSUFBSSw0Q0FBZSxDQUFDLENBQUM7aUJBQ3BDLFNBQVMsQ0FBQyxDQUFDLEtBQTBCLEVBQUUsRUFBRTtnQkFDeEMsdUJBQUEsSUFBSSw4Q0FBaUI7cUJBQ2xCLFNBQVMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO3FCQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUFBLElBQUksNENBQWUsQ0FBQyxDQUFDO3FCQUNwQyxTQUFTO2dCQUNSLGdFQUFnRTtnQkFDaEUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUNSLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO29CQUN0RCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixDQUFDLENBQ0YsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLFVBQTZCO1FBQy9DLE1BQU0sWUFBWSxHQUFHLHVCQUFBLElBQUksb0NBQU8sQ0FBQyxLQUFLLENBQUM7UUFFdkMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNuQyxPQUFPLENBQUMsSUFBSSxDQUNWLG1DQUFtQyxVQUFVLENBQUMsRUFBRSxnQ0FBZ0MsQ0FDakYsQ0FBQztZQUNGLE9BQU87U0FDUjtRQUVELFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsdUJBQUEsSUFBSSxvQ0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUvQix5RkFBeUY7UUFDekYsMkVBQTJFO1FBQzNFLHVCQUFBLElBQUksMkNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDaEQsdUJBQUEsSUFBSSwyQ0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUVILHVCQUFBLElBQUksOENBQWlCO2FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ25DLE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUVuRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JCLE1BQU0sWUFBWSxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBRXJFLG1GQUFtRjtnQkFDbkYsZ0ZBQWdGO2dCQUNoRixJQUFJLFVBQVUsQ0FBQyxhQUFhLEVBQUU7b0JBQzVCLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7d0JBQy9ELE9BQU8sYUFBYSxDQUFDLEVBQUUsQ0FBQztvQkFDMUIsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsYUFBYTt5QkFDaEQsTUFBTSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7d0JBQ3ZCLE9BQU8sQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO29CQUNuQyxDQUFDLENBQUM7eUJBQ0QsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7d0JBQ3BCLE9BQU8sWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLENBQUM7b0JBRUwsWUFBWSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7b0JBQ25DLFlBQVksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztpQkFDdEQ7Z0JBQ0QsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FDNUMsVUFBVSxDQUFDLEVBQUUsRUFDYixZQUFZLENBQ2IsQ0FBQztnQkFFRixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSx1QkFBQSxJQUFJLHlDQUFZLENBQUMsQ0FBQzthQUN0RDtpQkFBTTtnQkFDTCxNQUFNLHlCQUF5QixHQUM3QixVQUFVLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO29CQUM5QyxPQUFPLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFFWCxtRkFBbUY7Z0JBQ25GLHFGQUFxRjtnQkFDckYsNEVBQTRFO2dCQUM1RSx5Q0FBeUM7Z0JBQ3pDLElBQUksZ0JBQWdCLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ3pDLElBQUksWUFBWSxHQUFHLHlCQUF5QixFQUFFLE1BQU0sQ0FDbEQsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUNuRCxDQUFDO29CQUNGLFlBQVksR0FBRyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7d0JBQy9DLE9BQU8sVUFBVSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQ25DLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDZixZQUFZLENBQUMsRUFBRSxLQUFLLFFBQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQzVELENBQUM7b0JBQ0osQ0FBQyxDQUFDLENBQUM7b0JBRUgsZ0ZBQWdGO29CQUNoRixnQkFBZ0I7b0JBQ2hCLGdCQUFnQixDQUFDLGtCQUFrQjt3QkFDakMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2lCQUM1RDtnQkFDRCxnRkFBZ0Y7Z0JBQ2hGLGdCQUFnQjtnQkFDaEIsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLHlCQUF5QixDQUFDO2dCQUV2RCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsZUFBZSxDQUM1QyxVQUFVLENBQUMsRUFBRSxFQUNiLGdCQUFnQixDQUNqQixDQUFDO2dCQUVGLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLHVCQUFBLElBQUkseUNBQVksQ0FBQyxDQUFDO2FBQ3REO1FBQ0gsQ0FBQyxDQUFDO2FBQ0QsV0FBVyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLG1CQUFtQixDQUN4QixRQUFnQixFQUNoQixZQUFrRDtRQUVsRCx5RUFBeUU7UUFDekUsSUFBSSxZQUFZLEVBQUU7WUFDaEIsT0FBTyx1QkFBQSxJQUFJLDhDQUFpQixDQUFDLElBQUksQ0FDL0IsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUN4RCxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFDM0MsWUFBWSxDQUFDLFVBQVU7Z0JBQ3JCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO2dCQUMvQyxDQUFDLENBQUMsb0JBQW9CLENBQ2xCLHVCQUFBLElBQUksMEZBQTJCLE1BQS9CLElBQUksRUFDRixZQUFZLENBQUMsVUFBa0QsQ0FDaEUsQ0FDRixDQUNOLENBQUM7U0FDSDthQUFNO1lBQ0wsT0FBTyx1QkFBQSxJQUFJLDhDQUFpQixDQUFDLElBQUksQ0FDL0IsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEtBQUssV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUN4RCxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FDNUMsQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLGVBQWUsQ0FBQyxLQUEwQixFQUFFLFFBQWdCO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLElBQUksbUJBQW1CLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDbEUsTUFBTSxjQUFjLEdBQUcsSUFBSSx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFekUsdUJBQUEsSUFBSSw4Q0FBaUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sdUJBQUEsSUFBSSxnREFBbUIsQ0FBQyxLQUFLLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksMkJBQTJCO1FBQ2hDLE9BQU8sdUJBQUEsSUFBSSxnREFBbUIsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksdUJBQXVCLENBQUMsS0FBMkI7UUFDeEQsdUJBQUEsSUFBSSxnREFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sdUJBQUEsSUFBSSxvQ0FBTyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNJLHNCQUFzQjtRQUMzQixPQUFPLHVCQUFBLElBQUksMkNBQWMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsRUFBVTtRQUNsQyx1QkFBQSxJQUFJLDJDQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXLENBQUMsTUFBYztRQUMvQixNQUFNLFlBQVksR0FBd0IsdUJBQUEsSUFBSSxvQ0FBTyxDQUFDLEtBQUssQ0FBQztRQUM1RCxNQUFNLFVBQVUsR0FBa0MsWUFBWSxDQUFDLElBQUksQ0FDakUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUM3QixDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZ0JBQWdCLENBQUMsSUFBdUI7UUFDN0MsTUFBTSxZQUFZLEdBQXdCLHVCQUFBLElBQUksb0NBQU8sQ0FBQyxLQUFLLENBQUM7UUFDNUQsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUM5QyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUM1QyxDQUFDO1FBRUYsSUFBSSxpQkFBaUIsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuRTthQUFNO1lBQ0wsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ3ZDLHVCQUFBLElBQUksb0NBQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQkFBb0IsQ0FBQyxNQUFjLEVBQUUsT0FBaUI7UUFDM0QsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDO1FBQ3ZELGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUVwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDakQsQ0FBQzs7MmtCQUdDLEtBQTBCLEVBQzFCLFVBQTREO0lBRTVELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNoRCxNQUFNLHVCQUF1QixHQUE0QixFQUFFLENBQUM7SUFFNUQsSUFBSSxVQUFVLEVBQUU7UUFDZCxLQUFLLE1BQU0sUUFBUSxJQUFJLFVBQVUsRUFBRTtZQUNqQyxJQUFJLFFBQVEsSUFBSSxlQUFlLEVBQUU7Z0JBQy9CLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMvRDtTQUNGO0tBQ0Y7SUFFRCxPQUFPLHVCQUF1QixDQUFDO0FBQ2pDLENBQUMsK0dBR0MsVUFBNEQ7SUFFNUQsT0FBTyxDQUNMLE1BQTJCLEVBQzNCLE1BQTJCLEVBQ2xCLEVBQUU7UUFDWCxNQUFNLGNBQWMsR0FBRyx1QkFBQSxJQUFJLDBGQUEyQixNQUEvQixJQUFJLEVBQ3pCLE1BQU0sRUFDTixVQUFVLENBQ1gsQ0FBQztRQUNGLE1BQU0sY0FBYyxHQUFHLHVCQUFBLElBQUksMEZBQTJCLE1BQS9CLElBQUksRUFDekIsTUFBTSxFQUNOLFVBQVUsQ0FDWCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDO0FBQ0osQ0FBQztrSEF4VlUscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5VUlDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgdGFrZSxcbiAgdGFrZVVudGlsLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlckluaXRBcmdzIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLWluaXQtYXJncyc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLXN0YXRlJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGVDaGFuZ2UgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUtY2hhbmdlJztcbmltcG9ydCB7IFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS1tYW5hZ2VyLXN0YXRlLW9wdGlvbnMnO1xuaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTdGF0ZVVwZGF0ZUZpbHRlckFyZ3MgfSBmcm9tICcuL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUtdXBkYXRlLWZpbHRlci1hcmdzJztcbmltcG9ydCB7IFNreURhdGFWaWV3Q29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS12aWV3LWNvbmZpZyc7XG5pbXBvcnQgeyBTa3lEYXRhVmlld1N0YXRlIH0gZnJvbSAnLi9tb2RlbHMvZGF0YS12aWV3LXN0YXRlJztcblxuLyoqXG4gKiBUaGUgZGF0YSBtYW5hZ2VyIHNlcnZpY2UgcHJvdmlkZXMgd2F5cyBmb3IgZGF0YSB2aWV3cywgdG9vbGJhciBpdGVtcywgYW5kIG1vcmUgdG8gc3RheSB1cCB0byBkYXRlXG4gKiB3aXRoIHRoZSBhY3RpdmUgdmlldyBJRCwgZGF0YSBtYW5hZ2VyIGNvbmZpZywgcmVnaXN0ZXJlZCB2aWV3cyBhbmQgdGhlaXIgY29uZmlncywgYW5kIGRhdGEgc3RhdGUuXG4gKiBUaGVyZSBhcmUgbWV0aG9kcyB0byBnZXQgY3VycmVudCB2YWx1ZXMsIHVwZGF0ZSB2YWx1ZXMsIGFuZCBnZXQgc3Vic2NyaXB0aW9ucyB0byB0aGUgY2hhbmdpbmcgdmFsdWVzLjxici8+IDxici8+XG4gKiBQcm92aWRlIHRoaXMgc2VydmljZSBhdCB0aGUgY29tcG9uZW50IGxldmVsIGZvciBlYWNoIGluc3RhbmNlIG9mIGEgZGF0YSBtYW5hZ2VyLiBEbyBub3RcbiAqIHByb3ZpZGUgaXQgYXQgdGhlIG1vZHVsZSBsZXZlbCBvciBpbiBgYXBwLWV4dHJhc2AuIFRoaXMgYWxsb3dzIG11bHRpcGxlIGRhdGFcbiAqIG1hbmFnZXJzIHRvIGJlIHVzZWQgYW5kIHNlbGYtY29udGFpbmVkLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHZpZXdrZWVwZXJDbGFzc2VzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4+KHt9KTtcblxuICByZWFkb25seSAjYWN0aXZlVmlld0lkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcbiAgcmVhZG9ubHkgI2RhdGFNYW5hZ2VyQ29uZmlnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTa3lEYXRhTWFuYWdlckNvbmZpZz4oe30pO1xuICByZWFkb25seSAjdmlld3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreURhdGFWaWV3Q29uZmlnW10+KFtdKTtcbiAgcmVhZG9ubHkgI2RhdGFTdGF0ZUNoYW5nZSA9IG5ldyBSZXBsYXlTdWJqZWN0PFNreURhdGFNYW5hZ2VyU3RhdGVDaGFuZ2U+KDEpO1xuXG4gICNpc0luaXRpYWxpemVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNpbml0U291cmNlID0gJ2RhdGFNYW5hZ2VyU2VydmljZUluaXQnO1xuICAjdWlDb25maWdTZXJ2aWNlOiBTa3lVSUNvbmZpZ1NlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IodWlDb25maWdTZXJ2aWNlOiBTa3lVSUNvbmZpZ1NlcnZpY2UpIHtcbiAgICB0aGlzLiN1aUNvbmZpZ1NlcnZpY2UgPSB1aUNvbmZpZ1NlcnZpY2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jYWN0aXZlVmlld0lkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy4jZGF0YU1hbmFnZXJDb25maWcuY29tcGxldGUoKTtcbiAgICB0aGlzLiN2aWV3cy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI2RhdGFTdGF0ZUNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgZGF0YSBtYW5hZ2VyIHdpdGggdGhlIGdpdmVuIHNldHRpbmdzIGFuZCBzZXRzIGBpc0luaXRpYWxpemVkYCB0byBgdHJ1ZWAuXG4gICAqIFRoaXMgbXVzdCBiZSBjYWxsZWQgZm9yIHRoZSBkYXRhIG1hbmFnZXIgdG8gcmVuZGVyLlxuICAgKiBAcGFyYW0gYXJncyBUaGUgaW5pdGlhbCBhY3RpdmUgdmlldyBJRCwgZGF0YSBtYW5hZ2VyIGNvbmZpZywgYW5kIHN0YXRlIHRvIHVzZSBmb3IgdGhlIGRhdGEgbWFuYWdlci5cbiAgICogSWYgYSBzZXR0aW5ncyBrZXkgaXMgcHJvdmlkZWQsIGl0IGNoZWNrcyBmb3IgYSBzYXZlZCBkYXRhIHN0YXRlIGluIHRoZSBTS1kgVUkgY29uZmlnIHNlcnZpY2UgYmVmb3JlIHVzaW5nIHRoZSBkZWZhdWx0IGRhdGEgc3RhdGVcbiAgICogYW5kIHNhdmVzIGFueSBzdGF0ZSBjaGFuZ2VzIHRvIHRoZSBzZXJ2aWNlLlxuICAgKi9cbiAgcHVibGljIGluaXREYXRhTWFuYWdlcihhcmdzOiBTa3lEYXRhTWFuYWdlckluaXRBcmdzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuI2lzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIGNvbnNvbGUud2FybignVGhpcyBkYXRhIG1hbmFnZXIgaW5zdGFuY2UgaGFzIGFscmVhZHkgYmVlbiBpbml0aWFsaXplZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLiNpc0luaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgIGNvbnN0IGRlZmF1bHREYXRhU3RhdGUgPSBhcmdzLmRlZmF1bHREYXRhU3RhdGU7XG4gICAgY29uc3Qgc2V0dGluZ3NLZXkgPSBhcmdzLnNldHRpbmdzS2V5O1xuXG4gICAgdGhpcy51cGRhdGVBY3RpdmVWaWV3SWQoYXJncy5hY3RpdmVWaWV3SWQpO1xuICAgIHRoaXMudXBkYXRlRGF0YU1hbmFnZXJDb25maWcoYXJncy5kYXRhTWFuYWdlckNvbmZpZyk7XG5cbiAgICBpZiAoc2V0dGluZ3NLZXkpIHtcbiAgICAgIHRoaXMuI3VpQ29uZmlnU2VydmljZVxuICAgICAgICAuZ2V0Q29uZmlnKHNldHRpbmdzS2V5LCBkZWZhdWx0RGF0YVN0YXRlLmdldFN0YXRlT3B0aW9ucygpKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKChjb25maWc6IFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhU3RhdGUoXG4gICAgICAgICAgICBuZXcgU2t5RGF0YU1hbmFnZXJTdGF0ZShjb25maWcpLFxuICAgICAgICAgICAgdGhpcy4jaW5pdFNvdXJjZVxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZURhdGFTdGF0ZShkZWZhdWx0RGF0YVN0YXRlLCB0aGlzLiNpbml0U291cmNlKTtcbiAgICB9XG5cbiAgICBpZiAoc2V0dGluZ3NLZXkpIHtcbiAgICAgIHRoaXMuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLiNpbml0U291cmNlKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlKSA9PiB7XG4gICAgICAgICAgdGhpcy4jdWlDb25maWdTZXJ2aWNlXG4gICAgICAgICAgICAuc2V0Q29uZmlnKHNldHRpbmdzS2V5LCBzdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICAgICAgICAgICAgKCkgPT4ge30sXG4gICAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0NvdWxkIG5vdCBzYXZlIGRhdGEgbWFuYWdlciBzZXR0aW5ncy4nKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oZXJyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIGEgdmlldyB3aXRoaW4gdGhlIGRhdGEgbWFuYWdlci4gVGhpcyBtdXN0IGJlIGNhbGxlZCBmb3IgZWFjaCB2aWV3IGZvciB0aGUgdmlld3MgdG8gYXBwZWFyIHdpdGhpbiB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKiBAcGFyYW0gdmlld0NvbmZpZyBUaGUgU2t5RGF0YVZpZXdDb25maWcgc2V0dGluZ3MgZm9yIHRoZSB2aWV3IGJlaW5nIHJlZ2lzdGVyZWQuXG4gICAqL1xuICBwdWJsaWMgaW5pdERhdGFWaWV3KHZpZXdDb25maWc6IFNreURhdGFWaWV3Q29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZpZXdzID0gdGhpcy4jdmlld3MudmFsdWU7XG5cbiAgICBpZiAodGhpcy5nZXRWaWV3QnlJZCh2aWV3Q29uZmlnLmlkKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgQSBkYXRhIG1hbmFnZXIgdmlldyB3aXRoIHRoZSBpZCAke3ZpZXdDb25maWcuaWR9IGhhcyBhbHJlYWR5IGJlZW4gaW5pdGlhbGl6ZWQuYFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjdXJyZW50Vmlld3MucHVzaCh2aWV3Q29uZmlnKTtcbiAgICB0aGlzLiN2aWV3cy5uZXh0KGN1cnJlbnRWaWV3cyk7XG5cbiAgICAvLyBXaGVuIHRoZSBpbml0aWFsIGFjdGl2ZVZpZXdJZCBpcyBzZXQgdGhlcmUgYXJlIG5vIHZpZXdzIHJlZ2lzdGVyZWQuIFdlIGhhdmUgdG8gcmUtZW1pdFxuICAgIC8vIHRoZSBhY3RpdmVJZCBzbyB0aGUgbmV3bHkgcmVnaXN0ZXJlZCB2aWV3IGlzIG5vdGlmaWVkIHRoYXQgaXQgaXMgYWN0aXZlLlxuICAgIHRoaXMuI2FjdGl2ZVZpZXdJZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoaWQpID0+IHtcbiAgICAgIHRoaXMuI2FjdGl2ZVZpZXdJZC5uZXh0KGlkKTtcbiAgICB9KTtcblxuICAgIHRoaXMuI2RhdGFTdGF0ZUNoYW5nZVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhU3RhdGUgPSBjaGFuZ2UuZGF0YVN0YXRlO1xuICAgICAgICBjb25zdCBjdXJyZW50Vmlld1N0YXRlID0gZGF0YVN0YXRlLmdldFZpZXdTdGF0ZUJ5SWQodmlld0NvbmZpZy5pZCk7XG5cbiAgICAgICAgaWYgKCFjdXJyZW50Vmlld1N0YXRlKSB7XG4gICAgICAgICAgY29uc3QgbmV3Vmlld1N0YXRlID0gbmV3IFNreURhdGFWaWV3U3RhdGUoeyB2aWV3SWQ6IHZpZXdDb25maWcuaWQgfSk7XG5cbiAgICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgdmlldyBzdGF0ZSdzIGF2YWlsYWJsZSBjb2x1bW5zIG1hdGNoIHdpdGggdGhlIHZpZXcgY29uZmlnLiBBbHNvLFxuICAgICAgICAgIC8vIGFkZCBjb2x1bW5zIHRvIHRoZSBgZGlzcGxheWVkQ29sdW1uSWRzYCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBgaW5pdGlhbEhpZGVgXG4gICAgICAgICAgaWYgKHZpZXdDb25maWcuY29sdW1uT3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgY29sdW1uSWRzID0gdmlld0NvbmZpZy5jb2x1bW5PcHRpb25zLm1hcCgoY29sdW1uT3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gY29sdW1uT3B0aW9ucy5pZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheWVkQ29sdW1uSWRzID0gdmlld0NvbmZpZy5jb2x1bW5PcHRpb25zXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGNvbHVtbk9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAhY29sdW1uT3B0aW9uLmluaXRpYWxIaWRlO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAubWFwKChjb2x1bW5PcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sdW1uT3B0aW9uLmlkO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgbmV3Vmlld1N0YXRlLmNvbHVtbklkcyA9IGNvbHVtbklkcztcbiAgICAgICAgICAgIG5ld1ZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMgPSBkaXNwbGF5ZWRDb2x1bW5JZHM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IG5ld0RhdGFTdGF0ZSA9IGRhdGFTdGF0ZS5hZGRPclVwZGF0ZVZpZXcoXG4gICAgICAgICAgICB2aWV3Q29uZmlnLmlkLFxuICAgICAgICAgICAgbmV3Vmlld1N0YXRlXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIHRoaXMudXBkYXRlRGF0YVN0YXRlKG5ld0RhdGFTdGF0ZSwgdGhpcy4jaW5pdFNvdXJjZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudEF2YWlsYWJsZUNvbHVtbklkcyA9XG4gICAgICAgICAgICB2aWV3Q29uZmlnLmNvbHVtbk9wdGlvbnM/Lm1hcCgoY29sdW1uT3B0aW9ucykgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gY29sdW1uT3B0aW9ucy5pZDtcbiAgICAgICAgICAgIH0pIHx8IFtdO1xuXG4gICAgICAgICAgLy8gRW5zdXJlIHRoYXQgdGhlIHZpZXcgc3RhdGUncyBhdmFpbGFibGUgY29sdW1ucyBtYXRjaCB3aXRoIHRoZSB2aWV3IGNvbmZpZy4gQWxzbyxcbiAgICAgICAgICAvLyBhZGQgbmV3IGNvbHVtbnMgdG8gdGhlIGBkaXNwbGF5ZWRDb2x1bW5JZHNgIGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IGBpbml0aWFsSGlkZWAuXG4gICAgICAgICAgLy8gV2Ugb25seSBhZGQgY29sdW1ucyB0byBgZGlzcGxheWVkQ29sdW1uc0lkc2AgaWYgd2UgaGFkIHByZXZpb3VzbHkgdHJhY2tlZFxuICAgICAgICAgIC8vIGBjb2x1bW5JZHNgIHRvIGF2b2lkIGJyZWFraW5nIGNoYW5nZXMuXG4gICAgICAgICAgaWYgKGN1cnJlbnRWaWV3U3RhdGUuY29sdW1uSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGxldCBuZXdDb2x1bW5JZHMgPSBjdXJyZW50QXZhaWxhYmxlQ29sdW1uSWRzPy5maWx0ZXIoXG4gICAgICAgICAgICAgIChpZCkgPT4gY3VycmVudFZpZXdTdGF0ZS5jb2x1bW5JZHMuaW5kZXhPZihpZCkgPCAwXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbmV3Q29sdW1uSWRzID0gbmV3Q29sdW1uSWRzPy5maWx0ZXIoKGNvbHVtbklkKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB2aWV3Q29uZmlnLmNvbHVtbk9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbHVtbk9wdGlvbikgPT5cbiAgICAgICAgICAgICAgICAgIGNvbHVtbk9wdGlvbi5pZCA9PT0gY29sdW1uSWQgJiYgIWNvbHVtbk9wdGlvbi5pbml0aWFsSGlkZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIEFkZCB0aGUgY29sdW1uIElEcyB0aGF0IG5vdyBleGlzdCB0byB0aGUgZGF0YSBtYW5hZ2VyIHN0YXRlIGJvdGggYXMgYXZhaWxhYmxlXG4gICAgICAgICAgICAvLyBhbmQgYXMgc2hvd24uXG4gICAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcyA9XG4gICAgICAgICAgICAgIGN1cnJlbnRWaWV3U3RhdGUuZGlzcGxheWVkQ29sdW1uSWRzLmNvbmNhdChuZXdDb2x1bW5JZHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBZGQgdGhlIGNvbHVtbiBJRHMgdGhhdCBub3cgZXhpc3QgdG8gdGhlIGRhdGEgbWFuYWdlciBzdGF0ZSBib3RoIGFzIGF2YWlsYWJsZVxuICAgICAgICAgIC8vIGFuZCBhcyBzaG93bi5cbiAgICAgICAgICBjdXJyZW50Vmlld1N0YXRlLmNvbHVtbklkcyA9IGN1cnJlbnRBdmFpbGFibGVDb2x1bW5JZHM7XG5cbiAgICAgICAgICBjb25zdCBuZXdEYXRhU3RhdGUgPSBkYXRhU3RhdGUuYWRkT3JVcGRhdGVWaWV3KFxuICAgICAgICAgICAgdmlld0NvbmZpZy5pZCxcbiAgICAgICAgICAgIGN1cnJlbnRWaWV3U3RhdGVcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVEYXRhU3RhdGUobmV3RGF0YVN0YXRlLCB0aGlzLiNpbml0U291cmNlKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiBkYXRhIHN0YXRlIGNoYW5nZXMgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqIEl0IGV4Y2x1ZGVzIHVwZGF0ZXMgb3JpZ2luYXRpbmcgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlLiBUaGlzIGFsbG93cyBzdWJzY3JpYmVycyB0byBvbmx5IHJlc3BvbmQgdG9cbiAgICogY2hhbmdlcyB0aGV5IGRpZCBub3QgY3JlYXRlIGFuZCBoZWxwcyBwcmV2ZW50IGluZmluaXRlIGxvb3BzIG9mIHVwZGF0ZXMgYW5kIHJlc3BvbnNlcy5cbiAgICogQHBhcmFtIHNvdXJjZUlkIFRoZSBJRCBvZiB0aGUgZW50aXR5IHN1YnNjcmliaW5nIHRvIGRhdGEgc3RhdGUgdXBkYXRlcy4gVGhpcyBjYW4gYmUgYW55IHZhbHVlIHlvdSBjaG9vc2VcbiAgICogYnV0IHNob3VsZCBiZSB1bmlxdWUgd2l0aGluIHRoZSBkYXRhIG1hbmFnZXIgaW5zdGFuY2UgYW5kIHNob3VsZCBhbHNvIGJlIHVzZWQgd2hlbiB0aGF0IGVudGl0eSB1cGRhdGVzIHRoZSBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBnZXREYXRhU3RhdGVVcGRhdGVzKFxuICAgIHNvdXJjZUlkOiBzdHJpbmcsXG4gICAgdXBkYXRlRmlsdGVyPzogU2t5RGF0YU1hbmFnZXJTdGF0ZVVwZGF0ZUZpbHRlckFyZ3NcbiAgKTogT2JzZXJ2YWJsZTxTa3lEYXRhTWFuYWdlclN0YXRlPiB7XG4gICAgLy8gZmlsdGVyIG91dCBldmVudHMgZnJvbSB0aGUgcHJvdmlkZWQgc291cmNlIGFuZCBlbWl0IGp1c3QgdGhlIGRhdGFTdGF0ZVxuICAgIGlmICh1cGRhdGVGaWx0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLiNkYXRhU3RhdGVDaGFuZ2UucGlwZShcbiAgICAgICAgZmlsdGVyKChzdGF0ZUNoYW5nZSkgPT4gc291cmNlSWQgIT09IHN0YXRlQ2hhbmdlLnNvdXJjZSksXG4gICAgICAgIG1hcCgoc3RhdGVDaGFuZ2UpID0+IHN0YXRlQ2hhbmdlLmRhdGFTdGF0ZSksXG4gICAgICAgIHVwZGF0ZUZpbHRlci5jb21wYXJhdG9yXG4gICAgICAgICAgPyBkaXN0aW5jdFVudGlsQ2hhbmdlZCh1cGRhdGVGaWx0ZXIuY29tcGFyYXRvcilcbiAgICAgICAgICA6IGRpc3RpbmN0VW50aWxDaGFuZ2VkKFxuICAgICAgICAgICAgICB0aGlzLiNnZXREZWZhdWx0U3RhdGVDb21wYXJhdG9yKFxuICAgICAgICAgICAgICAgIHVwZGF0ZUZpbHRlci5wcm9wZXJ0aWVzIGFzIChrZXlvZiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucylbXVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy4jZGF0YVN0YXRlQ2hhbmdlLnBpcGUoXG4gICAgICAgIGZpbHRlcigoc3RhdGVDaGFuZ2UpID0+IHNvdXJjZUlkICE9PSBzdGF0ZUNoYW5nZS5zb3VyY2UpLFxuICAgICAgICBtYXAoKHN0YXRlQ2hhbmdlKSA9PiBzdGF0ZUNoYW5nZS5kYXRhU3RhdGUpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkYXRhIHN0YXRlIGFuZCBlbWl0cyBhIG5ldyB2YWx1ZSB0byBlbnRpdGllcyBzdWJzY3JpYmVkIHRvIGRhdGEgc3RhdGUgY2hhbmdlcy5cbiAgICogQHBhcmFtIHN0YXRlIFRoZSBuZXcgYFNreURhdGFNYW5hZ2VyU3RhdGVgIHZhbHVlLlxuICAgKiBAcGFyYW0gc291cmNlSWQgVGhlIElEIG9mIHRoZSBlbnRpdHkgdXBkYXRpbmcgdGhlIHN0YXRlLiBUaGlzIGNhbiBiZSBhbnkgdmFsdWUgeW91IGNob29zZSxcbiAgICogYnV0IHNob3VsZCBiZSB1bmlxdWUgd2l0aGluIHRoZSBkYXRhIG1hbmFnZXIgaW5zdGFuY2UgYW5kIHNob3VsZCBhbHNvIGJlIHVzZWQgd2hlbiB0aGF0IGVudGl0eVxuICAgKiBzdWJzY3JpYmVzIHRvIHN0YXRlIGNoYW5nZXMgZnJvbSBgZ2V0RGF0YVN0YXRlVXBkYXRlc2AuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlRGF0YVN0YXRlKHN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlLCBzb3VyY2VJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgbmV3U3RhdGUgPSBuZXcgU2t5RGF0YU1hbmFnZXJTdGF0ZShzdGF0ZS5nZXRTdGF0ZU9wdGlvbnMoKSk7XG4gICAgY29uc3QgbmV3U3RhdGVDaGFuZ2UgPSBuZXcgU2t5RGF0YU1hbmFnZXJTdGF0ZUNoYW5nZShuZXdTdGF0ZSwgc291cmNlSWQpO1xuXG4gICAgdGhpcy4jZGF0YVN0YXRlQ2hhbmdlLm5leHQobmV3U3RhdGVDaGFuZ2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYFNreURhdGFNYW5hZ2VyQ29uZmlnYC5cbiAgICovXG4gIHB1YmxpYyBnZXRDdXJyZW50RGF0YU1hbmFnZXJDb25maWcoKTogU2t5RGF0YU1hbmFnZXJDb25maWcge1xuICAgIHJldHVybiB0aGlzLiNkYXRhTWFuYWdlckNvbmZpZy52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgb2YgZGF0YSBtYW5hZ2VyIGNvbmZpZyBjaGFuZ2VzIHRoYXQgdmlld3MgYW5kIG90aGVyIGRhdGEgbWFuYWdlciBlbnRpdGllcyBjYW4gc3Vic2NyaWJlIHRvLlxuICAgKi9cbiAgcHVibGljIGdldERhdGFNYW5hZ2VyQ29uZmlnVXBkYXRlcygpOiBPYnNlcnZhYmxlPFNreURhdGFNYW5hZ2VyQ29uZmlnPiB7XG4gICAgcmV0dXJuIHRoaXMuI2RhdGFNYW5hZ2VyQ29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGRhdGEgbWFuYWdlciBjb25maWcgYW5kIGVtaXRzIGEgbmV3IHZhbHVlIHRvIGVudGl0aWVzIHN1YnNjcmliZWQgdG8gZGF0YSBjb25maWcgY2hhbmdlcy5cbiAgICogQHBhcmFtIHZhbHVlIFRoZSBuZXcgYFNreURhdGFNYW5hZ2VyQ29uZmlnYCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyB1cGRhdGVEYXRhTWFuYWdlckNvbmZpZyh2YWx1ZTogU2t5RGF0YU1hbmFnZXJDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLiNkYXRhTWFuYWdlckNvbmZpZy5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgb2YgZGF0YSB2aWV3IGNvbmZpZyBjaGFuZ2VzIHRoYXQgdmlld3MgYW5kIG90aGVyIGRhdGEgbWFuYWdlciBlbnRpdGllcyBjYW4gc3Vic2NyaWJlIHRvLlxuICAgKi9cbiAgcHVibGljIGdldERhdGFWaWV3c1VwZGF0ZXMoKTogT2JzZXJ2YWJsZTxTa3lEYXRhVmlld0NvbmZpZ1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuI3ZpZXdzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBvZiB0aGUgYWN0aXZlIHZpZXcgSUQgdGhhdCB2aWV3cyBhbmQgb3RoZXIgZGF0YSBtYW5hZ2VyIGVudGl0aWVzIGNhbiBzdWJzY3JpYmUgdG8uXG4gICAqL1xuICBwdWJsaWMgZ2V0QWN0aXZlVmlld0lkVXBkYXRlcygpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLiNhY3RpdmVWaWV3SWQ7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgYWN0aXZlIHZpZXcgSUQuIFRoZSBkYXRhIG1hbmFnZXIgY2hhbmdlcyB0aGUgZGlzcGxheWVkIHZpZXcuXG4gICAqIEBwYXJhbSBpZCBUaGUgbmV3IGFjdGl2ZSB2aWV3IElELlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUFjdGl2ZVZpZXdJZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jYWN0aXZlVmlld0lkLm5leHQoaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhVmlld0NvbmZpZ2AgZm9yIHRoZSBnaXZlbiB2aWV3IElELlxuICAgKiBAcGFyYW0gdmlld0lkIFRoZSBJRCBvZiB0aGUgdmlldyBjb25maWcgdG8gZ2V0LlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdCeUlkKHZpZXdJZDogc3RyaW5nKTogU2t5RGF0YVZpZXdDb25maWcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGN1cnJlbnRWaWV3czogU2t5RGF0YVZpZXdDb25maWdbXSA9IHRoaXMuI3ZpZXdzLnZhbHVlO1xuICAgIGNvbnN0IHZpZXdDb25maWc6IFNreURhdGFWaWV3Q29uZmlnIHwgdW5kZWZpbmVkID0gY3VycmVudFZpZXdzLmZpbmQoXG4gICAgICAodmlldykgPT4gdmlldy5pZCA9PT0gdmlld0lkXG4gICAgKTtcblxuICAgIHJldHVybiB2aWV3Q29uZmlnO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGdpdmVuIHZpZXcgY29uZmlnLiBUaGUgcmVnaXN0ZXJlZCB2aWV3IHdpdGggdGhlIHNhbWUgSUQgaXMgdXBkYXRlZCB0byB0aGVcbiAgICogcHJvdmlkZWQgY29uZmlnLCBzbyBpbmNsdWRlIGFsbCBwcm9wZXJ0aWVzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGV5IGNoYW5nZWQuIElmIHRoZVxuICAgKiB2aWV3IHdhcyBub3QgaW5pdGlhbGl6ZWQgYWxyZWFkeSwgbm8gdXBkYXRlIGhhcHBlbnMuXG4gICAqIEBwYXJhbSB2aWV3IFRoZSBuZXcgYFNreURhdGFWaWV3Q29uZmlnYCBjb250YWluaW5nIGFsbCBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgcHVibGljIHVwZGF0ZVZpZXdDb25maWcodmlldzogU2t5RGF0YVZpZXdDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50Vmlld3M6IFNreURhdGFWaWV3Q29uZmlnW10gPSB0aGlzLiN2aWV3cy52YWx1ZTtcbiAgICBjb25zdCBleGlzdGluZ1ZpZXdJbmRleCA9IGN1cnJlbnRWaWV3cy5maW5kSW5kZXgoXG4gICAgICAoY3VycmVudFZpZXcpID0+IGN1cnJlbnRWaWV3LmlkID09PSB2aWV3LmlkXG4gICAgKTtcblxuICAgIGlmIChleGlzdGluZ1ZpZXdJbmRleCA9PT0gLTEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0EgdmlldyB3aXRoIHRoZSBpZCB7aWR9IGRvZXMgbm90IGV4aXN0LicsIHZpZXcuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjdXJyZW50Vmlld3NbZXhpc3RpbmdWaWV3SW5kZXhdID0gdmlldztcbiAgICAgIHRoaXMuI3ZpZXdzLm5leHQoY3VycmVudFZpZXdzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc2V0Vmlld2tlZXBlckNsYXNzZXModmlld0lkOiBzdHJpbmcsIGNsYXNzZXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgY29uc3Qgdmlld2tlZXBlckNsYXNzZXMgPSB0aGlzLnZpZXdrZWVwZXJDbGFzc2VzLnZhbHVlO1xuICAgIHZpZXdrZWVwZXJDbGFzc2VzW3ZpZXdJZF0gPSBjbGFzc2VzO1xuXG4gICAgdGhpcy52aWV3a2VlcGVyQ2xhc3Nlcy5uZXh0KHZpZXdrZWVwZXJDbGFzc2VzKTtcbiAgfVxuXG4gICNmaWx0ZXJEYXRhU3RhdGVQcm9wZXJ0aWVzKFxuICAgIHN0YXRlOiBTa3lEYXRhTWFuYWdlclN0YXRlLFxuICAgIHByb3BlcnRpZXM6IChrZXlvZiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucylbXSB8IHVuZGVmaW5lZFxuICApOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgY29uc3Qgc3RhdGVQcm9wZXJ0aWVzID0gc3RhdGUuZ2V0U3RhdGVPcHRpb25zKCk7XG4gICAgY29uc3QgZmlsdGVyZWRTdGF0ZVByb3BlcnRpZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XG5cbiAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgIGlmIChwcm9wZXJ0eSBpbiBzdGF0ZVByb3BlcnRpZXMpIHtcbiAgICAgICAgICBmaWx0ZXJlZFN0YXRlUHJvcGVydGllc1twcm9wZXJ0eV0gPSBzdGF0ZVByb3BlcnRpZXNbcHJvcGVydHldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcmVkU3RhdGVQcm9wZXJ0aWVzO1xuICB9XG5cbiAgI2dldERlZmF1bHRTdGF0ZUNvbXBhcmF0b3IoXG4gICAgcHJvcGVydGllczogKGtleW9mIFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zKVtdIHwgdW5kZWZpbmVkXG4gICk6IChzdGF0ZTE6IFNreURhdGFNYW5hZ2VyU3RhdGUsIHN0YXRlMjogU2t5RGF0YU1hbmFnZXJTdGF0ZSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHN0YXRlMTogU2t5RGF0YU1hbmFnZXJTdGF0ZSxcbiAgICAgIHN0YXRlMjogU2t5RGF0YU1hbmFnZXJTdGF0ZVxuICAgICk6IGJvb2xlYW4gPT4ge1xuICAgICAgY29uc3QgZmlsdGVyZWRTdGF0ZTEgPSB0aGlzLiNmaWx0ZXJEYXRhU3RhdGVQcm9wZXJ0aWVzKFxuICAgICAgICBzdGF0ZTEsXG4gICAgICAgIHByb3BlcnRpZXNcbiAgICAgICk7XG4gICAgICBjb25zdCBmaWx0ZXJlZFN0YXRlMiA9IHRoaXMuI2ZpbHRlckRhdGFTdGF0ZVByb3BlcnRpZXMoXG4gICAgICAgIHN0YXRlMixcbiAgICAgICAgcHJvcGVydGllc1xuICAgICAgKTtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShmaWx0ZXJlZFN0YXRlMSkgPT09IEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkU3RhdGUyKTtcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,4 +1,6 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
1
+ var _SkyDataViewComponent_ngUnsubscribe, _SkyDataViewComponent_dataManagerService;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { ChangeDetectionStrategy, Component, Input, } from '@angular/core';
2
4
  import { Subject } from 'rxjs';
3
5
  import { takeUntil } from 'rxjs/operators';
4
6
  import { SkyDataManagerService } from './data-manager.service';
@@ -11,38 +13,33 @@ import * as i2 from "@angular/common";
11
13
  * search text, and more to the data it displays.
12
14
  */
13
15
  export class SkyDataViewComponent {
14
- constructor(changeDetector, dataManagerService) {
15
- this.changeDetector = changeDetector;
16
- this.dataManagerService = dataManagerService;
17
- this._isActive = false;
18
- this._ngUnsubscribe = new Subject();
19
- }
20
- get isActive() {
21
- return this._isActive;
22
- }
23
- set isActive(value) {
24
- this._isActive = value;
25
- this.changeDetector.markForCheck();
16
+ constructor(dataManagerService) {
17
+ _SkyDataViewComponent_ngUnsubscribe.set(this, new Subject());
18
+ _SkyDataViewComponent_dataManagerService.set(this, void 0);
19
+ __classPrivateFieldSet(this, _SkyDataViewComponent_dataManagerService, dataManagerService, "f");
26
20
  }
27
21
  ngOnInit() {
28
- this.dataManagerService
22
+ __classPrivateFieldGet(this, _SkyDataViewComponent_dataManagerService, "f")
29
23
  .getActiveViewIdUpdates()
30
- .pipe(takeUntil(this._ngUnsubscribe))
24
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyDataViewComponent_ngUnsubscribe, "f")))
31
25
  .subscribe((activeViewId) => {
32
26
  this.isActive = this.viewId === activeViewId;
33
27
  });
34
28
  }
35
29
  ngOnDestroy() {
36
- this._ngUnsubscribe.next();
37
- this._ngUnsubscribe.complete();
30
+ __classPrivateFieldGet(this, _SkyDataViewComponent_ngUnsubscribe, "f").next();
31
+ __classPrivateFieldGet(this, _SkyDataViewComponent_ngUnsubscribe, "f").complete();
38
32
  }
39
33
  }
40
- SkyDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Component });
41
- SkyDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyDataViewComponent, selector: "sky-data-view", inputs: { viewId: "viewId" }, ngImport: i0, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
+ _SkyDataViewComponent_ngUnsubscribe = new WeakMap(), _SkyDataViewComponent_dataManagerService = new WeakMap();
35
+ SkyDataViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataViewComponent, deps: [{ token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Component });
36
+ SkyDataViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SkyDataViewComponent, selector: "sky-data-view", inputs: { viewId: "viewId", isActive: "isActive" }, ngImport: i0, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
42
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SkyDataViewComponent, decorators: [{
43
38
  type: Component,
44
39
  args: [{ selector: 'sky-data-view', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"isActive\">\n <ng-content></ng-content>\n</ng-container>\n" }]
45
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }]; }, propDecorators: { viewId: [{
40
+ }], ctorParameters: function () { return [{ type: i1.SkyDataManagerService }]; }, propDecorators: { viewId: [{
41
+ type: Input
42
+ }], isActive: [{
46
43
  type: Input
47
44
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7O0FBRS9EOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBcUIvQixZQUNVLGNBQWlDLEVBQ2pDLGtCQUF5QztRQUR6QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QjtRQUw1QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUsxQyxDQUFDO0lBZkosSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFVTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGtCQUFrQjthQUNwQixzQkFBc0IsRUFBRTthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7O2lIQXRDVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixtRkN4QmpDLG1GQUdBOzJGRHFCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsZUFBZSxtQkFFUix1QkFBdUIsQ0FBQyxNQUFNOzRJQVN4QyxNQUFNO3NCQURaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL2RhdGEtbWFuYWdlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGRhdGEgdmlldyBpcyByZW5kZXJlZCB3aXRoaW4gYSBkYXRhIG1hbmFnZXIgY29tcG9uZW50LlxuICogSXQgY2FuIHN1YnNjcmliZSB0byBkYXRhIHN0YXRlIGNoYW5nZXMgZnJvbSBgU2t5RGF0YU1hbmFnZXJTZXJ2aWNlYCBhbmQgYXBwbHkgdGhlIGZpbHRlcnMsXG4gKiBzZWFyY2ggdGV4dCwgYW5kIG1vcmUgdG8gdGhlIGRhdGEgaXQgZGlzcGxheXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB2aWV3LiBTZWUgdGhlIGBTa3lEYXRhVmlld0NvbmZpZ2AgaW50ZXJmYWNlLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZXdJZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzQWN0aXZlO1xuICB9XG5cbiAgcHVibGljIHNldCBpc0FjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzQWN0aXZlID0gdmFsdWU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBfaXNBY3RpdmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkYXRhTWFuYWdlclNlcnZpY2U6IFNreURhdGFNYW5hZ2VyU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YU1hbmFnZXJTZXJ2aWNlXG4gICAgICAuZ2V0QWN0aXZlVmlld0lkVXBkYXRlcygpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKChhY3RpdmVWaWV3SWQpID0+IHtcbiAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IHRoaXMudmlld0lkID09PSBhY3RpdmVWaWV3SWQ7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FjdGl2ZVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9kYXRhLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL2RhdGEtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssR0FHTixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUUvRDs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLG9CQUFvQjtJQWUvQixZQUFZLGtCQUF5QztRQUhyRCw4Q0FBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUNyQywyREFBMkM7UUFHekMsdUJBQUEsSUFBSSw0Q0FBdUIsa0JBQWtCLE1BQUEsQ0FBQztJQUNoRCxDQUFDO0lBRU0sUUFBUTtRQUNiLHVCQUFBLElBQUksZ0RBQW9CO2FBQ3JCLHNCQUFzQixFQUFFO2FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQUEsSUFBSSwyQ0FBZSxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2hCLHVCQUFBLElBQUksMkNBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQix1QkFBQSxJQUFJLDJDQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7O2lIQS9CVSxvQkFBb0I7cUdBQXBCLG9CQUFvQix5R0N2QmpDLG1GQUdBOzJGRG9CYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsZUFBZSxtQkFFUix1QkFBdUIsQ0FBQyxNQUFNOzRHQVN4QyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL2RhdGEtbWFuYWdlci5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGRhdGEgdmlldyBpcyByZW5kZXJlZCB3aXRoaW4gYSBkYXRhIG1hbmFnZXIgY29tcG9uZW50LlxuICogSXQgY2FuIHN1YnNjcmliZSB0byBkYXRhIHN0YXRlIGNoYW5nZXMgZnJvbSBgU2t5RGF0YU1hbmFnZXJTZXJ2aWNlYCBhbmQgYXBwbHkgdGhlIGZpbHRlcnMsXG4gKiBzZWFyY2ggdGV4dCwgYW5kIG1vcmUgdG8gdGhlIGRhdGEgaXQgZGlzcGxheXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNreURhdGFWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB2aWV3LiBTZWUgdGhlIGBTa3lEYXRhVmlld0NvbmZpZ2AgaW50ZXJmYWNlLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpZXdJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc0FjdGl2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNkYXRhTWFuYWdlclNlcnZpY2U6IFNreURhdGFNYW5hZ2VyU2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihkYXRhTWFuYWdlclNlcnZpY2U6IFNreURhdGFNYW5hZ2VyU2VydmljZSkge1xuICAgIHRoaXMuI2RhdGFNYW5hZ2VyU2VydmljZSA9IGRhdGFNYW5hZ2VyU2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNkYXRhTWFuYWdlclNlcnZpY2VcbiAgICAgIC5nZXRBY3RpdmVWaWV3SWRVcGRhdGVzKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGFjdGl2ZVZpZXdJZCkgPT4ge1xuICAgICAgICB0aGlzLmlzQWN0aXZlID0gdGhpcy52aWV3SWQgPT09IGFjdGl2ZVZpZXdJZDtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQWN0aXZlXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uIH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItc29ydC1vcHRpb24nO1xuXG4vKipcbiAqIFRoZSBkYXRhIG1hbmFnZXIgY29uZmlnIGNvbnRhaW5zIHNldHRpbmdzIHRoYXQgYXBwbHkgdG8gdGhlIGRhdGEgbWFuYWdlciBhY3Jvc3MgYWxsIHZpZXdzLFxuICogc3VjaCBhcyB0aGUgc29ydCBhbmQgZmlsdGVyIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreURhdGFNYW5hZ2VyQ29uZmlnIHtcbiAgLyoqXG4gICAqIEFuIHVudHlwZWQgcHJvcGVydHkgdGhhdCBjYW4gdHJhY2sgYW55IGNvbmZpZyBpbmZvcm1hdGlvbiByZWxldmFudCB0byBhXG4gICAqIGRhdGEgbWFuYWdlciB0aGF0IGV4aXN0aW5nIG9wdGlvbnMgZG8gbm90IGluY2x1ZGUuXG4gICAqL1xuICBhZGRpdGlvbmFsT3B0aW9ucz86IGFueTtcbiAgLyoqXG4gICAqIFRoZSBtb2RhbCBjb21wb25lbnQgdG8gbGF1bmNoIHdoZW4gdGhlIGZpbHRlciBidXR0b24gaXMgc2VsZWN0ZWQuIFRoZSBzYW1lIGZpbHRlciBvcHRpb25zIGFyZVxuICAgKiB1c2VkIGZvciBhbGwgdmlld3MsIGJ1dCB2aWV3cyBjYW4gdXNlIGBTa3lEYXRhVmlld0NvbmZpZ2AgdG8gaW5kaWNhdGUgd2hldGhlciB0byBkaXNwbGF5XG4gICAqIHRoZSBmaWx0ZXIgYnV0dG9uLiBUaGUgbW9kYWwgcmVjZWl2ZXMgdGhlIGBmaWx0ZXJEYXRhYCBpbiB0aGUgZGF0YSBzdGF0ZSBhcyBjb250ZXh0LlxuICAgKi9cbiAgZmlsdGVyTW9kYWxDb21wb25lbnQ/OiBhbnk7XG4gIC8qKlxuICAgKiBUaGUgc29ydCBvcHRpb25zIGRpc3BsYXllZCBpbiB0aGUgc29ydCBkcm9wZG93bi4gVGhlIHNhbWUgc29ydCBvcHRpb25zIGFyZSB1c2VkIGZvciBhbGwgdmlld3MsXG4gICAqIGJ1dCB2aWV3cyBjYW4gdXNlIGBTa3lEYXRhVmlld0NvbmZpZ2AgdG8gaW5kaWNhdGUgd2hldGhlciB0byBkaXNwbGF5IHRoZSBzb3J0IGJ1dHRvbi5cbiAgICovXG4gIHNvcnRPcHRpb25zPzogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uW107XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRhLW1hbmFnZXIvc3JjL2xpYi9tb2R1bGVzL2RhdGEtbWFuYWdlci9tb2RlbHMvZGF0YS1tYW5hZ2VyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uIH0gZnJvbSAnLi9kYXRhLW1hbmFnZXItc29ydC1vcHRpb24nO1xuXG4vKipcbiAqIFRoZSBkYXRhIG1hbmFnZXIgY29uZmlnIGNvbnRhaW5zIHNldHRpbmdzIHRoYXQgYXBwbHkgdG8gdGhlIGRhdGEgbWFuYWdlciBhY3Jvc3MgYWxsIHZpZXdzLFxuICogc3VjaCBhcyB0aGUgc29ydCBhbmQgZmlsdGVyIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreURhdGFNYW5hZ2VyQ29uZmlnIHtcbiAgLyoqXG4gICAqIEFuIHVudHlwZWQgcHJvcGVydHkgdGhhdCBjYW4gdHJhY2sgYW55IGNvbmZpZyBpbmZvcm1hdGlvbiByZWxldmFudCB0byBhXG4gICAqIGRhdGEgbWFuYWdlciB0aGF0IGV4aXN0aW5nIG9wdGlvbnMgZG8gbm90IGluY2x1ZGUuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBhZGRpdGlvbmFsT3B0aW9ucz86IGFueTtcbiAgLyoqXG4gICAqIFRoZSBtb2RhbCBjb21wb25lbnQgdG8gbGF1bmNoIHdoZW4gdGhlIGZpbHRlciBidXR0b24gaXMgc2VsZWN0ZWQuIFRoZSBzYW1lIGZpbHRlciBvcHRpb25zIGFyZVxuICAgKiB1c2VkIGZvciBhbGwgdmlld3MsIGJ1dCB2aWV3cyBjYW4gdXNlIGBTa3lEYXRhVmlld0NvbmZpZ2AgdG8gaW5kaWNhdGUgd2hldGhlciB0byBkaXNwbGF5XG4gICAqIHRoZSBmaWx0ZXIgYnV0dG9uLiBUaGUgbW9kYWwgcmVjZWl2ZXMgdGhlIGBmaWx0ZXJEYXRhYCBpbiB0aGUgZGF0YSBzdGF0ZSBhcyBjb250ZXh0LlxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgZmlsdGVyTW9kYWxDb21wb25lbnQ/OiBhbnk7XG4gIC8qKlxuICAgKiBUaGUgc29ydCBvcHRpb25zIGRpc3BsYXllZCBpbiB0aGUgc29ydCBkcm9wZG93bi4gVGhlIHNhbWUgc29ydCBvcHRpb25zIGFyZSB1c2VkIGZvciBhbGwgdmlld3MsXG4gICAqIGJ1dCB2aWV3cyBjYW4gdXNlIGBTa3lEYXRhVmlld0NvbmZpZ2AgdG8gaW5kaWNhdGUgd2hldGhlciB0byBkaXNwbGF5IHRoZSBzb3J0IGJ1dHRvbi5cbiAgICovXG4gIHNvcnRPcHRpb25zPzogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uW107XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWZpbHRlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLW1hbmFnZXItZmlsdGVyLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2t5RGF0YU1hbmFnZXJGaWx0ZXJEYXRhIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGFueSBmaWx0ZXJzIGFyZSBhcHBsaWVkLlxuICAgKi9cbiAgZmlsdGVyc0FwcGxpZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGZpbHRlciBkYXRhIHVzZWQgaW4gdGhlIGRhdGEgbWFuYWdlci4gWW91IG1heSB1c2UgYW55IGZpbHRlciBtb2RlbCB0aGF0IHdvcmtzIGZvclxuICAgKiB5b3VyIGRhdGEgc2V0IGFuZCBtb2RlbHMuIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS5cbiAgICovXG4gIGZpbHRlcnM/OiBhbnk7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLWZpbHRlci1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLW1hbmFnZXItZmlsdGVyLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU2t5RGF0YU1hbmFnZXJGaWx0ZXJEYXRhIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGFueSBmaWx0ZXJzIGFyZSBhcHBsaWVkLlxuICAgKi9cbiAgZmlsdGVyc0FwcGxpZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGZpbHRlciBkYXRhIHVzZWQgaW4gdGhlIGRhdGEgbWFuYWdlci4gWW91IG1heSB1c2UgYW55IGZpbHRlciBtb2RlbCB0aGF0IHdvcmtzIGZvclxuICAgKiB5b3VyIGRhdGEgc2V0IGFuZCBtb2RlbHMuIFNlZSB0aGUgZGVtbyBmb3IgYW4gZXhhbXBsZS5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGZpbHRlcnM/OiBhbnk7XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1maWx0ZXItZGF0YSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gfSBmcm9tICcuL2RhdGEtbWFuYWdlci1zb3J0LW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhVmlld1N0YXRlT3B0aW9ucyB9IGZyb20gJy4vZGF0YS12aWV3LXN0YXRlLW9wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gdG8gYXBwbHkuXG4gICAqL1xuICBhY3RpdmVTb3J0T3B0aW9uPzogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uO1xuICAvKipcbiAgICogQW4gdW50eXBlZCBwcm9wZXJ0eSB0aGF0IHRyYWNrcyBhbnkgc3RhdGUgaW5mb3JtYXRpb24gdGhhdCdzIHJlbGV2YW50IHRvIGEgZGF0YVxuICAgKiBtYW5hZ2VyIGJ1dCB0aGF0IHRoZSBleGlzdGluZyBwcm9wZXJ0aWVzIGRvIG5vdCBjb3Zlci5cbiAgICovXG4gIGFkZGl0aW9uYWxEYXRhPzogYW55O1xuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBmaWx0ZXJzLlxuICAgKi9cbiAgZmlsdGVyRGF0YT86IFNreURhdGFNYW5hZ2VyRmlsdGVyRGF0YTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgb25seSB0aGUgc2VsZWN0ZWQgcm93cyBvciBvYmplY3RzLiBUaGUgbXVsdGlzZWxlY3QgdG9vbGJhclxuICAgKiB1c2VzIHRoaXMgcHJvcGVydHkuXG4gICAqL1xuICBvbmx5U2hvd1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBzZWFyY2ggdGV4dCB0byBhcHBseS5cbiAgICovXG4gIHNlYXJjaFRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHJvd3Mgb3Igb2JqZWN0cy5cbiAgICovXG4gIHNlbGVjdGVkSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgc3RhdGVzIG9mIHRoZSBpbmRpdmlkdWFsIHZpZXdzLlxuICAgKi9cbiAgdmlld3M/OiBTa3lEYXRhVmlld1N0YXRlT3B0aW9uc1tdO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvbW9kZWxzL2RhdGEtbWFuYWdlci1zdGF0ZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1maWx0ZXItZGF0YSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gfSBmcm9tICcuL2RhdGEtbWFuYWdlci1zb3J0LW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhVmlld1N0YXRlT3B0aW9ucyB9IGZyb20gJy4vZGF0YS12aWV3LXN0YXRlLW9wdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreURhdGFNYW5hZ2VyU3RhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBzZWxlY3RlZCBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gdG8gYXBwbHkuXG4gICAqL1xuICBhY3RpdmVTb3J0T3B0aW9uPzogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uO1xuICAvKipcbiAgICogQW4gdW50eXBlZCBwcm9wZXJ0eSB0aGF0IHRyYWNrcyBhbnkgc3RhdGUgaW5mb3JtYXRpb24gdGhhdCdzIHJlbGV2YW50IHRvIGEgZGF0YVxuICAgKiBtYW5hZ2VyIGJ1dCB0aGF0IHRoZSBleGlzdGluZyBwcm9wZXJ0aWVzIGRvIG5vdCBjb3Zlci5cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGFkZGl0aW9uYWxEYXRhPzogYW55O1xuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBmaWx0ZXJzLlxuICAgKi9cbiAgZmlsdGVyRGF0YT86IFNreURhdGFNYW5hZ2VyRmlsdGVyRGF0YTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc3BsYXkgb25seSB0aGUgc2VsZWN0ZWQgcm93cyBvciBvYmplY3RzLiBUaGUgbXVsdGlzZWxlY3QgdG9vbGJhclxuICAgKiB1c2VzIHRoaXMgcHJvcGVydHkuXG4gICAqL1xuICBvbmx5U2hvd1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBzZWFyY2ggdGV4dCB0byBhcHBseS5cbiAgICovXG4gIHNlYXJjaFRleHQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHJvd3Mgb3Igb2JqZWN0cy5cbiAgICovXG4gIHNlbGVjdGVkSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgc3RhdGVzIG9mIHRoZSBpbmRpdmlkdWFsIHZpZXdzLlxuICAgKi9cbiAgdmlld3M/OiBTa3lEYXRhVmlld1N0YXRlT3B0aW9uc1tdO1xufVxuIl19
@@ -67,4 +67,4 @@ export class SkyDataManagerState {
67
67
  });
68
68
  }
69
69
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBZ0M5QixZQUFZLElBQWdDO1FBTDVDOztXQUVHO1FBQ0ksVUFBSyxHQUF1QixFQUFFLENBQUM7UUFHcEMsTUFBTSxLQUFLLEdBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3BCLE1BQU0sVUFBVSxHQUE4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsVUFBVTtTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxNQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUNwQixNQUFjLEVBQ2QsSUFBc0I7UUFFdEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUUzRSxJQUFJLGlCQUFpQixLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDdEM7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxJQUFJLG1CQUFtQixDQUFDO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1maWx0ZXItZGF0YSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gfSBmcm9tICcuL2RhdGEtbWFuYWdlci1zb3J0LW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLXN0YXRlLW9wdGlvbnMnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdTdGF0ZSB9IGZyb20gJy4vZGF0YS12aWV3LXN0YXRlJztcbmltcG9ydCB7IFNreURhdGFWaWV3U3RhdGVPcHRpb25zIH0gZnJvbSAnLi9kYXRhLXZpZXctc3RhdGUtb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgb3B0aW9ucyB0aGF0IGNvbnRyb2wgd2hpY2ggZGF0YSB0byBkaXNwbGF5LlxuICovXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJTdGF0ZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0ZWQgU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uIHRvIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZVNvcnRPcHRpb246IFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbjtcbiAgLyoqXG4gICAqIEFuIHVudHlwZWQgcHJvcGVydHkgdGhhdCB0cmFja3MgYW55IHN0YXRlIGluZm9ybWF0aW9uIHRoYXQncyByZWxldmFudCB0byBhIGRhdGFcbiAgICogbWFuYWdlciBidXQgdGhhdCB0aGUgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICBwdWJsaWMgYWRkaXRpb25hbERhdGE6IGFueTtcbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBvZiB0aGUgZmlsdGVycy5cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJEYXRhOiBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGE7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IG9ubHkgdGhlIHNlbGVjdGVkIHJvd3Mgb3Igb2JqZWN0cy4gVGhlIG11bHRpc2VsZWN0IHRvb2xiYXJcbiAgICogdXNlcyB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIG9ubHlTaG93U2VsZWN0ZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgc2VhcmNoIHRleHQgdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCByb3dzIG9yIG9iamVjdHMuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIHN0YXRlcyBvZiB0aGUgaW5kaXZpZHVhbCB2aWV3cy5cbiAgICovXG4gIHB1YmxpYyB2aWV3czogU2t5RGF0YVZpZXdTdGF0ZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoZGF0YTogU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMpIHtcbiAgICBjb25zdCB2aWV3cyA9XG4gICAgICBkYXRhLnZpZXdzICYmIGRhdGEudmlld3MubWFwKCh2aWV3KSA9PiBuZXcgU2t5RGF0YVZpZXdTdGF0ZSh2aWV3KSk7XG5cbiAgICB0aGlzLmFjdGl2ZVNvcnRPcHRpb24gPSBkYXRhLmFjdGl2ZVNvcnRPcHRpb247XG4gICAgdGhpcy5hZGRpdGlvbmFsRGF0YSA9IGRhdGEuYWRkaXRpb25hbERhdGE7XG4gICAgdGhpcy5maWx0ZXJEYXRhID0gZGF0YS5maWx0ZXJEYXRhO1xuICAgIHRoaXMub25seVNob3dTZWxlY3RlZCA9IGRhdGEub25seVNob3dTZWxlY3RlZDtcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gZGF0YS5zZWxlY3RlZElkcztcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBkYXRhLnNlYXJjaFRleHQ7XG4gICAgdGhpcy52aWV3cyA9IHZpZXdzIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9uc2AgZm9yIHRoZSBkYXRhIG1hbmFnZXIuXG4gICAqIEByZXR1cm5zIFRoZSBgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnNgIGZvciB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKi9cbiAgcHVibGljIGdldFN0YXRlT3B0aW9ucygpOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB7XG4gICAgY29uc3Qgdmlld1N0YXRlczogU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnNbXSA9IHRoaXMudmlld3MubWFwKCh2aWV3KSA9PiB7XG4gICAgICByZXR1cm4gdmlldy5nZXRWaWV3U3RhdGVPcHRpb25zKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWN0aXZlU29ydE9wdGlvbjogdGhpcy5hY3RpdmVTb3J0T3B0aW9uLFxuICAgICAgYWRkaXRpb25hbERhdGE6IHRoaXMuYWRkaXRpb25hbERhdGEsXG4gICAgICBmaWx0ZXJEYXRhOiB0aGlzLmZpbHRlckRhdGEsXG4gICAgICBvbmx5U2hvd1NlbGVjdGVkOiB0aGlzLm9ubHlTaG93U2VsZWN0ZWQsXG4gICAgICBzZWFyY2hUZXh0OiB0aGlzLnNlYXJjaFRleHQsXG4gICAgICBzZWxlY3RlZElkczogdGhpcy5zZWxlY3RlZElkcyxcbiAgICAgIHZpZXdzOiB2aWV3U3RhdGVzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYFNreURhdGFWaWV3U3RhdGVgIGZvciB0aGUgc3BlY2lmaWVkIHZpZXcuXG4gICAqIEBwYXJhbSB2aWV3SWQgVGhlIElEIGZvciB0aGUgdmlldy5cbiAgICogQHJldHVybnMgVGhlIGBTa3lEYXRhVmlld1N0YXRlYCBmb3IgdGhlIHNwZWNpZmllZCB2aWV3LlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdTdGF0ZUJ5SWQodmlld0lkOiBzdHJpbmcpOiBTa3lEYXRhVmlld1N0YXRlIHtcbiAgICByZXR1cm4gdGhpcy52aWV3cy5maW5kKCh2aWV3KSA9PiB2aWV3LnZpZXdJZCA9PT0gdmlld0lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgYFNreURhdGFWaWV3U3RhdGVgIHRvIGEgdmlldyBvciB1cGRhdGVzIGFuIGV4aXN0aW5nIHZpZXcuXG4gICAqIEBwYXJhbSB2aWV3SWQgVGhlIElEIGZvciB0aGUgdmlldy5cbiAgICogQHBhcmFtIHZpZXcgVGhlIGBTa3lEYXRhVmlld1N0YXRlYCBvcHRpb24gdG8gYWRkIG9yIHVwZGF0ZS5cbiAgICogQHJldHVybnMgVGhlIHN0YXRlIG9mIHRoZSBkYXRhIG1hbmFnZXIgZm9yIHRoZSBzcGVjaWZpZWQgdmlldy5cbiAgICovXG4gIHB1YmxpYyBhZGRPclVwZGF0ZVZpZXcoXG4gICAgdmlld0lkOiBzdHJpbmcsXG4gICAgdmlldzogU2t5RGF0YVZpZXdTdGF0ZVxuICApOiBTa3lEYXRhTWFuYWdlclN0YXRlIHtcbiAgICBjb25zdCBleGlzdGluZ1ZpZXdJbmRleCA9IHRoaXMudmlld3MuZmluZEluZGV4KCh2KSA9PiB2LnZpZXdJZCA9PT0gdmlld0lkKTtcblxuICAgIGlmIChleGlzdGluZ1ZpZXdJbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMudmlld3NbZXhpc3RpbmdWaWV3SW5kZXhdID0gdmlldztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3cy5wdXNoKHZpZXcpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2t5RGF0YU1hbmFnZXJTdGF0ZSh7XG4gICAgICBhY3RpdmVTb3J0T3B0aW9uOiB0aGlzLmFjdGl2ZVNvcnRPcHRpb24sXG4gICAgICBhZGRpdGlvbmFsRGF0YTogdGhpcy5hZGRpdGlvbmFsRGF0YSxcbiAgICAgIGZpbHRlckRhdGE6IHRoaXMuZmlsdGVyRGF0YSxcbiAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoVGV4dCxcbiAgICAgIHNlbGVjdGVkSWRzOiB0aGlzLnNlbGVjdGVkSWRzLFxuICAgICAgdmlld3M6IHRoaXMudmlld3MsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1tYW5hZ2VyLXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLW1hbmFnZXItc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHckQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBaUM5QixZQUFZLElBQWdDO1FBTDVDOztXQUVHO1FBQ0ksVUFBSyxHQUF1QixFQUFFLENBQUM7UUFHcEMsTUFBTSxLQUFLLEdBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxlQUFlO1FBQ3BCLE1BQU0sVUFBVSxHQUE4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BFLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0wsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUN2QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixLQUFLLEVBQUUsVUFBVTtTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxNQUFjO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksZUFBZSxDQUNwQixNQUFjLEVBQ2QsSUFBc0I7UUFFdEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztRQUUzRSxJQUFJLGlCQUFpQixLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDdEM7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxJQUFJLG1CQUFtQixDQUFDO1lBQzdCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfSBmcm9tICcuL2RhdGEtbWFuYWdlci1maWx0ZXItZGF0YSc7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24gfSBmcm9tICcuL2RhdGEtbWFuYWdlci1zb3J0LW9wdGlvbic7XG5pbXBvcnQgeyBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB9IGZyb20gJy4vZGF0YS1tYW5hZ2VyLXN0YXRlLW9wdGlvbnMnO1xuaW1wb3J0IHsgU2t5RGF0YVZpZXdTdGF0ZSB9IGZyb20gJy4vZGF0YS12aWV3LXN0YXRlJztcbmltcG9ydCB7IFNreURhdGFWaWV3U3RhdGVPcHRpb25zIH0gZnJvbSAnLi9kYXRhLXZpZXctc3RhdGUtb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgb3B0aW9ucyB0aGF0IGNvbnRyb2wgd2hpY2ggZGF0YSB0byBkaXNwbGF5LlxuICovXG5leHBvcnQgY2xhc3MgU2t5RGF0YU1hbmFnZXJTdGF0ZSB7XG4gIC8qKlxuICAgKiBUaGUgc2VsZWN0ZWQgU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uIHRvIGFwcGx5LlxuICAgKi9cbiAgcHVibGljIGFjdGl2ZVNvcnRPcHRpb246IFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbiB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEFuIHVudHlwZWQgcHJvcGVydHkgdGhhdCB0cmFja3MgYW55IHN0YXRlIGluZm9ybWF0aW9uIHRoYXQncyByZWxldmFudCB0byBhIGRhdGFcbiAgICogbWFuYWdlciBidXQgdGhhdCB0aGUgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgYWRkaXRpb25hbERhdGE6IGFueTtcbiAgLyoqXG4gICAqIFRoZSBzdGF0ZSBvZiB0aGUgZmlsdGVycy5cbiAgICovXG4gIHB1YmxpYyBmaWx0ZXJEYXRhOiBTa3lEYXRhTWFuYWdlckZpbHRlckRhdGEgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNwbGF5IG9ubHkgdGhlIHNlbGVjdGVkIHJvd3Mgb3Igb2JqZWN0cy4gVGhlIG11bHRpc2VsZWN0IHRvb2xiYXJcbiAgICogdXNlcyB0aGlzIHByb3BlcnR5LlxuICAgKi9cbiAgcHVibGljIG9ubHlTaG93U2VsZWN0ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBUaGUgc2VhcmNoIHRleHQgdG8gYXBwbHkuXG4gICAqL1xuICBwdWJsaWMgc2VhcmNoVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCByb3dzIG9yIG9iamVjdHMuXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVGhlIHN0YXRlcyBvZiB0aGUgaW5kaXZpZHVhbCB2aWV3cy5cbiAgICovXG4gIHB1YmxpYyB2aWV3czogU2t5RGF0YVZpZXdTdGF0ZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoZGF0YTogU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnMpIHtcbiAgICBjb25zdCB2aWV3cyA9XG4gICAgICBkYXRhLnZpZXdzICYmIGRhdGEudmlld3MubWFwKCh2aWV3KSA9PiBuZXcgU2t5RGF0YVZpZXdTdGF0ZSh2aWV3KSk7XG5cbiAgICB0aGlzLmFjdGl2ZVNvcnRPcHRpb24gPSBkYXRhLmFjdGl2ZVNvcnRPcHRpb247XG4gICAgdGhpcy5hZGRpdGlvbmFsRGF0YSA9IGRhdGEuYWRkaXRpb25hbERhdGE7XG4gICAgdGhpcy5maWx0ZXJEYXRhID0gZGF0YS5maWx0ZXJEYXRhO1xuICAgIHRoaXMub25seVNob3dTZWxlY3RlZCA9IGRhdGEub25seVNob3dTZWxlY3RlZDtcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gZGF0YS5zZWxlY3RlZElkcztcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBkYXRhLnNlYXJjaFRleHQ7XG4gICAgdGhpcy52aWV3cyA9IHZpZXdzIHx8IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9uc2AgZm9yIHRoZSBkYXRhIG1hbmFnZXIuXG4gICAqIEByZXR1cm5zIFRoZSBgU2t5RGF0YU1hbmFnZXJTdGF0ZU9wdGlvbnNgIGZvciB0aGUgZGF0YSBtYW5hZ2VyLlxuICAgKi9cbiAgcHVibGljIGdldFN0YXRlT3B0aW9ucygpOiBTa3lEYXRhTWFuYWdlclN0YXRlT3B0aW9ucyB7XG4gICAgY29uc3Qgdmlld1N0YXRlczogU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnNbXSA9IHRoaXMudmlld3MubWFwKCh2aWV3KSA9PiB7XG4gICAgICByZXR1cm4gdmlldy5nZXRWaWV3U3RhdGVPcHRpb25zKCk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWN0aXZlU29ydE9wdGlvbjogdGhpcy5hY3RpdmVTb3J0T3B0aW9uLFxuICAgICAgYWRkaXRpb25hbERhdGE6IHRoaXMuYWRkaXRpb25hbERhdGEsXG4gICAgICBmaWx0ZXJEYXRhOiB0aGlzLmZpbHRlckRhdGEsXG4gICAgICBvbmx5U2hvd1NlbGVjdGVkOiB0aGlzLm9ubHlTaG93U2VsZWN0ZWQsXG4gICAgICBzZWFyY2hUZXh0OiB0aGlzLnNlYXJjaFRleHQsXG4gICAgICBzZWxlY3RlZElkczogdGhpcy5zZWxlY3RlZElkcyxcbiAgICAgIHZpZXdzOiB2aWV3U3RhdGVzLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgYFNreURhdGFWaWV3U3RhdGVgIGZvciB0aGUgc3BlY2lmaWVkIHZpZXcuXG4gICAqIEBwYXJhbSB2aWV3SWQgVGhlIElEIGZvciB0aGUgdmlldy5cbiAgICogQHJldHVybnMgVGhlIGBTa3lEYXRhVmlld1N0YXRlYCBmb3IgdGhlIHNwZWNpZmllZCB2aWV3LlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdTdGF0ZUJ5SWQodmlld0lkOiBzdHJpbmcpOiBTa3lEYXRhVmlld1N0YXRlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy52aWV3cy5maW5kKCh2aWV3KSA9PiB2aWV3LnZpZXdJZCA9PT0gdmlld0lkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgYFNreURhdGFWaWV3U3RhdGVgIHRvIGEgdmlldyBvciB1cGRhdGVzIGFuIGV4aXN0aW5nIHZpZXcuXG4gICAqIEBwYXJhbSB2aWV3SWQgVGhlIElEIGZvciB0aGUgdmlldy5cbiAgICogQHBhcmFtIHZpZXcgVGhlIGBTa3lEYXRhVmlld1N0YXRlYCBvcHRpb24gdG8gYWRkIG9yIHVwZGF0ZS5cbiAgICogQHJldHVybnMgVGhlIHN0YXRlIG9mIHRoZSBkYXRhIG1hbmFnZXIgZm9yIHRoZSBzcGVjaWZpZWQgdmlldy5cbiAgICovXG4gIHB1YmxpYyBhZGRPclVwZGF0ZVZpZXcoXG4gICAgdmlld0lkOiBzdHJpbmcsXG4gICAgdmlldzogU2t5RGF0YVZpZXdTdGF0ZVxuICApOiBTa3lEYXRhTWFuYWdlclN0YXRlIHtcbiAgICBjb25zdCBleGlzdGluZ1ZpZXdJbmRleCA9IHRoaXMudmlld3MuZmluZEluZGV4KCh2KSA9PiB2LnZpZXdJZCA9PT0gdmlld0lkKTtcblxuICAgIGlmIChleGlzdGluZ1ZpZXdJbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMudmlld3NbZXhpc3RpbmdWaWV3SW5kZXhdID0gdmlldztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3cy5wdXNoKHZpZXcpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgU2t5RGF0YU1hbmFnZXJTdGF0ZSh7XG4gICAgICBhY3RpdmVTb3J0T3B0aW9uOiB0aGlzLmFjdGl2ZVNvcnRPcHRpb24sXG4gICAgICBhZGRpdGlvbmFsRGF0YTogdGhpcy5hZGRpdGlvbmFsRGF0YSxcbiAgICAgIGZpbHRlckRhdGE6IHRoaXMuZmlsdGVyRGF0YSxcbiAgICAgIHNlYXJjaFRleHQ6IHRoaXMuc2VhcmNoVGV4dCxcbiAgICAgIHNlbGVjdGVkSWRzOiB0aGlzLnNlbGVjdGVkSWRzLFxuICAgICAgdmlld3M6IHRoaXMudmlld3MsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LXN0YXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvbW9kZWxzL2RhdGEtdmlldy1zdGF0ZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreURhdGFWaWV3U3RhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGlzIHZpZXcuXG4gICAqL1xuICB2aWV3SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJRHMgb2YgdGhlIGNvbHVtbnMgYWJsZSB0byBiZSBkaXNwbGF5ZWQgZm9yIGNvbHVtbi1iYXNlZCB2aWV3cy4gVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIHV0aWxpemluZyBhIGdyaWQtYmFzZWQgdmlldywgYSBjb2x1bW4gcGlja2VyLCBvciBib3RoLlxuICAgKi9cbiAgY29sdW1uSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBjb2x1bW5zIGRpc3BsYXllZCBmb3IgY29sdW1uLWJhc2VkIHZpZXdzLlxuICAgKi9cbiAgZGlzcGxheWVkQ29sdW1uSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBbiB1bnR5cGVkIHByb3BlcnR5IHRoYXQgdHJhY2tzIGFueSB2aWV3LXNwZWNpZmljIHN0YXRlIGluZm9ybWF0aW9uXG4gICAqIHRoYXQgaXMgcmVsZXZhbnQgdG8gYSBkYXRhIG1hbmFnZXIgYnV0IHRoYXQgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICBhZGRpdGlvbmFsRGF0YT86IGFueTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LXN0YXRlLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZGF0YS1tYW5hZ2VyL3NyYy9saWIvbW9kdWxlcy9kYXRhLW1hbmFnZXIvbW9kZWxzL2RhdGEtdmlldy1zdGF0ZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreURhdGFWaWV3U3RhdGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGlzIHZpZXcuXG4gICAqL1xuICB2aWV3SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBJRHMgb2YgdGhlIGNvbHVtbnMgYWJsZSB0byBiZSBkaXNwbGF5ZWQgZm9yIGNvbHVtbi1iYXNlZCB2aWV3cy4gVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIHV0aWxpemluZyBhIGdyaWQtYmFzZWQgdmlldywgYSBjb2x1bW4gcGlja2VyLCBvciBib3RoLlxuICAgKi9cbiAgY29sdW1uSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBjb2x1bW5zIGRpc3BsYXllZCBmb3IgY29sdW1uLWJhc2VkIHZpZXdzLlxuICAgKi9cbiAgZGlzcGxheWVkQ29sdW1uSWRzPzogc3RyaW5nW107XG4gIC8qKlxuICAgKiBBbiB1bnR5cGVkIHByb3BlcnR5IHRoYXQgdHJhY2tzIGFueSB2aWV3LXNwZWNpZmljIHN0YXRlIGluZm9ybWF0aW9uXG4gICAqIHRoYXQgaXMgcmVsZXZhbnQgdG8gYSBkYXRhIG1hbmFnZXIgYnV0IHRoYXQgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBhZGRpdGlvbmFsRGF0YT86IGFueTtcbn1cbiJdfQ==
@@ -29,4 +29,4 @@ export class SkyDataViewState {
29
29
  };
30
30
  }
31
31
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLXZpZXctc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBbUIzQixZQUFZLElBQTZCO1FBbEJ6Qzs7V0FFRztRQUNJLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDaEM7O1dBRUc7UUFDSSx1QkFBa0IsR0FBYSxFQUFFLENBQUM7UUFZdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDcEMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreURhdGFWaWV3U3RhdGVPcHRpb25zIH0gZnJvbSAnLi9kYXRhLXZpZXctc3RhdGUtb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgb3B0aW9ucyBmb3IgZGVmaW5pbmcgaG93IGRhdGEgaXMgZGlzcGxheWVkLCBzdWNoIGFzIHdoaWNoIGNvbHVtbnMgYXBwZWFyLlxuICovXG5leHBvcnQgY2xhc3MgU2t5RGF0YVZpZXdTdGF0ZSB7XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBjb2x1bW5zIGFibGUgdG8gYmUgZGlzcGxheWVkIGZvciBjb2x1bW4tYmFzZWQgdmlld3MuIFRoaXMgcHJvcGVydHkgaXMgcmVxdWlyZWQgd2hlbiB1dGlsaXppbmcgYSBncmlkLWJhc2VkIHZpZXcsIGEgY29sdW1uIHBpY2tlciwgb3IgYm90aC5cbiAgICovXG4gIHB1YmxpYyBjb2x1bW5JZHM6IHN0cmluZ1tdID0gW107XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBjb2x1bW5zIGRpc3BsYXllZCBmb3IgY29sdW1uLWJhc2VkIHZpZXdzLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXllZENvbHVtbklkczogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGlzIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgdmlld0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiB1bnR5cGVkIHByb3BlcnR5IHRoYXQgdHJhY2tzIGFueSB2aWV3LXNwZWNpZmljIHN0YXRlIGluZm9ybWF0aW9uXG4gICAqIHRoYXQgaXMgcmVsZXZhbnQgdG8gYSBkYXRhIG1hbmFnZXIgYnV0IHRoYXQgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICBwdWJsaWMgYWRkaXRpb25hbERhdGE6IGFueTtcblxuICBjb25zdHJ1Y3RvcihkYXRhOiBTa3lEYXRhVmlld1N0YXRlT3B0aW9ucykge1xuICAgIHRoaXMudmlld0lkID0gZGF0YS52aWV3SWQ7XG4gICAgdGhpcy5jb2x1bW5JZHMgPSBkYXRhLmNvbHVtbklkcyB8fCBbXTtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbklkcyA9IGRhdGEuZGlzcGxheWVkQ29sdW1uSWRzIHx8IFtdO1xuICAgIHRoaXMuYWRkaXRpb25hbERhdGEgPSBkYXRhLmFkZGl0aW9uYWxEYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhVmlld1N0YXRlT3B0aW9uc2AgZm9yIHRoZSBjdXJyZW50IHZpZXcuXG4gICAqIEByZXR1cm5zIFRoZSBgU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnNgLlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdTdGF0ZU9wdGlvbnMoKTogU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICB2aWV3SWQ6IHRoaXMudmlld0lkLFxuICAgICAgY29sdW1uSWRzOiB0aGlzLmNvbHVtbklkcyxcbiAgICAgIGRpc3BsYXllZENvbHVtbklkczogdGhpcy5kaXNwbGF5ZWRDb2x1bW5JZHMsXG4gICAgICBhZGRpdGlvbmFsRGF0YTogdGhpcy5hZGRpdGlvbmFsRGF0YSxcbiAgICB9O1xuICB9XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS12aWV3LXN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGEtbWFuYWdlci9zcmMvbGliL21vZHVsZXMvZGF0YS1tYW5hZ2VyL21vZGVscy9kYXRhLXZpZXctc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBb0IzQixZQUFZLElBQTZCO1FBbkJ6Qzs7V0FFRztRQUNJLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDaEM7O1dBRUc7UUFDSSx1QkFBa0IsR0FBYSxFQUFFLENBQUM7UUFhdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzFCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxtQkFBbUI7UUFDeEIsT0FBTztZQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDcEMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreURhdGFWaWV3U3RhdGVPcHRpb25zIH0gZnJvbSAnLi9kYXRhLXZpZXctc3RhdGUtb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgb3B0aW9ucyBmb3IgZGVmaW5pbmcgaG93IGRhdGEgaXMgZGlzcGxheWVkLCBzdWNoIGFzIHdoaWNoIGNvbHVtbnMgYXBwZWFyLlxuICovXG5leHBvcnQgY2xhc3MgU2t5RGF0YVZpZXdTdGF0ZSB7XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBjb2x1bW5zIGFibGUgdG8gYmUgZGlzcGxheWVkIGZvciBjb2x1bW4tYmFzZWQgdmlld3MuIFRoaXMgcHJvcGVydHkgaXMgcmVxdWlyZWQgd2hlbiB1dGlsaXppbmcgYSBncmlkLWJhc2VkIHZpZXcsIGEgY29sdW1uIHBpY2tlciwgb3IgYm90aC5cbiAgICovXG4gIHB1YmxpYyBjb2x1bW5JZHM6IHN0cmluZ1tdID0gW107XG4gIC8qKlxuICAgKiBUaGUgSURzIG9mIHRoZSBjb2x1bW5zIGRpc3BsYXllZCBmb3IgY29sdW1uLWJhc2VkIHZpZXdzLlxuICAgKi9cbiAgcHVibGljIGRpc3BsYXllZENvbHVtbklkczogc3RyaW5nW10gPSBbXTtcbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGlzIHZpZXcuXG4gICAqL1xuICBwdWJsaWMgdmlld0lkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiB1bnR5cGVkIHByb3BlcnR5IHRoYXQgdHJhY2tzIGFueSB2aWV3LXNwZWNpZmljIHN0YXRlIGluZm9ybWF0aW9uXG4gICAqIHRoYXQgaXMgcmVsZXZhbnQgdG8gYSBkYXRhIG1hbmFnZXIgYnV0IHRoYXQgZXhpc3RpbmcgcHJvcGVydGllcyBkbyBub3QgY292ZXIuXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwdWJsaWMgYWRkaXRpb25hbERhdGE6IGFueTtcblxuICBjb25zdHJ1Y3RvcihkYXRhOiBTa3lEYXRhVmlld1N0YXRlT3B0aW9ucykge1xuICAgIHRoaXMudmlld0lkID0gZGF0YS52aWV3SWQ7XG4gICAgdGhpcy5jb2x1bW5JZHMgPSBkYXRhLmNvbHVtbklkcyB8fCBbXTtcbiAgICB0aGlzLmRpc3BsYXllZENvbHVtbklkcyA9IGRhdGEuZGlzcGxheWVkQ29sdW1uSWRzIHx8IFtdO1xuICAgIHRoaXMuYWRkaXRpb25hbERhdGEgPSBkYXRhLmFkZGl0aW9uYWxEYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGBTa3lEYXRhVmlld1N0YXRlT3B0aW9uc2AgZm9yIHRoZSBjdXJyZW50IHZpZXcuXG4gICAqIEByZXR1cm5zIFRoZSBgU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnNgLlxuICAgKi9cbiAgcHVibGljIGdldFZpZXdTdGF0ZU9wdGlvbnMoKTogU2t5RGF0YVZpZXdTdGF0ZU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICB2aWV3SWQ6IHRoaXMudmlld0lkLFxuICAgICAgY29sdW1uSWRzOiB0aGlzLmNvbHVtbklkcyxcbiAgICAgIGRpc3BsYXllZENvbHVtbklkczogdGhpcy5kaXNwbGF5ZWRDb2x1bW5JZHMsXG4gICAgICBhZGRpdGlvbmFsRGF0YTogdGhpcy5hZGRpdGlvbmFsRGF0YSxcbiAgICB9O1xuICB9XG59XG4iXX0=