@rs-pk/asset-management 1.0.28 → 1.0.29

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 (42) hide show
  1. package/bundles/rs-pk-asset-management.umd.js +106 -55
  2. package/bundles/rs-pk-asset-management.umd.js.map +1 -1
  3. package/bundles/rs-pk-asset-management.umd.min.js +2 -2
  4. package/bundles/rs-pk-asset-management.umd.min.js.map +1 -1
  5. package/esm2015/lib/components/partial/asset-item/asset-item.component.js +6 -3
  6. package/esm2015/lib/components/partial/asset-list/asset-list.component.js +14 -6
  7. package/esm2015/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +2 -2
  8. package/esm2015/lib/components/partial/asset-wrapper/asset-wrapper.component.js +5 -2
  9. package/esm2015/lib/components/partial/file-list/file-list.component.js +1 -1
  10. package/esm2015/lib/components/partial/node-details/node-details.component.js +13 -4
  11. package/esm2015/lib/components/partial/node-tree/node-tree.component.js +36 -34
  12. package/esm2015/lib/components/partial/search-box/search-box.component.js +10 -5
  13. package/esm2015/lib/components/ui/modal/modal.component.js +1 -1
  14. package/esm2015/lib/datasources/node-tree.datasource.js +4 -3
  15. package/esm2015/lib/services/asset.service.js +7 -5
  16. package/esm2015/lib/services/node-tree.service.js +16 -12
  17. package/esm5/lib/components/partial/asset-item/asset-item.component.js +6 -3
  18. package/esm5/lib/components/partial/asset-list/asset-list.component.js +14 -6
  19. package/esm5/lib/components/partial/asset-management-dialog/asset-management-dialog.component.js +2 -2
  20. package/esm5/lib/components/partial/asset-wrapper/asset-wrapper.component.js +5 -2
  21. package/esm5/lib/components/partial/file-list/file-list.component.js +1 -1
  22. package/esm5/lib/components/partial/node-details/node-details.component.js +13 -4
  23. package/esm5/lib/components/partial/node-tree/node-tree.component.js +48 -37
  24. package/esm5/lib/components/partial/search-box/search-box.component.js +10 -5
  25. package/esm5/lib/components/ui/modal/modal.component.js +1 -1
  26. package/esm5/lib/datasources/node-tree.datasource.js +5 -3
  27. package/esm5/lib/services/asset.service.js +9 -5
  28. package/esm5/lib/services/node-tree.service.js +17 -11
  29. package/fesm2015/rs-pk-asset-management.js +89 -52
  30. package/fesm2015/rs-pk-asset-management.js.map +1 -1
  31. package/fesm5/rs-pk-asset-management.js +105 -54
  32. package/fesm5/rs-pk-asset-management.js.map +1 -1
  33. package/lib/components/partial/asset-item/asset-item.component.d.ts +1 -0
  34. package/lib/components/partial/asset-list/asset-list.component.d.ts +1 -0
  35. package/lib/components/partial/asset-wrapper/asset-wrapper.component.d.ts +1 -0
  36. package/lib/components/partial/node-details/node-details.component.d.ts +1 -0
  37. package/lib/components/partial/node-tree/node-tree.component.d.ts +7 -7
  38. package/lib/datasources/node-tree.datasource.d.ts +1 -1
  39. package/lib/services/asset.service.d.ts +1 -1
  40. package/lib/services/node-tree.service.d.ts +6 -6
  41. package/package.json +3 -4
  42. package/rs-pk-asset-management.metadata.json +1 -1
@@ -3,16 +3,16 @@
3
3
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import * as tslib_1 from "tslib";
6
- import { FlatTreeControl } from '@angular/cdk/tree';
7
- import { ChangeDetectorRef, Component, Input } from '@angular/core';
8
- import { of, Subject } from 'rxjs';
9
- import { distinctUntilChanged, switchMap, takeUntil } from 'rxjs/operators';
10
- import { AssetManagementService } from '../../../asset-management.service';
11
- import { NodeTreeDataSource } from '../../../datasources';
12
- import { MAX_FOLDER_TREE_SIZE, ROOT_ASSET_ID } from '../../../models';
13
- import { NodeTreeService } from '../../../services/node-tree.service';
14
- import { ActionTypes, select } from '../../../store/index';
15
- import { AssetService } from '../../../services/asset.service';
6
+ import { FlatTreeControl } from "@angular/cdk/tree";
7
+ import { ChangeDetectorRef, Component, Input } from "@angular/core";
8
+ import { of, Subject } from "rxjs";
9
+ import { distinctUntilChanged, switchMap, takeUntil } from "rxjs/operators";
10
+ import { AssetManagementService } from "../../../asset-management.service";
11
+ import { NodeTreeDataSource } from "../../../datasources";
12
+ import { MAX_FOLDER_TREE_SIZE, ROOT_ASSET_ID } from "../../../models";
13
+ import { AssetService } from "../../../services/asset.service";
14
+ import { NodeTreeService } from "../../../services/node-tree.service";
15
+ import { ActionTypes, select } from "../../../store/index";
16
16
  export class NodeTreeComponent {
17
17
  /**
18
18
  * @param {?} assetService
@@ -59,7 +59,7 @@ export class NodeTreeComponent {
59
59
  const rootFolder = this.folderChildrenMap.get(ROOT_ASSET_ID);
60
60
  return {
61
61
  length: rootFolder ? rootFolder.size : 0,
62
- total: this.nodeTreeService.rootFolder ? this.nodeTreeService.rootFolder.TotalFolder || '0' : 0,
62
+ total: this.nodeTreeService.rootFolder ? this.nodeTreeService.rootFolder.TotalFolder || "0" : 0,
63
63
  };
64
64
  }
65
65
  /**
@@ -102,9 +102,7 @@ export class NodeTreeComponent {
102
102
  * @return {?}
103
103
  */
104
104
  bindSubscriber() {
105
- this.nodeTreeService.loading$
106
- .pipe(takeUntil(this.unsubscribe$), distinctUntilChanged())
107
- .subscribe((/**
105
+ this.nodeTreeService.loading$.pipe(takeUntil(this.unsubscribe$), distinctUntilChanged()).subscribe((/**
108
106
  * @param {?} loading
109
107
  * @return {?}
110
108
  */
@@ -112,9 +110,7 @@ export class NodeTreeComponent {
112
110
  this.homeLoading = loading;
113
111
  this.changeDetectorRef.detectChanges();
114
112
  }));
115
- this.nodeTreeService.initialData$
116
- .pipe(takeUntil(this.unsubscribe$), distinctUntilChanged())
117
- .subscribe((/**
113
+ this.nodeTreeService.initialData$.pipe(takeUntil(this.unsubscribe$), distinctUntilChanged()).subscribe((/**
118
114
  * @param {?} data
119
115
  * @return {?}
120
116
  */
@@ -129,9 +125,7 @@ export class NodeTreeComponent {
129
125
  (node) => this.nodeTreeService.addNode(node.item, null)));
130
126
  this.changeDetectorRef.detectChanges();
131
127
  }));
132
- this.dataSource.dataChange
133
- .pipe(takeUntil(this.unsubscribe$))
134
- .subscribe((/**
128
+ this.dataSource.dataChange.pipe(takeUntil(this.unsubscribe$)).subscribe((/**
135
129
  * @param {?} data
136
130
  * @return {?}
137
131
  */
@@ -256,11 +250,13 @@ export class NodeTreeComponent {
256
250
  /** @type {?} */
257
251
  const itemsPerPage = this.assetService.AMConfig.pageFolderSize || MAX_FOLDER_TREE_SIZE;
258
252
  /** @type {?} */
259
- const result = yield this.assetService.getChildrenFolders({
253
+ const result = yield this.assetService
254
+ .getChildrenFolders({
260
255
  assetId: id === ROOT_ASSET_ID ? null : id,
261
256
  isFilter: false,
262
- pageIndex: Math.round((children ? children.size : 0) / itemsPerPage)
263
- }).toPromise();
257
+ pageIndex: Math.round((children ? children.size : 0) / itemsPerPage),
258
+ })
259
+ .toPromise();
264
260
  /** @type {?} */
265
261
  const assetChildren = result.Data.Children || [];
266
262
  // Handle datasource
@@ -288,7 +284,7 @@ export class NodeTreeComponent {
288
284
  this.changeDetectorRef.detectChanges();
289
285
  }
290
286
  catch (error) {
291
- console.log('Load more folder error', error);
287
+ console.log("Load more folder error", error);
292
288
  this.setLoadingMore(id, false);
293
289
  }
294
290
  });
@@ -356,20 +352,26 @@ export class NodeTreeComponent {
356
352
  const parent = this.getParent(node);
357
353
  if (parent) {
358
354
  // Reload parent folder (get children and expand it again)
359
- yield this.dataSource.reloadNode(parent);
355
+ /** @type {?} */
356
+ const children = this.folderChildrenMap.get(parent.item.AssetId);
357
+ yield this.dataSource.reloadNode(parent, children.size);
360
358
  /** @type {?} */
361
359
  const updatedNode = this.getNodeById(id);
362
360
  if (updatedNode) {
361
+ // TODO
363
362
  yield this.treeControl.expand(updatedNode);
364
363
  }
365
364
  }
366
365
  else {
367
- // BUG: This will reload the root folder when the user selects a folder from the tree
368
- // await this.nodeTreeService.initialData({ dispatchRootId: false });
369
- // const updatedNode = this.getNodeById(id);
370
- // if (updatedNode) {
371
- // await this.treeControl.expand(updatedNode);
372
- // }
366
+ /** @type {?} */
367
+ const rootFolder = this.folderChildrenMap.get(ROOT_ASSET_ID);
368
+ yield this.nodeTreeService.initialData({ dispatchRootId: false, pageSize: rootFolder.size });
369
+ /** @type {?} */
370
+ const updatedNode = this.getNodeById(id);
371
+ if (updatedNode) {
372
+ // TODO
373
+ yield this.treeControl.expand(updatedNode);
374
+ }
373
375
  }
374
376
  }
375
377
  else {
@@ -400,9 +402,9 @@ export class NodeTreeComponent {
400
402
  }
401
403
  NodeTreeComponent.decorators = [
402
404
  { type: Component, args: [{
403
- selector: 'lib-node-tree',
405
+ selector: "lib-node-tree",
404
406
  template: "<div class=\"node custom-scrollbar node-tree\">\n <div class=\"node__home\" (click)=\"backToHome()\" [ngClass]=\"{ active: isRoot,\n disabled: loading || homeLoading}\">\n <mat-icon *ngIf=\"!homeLoading\">home</mat-icon>\n <mat-spinner *ngIf=\"homeLoading\" [diameter]=\"20\"\n class=\"node__home--loading\"></mat-spinner>\n <span>Home</span>\n </div>\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\"\n class=\"node__item\">\n <mat-tree-node *matTreeNodeDef=\"let node\" matTreeNodePadding\n [ngClass]=\"{ active: checked(node),disabled: loading || node.isLoading }\"\n (click)=\"selectNode(node)\">\n <button mat-icon-button disabled class=\"node__item--pading\"></button>\n <div class=\"node__item--info\" [style.maxWidth.px]=\"width -50\">\n <mat-icon class=\"folder-icon\">folder</mat-icon>\n <div class=\"node-name\">\n <span>\n {{ node.item.OriginalFileName }}\n </span>\n <span class=\"node-summary\" *ngIf=\"node.item?.TotalFolder ||\n node.item?.TotalFile\">\n <small *ngIf=\"node.item?.TotalFolder\">{{ node.item?.TotalFolder}}\n {{node.item?.TotalFolder> 1 ?\n 'folders':'folder'}}</small>\n <small *ngIf=\"node.item?.TotalFolder && node.item?.TotalFile\">,\n </small>\n <small *ngIf=\"node.item?.TotalFile\">{{ node.item?.TotalFile}}\n {{node.item?.TotalFile> 1 ?\n 'files':'file'}}</small>\n </span>\n </div>\n </div>\n </mat-tree-node>\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" matTreeNodePadding \n [ngClass]=\"{ active: checked(node), disabled: loading || node.isLoading\n }\">\n <div class=\"d-flex align-items-center\" (click)=\"selectNode(node)\">\n <button mat-icon-button [attr.aria-label]=\"'Toggle ' +\n node.item.OriginalFileName\" matTreeNodeToggle\n [disabled]=\"node.isLoading\">\n <mat-icon *ngIf=\"!node.isLoading\" class=\"mat-icon-rtl-mirror\">\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\n </mat-icon>\n <mat-spinner *ngIf=\"node.isLoading\" [diameter]=\"20\"\n class=\"node__item--loading\"></mat-spinner>\n </button>\n <div class=\"node__item--info\" [style.maxWidth.px]=\"width -50\">\n <mat-icon class=\"folder-icon\">folder</mat-icon>\n <div class=\"node-name\">\n <span>\n {{ node.item.OriginalFileName }}\n </span>\n <span class=\"node-summary\">\n <small *ngIf=\"node.item?.TotalFolder\"><ng-container *ngIf=\"treeControl.isExpanded(node)\"><b>{{getFolderChildrenSize(node.item.AssetId)}}</b>/</ng-container>{{ node.item?.TotalFolder}}\n {{node.item?.TotalFolder> 1 ?\n 'folders':'folder'}}</small>\n <small *ngIf=\"node.item?.TotalFolder && node.item?.TotalFile\">,\n </small>\n <small *ngIf=\"node.item?.TotalFile\">{{ node.item?.TotalFile}}\n {{node.item?.TotalFile> 1 ?\n 'files':'file'}}</small>\n </span>\n </div>\n </div>\n </div>\n <ng-container *ngIf=\"treeControl.isExpanded(node)\"> \n <div *ngIf=\"!!loadingMoreList[node.item.AssetId]\" class=\"mx-2\" [style.minWidth.px]=\"40\">\n <mat-spinner [diameter]=\"20\"\n class=\"node__item--loading\"></mat-spinner>\n </div>\n <button *ngIf=\"!loadingMoreList[node.item.AssetId] && canLoadMore(node)\" matTooltip=\"Load More\" class=\"mx-2\" mat-icon-button (click)=\"loadMoreFolder(node)\" [disabled]=\"loadingMoreList[node.item.AssetId] || homeLoading || loading\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\" width=\"24px\" fill=\"#5f6368\"><path d=\"m482-200 114-113-114-113-42 42 43 43q-28 1-54.5-9T381-381q-20-20-30.5-46T340-479q0-17 4.5-34t12.5-33l-44-44q-17 25-25 53t-8 57q0 38 15 75t44 66q29 29 65 43.5t74 15.5l-38 38 42 42Zm165-170q17-25 25-53t8-57q0-38-14.5-75.5T622-622q-29-29-65.5-43T482-679l38-39-42-42-114 113 114 113 42-42-44-44q27 0 55 10.5t48 30.5q20 20 30.5 46t10.5 52q0 17-4.5 34T603-414l44 44ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z\"/></svg>\n </button>\n </ng-container>\n </mat-tree-node>\n </mat-tree>\n <div class=\"p-2 d-flex flex-column align-items-center justify-content-center\" *ngIf=\"folderTreeMeta.length\">\n <button mat-raised-button *ngIf=\"folderTreeMeta.length !== folderTreeMeta.total\" (click)=\"loadMoreFolder()\" [disabled]=\"loadingMoreList[ROOT_ASSET_ID] || loading || homeLoading\">\n <div class=\"d-flex align-items-center\">\n <mat-spinner [diameter]=\"20\" *ngIf=\"loadingMoreList[ROOT_ASSET_ID]\"></mat-spinner>\n <mat-icon *ngIf=\"!loadingMoreList[ROOT_ASSET_ID]\">expand_more</mat-icon>\n <div class=\"ml-2\">Load More</div>\n </div>\n </button>\n <div class=\"mt-2\" [style.fontSize.px]=\"13\"><b>{{ folderTreeMeta.length }}</b> of <b>{{ folderTreeMeta.total }} folders</b></div>\n </div>\n</div>",
405
- styles: [":host::ng-deep .node{overflow-x:hidden;height:100%;display:-ms-grid;display:grid;grid-auto-rows:-webkit-max-content;grid-auto-rows:max-content}:host::ng-deep .node-tree{max-height:max(800px,90vh);overflow-y:auto}:host::ng-deep .node__home{padding:8px 10px;display:flex;align-items:center;height:44px}:host::ng-deep .node__home .mat-icon{color:#979797;margin-right:15px;margin-bottom:10px;font-size:32px}:host::ng-deep .node__home .node__home--loading{margin-right:19px}:host::ng-deep .node__item--loading{margin-left:10px}:host::ng-deep .node__item--info{display:flex;align-items:center}:host::ng-deep .node__item--info .folder-icon{display:flex;align-items:center;color:#6fc0ff;font-size:32px;margin-right:20px}:host::ng-deep .node__item--info .node-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .node__item--info .node-name span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .node__item--info .node-name .node-summary{margin-top:-5px;color:#979797}:host::ng-deep .node .mat-tree{width:-webkit-max-content!important;width:-moz-max-content!important;width:max-content!important;min-width:100%}:host::ng-deep .node .mat-tree .mat-tree-node{padding:5px 0;min-height:44px}:host::ng-deep .node .mat-tree .mat-tree-node .node__item--pading{height:20px}:host::ng-deep .node .mat-tree-node:hover,:host::ng-deep .node .node__home{transition:.3s;cursor:pointer}:host::ng-deep .node .mat-tree-node:hover:hover,:host::ng-deep .node .node__home:hover{background-color:#e8e8e8}:host::ng-deep .node .active{background-color:#f0f0f0}:host::ng-deep .node .disabled{pointer-events:none}"]
407
+ styles: [":host::ng-deep .node{overflow-x:hidden;height:100%;display:grid;grid-auto-rows:max-content}:host::ng-deep .node-tree{max-height:max(800px,90vh);overflow-y:auto}:host::ng-deep .node__home{padding:8px 10px;display:flex;align-items:center;height:44px}:host::ng-deep .node__home .mat-icon{color:#979797;margin-right:15px;margin-bottom:10px;font-size:32px}:host::ng-deep .node__home .node__home--loading{margin-right:19px}:host::ng-deep .node__item--loading{margin-left:10px}:host::ng-deep .node__item--info{display:flex;align-items:center}:host::ng-deep .node__item--info .folder-icon{display:flex;align-items:center;color:#6fc0ff;font-size:32px;margin-right:20px}:host::ng-deep .node__item--info .node-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .node__item--info .node-name span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .node__item--info .node-name .node-summary{margin-top:-5px;color:#979797}:host::ng-deep .node .mat-tree{width:-moz-max-content!important;width:max-content!important;min-width:100%}:host::ng-deep .node .mat-tree .mat-tree-node{padding:5px 0;min-height:44px}:host::ng-deep .node .mat-tree .mat-tree-node .node__item--pading{height:20px}:host::ng-deep .node .mat-tree-node:hover,:host::ng-deep .node .node__home{transition:.3s;cursor:pointer}:host::ng-deep .node .mat-tree-node:hover:hover,:host::ng-deep .node .node__home:hover{background-color:#e8e8e8}:host::ng-deep .node .active{background-color:#f0f0f0}:host::ng-deep .node .disabled{pointer-events:none}"]
406
408
  }] }
407
409
  ];
408
410
  /** @nocollapse */
@@ -465,4 +467,4 @@ if (false) {
465
467
  */
466
468
  NodeTreeComponent.prototype.changeDetectorRef;
467
469
  }
468
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9ub2RlLXRyZWUvbm9kZS10cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU0vRCxNQUFNLE9BQU8saUJBQWlCOzs7Ozs7O0lBQzVCLFlBQ1MsWUFBMEIsRUFDekIsZUFBZ0MsRUFDaEMsR0FBMkIsRUFDM0IsaUJBQW9DO1FBSHJDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBV3ZDLGtC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O1lBTFEsWUFBWTtZQUZaLGVBQWU7WUFIZixzQkFBc0I7WUFIdEIsaUJBQWlCOzs7b0JBNEJ2QixLQUFLOzs7O0lBQU4sa0NBQXVCOztJQUV2QiwwQ0FBcUM7O0lBQ3JDLDRDQUErQjs7SUFDL0IsbUNBQXNCOztJQUN0Qix3Q0FBMkI7O0lBQzNCLG9DQUF1Qjs7SUFDdkIsNENBQTJCOztJQUMzQix3Q0FBcUQ7O0lBQ3JELHVDQUFzQzs7SUFDdEMsOENBQWdGOzs7OztJQUNoRix5Q0FBMkM7O0lBMkszQyxxQ0FBaUQ7O0lBRWpELHlDQUEwRDs7SUFFMUQscUNBQTJFOztJQXRNekUseUNBQWlDOzs7OztJQUNqQyw0Q0FBd0M7Ozs7O0lBQ3hDLGdDQUFtQzs7Ozs7SUFDbkMsOENBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXNzZXRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2Fzc2V0LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBOb2RlVHJlZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlcyc7XG5pbXBvcnQgeyBEeW5hbWljRmxhdE5vZGUsIE1BWF9GT0xERVJfVFJFRV9TSVpFLCBST09UX0FTU0VUX0lEIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IE5vZGVUcmVlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25vZGUtdHJlZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblR5cGVzLCBzZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9pbmRleCc7XG5pbXBvcnQgeyBBc3NldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hc3NldC5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1ub2RlLXRyZWUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm9kZS10cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm9kZS10cmVlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVUcmVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYXNzZXRTZXJ2aWNlOiBBc3NldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBub2RlVHJlZVNlcnZpY2U6IE5vZGVUcmVlU2VydmljZSxcbiAgICBwcml2YXRlIHN2YzogQXNzZXRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxEeW5hbWljRmxhdE5vZGU+KFxuICAgICAgdGhpcy5nZXRMZXZlbCxcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlXG4gICAgKTtcbiAgICB0aGlzLmRhdGFTb3VyY2UgPSBuZXcgTm9kZVRyZWVEYXRhU291cmNlKHRoaXMudHJlZUNvbnRyb2wsIG5vZGVUcmVlU2VydmljZSk7XG4gIH1cblxuICBASW5wdXQoKSB3aWR0aDogbnVtYmVyO1xuXG4gIHB1YmxpYyBST09UX0FTU0VUX0lEID0gUk9PVF9BU1NFVF9JRDsgXG4gIHB1YmxpYyBjdXJyZW50Rm9sZGVySWQ6IHN0cmluZztcbiAgcHVibGljIGlzUm9vdCA9IGZhbHNlO1xuICBwdWJsaWMgaG9tZUxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmdNb3JlTGlzdCA9IHt9XG4gIHB1YmxpYyB0cmVlQ29udHJvbDogRmxhdFRyZWVDb250cm9sPER5bmFtaWNGbGF0Tm9kZT47XG4gIHB1YmxpYyBkYXRhU291cmNlOiBOb2RlVHJlZURhdGFTb3VyY2U7XG4gIHB1YmxpYyBmb2xkZXJDaGlsZHJlbk1hcDogTWFwPHN0cmluZywgTWFwPHN0cmluZywgRHluYW1pY0ZsYXROb2RlPj4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBnZXQgZm9sZGVyVHJlZU1ldGEoKXtcbiAgICBjb25zdCByb290Rm9sZGVyID0gdGhpcy5mb2xkZXJDaGlsZHJlbk1hcC5nZXQoUk9PVF9BU1NFVF9JRCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxlbmd0aDogcm9vdEZvbGRlciA/IHJvb3RGb2xkZXIuc2l6ZSA6IDAsXG4gICAgICB0b3RhbDogdGhpcy5ub2RlVHJlZVNlcnZpY2Uucm9vdEZvbGRlciA/IHRoaXMubm9kZVRyZWVTZXJ2aWNlLnJvb3RGb2xkZXIuVG90YWxGb2xkZXIgfHwgJzAnIDogMCxcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmJpbmRTdWJzY3JpYmVyKCk7XG4gICAgdGhpcy5pbml0aWFsRGF0YSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsRGF0YSgpIHtcbiAgICBhd2FpdCB0aGlzLm5vZGVUcmVlU2VydmljZS5pbml0aWFsRGF0YSh7IGRpc3BhdGNoUm9vdElkOiB0cnVlIH0pO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGdldEZvbGRlckNoaWxkcmVuU2l6ZShpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLmZvbGRlckNoaWxkcmVuTWFwLmdldChpZCk7XG4gICAgcmV0dXJuIGNoaWxkcmVuID8gY2hpbGRyZW4uc2l6ZSA6IDA7XG4gIH1cblxuICBwdWJsaWMgY2FuTG9hZE1vcmUobm9kZTogRHluYW1pY0ZsYXROb2RlKXtcbiAgICBjb25zdCBzaXplID0gdGhpcy5nZXRGb2xkZXJDaGlsZHJlblNpemUobm9kZS5pdGVtLkFzc2V0SWQpO1xuICAgIHJldHVybiBzaXplIDwgbm9kZS5pdGVtLlRvdGFsRm9sZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU3Vic2NyaWJlcigpIHtcbiAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5sb2FkaW5nJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcbiAgICAgICAgdGhpcy5ob21lTG9hZGluZyA9IGxvYWRpbmc7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5pbml0aWFsRGF0YSRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgQXNzZXRJZDogcm9vdElkIH0gPSB0aGlzLm5vZGVUcmVlU2VydmljZS5yb290Rm9sZGVyIHx8IHtBc3NldElkOiBudWxsfTsgICAgIFxuICAgICAgICB0aGlzLmlzUm9vdCA9IHJvb3RJZCAmJiB0aGlzLmN1cnJlbnRGb2xkZXJJZCA9PT0gcm9vdElkO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IGRhdGE7XG4gICAgICAgIGRhdGEuZm9yRWFjaCgobm9kZSkgPT4gdGhpcy5ub2RlVHJlZVNlcnZpY2UuYWRkTm9kZShub2RlLml0ZW0sIG51bGwpKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhQ2hhbmdlXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRGF0YXNvdXJjZUNoYW5nZShkYXRhKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5jdXJyZW50Rm9sZGVySWQpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoaWQpID0+IHtcbiAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgY29uc3QgeyBBc3NldElkOiByb290SWQgfSA9IHRoaXMubm9kZVRyZWVTZXJ2aWNlLnJvb3RGb2xkZXIgfHwge0Fzc2V0SWQ6IG51bGx9O1xuICAgICAgICAgIHRoaXMuaXNSb290ID0gcm9vdElkICYmIGlkID09PSByb290SWQ7XG4gICAgICAgICAgdGhpcy5jdXJyZW50Rm9sZGVySWQgPSBpZDtcbiAgICAgICAgICBhd2FpdCB0aGlzLm5vZGVUcmVlU2VydmljZS51cGRhdGVCcmVhZGNydW1iKGlkKTtcbiAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBzZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5yZWxvYWRDdXJyZW50Rm9sZGVyKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSwgc3dpdGNoTWFwKChyZXMpID0+IG9mKHJlcykpKVxuICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IHRoaXMuaGFuZGxlUmVsb2FkRm9sZGVyKHRoaXMuY3VycmVudEZvbGRlcklkKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRGF0YXNvdXJjZUNoYW5nZShkYXRhOiBEeW5hbWljRmxhdE5vZGVbXSA9IFtdKSB7XG4gICAgaWYgKCFkYXRhIHx8ICFkYXRhLmxlbmd0aCkgcmV0dXJuO1xuXG4gICAgY29uc3QgbWFwcyA9IG5ldyBNYXA8c3RyaW5nLCBNYXA8c3RyaW5nLCBEeW5hbWljRmxhdE5vZGU+PigpO1xuICAgIG1hcHMuc2V0KFJPT1RfQVNTRVRfSUQsIG5ldyBNYXAoKSk7XG5cbiAgICBkYXRhLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IG5vZGVJZCA9IG5vZGUuaXRlbS5Bc3NldElkO1xuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5nZXRQYXJlbnQobm9kZSk7XG4gICAgICBjb25zdCBwYXJlbnRJZCA9IHBhcmVudCA/IHBhcmVudC5pdGVtLkFzc2V0SWQgOiBST09UX0FTU0VUX0lEO1xuXG4gICAgICBpZiAoIW1hcHMuaGFzKHBhcmVudElkKSkge1xuICAgICAgbWFwcy5zZXQocGFyZW50SWQsIG5ldyBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIG1hcHMuZ2V0KHBhcmVudElkKS5zZXQobm9kZUlkLCBub2RlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZm9sZGVyQ2hpbGRyZW5NYXAgPSBtYXBzOyBcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZWxlY3ROb2RlKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSkge1xuICAgIGNvbnN0IHsgQXNzZXRJZDogaWQgfSA9IG5vZGUuaXRlbTtcbiAgICBpZiAoaWQgPT09IHRoaXMuY3VycmVudEZvbGRlcklkKSB7XG4gICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX05PREUsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfQ1VSUkVOVF9GT0xERVJfSUQsXG4gICAgICAgIHBheWxvYWQ6IGlkLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMuaGFuZGxlUmVsb2FkRm9sZGVyKGlkKTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBiYWNrVG9Ib21lKCkge1xuICAgIHRoaXMuaW5pdGlhbERhdGEoKTtcbiAgICBjb25zdCB7IEFzc2V0SWQ6IHJvb3RJZCB9ID0gdGhpcy5ub2RlVHJlZVNlcnZpY2Uucm9vdEZvbGRlcjtcbiAgICBpZiAodGhpcy5jdXJyZW50Rm9sZGVySWQgPT09IHJvb3RJZCkge1xuICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5SRUxPQURfQ1VSUkVOVF9OT0RFLFxuICAgICAgfSk7XG4gICAgfVxuXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9hZE1vcmVGb2xkZXIobm9kZT86IGFueSkge1xuICAgIGNvbnN0IGlkID0gbm9kZSA/IG5vZGUuaXRlbS5Bc3NldElkIDogUk9PVF9BU1NFVF9JRDtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zZXRMb2FkaW5nTW9yZShpZCwgdHJ1ZSk7XG5cbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5mb2xkZXJDaGlsZHJlbk1hcC5nZXQoaWQpO1xuICAgICAgY29uc3QgaXRlbXNQZXJQYWdlID0gdGhpcy5hc3NldFNlcnZpY2UuQU1Db25maWcucGFnZUZvbGRlclNpemUgfHwgTUFYX0ZPTERFUl9UUkVFX1NJWkU7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFzc2V0U2VydmljZS5nZXRDaGlsZHJlbkZvbGRlcnMoe1xuICAgICAgICBhc3NldElkOiBpZCA9PT0gUk9PVF9BU1NFVF9JRCA/IG51bGwgOiBpZCxcbiAgICAgICAgaXNGaWx0ZXI6IGZhbHNlLFxuICAgICAgICBwYWdlSW5kZXg6ICBNYXRoLnJvdW5kKChjaGlsZHJlbiA/IGNoaWxkcmVuLnNpemUgOiAwKSAvIGl0ZW1zUGVyUGFnZSkgXG4gICAgICB9KS50b1Byb21pc2UoKTtcblxuICAgICAgY29uc3QgYXNzZXRDaGlsZHJlbiA9IHJlc3VsdC5EYXRhLkNoaWxkcmVuIHx8IFtdO1xuXG4gICAgICAvLyBIYW5kbGUgZGF0YXNvdXJjZVxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5pbmRleE9mKG5vZGUpO1xuICAgICAgY29uc3Qgbm9kZXMgPSBhc3NldENoaWxkcmVuLm1hcCgoZm9sZGVyKSA9PiB7XG4gICAgICAgIHRoaXMubm9kZVRyZWVTZXJ2aWNlLmFkZE5vZGUoZm9sZGVyLCBpZClcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZVRyZWVTZXJ2aWNlLmdldER5bmFtaWNGbGF0Tm9kZShmb2xkZXIsIG5vZGUgPyBub2RlLmxldmVsICsgMSA6IDApXG4gICAgICB9KTtcbiAgICAgIFxuICAgICAgaWYoaWQgIT09IFJPT1RfQVNTRVRfSUQpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5zbGljZSgpO1xuICAgICAgICB1cGRhdGVkRGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi5ub2Rlcyk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdXBkYXRlZERhdGE7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbLi4udGhpcy5kYXRhU291cmNlLmRhdGEsIC4uLm5vZGVzXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0TG9hZGluZ01vcmUoaWQsIGZhbHNlKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmxvZygnTG9hZCBtb3JlIGZvbGRlciBlcnJvcicsIGVycm9yKTtcbiAgICAgIHRoaXMuc2V0TG9hZGluZ01vcmUoaWQsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBjaGVja2VkKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRGb2xkZXJJZCAmJiB0aGlzLmN1cnJlbnRGb2xkZXJJZCA9PT0gbm9kZS5pdGVtLkFzc2V0SWQ7XG4gIH1cblxuICBkaXNhYmxlZChub2RlOiBEeW5hbWljRmxhdE5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbm9kZS5leHBhbmRhYmxlO1xuICB9XG5cbiAgZ2V0TGV2ZWwgPSAobm9kZTogRHluYW1pY0ZsYXROb2RlKSA9PiBub2RlLmxldmVsO1xuXG4gIGlzRXhwYW5kYWJsZSA9IChub2RlOiBEeW5hbWljRmxhdE5vZGUpID0+IG5vZGUuZXhwYW5kYWJsZTtcblxuICBoYXNDaGlsZCA9IChfOiBudW1iZXIsIF9ub2RlRGF0YTogRHluYW1pY0ZsYXROb2RlKSA9PiBfbm9kZURhdGEuZXhwYW5kYWJsZTtcblxuICBnZXRQYXJlbnQobm9kZTogRHluYW1pY0ZsYXROb2RlKTogRHluYW1pY0ZsYXROb2RlIHtcbiAgICBjb25zdCBjdXJyZW50TGV2ZWwgPSB0aGlzLmdldExldmVsKG5vZGUpO1xuXG4gICAgaWYgKGN1cnJlbnRMZXZlbCA8IDEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5pbmRleE9mKG5vZGUpIC0gMTtcblxuICAgIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpID49IDA7IGktLSkge1xuICAgICAgY29uc3QgY3VycmVudE5vZGUgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YVtpXTtcbiAgICAgIGlmICh0aGlzLmdldExldmVsKGN1cnJlbnROb2RlKSA8IGN1cnJlbnRMZXZlbCkge1xuICAgICAgICByZXR1cm4gY3VycmVudE5vZGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0Tm9kZUJ5SWQoaWQ6IHN0cmluZyk6IER5bmFtaWNGbGF0Tm9kZSB7XG4gICAgcmV0dXJuIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLmZpbmQoKG5vZGUpID0+IG5vZGUuaXRlbS5Bc3NldElkID09PSBpZCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZVJlbG9hZEZvbGRlcihpZDogc3RyaW5nKSB7XG4gICAgaWYgKCFpZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlQnlJZChpZCk7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50KG5vZGUpO1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAvLyBSZWxvYWQgcGFyZW50IGZvbGRlciAoZ2V0IGNoaWxkcmVuIGFuZCBleHBhbmQgaXQgYWdhaW4pXG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVNvdXJjZS5yZWxvYWROb2RlKHBhcmVudCk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWROb2RlID0gdGhpcy5nZXROb2RlQnlJZChpZCk7XG4gICAgICAgIGlmICh1cGRhdGVkTm9kZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKHVwZGF0ZWROb2RlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQlVHOiBUaGlzIHdpbGwgcmVsb2FkIHRoZSByb290IGZvbGRlciB3aGVuIHRoZSB1c2VyIHNlbGVjdHMgYSBmb2xkZXIgZnJvbSB0aGUgdHJlZVxuICAgICAgICAvLyBhd2FpdCB0aGlzLm5vZGVUcmVlU2VydmljZS5pbml0aWFsRGF0YSh7IGRpc3BhdGNoUm9vdElkOiBmYWxzZSB9KTtcbiAgICAgICAgLy8gY29uc3QgdXBkYXRlZE5vZGUgPSB0aGlzLmdldE5vZGVCeUlkKGlkKTtcbiAgICAgICAgLy8gaWYgKHVwZGF0ZWROb2RlKSB7XG4gICAgICAgIC8vICAgYXdhaXQgdGhpcy50cmVlQ29udHJvbC5leHBhbmQodXBkYXRlZE5vZGUpO1xuICAgICAgICAvLyB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFJlbG9hZCByb290IGZvbGRlclxuICAgICAgYXdhaXQgdGhpcy5ub2RlVHJlZVNlcnZpY2UuaW5pdGlhbERhdGEoeyBkaXNwYXRjaFJvb3RJZDogZmFsc2UgfSk7XG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRMb2FkaW5nTW9yZShpZDogc3RyaW5nLCB2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMubG9hZGluZ01vcmVMaXN0W2lkXSA9IHZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBbXTtcbiAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5kYXRhID0gW107XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
470
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10cmVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvcGFydGlhbC9ub2RlLXRyZWUvbm9kZS10cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLG9CQUFvQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQU0zRCxNQUFNLE9BQU8saUJBQWlCOzs7Ozs7O0lBQzVCLFlBQ1MsWUFBMEIsRUFDekIsZUFBZ0MsRUFDaEMsR0FBMkIsRUFDM0IsaUJBQW9DO1FBSHJDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxRQUFHLEdBQUgsR0FBRyxDQUF3QjtRQUMzQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBUXZDLGtC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QUFjO1FBQy9DLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQ25DLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs7O1lBelFGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsNDFLQUF5Qzs7YUFFMUM7Ozs7WUFQUSxZQUFZO1lBQ1osZUFBZTtZQUpmLHNCQUFzQjtZQUh0QixpQkFBaUI7OztvQkF5QnZCLEtBQUs7Ozs7SUFBTixrQ0FBdUI7O0lBRXZCLDBDQUFxQzs7SUFDckMsNENBQStCOztJQUMvQixtQ0FBc0I7O0lBQ3RCLHdDQUEyQjs7SUFDM0Isb0NBQXVCOztJQUN2Qiw0Q0FBNEI7O0lBQzVCLHdDQUFxRDs7SUFDckQsdUNBQXNDOztJQUN0Qyw4Q0FBZ0Y7Ozs7O0lBQ2hGLHlDQUEyQzs7SUF3SzNDLHFDQUFpRDs7SUFFakQseUNBQTBEOztJQUUxRCxxQ0FBMkU7O0lBaE16RSx5Q0FBaUM7Ozs7O0lBQ2pDLDRDQUF3Qzs7Ozs7SUFDeEMsZ0NBQW1DOzs7OztJQUNuQyw4Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbGF0VHJlZUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3RyZWVcIjtcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBvZiwgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEFzc2V0TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vYXNzZXQtbWFuYWdlbWVudC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOb2RlVHJlZURhdGFTb3VyY2UgfSBmcm9tIFwiLi4vLi4vLi4vZGF0YXNvdXJjZXNcIjtcbmltcG9ydCB7IER5bmFtaWNGbGF0Tm9kZSwgTUFYX0ZPTERFUl9UUkVFX1NJWkUsIFJPT1RfQVNTRVRfSUQgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBBc3NldFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvYXNzZXQuc2VydmljZVwiO1xuaW1wb3J0IHsgTm9kZVRyZWVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL25vZGUtdHJlZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBY3Rpb25UeXBlcywgc2VsZWN0IH0gZnJvbSBcIi4uLy4uLy4uL3N0b3JlL2luZGV4XCI7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibGliLW5vZGUtdHJlZVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL25vZGUtdHJlZS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vbm9kZS10cmVlLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBOb2RlVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGFzc2V0U2VydmljZTogQXNzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbm9kZVRyZWVTZXJ2aWNlOiBOb2RlVHJlZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdmM6IEFzc2V0TWFuYWdlbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy50cmVlQ29udHJvbCA9IG5ldyBGbGF0VHJlZUNvbnRyb2w8RHluYW1pY0ZsYXROb2RlPih0aGlzLmdldExldmVsLCB0aGlzLmlzRXhwYW5kYWJsZSk7XG4gICAgdGhpcy5kYXRhU291cmNlID0gbmV3IE5vZGVUcmVlRGF0YVNvdXJjZSh0aGlzLnRyZWVDb250cm9sLCBub2RlVHJlZVNlcnZpY2UpO1xuICB9XG5cbiAgQElucHV0KCkgd2lkdGg6IG51bWJlcjtcblxuICBwdWJsaWMgUk9PVF9BU1NFVF9JRCA9IFJPT1RfQVNTRVRfSUQ7XG4gIHB1YmxpYyBjdXJyZW50Rm9sZGVySWQ6IHN0cmluZztcbiAgcHVibGljIGlzUm9vdCA9IGZhbHNlO1xuICBwdWJsaWMgaG9tZUxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgcHVibGljIGxvYWRpbmdNb3JlTGlzdCA9IHt9O1xuICBwdWJsaWMgdHJlZUNvbnRyb2w6IEZsYXRUcmVlQ29udHJvbDxEeW5hbWljRmxhdE5vZGU+O1xuICBwdWJsaWMgZGF0YVNvdXJjZTogTm9kZVRyZWVEYXRhU291cmNlO1xuICBwdWJsaWMgZm9sZGVyQ2hpbGRyZW5NYXA6IE1hcDxzdHJpbmcsIE1hcDxzdHJpbmcsIER5bmFtaWNGbGF0Tm9kZT4+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgZ2V0IGZvbGRlclRyZWVNZXRhKCkge1xuICAgIGNvbnN0IHJvb3RGb2xkZXIgPSB0aGlzLmZvbGRlckNoaWxkcmVuTWFwLmdldChST09UX0FTU0VUX0lEKTtcbiAgICByZXR1cm4ge1xuICAgICAgbGVuZ3RoOiByb290Rm9sZGVyID8gcm9vdEZvbGRlci5zaXplIDogMCxcbiAgICAgIHRvdGFsOiB0aGlzLm5vZGVUcmVlU2VydmljZS5yb290Rm9sZGVyID8gdGhpcy5ub2RlVHJlZVNlcnZpY2Uucm9vdEZvbGRlci5Ub3RhbEZvbGRlciB8fCBcIjBcIiA6IDAsXG4gICAgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuYmluZFN1YnNjcmliZXIoKTtcbiAgICB0aGlzLmluaXRpYWxEYXRhKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXRpYWxEYXRhKCkge1xuICAgIGF3YWl0IHRoaXMubm9kZVRyZWVTZXJ2aWNlLmluaXRpYWxEYXRhKHsgZGlzcGF0Y2hSb290SWQ6IHRydWUgfSk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9sZGVyQ2hpbGRyZW5TaXplKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZm9sZGVyQ2hpbGRyZW5NYXAuZ2V0KGlkKTtcbiAgICByZXR1cm4gY2hpbGRyZW4gPyBjaGlsZHJlbi5zaXplIDogMDtcbiAgfVxuXG4gIHB1YmxpYyBjYW5Mb2FkTW9yZShub2RlOiBEeW5hbWljRmxhdE5vZGUpIHtcbiAgICBjb25zdCBzaXplID0gdGhpcy5nZXRGb2xkZXJDaGlsZHJlblNpemUobm9kZS5pdGVtLkFzc2V0SWQpO1xuICAgIHJldHVybiBzaXplIDwgbm9kZS5pdGVtLlRvdGFsRm9sZGVyO1xuICB9XG5cbiAgcHJpdmF0ZSBiaW5kU3Vic2NyaWJlcigpIHtcbiAgICB0aGlzLm5vZGVUcmVlU2VydmljZS5sb2FkaW5nJC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgobG9hZGluZykgPT4ge1xuICAgICAgdGhpcy5ob21lTG9hZGluZyA9IGxvYWRpbmc7XG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcblxuICAgIHRoaXMubm9kZVRyZWVTZXJ2aWNlLmluaXRpYWxEYXRhJC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgY29uc3QgeyBBc3NldElkOiByb290SWQgfSA9IHRoaXMubm9kZVRyZWVTZXJ2aWNlLnJvb3RGb2xkZXIgfHwgeyBBc3NldElkOiBudWxsIH07XG4gICAgICB0aGlzLmlzUm9vdCA9IHJvb3RJZCAmJiB0aGlzLmN1cnJlbnRGb2xkZXJJZCA9PT0gcm9vdElkO1xuICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSBkYXRhO1xuICAgICAgZGF0YS5mb3JFYWNoKChub2RlKSA9PiB0aGlzLm5vZGVUcmVlU2VydmljZS5hZGROb2RlKG5vZGUuaXRlbSwgbnVsbCkpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVEYXRhc291cmNlQ2hhbmdlKGRhdGEpO1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHNlbGVjdCgoc3RhdGUpID0+IHN0YXRlLmN1cnJlbnRGb2xkZXJJZClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKGFzeW5jIChpZCkgPT4ge1xuICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICBjb25zdCB7IEFzc2V0SWQ6IHJvb3RJZCB9ID0gdGhpcy5ub2RlVHJlZVNlcnZpY2Uucm9vdEZvbGRlciB8fCB7IEFzc2V0SWQ6IG51bGwgfTtcbiAgICAgICAgICB0aGlzLmlzUm9vdCA9IHJvb3RJZCAmJiBpZCA9PT0gcm9vdElkO1xuICAgICAgICAgIHRoaXMuY3VycmVudEZvbGRlcklkID0gaWQ7XG4gICAgICAgICAgYXdhaXQgdGhpcy5ub2RlVHJlZVNlcnZpY2UudXBkYXRlQnJlYWRjcnVtYihpZCk7XG4gICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUucmVsb2FkQ3VycmVudEZvbGRlcilcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpLFxuICAgICAgICBzd2l0Y2hNYXAoKHJlcykgPT4gb2YocmVzKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCB0aGlzLmhhbmRsZVJlbG9hZEZvbGRlcih0aGlzLmN1cnJlbnRGb2xkZXJJZCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURhdGFzb3VyY2VDaGFuZ2UoZGF0YTogRHluYW1pY0ZsYXROb2RlW10gPSBbXSkge1xuICAgIGlmICghZGF0YSB8fCAhZGF0YS5sZW5ndGgpIHJldHVybjtcblxuICAgIGNvbnN0IG1hcHMgPSBuZXcgTWFwPHN0cmluZywgTWFwPHN0cmluZywgRHluYW1pY0ZsYXROb2RlPj4oKTtcbiAgICBtYXBzLnNldChST09UX0FTU0VUX0lELCBuZXcgTWFwKCkpO1xuXG4gICAgZGF0YS5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBjb25zdCBub2RlSWQgPSBub2RlLml0ZW0uQXNzZXRJZDtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50KG5vZGUpO1xuICAgICAgY29uc3QgcGFyZW50SWQgPSBwYXJlbnQgPyBwYXJlbnQuaXRlbS5Bc3NldElkIDogUk9PVF9BU1NFVF9JRDtcblxuICAgICAgaWYgKCFtYXBzLmhhcyhwYXJlbnRJZCkpIHtcbiAgICAgICAgbWFwcy5zZXQocGFyZW50SWQsIG5ldyBNYXAoKSk7XG4gICAgICB9XG5cbiAgICAgIG1hcHMuZ2V0KHBhcmVudElkKS5zZXQobm9kZUlkLCBub2RlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuZm9sZGVyQ2hpbGRyZW5NYXAgPSBtYXBzO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlbGVjdE5vZGUobm9kZTogRHluYW1pY0ZsYXROb2RlKSB7XG4gICAgY29uc3QgeyBBc3NldElkOiBpZCB9ID0gbm9kZS5pdGVtO1xuICAgIGlmIChpZCA9PT0gdGhpcy5jdXJyZW50Rm9sZGVySWQpIHtcbiAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgdHlwZTogQWN0aW9uVHlwZXMuUkVMT0FEX0NVUlJFTlRfTk9ERSxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9DVVJSRU5UX0ZPTERFUl9JRCxcbiAgICAgICAgcGF5bG9hZDogaWQsXG4gICAgICB9KTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5oYW5kbGVSZWxvYWRGb2xkZXIoaWQpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGJhY2tUb0hvbWUoKSB7XG4gICAgdGhpcy5pbml0aWFsRGF0YSgpO1xuICAgIGNvbnN0IHsgQXNzZXRJZDogcm9vdElkIH0gPSB0aGlzLm5vZGVUcmVlU2VydmljZS5yb290Rm9sZGVyO1xuICAgIGlmICh0aGlzLmN1cnJlbnRGb2xkZXJJZCA9PT0gcm9vdElkKSB7XG4gICAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlJFTE9BRF9DVVJSRU5UX05PREUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbG9hZE1vcmVGb2xkZXIobm9kZT86IGFueSkge1xuICAgIGNvbnN0IGlkID0gbm9kZSA/IG5vZGUuaXRlbS5Bc3NldElkIDogUk9PVF9BU1NFVF9JRDtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zZXRMb2FkaW5nTW9yZShpZCwgdHJ1ZSk7XG5cbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5mb2xkZXJDaGlsZHJlbk1hcC5nZXQoaWQpO1xuICAgICAgY29uc3QgaXRlbXNQZXJQYWdlID0gdGhpcy5hc3NldFNlcnZpY2UuQU1Db25maWcucGFnZUZvbGRlclNpemUgfHwgTUFYX0ZPTERFUl9UUkVFX1NJWkU7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFzc2V0U2VydmljZVxuICAgICAgICAuZ2V0Q2hpbGRyZW5Gb2xkZXJzKHtcbiAgICAgICAgICBhc3NldElkOiBpZCA9PT0gUk9PVF9BU1NFVF9JRCA/IG51bGwgOiBpZCxcbiAgICAgICAgICBpc0ZpbHRlcjogZmFsc2UsXG4gICAgICAgICAgcGFnZUluZGV4OiBNYXRoLnJvdW5kKChjaGlsZHJlbiA/IGNoaWxkcmVuLnNpemUgOiAwKSAvIGl0ZW1zUGVyUGFnZSksXG4gICAgICAgIH0pXG4gICAgICAgIC50b1Byb21pc2UoKTtcblxuICAgICAgY29uc3QgYXNzZXRDaGlsZHJlbiA9IHJlc3VsdC5EYXRhLkNoaWxkcmVuIHx8IFtdO1xuXG4gICAgICAvLyBIYW5kbGUgZGF0YXNvdXJjZVxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5pbmRleE9mKG5vZGUpO1xuICAgICAgY29uc3Qgbm9kZXMgPSBhc3NldENoaWxkcmVuLm1hcCgoZm9sZGVyKSA9PiB7XG4gICAgICAgIHRoaXMubm9kZVRyZWVTZXJ2aWNlLmFkZE5vZGUoZm9sZGVyLCBpZCk7XG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVUcmVlU2VydmljZS5nZXREeW5hbWljRmxhdE5vZGUoZm9sZGVyLCBub2RlID8gbm9kZS5sZXZlbCArIDEgOiAwKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoaWQgIT09IFJPT1RfQVNTRVRfSUQpIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZERhdGEgPSB0aGlzLmRhdGFTb3VyY2UuZGF0YS5zbGljZSgpO1xuICAgICAgICB1cGRhdGVkRGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi5ub2Rlcyk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdXBkYXRlZERhdGE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFsuLi50aGlzLmRhdGFTb3VyY2UuZGF0YSwgLi4ubm9kZXNdO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRMb2FkaW5nTW9yZShpZCwgZmFsc2UpO1xuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiTG9hZCBtb3JlIGZvbGRlciBlcnJvclwiLCBlcnJvcik7XG4gICAgICB0aGlzLnNldExvYWRpbmdNb3JlKGlkLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tlZChub2RlOiBEeW5hbWljRmxhdE5vZGUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50Rm9sZGVySWQgJiYgdGhpcy5jdXJyZW50Rm9sZGVySWQgPT09IG5vZGUuaXRlbS5Bc3NldElkO1xuICB9XG5cbiAgZGlzYWJsZWQobm9kZTogRHluYW1pY0ZsYXROb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5vZGUuZXhwYW5kYWJsZTtcbiAgfVxuXG4gIGdldExldmVsID0gKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSkgPT4gbm9kZS5sZXZlbDtcblxuICBpc0V4cGFuZGFibGUgPSAobm9kZTogRHluYW1pY0ZsYXROb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XG5cbiAgaGFzQ2hpbGQgPSAoXzogbnVtYmVyLCBfbm9kZURhdGE6IER5bmFtaWNGbGF0Tm9kZSkgPT4gX25vZGVEYXRhLmV4cGFuZGFibGU7XG5cbiAgZ2V0UGFyZW50KG5vZGU6IER5bmFtaWNGbGF0Tm9kZSk6IER5bmFtaWNGbGF0Tm9kZSB7XG4gICAgY29uc3QgY3VycmVudExldmVsID0gdGhpcy5nZXRMZXZlbChub2RlKTtcblxuICAgIGlmIChjdXJyZW50TGV2ZWwgPCAxKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydEluZGV4ID0gdGhpcy5kYXRhU291cmNlLmRhdGEuaW5kZXhPZihub2RlKSAtIDE7XG5cbiAgICBmb3IgKGxldCBpID0gc3RhcnRJbmRleDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGNvbnN0IGN1cnJlbnROb2RlID0gdGhpcy5kYXRhU291cmNlLmRhdGFbaV07XG4gICAgICBpZiAodGhpcy5nZXRMZXZlbChjdXJyZW50Tm9kZSkgPCBjdXJyZW50TGV2ZWwpIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnROb2RlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldE5vZGVCeUlkKGlkOiBzdHJpbmcpOiBEeW5hbWljRmxhdE5vZGUge1xuICAgIHJldHVybiB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5maW5kKChub2RlKSA9PiBub2RlLml0ZW0uQXNzZXRJZCA9PT0gaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVSZWxvYWRGb2xkZXIoaWQ6IHN0cmluZykge1xuICAgIGlmICghaWQgfHwgdGhpcy5sb2FkaW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZUJ5SWQoaWQpO1xuXG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZ2V0UGFyZW50KG5vZGUpO1xuICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAvLyBSZWxvYWQgcGFyZW50IGZvbGRlciAoZ2V0IGNoaWxkcmVuIGFuZCBleHBhbmQgaXQgYWdhaW4pXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5mb2xkZXJDaGlsZHJlbk1hcC5nZXQocGFyZW50Lml0ZW0uQXNzZXRJZCk7XG4gICAgICAgIGF3YWl0IHRoaXMuZGF0YVNvdXJjZS5yZWxvYWROb2RlKHBhcmVudCwgY2hpbGRyZW4uc2l6ZSk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWROb2RlID0gdGhpcy5nZXROb2RlQnlJZChpZCk7XG4gICAgICAgIGlmICh1cGRhdGVkTm9kZSkge1xuICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICBhd2FpdCB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh1cGRhdGVkTm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJvb3RGb2xkZXIgPSB0aGlzLmZvbGRlckNoaWxkcmVuTWFwLmdldChST09UX0FTU0VUX0lEKTtcbiAgICAgICAgYXdhaXQgdGhpcy5ub2RlVHJlZVNlcnZpY2UuaW5pdGlhbERhdGEoeyBkaXNwYXRjaFJvb3RJZDogZmFsc2UsIHBhZ2VTaXplOiByb290Rm9sZGVyLnNpemUgfSk7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWROb2RlID0gdGhpcy5nZXROb2RlQnlJZChpZCk7XG4gICAgICAgIGlmICh1cGRhdGVkTm9kZSkge1xuICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICBhd2FpdCB0aGlzLnRyZWVDb250cm9sLmV4cGFuZCh1cGRhdGVkTm9kZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gUmVsb2FkIHJvb3QgZm9sZGVyXG4gICAgICBhd2FpdCB0aGlzLm5vZGVUcmVlU2VydmljZS5pbml0aWFsRGF0YSh7IGRpc3BhdGNoUm9vdElkOiBmYWxzZSB9KTtcbiAgICB9XG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHNldExvYWRpbmdNb3JlKGlkOiBzdHJpbmcsIHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5sb2FkaW5nTW9yZUxpc3RbaWRdID0gdmFsdWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IFtdO1xuICAgIHRoaXMubm9kZVRyZWVTZXJ2aWNlLmRhdGEgPSBbXTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -100,11 +100,16 @@ export class SearchBoxComponent {
100
100
  * @param {?} __0
101
101
  * @return {?}
102
102
  */
103
- ([folders, assets]) => {
103
+ ([folders, assetsRes]) => {
104
+ /** @type {?} */
105
+ const pagination = assetsRes && assetsRes.Meta || {};
106
+ /** @type {?} */
107
+ const assets = assetsRes && assetsRes.Data && assetsRes.Data.Children || [];
108
+ /** @type {?} */
109
+ const totalFile = assetsRes && assetsRes.Data && assetsRes.Data.TotalFile || 0;
104
110
  this.assetService.setFolderList(folders.Data, { Total: folders.Data.TotalFolder });
105
- this.assetService.setAssetList(assets.Data.Children, assets.Meta);
106
- }))
107
- .add((/**
111
+ this.assetService.setAssetList(assets, pagination, totalFile);
112
+ })).add((/**
108
113
  * @return {?}
109
114
  */
110
115
  () => {
@@ -155,4 +160,4 @@ if (false) {
155
160
  */
156
161
  SearchBoxComponent.prototype.svc;
157
162
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3BhcnRpYWwvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9yRCxNQUFNLE9BQU8sa0JBQWtCOzs7OztJQUk3QixZQUNTLFlBQTBCLEVBQ3pCLEdBQTJCO1FBRDVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLFFBQUcsR0FBSCxHQUFHLENBQXdCO1FBTDdCLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUtwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7O0lBRUQsUUFBUSxLQUFJLENBQUM7Ozs7O0lBRUwsaUJBQWlCO1FBQ3ZCLE1BQU07Ozs7UUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUM7YUFDbkMs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Z0JBQWdCO2dCQUMxQiwrZkFBMEM7O2FBRTNDOzs7O1lBUFEsWUFBWTtZQURaLHNCQUFzQjs7Ozs7OztJQVU3QixzQ0FBbUQ7O0lBQ25ELG1DQUFrQjs7Ozs7SUFDbEIsc0NBQXNCOztJQUVwQiwwQ0FBaUM7Ozs7O0lBQ2pDLGlDQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzL2ludGVybmFsL29ic2VydmFibGUvY29tYmluZUxhdGVzdCc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMvaW50ZXJuYWwvb2JzZXJ2YWJsZS9vZic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcy9pbnRlcm5hbC9TdWJqZWN0JztcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXNzZXRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2Fzc2V0LW1hbmFnZW1lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBc3NldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hc3NldC5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGlvblR5cGVzLCBzZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9zdG9yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWFyY2gtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtYm94LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyB2YWx1ZSA9ICcnO1xuICBwcml2YXRlIGZvbGRlcklkID0gJyc7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhc3NldFNlcnZpY2U6IEFzc2V0U2VydmljZSxcbiAgICBwcml2YXRlIHN2YzogQXNzZXRNYW5hZ2VtZW50U2VydmljZVxuICApIHtcbiAgICB0aGlzLmJpbmRpbmdTdWJzY3JpYmVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgcHJpdmF0ZSBiaW5kaW5nU3Vic2NyaWJlcigpIHtcbiAgICBzZWxlY3Qoc3RhdGUgPT4gc3RhdGUuY3VycmVudEZvbGRlcklkKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgICAgc3dpdGNoTWFwKHJlcyA9PiBvZihyZXMpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShjdXJyZW50Rm9sZGVySWQgPT4gKHRoaXMuZm9sZGVySWQgPSBjdXJyZW50Rm9sZGVySWQpKTtcbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMudmFsdWUgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlO1xuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgaWYgKCF0aGlzLnZhbHVlICYmICF0aGlzLmFzc2V0U2VydmljZS5rZXl3b3JkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYXNzZXRTZXJ2aWNlLmtleXdvcmQgPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMuc2VhcmNoQnlOYW1lKCk7XG4gIH1cblxuICBjbGVhclNlYXJjaCgpIHtcbiAgICBpZiAoIXRoaXMuYXNzZXRTZXJ2aWNlLmtleXdvcmQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgdGhpcy5hc3NldFNlcnZpY2Uua2V5d29yZCA9ICcnO1xuICAgIHRoaXMuc2VhcmNoQnlOYW1lKCk7XG4gICAgdGhpcy5hc3NldFNlcnZpY2Uuc2V0Rm9sZGVyTGlzdChudWxsKTtcbiAgICB0aGlzLmFzc2V0U2VydmljZS5zZXRBc3NldExpc3QobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHNlYXJjaEJ5TmFtZSgpIHtcbiAgICB0aGlzLnN2Yy5kaXNwYXRjaCh7XG4gICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfR0xPQkFMX0xPQURJTkcsXG4gICAgICBwYXlsb2FkOiB0cnVlLFxuICAgIH0pO1xuICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5hc3NldFNlcnZpY2UuZ2V0Q2hpbGRyZW5Gb2xkZXJzKHsgYXNzZXRJZDogdGhpcy5mb2xkZXJJZCB9KSxcbiAgICAgIHRoaXMuYXNzZXRTZXJ2aWNlLmdldENoaWxkcmVuQXNzZXRzKHtcbiAgICAgICAgYXNzZXRJZDogdGhpcy5mb2xkZXJJZCxcbiAgICAgICAgcGFnZUluZGV4OiAnMCcsXG4gICAgICB9KSxcbiAgICBdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoW2ZvbGRlcnMsIGFzc2V0c10pID0+IHtcbiAgICAgICAgdGhpcy5hc3NldFNlcnZpY2Uuc2V0Rm9sZGVyTGlzdChmb2xkZXJzLkRhdGEsIHsgVG90YWw6IGZvbGRlcnMuRGF0YS5Ub3RhbEZvbGRlciB9KTtcbiAgICAgICAgdGhpcy5hc3NldFNlcnZpY2Uuc2V0QXNzZXRMaXN0KGFzc2V0cy5EYXRhLkNoaWxkcmVuLCBhc3NldHMuTWV0YSk7XG4gICAgICB9KVxuICAgICAgLmFkZCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3ZjLmRpc3BhdGNoKHtcbiAgICAgICAgICB0eXBlOiBBY3Rpb25UeXBlcy5TRVRfR0xPQkFMX0xPQURJTkcsXG4gICAgICAgICAgcGF5bG9hZDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL3BhcnRpYWwvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU9yRCxNQUFNLE9BQU8sa0JBQWtCOzs7OztJQUk3QixZQUNTLFlBQTBCLEVBQ3pCLEdBQTJCO1FBRDVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLFFBQUcsR0FBSCxHQUFHLENBQXdCO1FBTDdCLGFBQVEsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QyxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1YsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUtwQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7O0lBRUQsUUFBUSxLQUFJLENBQUM7Ozs7O0lBRUwsaUJBQWlCO1FBQ3ZCLE1BQU07Ozs7UUFBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUM7YUFDbkMs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T0FBTyxFQUFFLEtBQUs7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7Ozs7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OztZQWxGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtnQkFDMUIsK2ZBQTBDOzthQUUzQzs7OztZQVBRLFlBQVk7WUFEWixzQkFBc0I7Ozs7Ozs7SUFVN0Isc0NBQW1EOztJQUNuRCxtQ0FBa0I7Ozs7O0lBQ2xCLHNDQUFzQjs7SUFFcEIsMENBQWlDOzs7OztJQUNqQyxpQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcy9pbnRlcm5hbC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QnO1xuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzL2ludGVybmFsL29ic2VydmFibGUvb2YnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMvaW50ZXJuYWwvU3ViamVjdCc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFzc2V0TWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hc3NldC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXNzZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXNzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBBY3Rpb25UeXBlcywgc2VsZWN0IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc2VhcmNoLWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLWJveC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hCb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgdmFsdWUgPSAnJztcbiAgcHJpdmF0ZSBmb2xkZXJJZCA9ICcnO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYXNzZXRTZXJ2aWNlOiBBc3NldFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdmM6IEFzc2V0TWFuYWdlbWVudFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5iaW5kaW5nU3Vic2NyaWJlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIHByaXZhdGUgYmluZGluZ1N1YnNjcmliZXIoKSB7XG4gICAgc2VsZWN0KHN0YXRlID0+IHN0YXRlLmN1cnJlbnRGb2xkZXJJZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICAgIHN3aXRjaE1hcChyZXMgPT4gb2YocmVzKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoY3VycmVudEZvbGRlcklkID0+ICh0aGlzLmZvbGRlcklkID0gY3VycmVudEZvbGRlcklkKSk7XG4gIH1cblxuICBvbkNoYW5nZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLnZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgfVxuXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICghdGhpcy52YWx1ZSAmJiAhdGhpcy5hc3NldFNlcnZpY2Uua2V5d29yZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFzc2V0U2VydmljZS5rZXl3b3JkID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLnNlYXJjaEJ5TmFtZSgpO1xuICB9XG5cbiAgY2xlYXJTZWFyY2goKSB7XG4gICAgaWYgKCF0aGlzLmFzc2V0U2VydmljZS5rZXl3b3JkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMuYXNzZXRTZXJ2aWNlLmtleXdvcmQgPSAnJztcbiAgICB0aGlzLnNlYXJjaEJ5TmFtZSgpO1xuICAgIHRoaXMuYXNzZXRTZXJ2aWNlLnNldEZvbGRlckxpc3QobnVsbCk7XG4gICAgdGhpcy5hc3NldFNlcnZpY2Uuc2V0QXNzZXRMaXN0KG51bGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hCeU5hbWUoKSB7XG4gICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgdHlwZTogQWN0aW9uVHlwZXMuU0VUX0dMT0JBTF9MT0FESU5HLFxuICAgICAgcGF5bG9hZDogdHJ1ZSxcbiAgICB9KTtcbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuYXNzZXRTZXJ2aWNlLmdldENoaWxkcmVuRm9sZGVycyh7IGFzc2V0SWQ6IHRoaXMuZm9sZGVySWQgfSksXG4gICAgICB0aGlzLmFzc2V0U2VydmljZS5nZXRDaGlsZHJlbkFzc2V0cyh7XG4gICAgICAgIGFzc2V0SWQ6IHRoaXMuZm9sZGVySWQsXG4gICAgICAgIHBhZ2VJbmRleDogJzAnLFxuICAgICAgfSksXG4gICAgXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKFtmb2xkZXJzLCBhc3NldHNSZXNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhZ2luYXRpb24gPSBhc3NldHNSZXMgJiYgYXNzZXRzUmVzLk1ldGEgfHwge307XG4gICAgICAgIGNvbnN0IGFzc2V0cyA9IGFzc2V0c1JlcyAmJiBhc3NldHNSZXMuRGF0YSAmJiBhc3NldHNSZXMuRGF0YS5DaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgY29uc3QgdG90YWxGaWxlID0gYXNzZXRzUmVzICYmIGFzc2V0c1Jlcy5EYXRhICYmIGFzc2V0c1Jlcy5EYXRhLlRvdGFsRmlsZSB8fCAwO1xuICAgICAgICB0aGlzLmFzc2V0U2VydmljZS5zZXRGb2xkZXJMaXN0KGZvbGRlcnMuRGF0YSwgeyBUb3RhbDogZm9sZGVycy5EYXRhLlRvdGFsRm9sZGVyIH0pO1xuICAgICAgICB0aGlzLmFzc2V0U2VydmljZS5zZXRBc3NldExpc3QoYXNzZXRzLCBwYWdpbmF0aW9uLCB0b3RhbEZpbGUpO1xuICAgICAgfSkuYWRkKCgpID0+IHtcbiAgICAgICAgdGhpcy5zdmMuZGlzcGF0Y2goe1xuICAgICAgICAgIHR5cGU6IEFjdGlvblR5cGVzLlNFVF9HTE9CQUxfTE9BRElORyxcbiAgICAgICAgICBwYXlsb2FkOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -16,7 +16,7 @@ ModalComponent.decorators = [
16
16
  { type: Component, args: [{
17
17
  selector: 'lib-modal',
18
18
  template: "<h4 mat-dialog-title *ngIf=\"!customHeader; else customHeaderTemplate\">\n <div class=\"lib-modal--title\" [title]=\"heading\">\n {{ heading }}\n </div>\n <div class=\"lib-modal--close\">\n <mat-icon mat-dialog-close>close</mat-icon>\n </div>\n</h4>\n<ng-template #customHeaderTemplate>\n <h4 mat-dialog-title>\n <div class=\"lib-modal--custom-title\">\n <span>\n {{ heading }}\n </span>\n <div class=\"lib-modal--custom-subtitle\">\n <ng-content select=\"[subtitle]\"></ng-content>\n </div>\n </div>\n <div class=\"lib-modal--header-actions\">\n <ng-content select=\"[headerActions]\"></ng-content>\n </div>\n <mat-icon mat-dialog-close class=\"mat-dialog-close\">close</mat-icon>\n </h4>\n</ng-template>\n<mat-dialog-content class=\"custom-scrollbar\">\n <ng-content select=\"[content]\"></ng-content>\n</mat-dialog-content>\n<mat-dialog-actions>\n <ng-content select=\"[actions]\"></ng-content>\n</mat-dialog-actions>\n",
19
- styles: [":host::ng-deep{display:flex;flex-direction:column;min-height:150px;position:relative}:host::ng-deep .mat-dialog-title{padding-bottom:24px;margin:0;display:flex;justify-content:space-between;font-size:24px;line-height:1;gap:10px}:host::ng-deep .mat-dialog-title mat-icon{cursor:pointer}:host::ng-deep .lib-modal--custom-title,:host::ng-deep .lib-modal--title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .lib-modal--custom-subtitle{margin-top:5px}:host::ng-deep .lib-modal--header-actions{display:flex;align-items:center;gap:10px}:host::ng-deep mat-dialog-content{flex:1;padding:0 24px}:host::ng-deep mat-dialog-actions{padding-top:24px;padding-bottom:0;display:flex;justify-content:flex-end;min-height:auto;margin-bottom:0}:host::ng-deep mat-dialog-actions .mat-button-base+.mat-button-base{margin-left:20px}:host::ng-deep .mat-error{margin-top:5px;font-size:14px}:host::ng-deep .no-wrap{white-space:nowrap}:host::ng-deep input,:host::ng-deep textarea{width:100%;padding:10px;border:1px solid #d8d8d8;border-radius:5px;color:#000;margin-top:0;resize:none}::ng-deep .lib-dialog--small{width:400px!important}::ng-deep .lib-dialog--small .file__name{word-break:break-word}::ng-deep .lib-dialog--small .mat-button-base{min-width:70px}::ng-deep .lib-dialog--small .loading{padding:0 5px}::ng-deep .lib-dialog--small .loading .mat-button-wrapper{display:flex;width:100%;justify-content:center;align-items:center}::ng-deep .lib-dialog--small .loading .mat-spinner{margin-right:10px}::ng-deep .lib-dialog--medium{max-width:1200px!important;width:90%!important}::ng-deep .lib-dialog--medium .mat-dialog-content{border-top:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;overflow-x:hidden}::ng-deep .lib-dialog--large{max-width:1200px!important;width:90vw!important}::ng-deep .lib-dialog--large .mat-dialog-title{padding-bottom:12px;position:relative}::ng-deep .lib-dialog--large .mat-dialog-title .mat-dialog-close{position:absolute;right:-22px;top:-22px}::ng-deep .lib-dialog--large .mat-dialog-content{min-height:70vh;border-top:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;padding:0}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body{max-height:calc(70vh - 2px)!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .node-tree{height:calc(70vh - 2px)!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .asset-list__item{min-width:25%!important}@media only screen and (max-width:768px){::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body{max-height:none!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .node-tree{height:-webkit-max-content!important;height:-moz-max-content!important;height:max-content!important}}::ng-deep .lib-dialog--large .mat-dialog-actions{padding:12px 0;margin-bottom:-24px!important}"]
19
+ styles: [":host::ng-deep{display:flex;flex-direction:column;min-height:150px;position:relative}:host::ng-deep .mat-dialog-title{padding-bottom:24px;margin:0;display:flex;justify-content:space-between;font-size:24px;line-height:1;gap:10px}:host::ng-deep .mat-dialog-title mat-icon{cursor:pointer}:host::ng-deep .lib-modal--custom-title,:host::ng-deep .lib-modal--title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host::ng-deep .lib-modal--custom-subtitle{margin-top:5px}:host::ng-deep .lib-modal--header-actions{display:flex;align-items:center;gap:10px}:host::ng-deep mat-dialog-content{flex:1;padding:0 24px}:host::ng-deep mat-dialog-actions{padding-top:24px;padding-bottom:0;display:flex;justify-content:flex-end;min-height:auto;margin-bottom:0}:host::ng-deep mat-dialog-actions .mat-button-base+.mat-button-base{margin-left:20px}:host::ng-deep .mat-error{margin-top:5px;font-size:14px}:host::ng-deep .no-wrap{white-space:nowrap}:host::ng-deep input,:host::ng-deep textarea{width:100%;padding:10px;border:1px solid #d8d8d8;border-radius:5px;color:#000;margin-top:0;resize:none}::ng-deep .lib-dialog--small{width:400px!important}::ng-deep .lib-dialog--small .file__name{word-break:break-word}::ng-deep .lib-dialog--small .mat-button-base{min-width:70px}::ng-deep .lib-dialog--small .loading{padding:0 5px}::ng-deep .lib-dialog--small .loading .mat-button-wrapper{display:flex;width:100%;justify-content:center;align-items:center}::ng-deep .lib-dialog--small .loading .mat-spinner{margin-right:10px}::ng-deep .lib-dialog--medium{max-width:1200px!important;width:90%!important}::ng-deep .lib-dialog--medium .mat-dialog-content{border-top:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;overflow-x:hidden}::ng-deep .lib-dialog--large{max-width:1200px!important;width:90vw!important}::ng-deep .lib-dialog--large .mat-dialog-title{padding-bottom:12px;position:relative}::ng-deep .lib-dialog--large .mat-dialog-title .mat-dialog-close{position:absolute;right:-22px;top:-22px}::ng-deep .lib-dialog--large .mat-dialog-content{min-height:70vh;border-top:1px solid #d8d8d8;border-bottom:1px solid #d8d8d8;padding:0}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body{max-height:calc(70vh - 2px)!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .node-tree{height:calc(70vh - 2px)!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .asset-list__item{min-width:25%!important}@media only screen and (max-width:768px){::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body{max-height:none!important}::ng-deep .lib-dialog--large .mat-dialog-content .asset-wrapper .asset-body .node-tree{height:-moz-max-content!important;height:max-content!important}}::ng-deep .lib-dialog--large .mat-dialog-actions{padding:12px 0;margin-bottom:-24px!important}"]
20
20
  }] }
21
21
  ];
22
22
  /** @nocollapse */
@@ -129,15 +129,16 @@ export class NodeTreeDataSource {
129
129
  /**
130
130
  * Reload the node, remove from display list
131
131
  * @param {?} node
132
+ * @param {?=} pageSize
132
133
  * @return {?}
133
134
  */
134
- reloadNode(node) {
135
+ reloadNode(node, pageSize) {
135
136
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
136
137
  if (!node) {
137
138
  return;
138
139
  }
139
140
  /** @type {?} */
140
- const newNode = yield this._database.getChildren(node.item);
141
+ const newNode = yield this._database.getChildren(node.item, pageSize);
141
142
  /** @type {?} */
142
143
  const index = this.data.indexOf(node);
143
144
  if (!newNode || index < 0) {
@@ -176,4 +177,4 @@ if (false) {
176
177
  */
177
178
  NodeTreeDataSource.prototype._database;
178
179
  }
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10cmVlLmRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9kYXRhc291cmNlcy9ub2RlLXRyZWUuZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQU1BLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzVDLE1BQU0sT0FBTyxrQkFBa0I7Ozs7O0lBVzdCLFlBQ1UsWUFBOEMsRUFDOUMsU0FBMEI7UUFEMUIsaUJBQVksR0FBWixZQUFZLENBQWtDO1FBQzlDLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBWnBDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsRUFBRSxDQUFDLENBQUM7SUFhckQsQ0FBQzs7OztJQVhKLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUF3QjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7Ozs7SUFPRCxPQUFPLENBQUMsZ0JBQWtDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1RCxJQUNFLENBQUMsbUJBQUEsTUFBTSxFQUFvQyxDQUFDLENBQUMsS0FBSztnQkFDbEQsQ0FBQyxtQkFBQSxNQUFNLEVBQW9DLENBQUMsQ0FBQyxPQUFPLEVBQ3BEO2dCQUNBLElBQUksQ0FB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LFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUM7S0FBQTtDQUNGOzs7SUE5SEMsd0NBQXdEOzs7OztJQVd0RCwwQ0FBc0Q7Ozs7O0lBQ3RELHVDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbGxlY3Rpb25WaWV3ZXIsXG4gIERhdGFTb3VyY2UsXG4gIFNlbGVjdGlvbkNoYW5nZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEZsYXRUcmVlQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWVyZ2UsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IER5bmFtaWNGbGF0Tm9kZSB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBOb2RlVHJlZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ub2RlLXRyZWUuc2VydmljZSc7XG5cbmV4cG9ydCBjbGFzcyBOb2RlVHJlZURhdGFTb3VyY2UgaW1wbGVtZW50cyBEYXRhU291cmNlPER5bmFtaWNGbGF0Tm9kZT4ge1xuICBkYXRhQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEeW5hbWljRmxhdE5vZGVbXT4oW10pO1xuXG4gIGdldCBkYXRhKCk6IER5bmFtaWNGbGF0Tm9kZVtdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ2hhbmdlLnZhbHVlO1xuICB9XG4gIHNldCBkYXRhKHZhbHVlOiBEeW5hbWljRmxhdE5vZGVbXSkge1xuICAgIHRoaXMuX3RyZWVDb250cm9sLmRhdGFOb2RlcyA9IHZhbHVlO1xuICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3RyZWVDb250cm9sOiBGbGF0VHJlZUNvbnRyb2w8RHluYW1pY0ZsYXROb2RlPixcbiAgICBwcml2YXRlIF9kYXRhYmFzZTogTm9kZVRyZWVTZXJ2aWNlXG4gICkge31cblxuICBjb25uZWN0KGNvbGxlY3Rpb25WaWV3ZXI6IENvbGxlY3Rpb25WaWV3ZXIpOiBPYnNlcnZhYmxlPER5bmFtaWNGbGF0Tm9kZVtdPiB7XG4gICAgdGhpcy5fdHJlZUNvbnRyb2wuZXhwYW5zaW9uTW9kZWwuY2hhbmdlZC5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICAoY2hhbmdlIGFzIFNlbGVjdGlvbkNoYW5nZTxEeW5hbWljRmxhdE5vZGU+KS5hZGRlZCB8fFxuICAgICAgICAoY2hhbmdlIGFzIFNlbGVjdGlvbkNoYW5nZTxEeW5hbWljRmxhdE5vZGU+KS5yZW1vdmVkXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5oYW5kbGVUcmVlQ29udHJvbChjaGFuZ2UgYXMgU2VsZWN0aW9uQ2hhbmdlPER5bmFtaWNGbGF0Tm9kZT4pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1lcmdlKGNvbGxlY3Rpb25WaWV3ZXIudmlld0NoYW5nZSwgdGhpcy5kYXRhQ2hhbmdlKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRoaXMuZGF0YSlcbiAgICApO1xuICB9XG5cbiAgZGlzY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogdm9pZCB7fVxuXG4gIC8qKiBIYW5kbGUgZXhwYW5kL2NvbGxhcHNlIGJlaGF2aW9ycyAqL1xuICBoYW5kbGVUcmVlQ29udHJvbChjaGFuZ2U6IFNlbGVjdGlvbkNoYW5nZTxEeW5hbWljRmxhdE5vZGU+KSB7XG4gICAgaWYgKGNoYW5nZS5hZGRlZCkge1xuICAgICAgY2hhbmdlLmFkZGVkLmZvckVhY2goYXN5bmMgKG5vZGUpID0+IGF3YWl0IHRoaXMudG9nZ2xlTm9kZShub2RlLCB0cnVlKSk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2UucmVtb3ZlZCkge1xuICAgICAgY2hhbmdlLnJlbW92ZWRcbiAgICAgICAgLnNsaWNlKClcbiAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAuZm9yRWFjaChhc3luYyAobm9kZSkgPT4gYXdhaXQgdGhpcy50b2dnbGVOb2RlKG5vZGUsIGZhbHNlKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgbm9kZSwgcmVtb3ZlIGZyb20gZGlzcGxheSBsaXN0XG4gICAqL1xuICBhc3luYyB0b2dnbGVOb2RlKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSwgZXhwYW5kOiBib29sZWFuKSB7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG5vZGUuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZGF0YS5pbmRleE9mKG5vZGUpO1xuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIC8vIElmIGNhbm5vdCBmaW5kIHRoZSBub2RlLCBubyBvcFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChleHBhbmQpIHtcbiAgICAgIGNvbnN0IG5ld05vZGUgPSBhd2FpdCB0aGlzLl9kYXRhYmFzZS5nZXRDaGlsZHJlbihub2RlLml0ZW0pO1xuICAgICAgaWYgKCFuZXdOb2RlKSB7XG4gICAgICAgIC8vIElmIG5vIGNoaWxkcmVuLCBubyBvcFxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBub2RlcyA9IG5ld05vZGUuQ2hpbGRyZW4ubWFwKChjaGlsZCkgPT4ge1xuICAgICAgICB0aGlzLl9kYXRhYmFzZS5hZGROb2RlKGNoaWxkLCBub2RlLml0ZW0uQXNzZXRJZCk7XG4gICAgICAgIHJldHVybiBuZXcgRHluYW1pY0ZsYXROb2RlKFxuICAgICAgICAgIGNoaWxkLFxuICAgICAgICAgIG5vZGUubGV2ZWwgKyAxLFxuICAgICAgICAgIHRoaXMuX2RhdGFiYXNlLmlzRXhwYW5kYWJsZShjaGlsZClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5kYXRhLnNwbGljZShpbmRleCArIDEsIDAsIC4uLm5vZGVzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgIGZvciAoXG4gICAgICAgIGxldCBpID0gaW5kZXggKyAxO1xuICAgICAgICBpIDwgdGhpcy5kYXRhLmxlbmd0aCAmJiB0aGlzLmRhdGFbaV0ubGV2ZWwgPiBub2RlLmxldmVsO1xuICAgICAgICBpKyssIGNvdW50KytcbiAgICAgICkge31cbiAgICAgIHRoaXMuZGF0YS5zcGxpY2UoaW5kZXggKyAxLCBjb3VudCk7XG4gICAgfVxuXG4gICAgLy8gbm90aWZ5IHRoZSBjaGFuZ2VcbiAgICBub2RlLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KHRoaXMuZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogUmVsb2FkIHRoZSBub2RlLCByZW1vdmUgZnJvbSBkaXNwbGF5IGxpc3RcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZWxvYWROb2RlKG5vZGU6IER5bmFtaWNGbGF0Tm9kZSkge1xuICAgIGlmICghbm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdOb2RlID0gYXdhaXQgdGhpcy5fZGF0YWJhc2UuZ2V0Q2hpbGRyZW4obm9kZS5pdGVtKTtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZGF0YS5pbmRleE9mKG5vZGUpO1xuICAgIGlmICghbmV3Tm9kZSB8fCBpbmRleCA8IDApIHtcbiAgICAgIC8vIElmIG5vIGNoaWxkcmVuLCBvciBjYW5ub3QgZmluZCB0aGUgbm9kZSwgbm8gb3BcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgYWxsIGN1cnJlbnQgY2hpbGRyZW5cbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IGluZGV4ICsgMTtcbiAgICAgIGkgPCB0aGlzLmRhdGEubGVuZ3RoICYmIHRoaXMuZGF0YVtpXS5sZXZlbCA+IG5vZGUubGV2ZWw7XG4gICAgICBpKyssIGNvdW50KytcbiAgICApIHt9XG4gICAgdGhpcy5kYXRhLnNwbGljZShpbmRleCArIDEsIGNvdW50KTtcblxuICAgIC8vIEFkZCBuZXcgY2hpbGRyZW5cbiAgICBjb25zdCBub2RlcyA9IG5ld05vZGUuQ2hpbGRyZW4ubWFwKFxuICAgICAgKGNoaWxkKSA9PlxuICAgICAgICBuZXcgRHluYW1pY0ZsYXROb2RlKFxuICAgICAgICAgIGNoaWxkLFxuICAgICAgICAgIG5vZGUubGV2ZWwgKyAxLFxuICAgICAgICAgIHRoaXMuX2RhdGFiYXNlLmlzRXhwYW5kYWJsZShjaGlsZClcbiAgICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5kYXRhLnNwbGljZShpbmRleCArIDEsIDAsIC4uLm5vZGVzKTtcblxuICAgIC8vIG5vdGlmeSB0aGUgY2hhbmdlXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcbiAgfVxufVxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS10cmVlLmRhdGFzb3VyY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AcnMtcGsvYXNzZXQtbWFuYWdlbWVudC8iLCJzb3VyY2VzIjpbImxpYi9kYXRhc291cmNlcy9ub2RlLXRyZWUuZGF0YXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQU1BLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzVDLE1BQU0sT0FBTyxrQkFBa0I7Ozs7O0lBVzdCLFlBQ1UsWUFBOEMsRUFDOUMsU0FBMEI7UUFEMUIsaUJBQVksR0FBWixZQUFZLENBQWtDO1FBQzlDLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBWnBDLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsRUFBRSxDQUFDLENBQUM7SUFhckQsQ0FBQzs7OztJQVhKLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFDRCxJQUFJLElBQUksQ0FBQyxLQUF3QjtRQUMvQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQzs7Ozs7SUFPRCxPQUFPLENBQUMsZ0JBQWtDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxTQUFTOzs7O1FBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUM1RCxJQUNFLENBQUMsbUJBQUEsTUFBTSxFQUFvQyxDQUFDLENBQUMsS0FBSztnQkFDbEQsQ0FBQyxtQkFBQSxNQUFNLEVBQW9DLENBQUMsQ0FBQyxPQUFPLEVBQ3BEO2dCQUNBLElBQUksQ0FB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b0JBQW9CO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO0tBQUE7Q0FDRjs7O0lBL0hDLHdDQUF3RDs7Ozs7SUFXdEQsMENBQXNEOzs7OztJQUN0RCx1Q0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb2xsZWN0aW9uVmlld2VyLFxuICBEYXRhU291cmNlLFxuICBTZWxlY3Rpb25DaGFuZ2UsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBGbGF0VHJlZUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9jZGsvdHJlZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIG1lcmdlLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEeW5hbWljRmxhdE5vZGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgTm9kZVRyZWVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbm9kZS10cmVlLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgTm9kZVRyZWVEYXRhU291cmNlIGltcGxlbWVudHMgRGF0YVNvdXJjZTxEeW5hbWljRmxhdE5vZGU+IHtcbiAgZGF0YUNoYW5nZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHluYW1pY0ZsYXROb2RlW10+KFtdKTtcblxuICBnZXQgZGF0YSgpOiBEeW5hbWljRmxhdE5vZGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUNoYW5nZS52YWx1ZTtcbiAgfVxuICBzZXQgZGF0YSh2YWx1ZTogRHluYW1pY0ZsYXROb2RlW10pIHtcbiAgICB0aGlzLl90cmVlQ29udHJvbC5kYXRhTm9kZXMgPSB2YWx1ZTtcbiAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF90cmVlQ29udHJvbDogRmxhdFRyZWVDb250cm9sPER5bmFtaWNGbGF0Tm9kZT4sXG4gICAgcHJpdmF0ZSBfZGF0YWJhc2U6IE5vZGVUcmVlU2VydmljZVxuICApIHt9XG5cbiAgY29ubmVjdChjb2xsZWN0aW9uVmlld2VyOiBDb2xsZWN0aW9uVmlld2VyKTogT2JzZXJ2YWJsZTxEeW5hbWljRmxhdE5vZGVbXT4ge1xuICAgIHRoaXMuX3RyZWVDb250cm9sLmV4cGFuc2lvbk1vZGVsLmNoYW5nZWQuc3Vic2NyaWJlKChjaGFuZ2UpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgKGNoYW5nZSBhcyBTZWxlY3Rpb25DaGFuZ2U8RHluYW1pY0ZsYXROb2RlPikuYWRkZWQgfHxcbiAgICAgICAgKGNoYW5nZSBhcyBTZWxlY3Rpb25DaGFuZ2U8RHluYW1pY0ZsYXROb2RlPikucmVtb3ZlZFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlVHJlZUNvbnRyb2woY2hhbmdlIGFzIFNlbGVjdGlvbkNoYW5nZTxEeW5hbWljRmxhdE5vZGU+KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBtZXJnZShjb2xsZWN0aW9uVmlld2VyLnZpZXdDaGFuZ2UsIHRoaXMuZGF0YUNoYW5nZSkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB0aGlzLmRhdGEpXG4gICAgKTtcbiAgfVxuXG4gIGRpc2Nvbm5lY3QoY29sbGVjdGlvblZpZXdlcjogQ29sbGVjdGlvblZpZXdlcik6IHZvaWQge31cblxuICAvKiogSGFuZGxlIGV4cGFuZC9jb2xsYXBzZSBiZWhhdmlvcnMgKi9cbiAgaGFuZGxlVHJlZUNvbnRyb2woY2hhbmdlOiBTZWxlY3Rpb25DaGFuZ2U8RHluYW1pY0ZsYXROb2RlPikge1xuICAgIGlmIChjaGFuZ2UuYWRkZWQpIHtcbiAgICAgIGNoYW5nZS5hZGRlZC5mb3JFYWNoKGFzeW5jIChub2RlKSA9PiBhd2FpdCB0aGlzLnRvZ2dsZU5vZGUobm9kZSwgdHJ1ZSkpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlLnJlbW92ZWQpIHtcbiAgICAgIGNoYW5nZS5yZW1vdmVkXG4gICAgICAgIC5zbGljZSgpXG4gICAgICAgIC5yZXZlcnNlKClcbiAgICAgICAgLmZvckVhY2goYXN5bmMgKG5vZGUpID0+IGF3YWl0IHRoaXMudG9nZ2xlTm9kZShub2RlLCBmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGUgdGhlIG5vZGUsIHJlbW92ZSBmcm9tIGRpc3BsYXkgbGlzdFxuICAgKi9cbiAgYXN5bmMgdG9nZ2xlTm9kZShub2RlOiBEeW5hbWljRmxhdE5vZGUsIGV4cGFuZDogYm9vbGVhbikge1xuICAgIGlmICghbm9kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBub2RlLmlzTG9hZGluZyA9IHRydWU7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmRhdGEuaW5kZXhPZihub2RlKTtcbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAvLyBJZiBjYW5ub3QgZmluZCB0aGUgbm9kZSwgbm8gb3BcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZXhwYW5kKSB7XG4gICAgICBjb25zdCBuZXdOb2RlID0gYXdhaXQgdGhpcy5fZGF0YWJhc2UuZ2V0Q2hpbGRyZW4obm9kZS5pdGVtKTtcbiAgICAgIGlmICghbmV3Tm9kZSkge1xuICAgICAgICAvLyBJZiBubyBjaGlsZHJlbiwgbm8gb3BcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3Qgbm9kZXMgPSBuZXdOb2RlLkNoaWxkcmVuLm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgdGhpcy5fZGF0YWJhc2UuYWRkTm9kZShjaGlsZCwgbm9kZS5pdGVtLkFzc2V0SWQpO1xuICAgICAgICByZXR1cm4gbmV3IER5bmFtaWNGbGF0Tm9kZShcbiAgICAgICAgICBjaGlsZCxcbiAgICAgICAgICBub2RlLmxldmVsICsgMSxcbiAgICAgICAgICB0aGlzLl9kYXRhYmFzZS5pc0V4cGFuZGFibGUoY2hpbGQpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZGF0YS5zcGxpY2UoaW5kZXggKyAxLCAwLCAuLi5ub2Rlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICBmb3IgKFxuICAgICAgICBsZXQgaSA9IGluZGV4ICsgMTtcbiAgICAgICAgaSA8IHRoaXMuZGF0YS5sZW5ndGggJiYgdGhpcy5kYXRhW2ldLmxldmVsID4gbm9kZS5sZXZlbDtcbiAgICAgICAgaSsrLCBjb3VudCsrXG4gICAgICApIHt9XG4gICAgICB0aGlzLmRhdGEuc3BsaWNlKGluZGV4ICsgMSwgY291bnQpO1xuICAgIH1cblxuICAgIC8vIG5vdGlmeSB0aGUgY2hhbmdlXG4gICAgbm9kZS5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh0aGlzLmRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbG9hZCB0aGUgbm9kZSwgcmVtb3ZlIGZyb20gZGlzcGxheSBsaXN0XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVsb2FkTm9kZShub2RlOiBEeW5hbWljRmxhdE5vZGUsIHBhZ2VTaXplPzogbnVtYmVyKSB7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IG5ld05vZGUgPSBhd2FpdCB0aGlzLl9kYXRhYmFzZS5nZXRDaGlsZHJlbihub2RlLml0ZW0sIHBhZ2VTaXplKTtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZGF0YS5pbmRleE9mKG5vZGUpO1xuICAgIGlmICghbmV3Tm9kZSB8fCBpbmRleCA8IDApIHtcbiAgICAgIC8vIElmIG5vIGNoaWxkcmVuLCBvciBjYW5ub3QgZmluZCB0aGUgbm9kZSwgbm8gb3BcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgYWxsIGN1cnJlbnQgY2hpbGRyZW5cbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGZvciAoXG4gICAgICBsZXQgaSA9IGluZGV4ICsgMTtcbiAgICAgIGkgPCB0aGlzLmRhdGEubGVuZ3RoICYmIHRoaXMuZGF0YVtpXS5sZXZlbCA+IG5vZGUubGV2ZWw7XG4gICAgICBpKyssIGNvdW50KytcbiAgICApIHt9XG4gICAgdGhpcy5kYXRhLnNwbGljZShpbmRleCArIDEsIGNvdW50KTtcblxuICAgIC8vIEFkZCBuZXcgY2hpbGRyZW5cbiAgICBjb25zdCBub2RlcyA9IG5ld05vZGUuQ2hpbGRyZW4ubWFwKFxuICAgICAgKGNoaWxkKSA9PlxuICAgICAgICBuZXcgRHluYW1pY0ZsYXROb2RlKFxuICAgICAgICAgIGNoaWxkLFxuICAgICAgICAgIG5vZGUubGV2ZWwgKyAxLFxuICAgICAgICAgIHRoaXMuX2RhdGFiYXNlLmlzRXhwYW5kYWJsZShjaGlsZClcbiAgICAgICAgKVxuICAgICk7XG4gICAgdGhpcy5kYXRhLnNwbGljZShpbmRleCArIDEsIDAsIC4uLm5vZGVzKTtcblxuICAgIC8vIG5vdGlmeSB0aGUgY2hhbmdlXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcbiAgfVxufVxuIl19
@@ -89,10 +89,11 @@ export class AssetService {
89
89
  /**
90
90
  * @param {?} assets
91
91
  * @param {?=} pagination
92
+ * @param {?=} totalFile
92
93
  * @return {?}
93
94
  */
94
- setAssetList(assets, pagination) {
95
- this.setPagination(pagination);
95
+ setAssetList(assets, pagination, totalFile) {
96
+ this.setPagination(pagination, totalFile);
96
97
  this.assetList$.next(assets);
97
98
  }
98
99
  /**
@@ -111,11 +112,12 @@ export class AssetService {
111
112
  /**
112
113
  * @private
113
114
  * @param {?} pagination
115
+ * @param {?} totalFile
114
116
  * @return {?}
115
117
  */
116
- setPagination(pagination) {
118
+ setPagination(pagination, totalFile) {
117
119
  if (pagination) {
118
- this.fileTotal = pagination.Total;
120
+ this.fileTotal = totalFile || 0;
119
121
  this.pageIndex = pagination.PageIndex;
120
122
  this.pageSize = pagination.PageSize;
121
123
  }
@@ -266,4 +268,4 @@ if (false) {
266
268
  */
267
269
  AssetService.prototype._api;
268
270
  }
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2Fzc2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBR0wsWUFBWSxFQUlaLFdBQVcsRUFDWCxRQUFRLEVBQ1Isb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUMxQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFtQnZCLFlBQzZCLElBQUksRUFDeEIsTUFBaUIsRUFDaEIsSUFBb0I7UUFGRCxTQUFJLEdBQUosSUFBSSxDQUFBO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFyQnRCLGdCQUFXLEdBQXFDLElBQUksZUFBZSxDQUN6RSxJQUFJLENBQ0wsQ0FBQztRQUNNLGVBQVUsR0FBa0MsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEUsZ0JBQVcsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFVbkUsaUJBQVksR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN6QixDQUFDOzs7O0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTztZQUNMLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7U0FDekMsQ0FBQTtJQUNILENBQUM7Ozs7O0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLG9CQUFvQixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQzs7Ozs7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7Ozs7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDOzs7O0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDOzs7Ozs7SUFFRCxhQUFhLENBQUMsT0FBd0IsRUFBRSxVQUFnQjtRQUN0RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Ozs7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7Ozs7OztJQUVELFlBQVksQ0FBQyxNQUFvQixFQUFFLFVBQWdCO1FBQ2pELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Ozs7SUFFRCxtQkFBbUIsQ0FBQyxNQUFlO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7Ozs7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7Ozs7OztJQUdPLGFBQWEsQ0FBQyxVQUFVO1FBQzlCLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDckM7SUFDSCxDQUFDOzs7Ozs7SUFFTyxtQkFBbUIsQ0FBQyxVQUFVO1FBQ3BDLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztZQUM1QyxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDM0M7SUFDSCxDQUFDOzs7OztJQUVNLHVCQUF1QixDQUFDLFVBQVU7UUFDdkMsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7U0FDckM7SUFDSCxDQUFDOzs7OztJQUVNLFlBQVksQ0FBQyxPQUFlOztjQUMzQixHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxpQkFBaUIsT0FBTyxFQUFFO1FBQ3JELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW1CLEdBQUcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7Ozs7O0lBRU0sa0JBQWtCLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxHQUFHLElBQUksRUFBRSxTQUFTLEdBQUcseUJBQXlCLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLG9CQUFvQixFQUFxQjs7Y0FDckssR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sbUJBQW1COztZQUMxQyxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUU7YUFDMUIsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7YUFDckIsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUM7YUFDdkIsR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO2FBQzlCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUVuQyxJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ25DLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUNqQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNoRTtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQW1CLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzs7Ozs7SUFFTSxpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQXlCOztjQUM5RCxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxtQkFBbUI7O1lBQzFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRTthQUMxQixHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDekMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN4RCxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQzthQUN0QixHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQzthQUN4QixHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDMUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTdDLElBQUksT0FBTyxFQUFFO1lBQ1gsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUN2QixNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNwRDtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUU7WUFDakMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDaEU7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFtQixHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7OztZQTFKRixVQUFVOzs7OzRDQXFCTixNQUFNLFNBQUMsU0FBUztZQXRDWixTQUFTO1lBY1QsY0FBYzs7Ozs7OztJQUtyQixtQ0FFRTs7Ozs7SUFDRixrQ0FBOEU7Ozs7O0lBQzlFLG1DQUEwRTs7SUFDMUUsK0JBQXVCOztJQUN2QixnQ0FBd0I7O0lBQ3hCLGlDQUF5Qjs7SUFDekIsc0NBQThCOztJQUM5Qix1Q0FBK0I7O0lBQy9CLG1DQUEyQjs7SUFDM0IsaUNBQXlCOztJQUN6Qiw4QkFBMkI7O0lBQzNCLGlDQUEyQjs7SUFDM0Isb0NBQXVEOztJQUN2RCwrQkFBd0I7Ozs7O0lBQ3hCLCtCQUF3Qjs7Ozs7SUFHdEIsNEJBQStCOztJQUMvQiw4QkFBd0I7Ozs7O0lBQ3hCLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEFzc2V0TW9kZWwsXG4gIEFzc2V0UmVzdWx0TW9kZWwsXG4gIERpYWxvZ0NvbmZpZyxcbiAgRm9sZGVyVHJlZU1vZGVsLFxuICBJQXNzZXRCeUlkUGF5bG9hZCxcbiAgSUNoaWxkcmVuQXNzZXRQYXlsb2FkLFxuICBTb3J0RmlsZXNCeSxcbiAgVHlwZVNvcnQsXG4gIE1BWF9GT0xERVJfVFJFRV9TSVpFLFxuICBERUZBVUxUX0ZPTERFUl9UUkVFX0lOREVYXG59IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBCYXNlSHR0cENsaWVudCB9IGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IEFNX0NPTkZJRyB9IGZyb20gJy4vZW52LWNvbmZpZy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFzc2V0U2VydmljZSB7XG4gIHByaXZhdGUgZm9sZGVyTGlzdCQ6IEJlaGF2aW9yU3ViamVjdDxGb2xkZXJUcmVlTW9kZWw+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcbiAgICBudWxsXG4gICk7XG4gIHByaXZhdGUgYXNzZXRMaXN0JDogQmVoYXZpb3JTdWJqZWN0PEFzc2V0TW9kZWxbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBwcml2YXRlIG9wZW5EaWFsb2ckOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xuICBwdWJsaWMga2V5d29yZDogc3RyaW5nO1xuICBwdWJsaWMgcGFnZVNpemU6IG51bWJlcjtcbiAgcHVibGljIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwdWJsaWMgcGFnZUZvbGRlclNpemU6IG51bWJlcjtcbiAgcHVibGljIHBhZ2VGb2xkZXJJbmRleDogbnVtYmVyO1xuICBwdWJsaWMgZm9sZGVyVG90YWw6IG51bWJlcjtcbiAgcHVibGljIGZpbGVUb3RhbDogbnVtYmVyO1xuICBwdWJsaWMgc29ydEJ5OiBTb3J0RmlsZXNCeTtcbiAgcHVibGljIHNvcnRPcmRlcjogVHlwZVNvcnQ7XG4gIHB1YmxpYyBkaWFsb2dDb25maWc6IERpYWxvZ0NvbmZpZyA9IG5ldyBEaWFsb2dDb25maWcoKTtcbiAgcHVibGljIG1heFNpemU/OiBudW1iZXI7XG4gIHByaXZhdGUgYmFzZVVybDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQU1fQ09ORklHKSBwcml2YXRlIF9lbnYsXG4gICAgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgX2FwaTogQmFzZUh0dHBDbGllbnRcbiAgKSB7XG4gICAgdGhpcy5iYXNlVXJsID0gdGhpcy5fZW52LmFzc2V0MlVybDtcbiAgICB0aGlzLmluaXRPcHRpb25GaWxlcygpO1xuICB9XG5cbiAgZ2V0IEFNQ29uZmlnKCl7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VGb2xkZXJTaXplOiB0aGlzLl9lbnYucGFnZUZvbGRlclNpemVcbiAgICB9XG4gIH0gXG5cbiAgcHJpdmF0ZSBpbml0T3B0aW9uRmlsZXMoKSB7XG4gICAgdGhpcy5rZXl3b3JkID0gJyc7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IDEyO1xuICAgIHRoaXMucGFnZUluZGV4ID0gMDtcbiAgICB0aGlzLnBhZ2VGb2xkZXJTaXplID0gdGhpcy5fZW52LnBhZ2VGb2xkZXJTaXplIHx8IE1BWF9GT0xERVJfVFJFRV9TSVpFO1xuICAgIHRoaXMucGFnZUZvbGRlckluZGV4ID0gMDtcbiAgICB0aGlzLmZvbGRlclRvdGFsID0gMDtcbiAgICB0aGlzLmZpbGVUb3RhbCA9IDA7XG4gICAgdGhpcy5zb3J0QnkgPSBTb3J0RmlsZXNCeS5NT0RJRklFRF9EQVRFO1xuICAgIHRoaXMuc29ydE9yZGVyID0gVHlwZVNvcnQuREVTQztcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXREYXRhKCkge1xuICAgIHRoaXMuc2V0QXNzZXRMaXN0KG51bGwpO1xuICAgIHRoaXMuc2V0Rm9sZGVyTGlzdChudWxsKTtcbiAgfVxuXG4gIHJlc2V0QXNzZXQoKSB7XG4gICAgdGhpcy5pbml0T3B0aW9uRmlsZXMoKTtcbiAgICB0aGlzLnJlc2V0RGF0YSgpO1xuICB9XG5cbiAgZ2V0Rm9sZGVyTGlzdCgpOiBPYnNlcnZhYmxlPEZvbGRlclRyZWVNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmZvbGRlckxpc3QkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2V0Rm9sZGVyTGlzdChmb2xkZXJzOiBGb2xkZXJUcmVlTW9kZWwsIHBhZ2luYXRpb24/OiBhbnkpIHtcbiAgICB0aGlzLnNldEZvbGRlclRyZWVQYWdpbmF0aW9uKHBhZ2luYXRpb24pO1xuICAgIHRoaXMuc2V0Rm9sZGVyUGFnaW5hdGlvbihwYWdpbmF0aW9uKTtcbiAgICB0aGlzLmZvbGRlckxpc3QkLm5leHQoZm9sZGVycyk7XG4gIH1cblxuICBnZXRBc3NldExpc3QoKTogT2JzZXJ2YWJsZTxBc3NldE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5hc3NldExpc3QkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgc2V0QXNzZXRMaXN0KGFzc2V0czogQXNzZXRNb2RlbFtdLCBwYWdpbmF0aW9uPzogYW55KSB7XG4gICAgdGhpcy5zZXRQYWdpbmF0aW9uKHBhZ2luYXRpb24pO1xuICAgIHRoaXMuYXNzZXRMaXN0JC5uZXh0KGFzc2V0cyk7XG4gIH1cblxuICBzZXREaWFsb2dPcGVuU3RhdHVzKHN0YXR1czogYm9vbGVhbik6IHZvaWQge1xuICAgdGhpcy5vcGVuRGlhbG9nJC5uZXh0KHN0YXR1cyk7XG4gIH1cblxuICBnZXREaWFsb2dPcGVuU3RhdHVzKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLm9wZW5EaWFsb2ckLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cblxuICBwcml2YXRlIHNldFBhZ2luYXRpb24ocGFnaW5hdGlvbikge1xuICAgIGlmIChwYWdpbmF0aW9uKSB7XG4gICAgICB0aGlzLmZpbGVUb3RhbCA9IHBhZ2luYXRpb24uVG90YWw7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHBhZ2luYXRpb24uUGFnZUluZGV4O1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2luYXRpb24uUGFnZVNpemU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb2xkZXJQYWdpbmF0aW9uKHBhZ2luYXRpb24pIHtcbiAgICBpZiAocGFnaW5hdGlvbikge1xuICAgICAgdGhpcy5mb2xkZXJUb3RhbCA9IHBhZ2luYXRpb24uVG90YWw7XG4gICAgICB0aGlzLnBhZ2VGb2xkZXJJbmRleCA9IHBhZ2luYXRpb24uUGFnZUluZGV4O1xuICAgICAgdGhpcy5wYWdlRm9sZGVyU2l6ZSA9IHBhZ2luYXRpb24uUGFnZVNpemU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEZvbGRlclRyZWVQYWdpbmF0aW9uKHBhZ2luYXRpb24pIHtcbiAgICBpZiAocGFnaW5hdGlvbikge1xuICAgICAgdGhpcy5mb2xkZXJUb3RhbCA9IHBhZ2luYXRpb24uVG90YWw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEFzc2V0QnlJZChhc3NldElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L0ZpbGUvR2V0QnlJZC8ke2Fzc2V0SWR9YDtcbiAgICByZXR1cm4gdGhpcy5fYXBpLmdldDxBc3NldFJlc3VsdE1vZGVsPih1cmwpO1xuICB9XG5cbiAgcHVibGljIGdldENoaWxkcmVuRm9sZGVycyh7IGFzc2V0SWQsIGlzRmlsdGVyID0gdHJ1ZSwgcGFnZUluZGV4ID0gREVGQVVMVF9GT0xERVJfVFJFRV9JTkRFWCwgcGFnZVNpemUgPSB0aGlzLl9lbnYucGFnZUZvbGRlclNpemUgfHwgTUFYX0ZPTERFUl9UUkVFX1NJWkUgfTogSUFzc2V0QnlJZFBheWxvYWQpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L0ZpbGUvR2V0Q2hpbGRyZW5gO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdnZXRBbGwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdpc0ZvbGRlcicsICd0cnVlJylcbiAgICAgIC5zZXQoJ3BhZ2VTaXplJywgYCR7cGFnZVNpemV9YClcbiAgICAgIC5zZXQoJ3BhZ2VJbmRleCcsIGAke3BhZ2VJbmRleH1gKTtcbiAgICBcbiAgICBpZiAoYXNzZXRJZCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnYXNzZXRJZCcsIGFzc2V0SWQpO1xuICAgIH1cbiAgICBpZiAoaXNGaWx0ZXIgJiYgdGhpcy5rZXl3b3JkLmxlbmd0aCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgna2V5d29yZCcsIHRoaXMua2V5d29yZCB8fCAnJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZmlsZVR5cGUnLCB0aGlzLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2FwaS5nZXQ8QXNzZXRSZXN1bHRNb2RlbD4odXJsLCB7IHBhcmFtcyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDaGlsZHJlbkFzc2V0cyh7IGFzc2V0SWQsIHBhZ2VJbmRleCB9OiBJQ2hpbGRyZW5Bc3NldFBheWxvYWQpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L0ZpbGUvR2V0Q2hpbGRyZW5gO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdwYWdlU2l6ZScsIHRoaXMucGFnZVNpemUudG9TdHJpbmcoKSlcbiAgICAgIC5zZXQoJ3BhZ2VJbmRleCcsIHBhZ2VJbmRleCB8fCB0aGlzLnBhZ2VJbmRleC50b1N0cmluZygpKVxuICAgICAgLnNldCgnZ2V0QWxsJywgJ2ZhbHNlJylcbiAgICAgIC5zZXQoJ2lzRm9sZGVyJywgJ2ZhbHNlJylcbiAgICAgIC5zZXQoJ1R5cGVTb3J0JywgdGhpcy5zb3J0T3JkZXIudG9TdHJpbmcoKSlcbiAgICAgIC5zZXQoJ1NvcnRGaWxlc0J5JywgdGhpcy5zb3J0QnkudG9TdHJpbmcoKSk7XG5cbiAgICBpZiAoYXNzZXRJZCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnYXNzZXRJZCcsIGFzc2V0SWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5rZXl3b3JkLmxlbmd0aCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgna2V5d29yZCcsIHRoaXMua2V5d29yZCB8fCAnJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZmlsZVR5cGUnLCB0aGlzLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2FwaS5nZXQ8QXNzZXRSZXN1bHRNb2RlbD4odXJsLCB7IHBhcmFtcyB9KTtcbiAgfVxufVxuIl19
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bycy1way9hc3NldC1tYW5hZ2VtZW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2Fzc2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBR0wsWUFBWSxFQUlaLFdBQVcsRUFDWCxRQUFRLEVBQ1Isb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUMxQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR2pELE1BQU0sT0FBTyxZQUFZOzs7Ozs7SUFtQnZCLFlBQzZCLElBQUksRUFDeEIsTUFBaUIsRUFDaEIsSUFBb0I7UUFGRCxTQUFJLEdBQUosSUFBSSxDQUFBO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDaEIsU0FBSSxHQUFKLElBQUksQ0FBZ0I7UUFyQnRCLGdCQUFXLEdBQXFDLElBQUksZUFBZSxDQUN6RSxJQUFJLENBQ0wsQ0FBQztRQUNNLGVBQVUsR0FBa0MsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEUsZ0JBQVcsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFVbkUsaUJBQVksR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVNyRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUks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LFdBQVcsQ0FBQyxDQUFDO1NBQ2hFO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBbUIsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDOzs7WUExSkYsVUFBVTs7Ozs0Q0FxQk4sTUFBTSxTQUFDLFNBQVM7WUF0Q1osU0FBUztZQWNULGNBQWM7Ozs7Ozs7SUFLckIsbUNBRUU7Ozs7O0lBQ0Ysa0NBQThFOzs7OztJQUM5RSxtQ0FBMEU7O0lBQzFFLCtCQUF1Qjs7SUFDdkIsZ0NBQXdCOztJQUN4QixpQ0FBeUI7O0lBQ3pCLHNDQUE4Qjs7SUFDOUIsdUNBQStCOztJQUMvQixtQ0FBMkI7O0lBQzNCLGlDQUF5Qjs7SUFDekIsOEJBQTJCOztJQUMzQixpQ0FBMkI7O0lBQzNCLG9DQUF1RDs7SUFDdkQsK0JBQXdCOzs7OztJQUN4QiwrQkFBd0I7Ozs7O0lBR3RCLDRCQUErQjs7SUFDL0IsOEJBQXdCOzs7OztJQUN4Qiw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBBc3NldE1vZGVsLFxuICBBc3NldFJlc3VsdE1vZGVsLFxuICBEaWFsb2dDb25maWcsXG4gIEZvbGRlclRyZWVNb2RlbCxcbiAgSUFzc2V0QnlJZFBheWxvYWQsXG4gIElDaGlsZHJlbkFzc2V0UGF5bG9hZCxcbiAgU29ydEZpbGVzQnksXG4gIFR5cGVTb3J0LFxuICBNQVhfRk9MREVSX1RSRUVfU0laRSxcbiAgREVGQVVMVF9GT0xERVJfVFJFRV9JTkRFWFxufSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgQmFzZUh0dHBDbGllbnQgfSBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBBTV9DT05GSUcgfSBmcm9tICcuL2Vudi1jb25maWcuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBc3NldFNlcnZpY2Uge1xuICBwcml2YXRlIGZvbGRlckxpc3QkOiBCZWhhdmlvclN1YmplY3Q8Rm9sZGVyVHJlZU1vZGVsPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoXG4gICAgbnVsbFxuICApO1xuICBwcml2YXRlIGFzc2V0TGlzdCQ6IEJlaGF2aW9yU3ViamVjdDxBc3NldE1vZGVsW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcHJpdmF0ZSBvcGVuRGlhbG9nJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcbiAgcHVibGljIGtleXdvcmQ6IHN0cmluZztcbiAgcHVibGljIHBhZ2VTaXplOiBudW1iZXI7XG4gIHB1YmxpYyBwYWdlSW5kZXg6IG51bWJlcjtcbiAgcHVibGljIHBhZ2VGb2xkZXJTaXplOiBudW1iZXI7XG4gIHB1YmxpYyBwYWdlRm9sZGVySW5kZXg6IG51bWJlcjtcbiAgcHVibGljIGZvbGRlclRvdGFsOiBudW1iZXI7XG4gIHB1YmxpYyBmaWxlVG90YWw6IG51bWJlcjtcbiAgcHVibGljIHNvcnRCeTogU29ydEZpbGVzQnk7XG4gIHB1YmxpYyBzb3J0T3JkZXI6IFR5cGVTb3J0O1xuICBwdWJsaWMgZGlhbG9nQ29uZmlnOiBEaWFsb2dDb25maWcgPSBuZXcgRGlhbG9nQ29uZmlnKCk7XG4gIHB1YmxpYyBtYXhTaXplPzogbnVtYmVyO1xuICBwcml2YXRlIGJhc2VVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEFNX0NPTkZJRykgcHJpdmF0ZSBfZW52LFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIF9hcGk6IEJhc2VIdHRwQ2xpZW50XG4gICkge1xuICAgIHRoaXMuYmFzZVVybCA9IHRoaXMuX2Vudi5hc3NldDJVcmw7XG4gICAgdGhpcy5pbml0T3B0aW9uRmlsZXMoKTtcbiAgfVxuXG4gIGdldCBBTUNvbmZpZygpe1xuICAgIHJldHVybiB7XG4gICAgICBwYWdlRm9sZGVyU2l6ZTogdGhpcy5fZW52LnBhZ2VGb2xkZXJTaXplXG4gICAgfVxuICB9IFxuXG4gIHByaXZhdGUgaW5pdE9wdGlvbkZpbGVzKCkge1xuICAgIHRoaXMua2V5d29yZCA9ICcnO1xuICAgIHRoaXMucGFnZVNpemUgPSAxMjtcbiAgICB0aGlzLnBhZ2VJbmRleCA9IDA7XG4gICAgdGhpcy5wYWdlRm9sZGVyU2l6ZSA9IHRoaXMuX2Vudi5wYWdlRm9sZGVyU2l6ZSB8fCBNQVhfRk9MREVSX1RSRUVfU0laRTtcbiAgICB0aGlzLnBhZ2VGb2xkZXJJbmRleCA9IDA7XG4gICAgdGhpcy5mb2xkZXJUb3RhbCA9IDA7XG4gICAgdGhpcy5maWxlVG90YWwgPSAwO1xuICAgIHRoaXMuc29ydEJ5ID0gU29ydEZpbGVzQnkuTU9ESUZJRURfREFURTtcbiAgICB0aGlzLnNvcnRPcmRlciA9IFR5cGVTb3J0LkRFU0M7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0RGF0YSgpIHtcbiAgICB0aGlzLnNldEFzc2V0TGlzdChudWxsKTtcbiAgICB0aGlzLnNldEZvbGRlckxpc3QobnVsbCk7XG4gIH1cblxuICByZXNldEFzc2V0KCkge1xuICAgIHRoaXMuaW5pdE9wdGlvbkZpbGVzKCk7XG4gICAgdGhpcy5yZXNldERhdGEoKTtcbiAgfVxuXG4gIGdldEZvbGRlckxpc3QoKTogT2JzZXJ2YWJsZTxGb2xkZXJUcmVlTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5mb2xkZXJMaXN0JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHNldEZvbGRlckxpc3QoZm9sZGVyczogRm9sZGVyVHJlZU1vZGVsLCBwYWdpbmF0aW9uPzogYW55KSB7XG4gICAgdGhpcy5zZXRGb2xkZXJUcmVlUGFnaW5hdGlvbihwYWdpbmF0aW9uKTtcbiAgICB0aGlzLnNldEZvbGRlclBhZ2luYXRpb24ocGFnaW5hdGlvbik7XG4gICAgdGhpcy5mb2xkZXJMaXN0JC5uZXh0KGZvbGRlcnMpO1xuICB9XG5cbiAgZ2V0QXNzZXRMaXN0KCk6IE9ic2VydmFibGU8QXNzZXRNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYXNzZXRMaXN0JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHNldEFzc2V0TGlzdChhc3NldHM6IEFzc2V0TW9kZWxbXSwgcGFnaW5hdGlvbj86IGFueSwgdG90YWxGaWxlPzogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRQYWdpbmF0aW9uKHBhZ2luYXRpb24sIHRvdGFsRmlsZSk7XG4gICAgdGhpcy5hc3NldExpc3QkLm5leHQoYXNzZXRzKTtcbiAgfVxuXG4gIHNldERpYWxvZ09wZW5TdGF0dXMoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XG4gICB0aGlzLm9wZW5EaWFsb2ckLm5leHQoc3RhdHVzKTtcbiAgfVxuXG4gIGdldERpYWxvZ09wZW5TdGF0dXMoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMub3BlbkRpYWxvZyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuXG4gIHByaXZhdGUgc2V0UGFnaW5hdGlvbihwYWdpbmF0aW9uOiBhbnksIHRvdGFsRmlsZTogbnVtYmVyKSB7XG4gICAgaWYgKHBhZ2luYXRpb24pIHtcbiAgICAgIHRoaXMuZmlsZVRvdGFsID0gdG90YWxGaWxlIHx8IDA7XG4gICAgICB0aGlzLnBhZ2VJbmRleCA9IHBhZ2luYXRpb24uUGFnZUluZGV4O1xuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHBhZ2luYXRpb24uUGFnZVNpemU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRGb2xkZXJQYWdpbmF0aW9uKHBhZ2luYXRpb24pIHtcbiAgICBpZiAocGFnaW5hdGlvbikge1xuICAgICAgdGhpcy5mb2xkZXJUb3RhbCA9IHBhZ2luYXRpb24uVG90YWw7XG4gICAgICB0aGlzLnBhZ2VGb2xkZXJJbmRleCA9IHBhZ2luYXRpb24uUGFnZUluZGV4O1xuICAgICAgdGhpcy5wYWdlRm9sZGVyU2l6ZSA9IHBhZ2luYXRpb24uUGFnZVNpemU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldEZvbGRlclRyZWVQYWdpbmF0aW9uKHBhZ2luYXRpb24pIHtcbiAgICBpZiAocGFnaW5hdGlvbikge1xuICAgICAgdGhpcy5mb2xkZXJUb3RhbCA9IHBhZ2luYXRpb24uVG90YWw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldEFzc2V0QnlJZChhc3NldElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L0ZpbGUvR2V0QnlJZC8ke2Fzc2V0SWR9YDtcbiAgICByZXR1cm4gdGhpcy5fYXBpLmdldDxBc3NldFJlc3VsdE1vZGVsPih1cmwpO1xuICB9XG5cbiAgcHVibGljIGdldENoaWxkcmVuRm9sZGVycyh7IGFzc2V0SWQsIGlzRmlsdGVyID0gdHJ1ZSwgcGFnZUluZGV4ID0gREVGQVVMVF9GT0xERVJfVFJFRV9JTkRFWCwgcGFnZVNpemUgPSB0aGlzLl9lbnYucGFnZUZvbGRlclNpemUgfHwgTUFYX0ZPTERFUl9UUkVFX1NJWkUgfTogSUFzc2V0QnlJZFBheWxvYWQpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L0ZpbGUvR2V0Q2hpbGRyZW5gO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdnZXRBbGwnLCAndHJ1ZScpXG4gICAgICAuc2V0KCdpc0ZvbGRlcicsICd0cnVlJylcbiAgICAgIC5zZXQoJ3BhZ2VTaXplJywgYCR7cGFnZVNpemV9YClcbiAgICAgIC5zZXQoJ3BhZ2VJbmRleCcsIGAke3BhZ2VJbmRleH1gKTtcbiAgICBcbiAgICBpZiAoYXNzZXRJZCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnYXNzZXRJZCcsIGFzc2V0SWQpO1xuICAgIH1cbiAgICBpZiAoaXNGaWx0ZXIgJiYgdGhpcy5rZXl3b3JkLmxlbmd0aCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgna2V5d29yZCcsIHRoaXMua2V5d29yZCB8fCAnJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZmlsZVR5cGUnLCB0aGlzLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2FwaS5nZXQ8QXNzZXRSZXN1bHRNb2RlbD4odXJsLCB7IHBhcmFtcyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDaGlsZHJlbkFzc2V0cyh7IGFzc2V0SWQsIHBhZ2VJbmRleCB9OiBJQ2hpbGRyZW5Bc3NldFBheWxvYWQpIHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L0ZpbGUvR2V0Q2hpbGRyZW5gO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdwYWdlU2l6ZScsIHRoaXMucGFnZVNpemUudG9TdHJpbmcoKSlcbiAgICAgIC5zZXQoJ3BhZ2VJbmRleCcsIHBhZ2VJbmRleCB8fCB0aGlzLnBhZ2VJbmRleC50b1N0cmluZygpKVxuICAgICAgLnNldCgnZ2V0QWxsJywgJ2ZhbHNlJylcbiAgICAgIC5zZXQoJ2lzRm9sZGVyJywgJ2ZhbHNlJylcbiAgICAgIC5zZXQoJ1R5cGVTb3J0JywgdGhpcy5zb3J0T3JkZXIudG9TdHJpbmcoKSlcbiAgICAgIC5zZXQoJ1NvcnRGaWxlc0J5JywgdGhpcy5zb3J0QnkudG9TdHJpbmcoKSk7XG5cbiAgICBpZiAoYXNzZXRJZCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnYXNzZXRJZCcsIGFzc2V0SWQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5rZXl3b3JkLmxlbmd0aCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgna2V5d29yZCcsIHRoaXMua2V5d29yZCB8fCAnJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnZmlsZVR5cGUnLCB0aGlzLmRpYWxvZ0NvbmZpZy5hbGxvd2VkVHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2FwaS5nZXQ8QXNzZXRSZXN1bHRNb2RlbD4odXJsLCB7IHBhcmFtcyB9KTtcbiAgfVxufVxuIl19