@skyux/ag-grid 7.21.1 → 7.21.3

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.
@@ -17,6 +17,7 @@ import { SkyAgGridCellRendererRowSelectorComponent } from './cell-renderers/cell
17
17
  import { SkyAgGridCellRendererValidatorTooltipComponent } from './cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';
18
18
  import { SkyAgGridHeaderGroupComponent } from './header/header-group.component';
19
19
  import { SkyAgGridHeaderComponent } from './header/header.component';
20
+ import { iconMap } from './icons/icon-map';
20
21
  import { SkyCellClass } from './types/cell-class';
21
22
  import { SkyCellType } from './types/cell-type';
22
23
  import { SkyHeaderClass } from './types/header-class';
@@ -327,13 +328,13 @@ _SkyAgGridService_keyMap = new WeakMap(), _SkyAgGridService_ngUnsubscribe = new
327
328
  },
328
329
  headerHeight: this.getHeaderHeight(),
329
330
  icons: {
330
- sortDescending: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'caret-down'),
331
- sortAscending: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'caret-up'),
332
- columnMoveMove: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
333
- columnMoveHide: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
334
- columnMoveLeft: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
335
- columnMoveRight: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
336
- columnMovePin: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
331
+ sortDescending: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'sortDescending'),
332
+ sortAscending: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'sortAscending'),
333
+ columnMoveMove: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMoveMove'),
334
+ columnMoveHide: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMoveHide'),
335
+ columnMoveLeft: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMoveLeft'),
336
+ columnMoveRight: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMoveRight'),
337
+ columnMovePin: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMovePin'),
337
338
  },
338
339
  onCellFocused: () => __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_onCellFocused).call(this),
339
340
  rowHeight: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getRowHeight).call(this),
@@ -411,7 +412,15 @@ _SkyAgGridService_keyMap = new WeakMap(), _SkyAgGridService_ngUnsubscribe = new
411
412
  }
412
413
  return '';
413
414
  }, _SkyAgGridService_getIconTemplate = function _SkyAgGridService_getIconTemplate(iconName) {
414
- return `<i class="fa fa-${iconName}"></i>`;
415
+ return () => {
416
+ const icon = iconMap[iconName];
417
+ if (__classPrivateFieldGet(this, _SkyAgGridService_currentTheme, "f")?.theme.name === 'modern' && icon.skyIcon) {
418
+ return `<i aria-hidden="true" class="sky-i-${icon.skyIcon}"></i>`;
419
+ }
420
+ else {
421
+ return `<i aria-hidden="true" class="fa fa-${icon.faIcon}"></i>`;
422
+ }
423
+ };
415
424
  }, _SkyAgGridService_suppressTab = function _SkyAgGridService_suppressTab(params) {
416
425
  if (params.event.code === 'Tab') {
417
426
  if (params.editing) {
@@ -441,4 +450,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
441
450
  }] }, { type: i3.SkyLibResourcesService, decorators: [{
442
451
  type: Optional
443
452
  }] }]; } });
444
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFlaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDdEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDMUgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDaEksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDOUcsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDckosT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDbEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDN0ksT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDNUosT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlD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QSxJQUFJLHNDQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2hFLENBQUM7OEdBL2JVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsS0FBSzs0RkFFTixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFXSSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSwgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIENlbGxDbGFzc1BhcmFtcyxcbiAgQ29sRGVmLFxuICBFZGl0YWJsZUNhbGxiYWNrUGFyYW1zLFxuICBHcmlkT3B0aW9ucyxcbiAgSUNlbGxSZW5kZXJlclBhcmFtcyxcbiAgUm93Q2xhc3NQYXJhbXMsXG4gIFN1cHByZXNzSGVhZGVyS2V5Ym9hcmRFdmVudFBhcmFtcyxcbiAgU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMgfSBmcm9tICcuL2FwcGx5LWxvb2t1cC1wcm9wZXJ0aWVzLWRlZmF1bHRzJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1jdXJyZW5jeS9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbnVtYmVyL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5VmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJMb29rdXBDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItbG9va3VwL2NlbGwtcmVuZGVyZXItbG9va3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q2VsbENsYXNzIH0gZnJvbSAnLi90eXBlcy9jZWxsLWNsYXNzJztcbmltcG9ydCB7IFNreUNlbGxUeXBlIH0gZnJvbSAnLi90eXBlcy9jZWxsLXR5cGUnO1xuaW1wb3J0IHsgU2t5SGVhZGVyQ2xhc3MgfSBmcm9tICcuL3R5cGVzL2hlYWRlci1jbGFzcyc7XG5pbXBvcnQgeyBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MgfSBmcm9tICcuL3R5cGVzL3NreS1ncmlkLW9wdGlvbnMnO1xuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVDb21wYXJhdG9yKFxuICB2YWx1ZTE6IHsgbmFtZTogc3RyaW5nIH0sXG4gIHZhbHVlMjogeyBuYW1lOiBzdHJpbmcgfVxuKTogbnVtYmVyIHtcbiAgaWYgKHZhbHVlMSAmJiB2YWx1ZTIpIHtcbiAgICBpZiAodmFsdWUxLm5hbWUgPiB2YWx1ZTIubmFtZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlMS5uYW1lIDwgdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTEgPyAxIDogLTE7XG59XG5cbmZ1bmN0aW9uIGF1dG9jb21wbGV0ZUZvcm1hdHRlcihwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhcmFtcy52YWx1ZSAmJiBwYXJhbXMudmFsdWUubmFtZTtcbn1cblxuZnVuY3Rpb24gZGF0ZUNvbXBhcmF0b3IoZGF0ZTE6IERhdGUgfCBzdHJpbmcsIGRhdGUyOiBEYXRlIHwgc3RyaW5nKTogbnVtYmVyIHtcbiAgbGV0IGRhdGUxdmFsdWUgPSBkYXRlMTtcbiAgbGV0IGRhdGUydmFsdWUgPSBkYXRlMjtcblxuICBpZiAodHlwZW9mIGRhdGUxdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTF2YWx1ZSA9IG5ldyBEYXRlKGRhdGUxKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0ZTJ2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICBkYXRlMnZhbHVlID0gbmV3IERhdGUoZGF0ZTIpO1xuICB9XG5cbiAgaWYgKGRhdGUxdmFsdWUgJiYgZGF0ZTJ2YWx1ZSkge1xuICAgIGlmIChkYXRlMXZhbHVlID4gZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUxdmFsdWUgPCBkYXRlMnZhbHVlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gZGF0ZTF2YWx1ZSA/IDEgOiAtMTtcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmZ1bmN0aW9uIGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKGNvbXBvbmVudDogc3RyaW5nLCBmYWxsYmFjaz86IGFueSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICByZXR1cm4gKHBhcmFtczogSUNlbGxSZW5kZXJlclBhcmFtcyk6IGFueSA9PiB7XG4gICAgaWYgKFxuICAgICAgcGFyYW1zLmNvbERlZiAmJlxuICAgICAgdHlwZW9mIHBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzXG4gICAgICAgID8udmFsaWRhdG9yID09PSAnZnVuY3Rpb24nXG4gICAgKSB7XG4gICAgICBpZiAoXG4gICAgICAgICFwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvcihcbiAgICAgICAgICBwYXJhbXMudmFsdWUsXG4gICAgICAgICAgcGFyYW1zLmRhdGEsXG4gICAgICAgICAgcGFyYW1zLnJvd0luZGV4XG4gICAgICAgIClcbiAgICAgICkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbXBvbmVudCxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIC4uLnBhcmFtcy5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxsYmFjaztcbiAgfTtcbn1cblxubGV0IHJvd05vZGVJZCA9IC0xO1xuXG4vKipcbiAqIGBTa3lBZ0dyaWRTZXJ2aWNlYCBwcm92aWRlcyBtZXRob2RzIHRvIGdldCBBRyBHcmlkIGBncmlkT3B0aW9uc2AgdG8gZW5zdXJlIGdyaWRzIG1hdGNoIFNLWSBVWCBmdW5jdGlvbmFsaXR5LiBUaGUgYGdyaWRPcHRpb25zYCBjYW4gYmUgb3ZlcnJpZGRlbiwgYW5kIGluY2x1ZGUgcmVnaXN0ZXJlZCBTS1kgVVggY29sdW1uIHR5cGVzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgI2tleU1hcCA9IG5ldyBXZWFrTWFwPGFueSwgc3RyaW5nPigpO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICNjdXJyZW50VGhlbWU6IFNreVRoZW1lU2V0dGluZ3MgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICNhZ0dyaWRBZGFwdGVyU2VydmljZTogU2t5QWdHcmlkQWRhcHRlclNlcnZpY2U7XG4gICNyZXNvdXJjZXM6IFNreUxpYlJlc291cmNlc1NlcnZpY2UgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWdHcmlkQWRhcHRlclNlcnZpY2U6IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHRoZW1lU3ZjPzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHJlc291cmNlcz86IFNreUxpYlJlc291cmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UgPSBhZ0dyaWRBZGFwdGVyU2VydmljZTtcbiAgICB0aGlzLiNyZXNvdXJjZXMgPSByZXNvdXJjZXM7XG5cbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhlbWVTdmMpIHtcbiAgICAgIHRoZW1lU3ZjLnNldHRpbmdzQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgLnN1YnNjcmliZSgoc2V0dGluZ3NDaGFuZ2UpID0+IHtcbiAgICAgICAgICB0aGlzLiNjdXJyZW50VGhlbWUgPSBzZXR0aW5nc0NoYW5nZS5jdXJyZW50U2V0dGluZ3M7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBbQUcgR3JpZCBgZ3JpZE9wdGlvbnNgXShodHRwczovL3d3dy5hZy1ncmlkLmNvbS9qYXZhc2NyaXB0LWdyaWQtcHJvcGVydGllcy8pIHdpdGggZGVmYXVsdCBTS1kgVVggb3B0aW9ucywgc3R5bGluZywgYW5kIGNlbGwgcmVuZGVyZXJzIHJlZ2lzdGVyZWQgZm9yIHJlYWQtb25seSBncmlkcy5cbiAgICogQHBhcmFtIGFyZ3NcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBnZXRHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy4jbWVyZ2VHcmlkT3B0aW9ucyhcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnNcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgW0FHIEdyaWQgYGdyaWRPcHRpb25zYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXByb3BlcnRpZXMvKSB3aXRoIGRlZmF1bHQgU0tZIFVYIG9wdGlvbnMsIHN0eWxpbmcsIGFuZCBjZWxsIGVkaXRvcnMgcmVnaXN0ZXJlZCBmb3IgZWRpdGFibGUgZ3JpZHMuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJncyk7XG4gICAgY29uc3QgbWVyZ2VkR3JpZE9wdGlvbnMgPSB0aGlzLiNtZXJnZUdyaWRPcHRpb25zKFxuICAgICAgZGVmYXVsdEdyaWRPcHRpb25zLFxuICAgICAgYXJncy5ncmlkT3B0aW9uc1xuICAgICk7XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0SGVhZGVySGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWU/Lm5hbWUgPT09ICdtb2Rlcm4nID8gNjAgOiAzNztcbiAgfVxuXG4gICNtZXJnZUdyaWRPcHRpb25zKFxuICAgIGRlZmF1bHRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMsXG4gICAgcHJvdmlkZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnNcbiAgKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zOiBHcmlkT3B0aW9ucyA9IHtcbiAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuY29tcG9uZW50cyxcbiAgICAgICAgLy8gQXBwbHkgZGVmYXVsdCBjb21wb25lbnRzIGxhc3QgdG8gcHJldmVudCBjb25zdW1lcnMgZnJvbSBvdmVyd3JpdGluZyBvdXIgY29tcG9uZW50IHR5cGVzLlxuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29tcG9uZW50cyxcbiAgICAgIH0sXG4gICAgICBjb2x1bW5UeXBlczoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgICAvLyBhcHBseSBkZWZhdWx0IHNlY29uZCB0byBwcmV2ZW50IGNvbnN1bWVycyBmcm9tIG92ZXJ3cml0aW5nIG91ciBkZWZhdWx0IGNvbHVtbiB0eXBlc1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZixcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmLFxuICAgICAgICAvLyBhbGxvdyBjb25zdW1lcnMgdG8gb3ZlcnJpZGUgYWxsIGRlZmF1bHRDb2xEZWYgcHJvcGVydGllcyBleGNlcHQgY2VsbENsYXNzUnVsZXMsIHdoaWNoIHdlIHJlc2VydmUgZm9yIHN0eWxpbmdcbiAgICAgICAgY2VsbENsYXNzUnVsZXM6IGRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sRGVmPy5jZWxsQ2xhc3NSdWxlcyxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sR3JvdXBEZWY6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xHcm91cERlZixcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWYsXG4gICAgICB9LFxuICAgICAgaWNvbnM6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmljb25zLFxuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmljb25zLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgLy8gUHJlZmVyIGBnZXRSb3dOb2RlSWRgIG92ZXIgYGdldE5vZGVJZGAgaWYgc2V0IGJ5IHRoZSBjb25zdW1lciwgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAgaWYgKG1lcmdlZEdyaWRPcHRpb25zLmdldFJvd05vZGVJZCkge1xuICAgICAgZGVsZXRlIG1lcmdlZEdyaWRPcHRpb25zLmdldFJvd0lkO1xuICAgIH1cblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIC8vIGNlbGxDbGFzc1J1bGVzIGNhbiBiZSBmdW5jdGlvbnMgb3Igc3RyaW5nIGV4cHJlc3Npb25zXG4gICAgY29uc3QgY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uID0gKCk6IGJvb2xlYW4gPT4gdHJ1ZTtcblxuICAgIGZ1bmN0aW9uIGdldEVkaXRhYmxlRm4oXG4gICAgICBpc1VuZWRpdGFibGU/OiBib29sZWFuXG4gICAgKTogKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKSA9PiBib29sZWFuIHtcbiAgICAgIHJldHVybiBmdW5jdGlvbiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IGlzRWRpdGFibGUgPSBwYXJhbXMuY29sRGVmLmVkaXRhYmxlO1xuXG4gICAgICAgIGlmICh0eXBlb2YgaXNFZGl0YWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IHBhcmFtcy5jb2x1bW5BcGkuZ2V0Q29sdW1uKHBhcmFtcy5jb2xEZWYuZmllbGQpO1xuICAgICAgICAgIGlzRWRpdGFibGUgPSBpc0VkaXRhYmxlKHtcbiAgICAgICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgICAgIGNvbHVtbixcbiAgICAgICAgICB9IGFzIEVkaXRhYmxlQ2FsbGJhY2tQYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlzVW5lZGl0YWJsZSA/ICFpc0VkaXRhYmxlIDogISFpc0VkaXRhYmxlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzID0ge1xuICAgICAgW1NreUNlbGxDbGFzcy5FZGl0YWJsZV06IGdldEVkaXRhYmxlRm4oKSxcbiAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGdldEVkaXRhYmxlRm4odHJ1ZSksXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGdldFZhbGlkYXRvckZuKCk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtOiBDZWxsQ2xhc3NQYXJhbXMpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHBhcmFtLmNvbERlZiAmJlxuICAgICAgICAgIHR5cGVvZiBwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zPy5za3lDb21wb25lbnRQcm9wZXJ0aWVzXG4gICAgICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gIXBhcmFtLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgICBwYXJhbS52YWx1ZSxcbiAgICAgICAgICAgIHBhcmFtLmRhdGEsXG4gICAgICAgICAgICBwYXJhbS5yb3dJbmRleFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyA9IHtcbiAgICAgIFtTa3lDZWxsQ2xhc3MuSW52YWxpZF06IGdldFZhbGlkYXRvckZuKCksXG4gICAgfTtcblxuICAgIGNvbnN0IGRlZmF1bHRTa3lHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7XG4gICAgICBjb2x1bW5UeXBlczoge1xuICAgICAgICBbU2t5Q2VsbFR5cGUuQXV0b2NvbXBsZXRlXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkF1dG9jb21wbGV0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiBhdXRvY29tcGxldGVGb3JtYXR0ZXIsXG4gICAgICAgICAgY29tcGFyYXRvcjogYXV0b2NvbXBsZXRlQ29tcGFyYXRvcixcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuQ3VycmVuY3ldOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuQ3VycmVuY3ldOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi52YWxpZGF0b3JDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXJTZWxlY3RvcjogZ2V0VmFsaWRhdG9yQ2VsbFJlbmRlcmVyU2VsZWN0b3IoXG4gICAgICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3InLFxuICAgICAgICAgICAgeyBjb21wb25lbnQ6ICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JyB9XG4gICAgICAgICAgKSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyQ2xhc3M6IFNreUhlYWRlckNsYXNzLlJpZ2h0QWxpZ25lZCxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuRGF0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5EYXRlXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JEYXRlcGlja2VyQ29tcG9uZW50LFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGRhdGVDb21wYXJhdG9yLFxuICAgICAgICAgIG1pbldpZHRoOiB0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDE4MCA6IDE2MCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMpID0+XG4gICAgICAgICAgICB0aGlzLiNkYXRlRm9ybWF0dGVyKHBhcmFtcywgYXJncy5sb2NhbGUpLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTG9va3VwXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkxvb2t1cF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyTG9va3VwQ29tcG9uZW50LFxuICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiAocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsb29rdXBQcm9wZXJ0aWVzID0gYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMocGFyYW1zKTtcbiAgICAgICAgICAgIHJldHVybiAocGFyYW1zLnZhbHVlIHx8IFtdKVxuICAgICAgICAgICAgICAubWFwKCh2YWx1ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVbbG9va3VwUHJvcGVydGllcy5kZXNjcmlwdG9yUHJvcGVydHkgYXMgc3RyaW5nXTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLmZpbHRlcigodmFsdWU6IHVua25vd24pID0+IHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgICAgICAuam9pbignOyAnKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIG1pbldpZHRoOiAxODUsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5OdW1iZXJdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuTnVtYmVyXTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yTnVtYmVyQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlckNsYXNzOiBTa3lIZWFkZXJDbGFzcy5SaWdodEFsaWduZWQsXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5Sb3dTZWxlY3Rvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5Sb3dTZWxlY3Rvcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVW5lZGl0YWJsZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlcjogU2t5QWdHcmlkQ2VsbFJlbmRlcmVyUm93U2VsZWN0b3JDb21wb25lbnQsXG4gICAgICAgICAgaGVhZGVyTmFtZTogJycsXG4gICAgICAgICAgbWluV2lkdGg6IDU1LFxuICAgICAgICAgIG1heFdpZHRoOiA1NSxcbiAgICAgICAgICBzb3J0YWJsZTogZmFsc2UsXG4gICAgICAgICAgd2lkdGg6IDU1LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuVGV4dF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5UZXh0XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnQsXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlZhbGlkYXRvcl06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sRGVmOiB7XG4gICAgICAgIGNlbGxDbGFzc1J1bGVzOiBlZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFNreUFnR3JpZEhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgbWluV2lkdGg6IDEwMCxcbiAgICAgICAgcmVzaXphYmxlOiB0cnVlLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgc3VwcHJlc3NIZWFkZXJLZXlib2FyZEV2ZW50OiAoXG4gICAgICAgICAga2V5cHJlc3M6IFN1cHByZXNzSGVhZGVyS2V5Ym9hcmRFdmVudFBhcmFtc1xuICAgICAgICApID0+IGtleXByZXNzLmV2ZW50LmNvZGUgPT09ICdUYWInLFxuICAgICAgICBzdXBwcmVzc0tleWJvYXJkRXZlbnQ6IChrZXlwcmVzczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKSA9PlxuICAgICAgICAgIHRoaXMuI3N1cHByZXNzVGFiKGtleXByZXNzKSxcbiAgICAgIH0sXG4gICAgICBkZWZhdWx0Q29sR3JvdXBEZWY6IHtcbiAgICAgICAgaGVhZGVyR3JvdXBDb21wb25lbnQ6IFNreUFnR3JpZEhlYWRlckdyb3VwQ29tcG9uZW50LFxuICAgICAgfSxcbiAgICAgIGRvbUxheW91dDogJ2F1dG9IZWlnaHQnLFxuICAgICAgZW5zdXJlRG9tT3JkZXI6IHRydWUsXG4gICAgICBlbnRlck1vdmVzRG93bkFmdGVyRWRpdDogdHJ1ZSxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3knOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeS12YWxpZGF0b3InOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5VmFsaWRhdG9yQ29tcG9uZW50LFxuICAgICAgICAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcCc6XG4gICAgICAgICAgU2t5QWdHcmlkQ2VsbFJlbmRlcmVyVmFsaWRhdG9yVG9vbHRpcENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICBnZXRSb3dJZDogKHBhcmFtcykgPT4ge1xuICAgICAgICBjb25zdCBkYXRhSWQgPSBwYXJhbXMuZGF0YS5pZDtcbiAgICAgICAgaWYgKGRhdGFJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIGAke3BhcmFtcy5kYXRhLmlkfWA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLiNrZXlNYXAuaGFzKHBhcmFtcy5kYXRhKSkge1xuICAgICAgICAgIHRoaXMuI2tleU1hcC5zZXQocGFyYW1zLmRhdGEsIGAke3Jvd05vZGVJZC0tfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLiNrZXlNYXAuZ2V0KHBhcmFtcy5kYXRhKSBhcyBzdHJpbmc7XG4gICAgICB9LFxuICAgICAgZ2V0Um93Q2xhc3M6IChwYXJhbXM6IFJvd0NsYXNzUGFyYW1zKSA9PiB7XG4gICAgICAgIGlmIChwYXJhbXMubm9kZS5pZCkge1xuICAgICAgICAgIHJldHVybiBgc2t5LWFnLWdyaWQtcm93LSR7cGFyYW1zLm5vZGUuaWR9YDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaGVhZGVySGVpZ2h0OiB0aGlzLmdldEhlYWRlckhlaWdodCgpLFxuICAgICAgaWNvbnM6IHtcbiAgICAgICAgc29ydERlc2NlbmRpbmc6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY2FyZXQtZG93bicpLFxuICAgICAgICBzb3J0QXNjZW5kaW5nOiB0aGlzLiNnZXRJY29uVGVtcGxhdGUoJ2NhcmV0LXVwJyksXG4gICAgICAgIGNvbHVtbk1vdmVNb3ZlOiB0aGlzLiNnZXRJY29uVGVtcGxhdGUoJ2Fycm93cycpLFxuICAgICAgICBjb2x1bW5Nb3ZlSGlkZTogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKSxcbiAgICAgICAgY29sdW1uTW92ZUxlZnQ6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnYXJyb3dzJyksXG4gICAgICAgIGNvbHVtbk1vdmVSaWdodDogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKSxcbiAgICAgICAgY29sdW1uTW92ZVBpbjogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdhcnJvd3MnKSxcbiAgICAgIH0sXG4gICAgICBvbkNlbGxGb2N1c2VkOiAoKSA9PiB0aGlzLiNvbkNlbGxGb2N1c2VkKCksXG4gICAgICByb3dIZWlnaHQ6IHRoaXMuI2dldFJvd0hlaWdodCgpLFxuICAgICAgZ2V0Um93SGVpZ2h0OiAoKSA9PiB0aGlzLiNnZXRSb3dIZWlnaHQoKSxcbiAgICAgIHJvd011bHRpU2VsZWN0V2l0aENsaWNrOiB0cnVlLFxuICAgICAgcm93U2VsZWN0aW9uOiAnbXVsdGlwbGUnLFxuICAgICAgc2luZ2xlQ2xpY2tFZGl0OiB0cnVlLFxuICAgICAgc29ydGluZ09yZGVyOiBbJ2Rlc2MnLCAnYXNjJywgbnVsbF0sXG4gICAgICBzdXBwcmVzc1Jvd0NsaWNrU2VsZWN0aW9uOiB0cnVlLFxuICAgICAgc3VwcHJlc3NEcmFnTGVhdmVIaWRlc0NvbHVtbnM6IHRydWUsXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbHVtblR5cGVzID0gZGVmYXVsdFNreUdyaWRPcHRpb25zLmNvbHVtblR5cGVzIGFzIFJlY29yZDxcbiAgICAgIHN0cmluZyxcbiAgICAgIENvbERlZlxuICAgID47XG5cbiAgICBjb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5DdXJyZW5jeVZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5DdXJyZW5jeV0sXG4gICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllczoge1xuICAgICAgICAgIHZhbGlkYXRvcjogKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIWAke3ZhbHVlIHx8ICcnfWAubWF0Y2goL15bXjAtOV0qKFxcZCtbLC5dPykrXFxkKlteMC05XSokLyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWxpZGF0b3JNZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgY3VycmVuY3knLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgIGlmICh0aGlzLiNyZXNvdXJjZXMpIHtcbiAgICAgIHRoaXMuI3Jlc291cmNlc1xuICAgICAgICAuZ2V0U3RyaW5nKCdza3lfYWdfZ3JpZF9jZWxsX3JlbmRlcmVyX2N1cnJlbmN5X3ZhbGlkYXRvcl9tZXNzYWdlJylcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvcl0gPSB7XG4gICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5WYWxpZGF0b3JdLFxuICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXSxcbiAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLk51bWJlcl0uY2VsbENsYXNzUnVsZXMsXG4gICAgICB9LFxuICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7XG4gICAgICAgIHNreUNvbXBvbmVudFByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2YWxpZGF0b3I6ICh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gISF2YWx1ZSAmJiAhaXNOYU4ocGFyc2VGbG9hdCh2YWx1ZSkpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdmFsaWRhdG9yTWVzc2FnZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlcicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfbnVtYmVyX3ZhbGlkYXRvcl9tZXNzYWdlJylcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICBjb2x1bW5UeXBlc1tcbiAgICAgICAgICAgIFNreUNlbGxUeXBlLk51bWJlclZhbGlkYXRvclxuICAgICAgICAgIF0uY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yTWVzc2FnZSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmYXVsdFNreUdyaWRPcHRpb25zO1xuICB9XG5cbiAgI29uQ2VsbEZvY3VzZWQoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEVsZW1lbnQgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuXG4gICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZm9jdXNPbkZvY3VzYWJsZUNoaWxkcmVuKGN1cnJlbnRFbGVtZW50KTtcbiAgfVxuXG4gICNnZXREZWZhdWx0RWRpdGFibGVHcmlkT3B0aW9ucyhhcmdzOiBTa3lHZXRHcmlkT3B0aW9uc0FyZ3MpOiBHcmlkT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdEdyaWRPcHRpb25zID0gdGhpcy4jZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3MpO1xuXG4gICAgZGVmYXVsdEdyaWRPcHRpb25zLnJvd1NlbGVjdGlvbiA9IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBkZWZhdWx0R3JpZE9wdGlvbnM7XG4gIH1cblxuICAjZGF0ZUZvcm1hdHRlcihcbiAgICBwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zLFxuICAgIGxvY2FsZTogc3RyaW5nID0gJ2VuLXVzJ1xuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGRhdGVDb25maWcgPSB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICcyLWRpZ2l0JywgZGF5OiAnMi1kaWdpdCcgfTtcbiAgICBsZXQgZGF0ZTogRGF0ZSA9IHBhcmFtcy52YWx1ZTtcblxuICAgIGlmIChkYXRlICYmIHR5cGVvZiBkYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgZGF0ZSA9IG5ldyBEYXRlKHBhcmFtcy52YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9XG4gICAgICBkYXRlICYmXG4gICAgICBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyAmJlxuICAgICAgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCBkYXRlQ29uZmlnIGFzIEludGwuRGF0ZVRpbWVGb3JtYXRPcHRpb25zKTtcblxuICAgIGlmIChkYXRlICYmIGRhdGUuZ2V0VGltZSAmJiAhaXNOYU4oZGF0ZS5nZXRUaW1lKCkpKSB7XG4gICAgICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAjZ2V0SWNvblRlbXBsYXRlKGljb25OYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgPGkgY2xhc3M9XCJmYSBmYS0ke2ljb25OYW1lfVwiPjwvaT5gO1xuICB9XG5cbiAgI3N1cHByZXNzVGFiKHBhcmFtczogU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zKTogYm9vbGVhbiB7XG4gICAgaWYgKHBhcmFtcy5ldmVudC5jb2RlID09PSAnVGFiJykge1xuICAgICAgaWYgKHBhcmFtcy5lZGl0aW5nKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRseUZvY3VzZWRFbCA9XG4gICAgICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNlZEVsZW1lbnQoKTtcbiAgICAgICAgLy8gaW5saW5lIGNlbGwgZWRpdG9ycyBoYXZlIHRoZSAnYWctY2VsbCcgY2xhc3MsIHdoaWxlIHBvcHVwIGVkaXRvcnMgaGF2ZSB0aGUgJ2FnLXBvcHVwLWVkaXRvcicgY2xhc3NcbiAgICAgICAgY29uc3QgY2VsbEVsID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKFxuICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAnYWctY2VsbCdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcG9wdXBFbCA9IHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEVsZW1lbnRPclBhcmVudFdpdGhDbGFzcyhcbiAgICAgICAgICBjdXJyZW50bHlGb2N1c2VkRWwsXG4gICAgICAgICAgJ2FnLXBvcHVwLWVkaXRvcidcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcGFyZW50RWwgPSBjZWxsRWwgfHwgcG9wdXBFbDtcblxuICAgICAgICBjb25zdCBuZXh0Rm9jdXNhYmxlRWxlbWVudEluQ2VsbCA9XG4gICAgICAgICAgdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0TmV4dEZvY3VzYWJsZUVsZW1lbnQoXG4gICAgICAgICAgICBjdXJyZW50bHlGb2N1c2VkRWwsXG4gICAgICAgICAgICBwYXJlbnRFbCxcbiAgICAgICAgICAgIHBhcmFtcy5ldmVudC5zaGlmdEtleVxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiAhIW5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gICNnZXRSb3dIZWlnaHQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyA2MCA6IDM4O1xuICB9XG59XG4iXX0=
453
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FnLWdyaWQvc3JjL2xpYi9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFlaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHM0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sNEVBQTRFLENBQUM7QUFDdEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDMUgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDaEksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEgsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDOUcsT0FBTyxFQUFFLCtDQUErQyxFQUFFLE1BQU0sb0ZBQW9GLENBQUM7QUFDckosT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sMEVBQTBFLENBQUM7QUFDbEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7QUFDNUgsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFDN0ksT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sNEZBQTRGLENBQUM7QUFDNUosT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0saUNBQWlD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LGlCQUFpQixDQUNsQixDQUFDO1lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBQztZQUVuQyxNQUFNLDBCQUEwQixHQUM5Qix1QkFBQSxJQUFJLDhDQUFzQixDQUFDLHVCQUF1QixDQUNoRCxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUN0QixDQUFDO1lBQ0osT0FBTyxDQUFDLENBQUMsMEJBQTBCLENBQUM7U0FDckM7UUFDRCxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0lBR0MsT0FBTyx1QkFBQSxJQUFJLHNDQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2hFLENBQUM7OEdBdGNVLGdCQUFnQjtrSEFBaEIsZ0JBQWdCLGNBRmYsS0FBSzs0RkFFTixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCOzswQkFXSSxRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcbmltcG9ydCB7IFNreVRoZW1lU2VydmljZSwgU2t5VGhlbWVTZXR0aW5ncyB9IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIENlbGxDbGFzc1BhcmFtcyxcbiAgQ29sRGVmLFxuICBFZGl0YWJsZUNhbGxiYWNrUGFyYW1zLFxuICBHcmlkT3B0aW9ucyxcbiAgSUNlbGxSZW5kZXJlclBhcmFtcyxcbiAgUm93Q2xhc3NQYXJhbXMsXG4gIFN1cHByZXNzSGVhZGVyS2V5Ym9hcmRFdmVudFBhcmFtcyxcbiAgU3VwcHJlc3NLZXlib2FyZEV2ZW50UGFyYW1zLFxuICBWYWx1ZUZvcm1hdHRlclBhcmFtcyxcbn0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgYXBwbHlTa3lMb29rdXBQcm9wZXJ0aWVzRGVmYXVsdHMgfSBmcm9tICcuL2FwcGx5LWxvb2t1cC1wcm9wZXJ0aWVzLWRlZmF1bHRzJztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1hdXRvY29tcGxldGUvY2VsbC1lZGl0b3ItYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yQ3VycmVuY3lDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1jdXJyZW5jeS9jZWxsLWVkaXRvci1jdXJyZW5jeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvckRhdGVwaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1kYXRlcGlja2VyL2NlbGwtZWRpdG9yLWRhdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxFZGl0b3JMb29rdXBDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci1sb29rdXAvY2VsbC1lZGl0b3ItbG9va3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsRWRpdG9yTnVtYmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLWVkaXRvcnMvY2VsbC1lZGl0b3ItbnVtYmVyL2NlbGwtZWRpdG9yLW51bWJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkQ2VsbEVkaXRvclRleHRDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtZWRpdG9ycy9jZWxsLWVkaXRvci10ZXh0L2NlbGwtZWRpdG9yLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlckN1cnJlbmN5VmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jZWxsLXJlbmRlcmVycy9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5L2NlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1jdXJyZW5jeS9jZWxsLXJlbmRlcmVyLWN1cnJlbmN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJMb29rdXBDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItbG9va3VwL2NlbGwtcmVuZGVyZXItbG9va3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJSb3dTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4vY2VsbC1yZW5kZXJlcnMvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IvY2VsbC1yZW5kZXJlci1yb3ctc2VsZWN0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQgfSBmcm9tICcuL2NlbGwtcmVuZGVyZXJzL2NlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAvY2VsbC1yZW5kZXJlci12YWxpZGF0b3ItdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5QWdHcmlkSGVhZGVyR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL2hlYWRlci9oZWFkZXItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFnR3JpZEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vaGVhZGVyL2hlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbk1hcFR5cGUsIGljb25NYXAgfSBmcm9tICcuL2ljb25zL2ljb24tbWFwJztcbmltcG9ydCB7IFNreUNlbGxDbGFzcyB9IGZyb20gJy4vdHlwZXMvY2VsbC1jbGFzcyc7XG5pbXBvcnQgeyBTa3lDZWxsVHlwZSB9IGZyb20gJy4vdHlwZXMvY2VsbC10eXBlJztcbmltcG9ydCB7IFNreUhlYWRlckNsYXNzIH0gZnJvbSAnLi90eXBlcy9oZWFkZXItY2xhc3MnO1xuaW1wb3J0IHsgU2t5R2V0R3JpZE9wdGlvbnNBcmdzIH0gZnJvbSAnLi90eXBlcy9za3ktZ3JpZC1vcHRpb25zJztcblxuZnVuY3Rpb24gYXV0b2NvbXBsZXRlQ29tcGFyYXRvcihcbiAgdmFsdWUxOiB7IG5hbWU6IHN0cmluZyB9LFxuICB2YWx1ZTI6IHsgbmFtZTogc3RyaW5nIH1cbik6IG51bWJlciB7XG4gIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XG4gICAgaWYgKHZhbHVlMS5uYW1lID4gdmFsdWUyLm5hbWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZTEubmFtZSA8IHZhbHVlMi5uYW1lKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICByZXR1cm4gdmFsdWUxID8gMSA6IC0xO1xufVxuXG5mdW5jdGlvbiBhdXRvY29tcGxldGVGb3JtYXR0ZXIocGFyYW1zOiBWYWx1ZUZvcm1hdHRlclBhcmFtcyk6IHN0cmluZyB7XG4gIHJldHVybiBwYXJhbXMudmFsdWUgJiYgcGFyYW1zLnZhbHVlLm5hbWU7XG59XG5cbmZ1bmN0aW9uIGRhdGVDb21wYXJhdG9yKGRhdGUxOiBEYXRlIHwgc3RyaW5nLCBkYXRlMjogRGF0ZSB8IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCBkYXRlMXZhbHVlID0gZGF0ZTE7XG4gIGxldCBkYXRlMnZhbHVlID0gZGF0ZTI7XG5cbiAgaWYgKHR5cGVvZiBkYXRlMXZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGRhdGUxdmFsdWUgPSBuZXcgRGF0ZShkYXRlMSk7XG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGUydmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgZGF0ZTJ2YWx1ZSA9IG5ldyBEYXRlKGRhdGUyKTtcbiAgfVxuXG4gIGlmIChkYXRlMXZhbHVlICYmIGRhdGUydmFsdWUpIHtcbiAgICBpZiAoZGF0ZTF2YWx1ZSA+IGRhdGUydmFsdWUpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmIChkYXRlMXZhbHVlIDwgZGF0ZTJ2YWx1ZSkge1xuICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgcmV0dXJuIGRhdGUxdmFsdWUgPyAxIDogLTE7XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5mdW5jdGlvbiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3Rvcihjb21wb25lbnQ6IHN0cmluZywgZmFsbGJhY2s/OiBhbnkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgcmV0dXJuIChwYXJhbXM6IElDZWxsUmVuZGVyZXJQYXJhbXMpOiBhbnkgPT4ge1xuICAgIGlmIChcbiAgICAgIHBhcmFtcy5jb2xEZWYgJiZcbiAgICAgIHR5cGVvZiBwYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllc1xuICAgICAgICA/LnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICAhcGFyYW1zLmNvbERlZi5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3IoXG4gICAgICAgICAgcGFyYW1zLnZhbHVlLFxuICAgICAgICAgIHBhcmFtcy5kYXRhLFxuICAgICAgICAgIHBhcmFtcy5yb3dJbmRleFxuICAgICAgICApXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb21wb25lbnQsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICAuLi5wYXJhbXMuY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2s7XG4gIH07XG59XG5cbmxldCByb3dOb2RlSWQgPSAtMTtcblxuLyoqXG4gKiBgU2t5QWdHcmlkU2VydmljZWAgcHJvdmlkZXMgbWV0aG9kcyB0byBnZXQgQUcgR3JpZCBgZ3JpZE9wdGlvbnNgIHRvIGVuc3VyZSBncmlkcyBtYXRjaCBTS1kgVVggZnVuY3Rpb25hbGl0eS4gVGhlIGBncmlkT3B0aW9uc2AgY2FuIGJlIG92ZXJyaWRkZW4sIGFuZCBpbmNsdWRlIHJlZ2lzdGVyZWQgU0tZIFVYIGNvbHVtbiB0eXBlcy5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICNrZXlNYXAgPSBuZXcgV2Vha01hcDxhbnksIHN0cmluZz4oKTtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAjY3VycmVudFRoZW1lOiBTa3lUaGVtZVNldHRpbmdzIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAjYWdHcmlkQWRhcHRlclNlcnZpY2U6IFNreUFnR3JpZEFkYXB0ZXJTZXJ2aWNlO1xuICAjcmVzb3VyY2VzOiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGFnR3JpZEFkYXB0ZXJTZXJ2aWNlOiBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSB0aGVtZVN2Yz86IFNreVRoZW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSByZXNvdXJjZXM/OiBTa3lMaWJSZXNvdXJjZXNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlID0gYWdHcmlkQWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jcmVzb3VyY2VzID0gcmVzb3VyY2VzO1xuXG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoZW1lU3ZjKSB7XG4gICAgICB0aGVtZVN2Yy5zZXR0aW5nc0NoYW5nZVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHNldHRpbmdzQ2hhbmdlKSA9PiB7XG4gICAgICAgICAgdGhpcy4jY3VycmVudFRoZW1lID0gc2V0dGluZ3NDaGFuZ2UuY3VycmVudFNldHRpbmdzO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgW0FHIEdyaWQgYGdyaWRPcHRpb25zYF0oaHR0cHM6Ly93d3cuYWctZ3JpZC5jb20vamF2YXNjcmlwdC1ncmlkLXByb3BlcnRpZXMvKSB3aXRoIGRlZmF1bHQgU0tZIFVYIG9wdGlvbnMsIHN0eWxpbmcsIGFuZCBjZWxsIHJlbmRlcmVycyByZWdpc3RlcmVkIGZvciByZWFkLW9ubHkgZ3JpZHMuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwdWJsaWMgZ2V0R3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRHcmlkT3B0aW9ucyhhcmdzKTtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9ucyA9IHRoaXMuI21lcmdlR3JpZE9wdGlvbnMoXG4gICAgICBkZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICBhcmdzLmdyaWRPcHRpb25zXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZWRHcmlkT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIFtBRyBHcmlkIGBncmlkT3B0aW9uc2BdKGh0dHBzOi8vd3d3LmFnLWdyaWQuY29tL2phdmFzY3JpcHQtZ3JpZC1wcm9wZXJ0aWVzLykgd2l0aCBkZWZhdWx0IFNLWSBVWCBvcHRpb25zLCBzdHlsaW5nLCBhbmQgY2VsbCBlZGl0b3JzIHJlZ2lzdGVyZWQgZm9yIGVkaXRhYmxlIGdyaWRzLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHVibGljIGdldEVkaXRhYmxlR3JpZE9wdGlvbnMoYXJnczogU2t5R2V0R3JpZE9wdGlvbnNBcmdzKTogR3JpZE9wdGlvbnMge1xuICAgIGNvbnN0IGRlZmF1bHRHcmlkT3B0aW9ucyA9IHRoaXMuI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3MpO1xuICAgIGNvbnN0IG1lcmdlZEdyaWRPcHRpb25zID0gdGhpcy4jbWVyZ2VHcmlkT3B0aW9ucyhcbiAgICAgIGRlZmF1bHRHcmlkT3B0aW9ucyxcbiAgICAgIGFyZ3MuZ3JpZE9wdGlvbnNcbiAgICApO1xuXG4gICAgcmV0dXJuIG1lcmdlZEdyaWRPcHRpb25zO1xuICB9XG5cbiAgcHVibGljIGdldEhlYWRlckhlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDYwIDogMzc7XG4gIH1cblxuICAjbWVyZ2VHcmlkT3B0aW9ucyhcbiAgICBkZWZhdWx0R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zLFxuICAgIHByb3ZpZGVkR3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zXG4gICk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBtZXJnZWRHcmlkT3B0aW9uczogR3JpZE9wdGlvbnMgPSB7XG4gICAgICAuLi5kZWZhdWx0R3JpZE9wdGlvbnMsXG4gICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAuLi5wcm92aWRlZEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICAgIC8vIEFwcGx5IGRlZmF1bHQgY29tcG9uZW50cyBsYXN0IHRvIHByZXZlbnQgY29uc3VtZXJzIGZyb20gb3ZlcndyaXRpbmcgb3VyIGNvbXBvbmVudCB0eXBlcy5cbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbXBvbmVudHMsXG4gICAgICB9LFxuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5jb2x1bW5UeXBlcyxcbiAgICAgICAgLy8gYXBwbHkgZGVmYXVsdCBzZWNvbmQgdG8gcHJldmVudCBjb25zdW1lcnMgZnJvbSBvdmVyd3JpdGluZyBvdXIgZGVmYXVsdCBjb2x1bW4gdHlwZXNcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmNvbHVtblR5cGVzLFxuICAgICAgfSxcbiAgICAgIGRlZmF1bHRDb2xEZWY6IHtcbiAgICAgICAgLi4uZGVmYXVsdEdyaWRPcHRpb25zLmRlZmF1bHRDb2xEZWYsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZixcbiAgICAgICAgLy8gYWxsb3cgY29uc3VtZXJzIHRvIG92ZXJyaWRlIGFsbCBkZWZhdWx0Q29sRGVmIHByb3BlcnRpZXMgZXhjZXB0IGNlbGxDbGFzc1J1bGVzLCB3aGljaCB3ZSByZXNlcnZlIGZvciBzdHlsaW5nXG4gICAgICAgIGNlbGxDbGFzc1J1bGVzOiBkZWZhdWx0R3JpZE9wdGlvbnMuZGVmYXVsdENvbERlZj8uY2VsbENsYXNzUnVsZXMsXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbEdyb3VwRGVmOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5kZWZhdWx0Q29sR3JvdXBEZWYsXG4gICAgICAgIC4uLnByb3ZpZGVkR3JpZE9wdGlvbnMuZGVmYXVsdENvbEdyb3VwRGVmLFxuICAgICAgfSxcbiAgICAgIGljb25zOiB7XG4gICAgICAgIC4uLmRlZmF1bHRHcmlkT3B0aW9ucy5pY29ucyxcbiAgICAgICAgLi4ucHJvdmlkZWRHcmlkT3B0aW9ucy5pY29ucyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8vIFByZWZlciBgZ2V0Um93Tm9kZUlkYCBvdmVyIGBnZXROb2RlSWRgIGlmIHNldCBieSB0aGUgY29uc3VtZXIsIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgIGlmIChtZXJnZWRHcmlkT3B0aW9ucy5nZXRSb3dOb2RlSWQpIHtcbiAgICAgIGRlbGV0ZSBtZXJnZWRHcmlkT3B0aW9ucy5nZXRSb3dJZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbWVyZ2VkR3JpZE9wdGlvbnM7XG4gIH1cblxuICAjZ2V0RGVmYXVsdEdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICAvLyBjZWxsQ2xhc3NSdWxlcyBjYW4gYmUgZnVuY3Rpb25zIG9yIHN0cmluZyBleHByZXNzaW9uc1xuICAgIGNvbnN0IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbiA9ICgpOiBib29sZWFuID0+IHRydWU7XG5cbiAgICBmdW5jdGlvbiBnZXRFZGl0YWJsZUZuKFxuICAgICAgaXNVbmVkaXRhYmxlPzogYm9vbGVhblxuICAgICk6IChwYXJhbXM6IENlbGxDbGFzc1BhcmFtcykgPT4gYm9vbGVhbiB7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKHBhcmFtczogQ2VsbENsYXNzUGFyYW1zKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBpc0VkaXRhYmxlID0gcGFyYW1zLmNvbERlZi5lZGl0YWJsZTtcblxuICAgICAgICBpZiAodHlwZW9mIGlzRWRpdGFibGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjb25zdCBjb2x1bW4gPSBwYXJhbXMuY29sdW1uQXBpLmdldENvbHVtbihwYXJhbXMuY29sRGVmLmZpZWxkKTtcbiAgICAgICAgICBpc0VkaXRhYmxlID0gaXNFZGl0YWJsZSh7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgfSBhcyBFZGl0YWJsZUNhbGxiYWNrUGFyYW1zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc1VuZWRpdGFibGUgPyAhaXNFZGl0YWJsZSA6ICEhaXNFZGl0YWJsZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyA9IHtcbiAgICAgIFtTa3lDZWxsQ2xhc3MuRWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKCksXG4gICAgICBbU2t5Q2VsbENsYXNzLlVuZWRpdGFibGVdOiBnZXRFZGl0YWJsZUZuKHRydWUpLFxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRWYWxpZGF0b3JGbigpOiAocGFyYW1zOiBDZWxsQ2xhc3NQYXJhbXMpID0+IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChwYXJhbTogQ2VsbENsYXNzUGFyYW1zKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBwYXJhbS5jb2xEZWYgJiZcbiAgICAgICAgICB0eXBlb2YgcGFyYW0uY29sRGVmLmNlbGxSZW5kZXJlclBhcmFtcz8uc2t5Q29tcG9uZW50UHJvcGVydGllc1xuICAgICAgICAgICAgPy52YWxpZGF0b3IgPT09ICdmdW5jdGlvbidcbiAgICAgICAgKSB7XG4gICAgICAgICAgcmV0dXJuICFwYXJhbS5jb2xEZWYuY2VsbFJlbmRlcmVyUGFyYW1zLnNreUNvbXBvbmVudFByb3BlcnRpZXMudmFsaWRhdG9yKFxuICAgICAgICAgICAgcGFyYW0udmFsdWUsXG4gICAgICAgICAgICBwYXJhbS5kYXRhLFxuICAgICAgICAgICAgcGFyYW0ucm93SW5kZXhcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3QgdmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMgPSB7XG4gICAgICBbU2t5Q2VsbENsYXNzLkludmFsaWRdOiBnZXRWYWxpZGF0b3JGbigpLFxuICAgIH07XG5cbiAgICBjb25zdCBkZWZhdWx0U2t5R3JpZE9wdGlvbnM6IEdyaWRPcHRpb25zID0ge1xuICAgICAgY29sdW1uVHlwZXM6IHtcbiAgICAgICAgW1NreUNlbGxUeXBlLkF1dG9jb21wbGV0ZV06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5BdXRvY29tcGxldGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckF1dG9jb21wbGV0ZUNvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogYXV0b2NvbXBsZXRlRm9ybWF0dGVyLFxuICAgICAgICAgIGNvbXBhcmF0b3I6IGF1dG9jb21wbGV0ZUNvbXBhcmF0b3IsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkN1cnJlbmN5XToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLkN1cnJlbmN5XTogY2VsbENsYXNzUnVsZVRydWVFeHByZXNzaW9uLFxuICAgICAgICAgICAgLi4udmFsaWRhdG9yQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbFJlbmRlcmVyU2VsZWN0b3I6IGdldFZhbGlkYXRvckNlbGxSZW5kZXJlclNlbGVjdG9yKFxuICAgICAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJyxcbiAgICAgICAgICAgIHsgY29tcG9uZW50OiAnc2t5LWFnLWdyaWQtY2VsbC1yZW5kZXJlci1jdXJyZW5jeScgfVxuICAgICAgICAgICksXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckN1cnJlbmN5Q29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlckNsYXNzOiBTa3lIZWFkZXJDbGFzcy5SaWdodEFsaWduZWQsXG4gICAgICAgICAgbWluV2lkdGg6IDE4NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkRhdGVdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuRGF0ZV06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLmVkaXRhYmxlQ2VsbENsYXNzUnVsZXMsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsRWRpdG9yOiBTa3lBZ0dyaWRDZWxsRWRpdG9yRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICAgICAgICBjb21wYXJhdG9yOiBkYXRlQ29tcGFyYXRvcixcbiAgICAgICAgICBtaW5XaWR0aDogdGhpcy4jY3VycmVudFRoZW1lPy50aGVtZT8ubmFtZSA9PT0gJ21vZGVybicgPyAxODAgOiAxNjAsXG4gICAgICAgICAgdmFsdWVGb3JtYXR0ZXI6IChwYXJhbXM6IFZhbHVlRm9ybWF0dGVyUGFyYW1zKSA9PlxuICAgICAgICAgICAgdGhpcy4jZGF0ZUZvcm1hdHRlcihwYXJhbXMsIGFyZ3MubG9jYWxlKSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLkxvb2t1cF06IHtcbiAgICAgICAgICBjZWxsQ2xhc3NSdWxlczoge1xuICAgICAgICAgICAgW1NreUNlbGxDbGFzcy5Mb29rdXBdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICAuLi5lZGl0YWJsZUNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvckxvb2t1cENvbXBvbmVudCxcbiAgICAgICAgICBjZWxsUmVuZGVyZXI6IFNreUFnR3JpZENlbGxSZW5kZXJlckxvb2t1cENvbXBvbmVudCxcbiAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgbG9va3VwUHJvcGVydGllcyA9IGFwcGx5U2t5TG9va3VwUHJvcGVydGllc0RlZmF1bHRzKHBhcmFtcyk7XG4gICAgICAgICAgICByZXR1cm4gKHBhcmFtcy52YWx1ZSB8fCBbXSlcbiAgICAgICAgICAgICAgLm1hcCgodmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlW2xvb2t1cFByb3BlcnRpZXMuZGVzY3JpcHRvclByb3BlcnR5IGFzIHN0cmluZ107XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHZhbHVlOiB1bmtub3duKSA9PiB2YWx1ZSAhPT0gJycgJiYgdmFsdWUgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAgICAgLmpvaW4oJzsgJyk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtaW5XaWR0aDogMTg1LFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuTnVtYmVyXToge1xuICAgICAgICAgIGNlbGxDbGFzc1J1bGVzOiB7XG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLk51bWJlcl06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJ1xuICAgICAgICAgICksXG4gICAgICAgICAgY2VsbEVkaXRvcjogU2t5QWdHcmlkQ2VsbEVkaXRvck51bWJlckNvbXBvbmVudCxcbiAgICAgICAgICBoZWFkZXJDbGFzczogU2t5SGVhZGVyQ2xhc3MuUmlnaHRBbGlnbmVkLFxuICAgICAgICB9LFxuICAgICAgICBbU2t5Q2VsbFR5cGUuUm93U2VsZWN0b3JdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuUm93U2VsZWN0b3JdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgICBbU2t5Q2VsbENsYXNzLlVuZWRpdGFibGVdOiBjZWxsQ2xhc3NSdWxlVHJ1ZUV4cHJlc3Npb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjZWxsUmVuZGVyZXI6IFNreUFnR3JpZENlbGxSZW5kZXJlclJvd1NlbGVjdG9yQ29tcG9uZW50LFxuICAgICAgICAgIGhlYWRlck5hbWU6ICcnLFxuICAgICAgICAgIG1pbldpZHRoOiA1NSxcbiAgICAgICAgICBtYXhXaWR0aDogNTUsXG4gICAgICAgICAgc29ydGFibGU6IGZhbHNlLFxuICAgICAgICAgIHdpZHRoOiA1NSxcbiAgICAgICAgfSxcbiAgICAgICAgW1NreUNlbGxUeXBlLlRleHRdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIFtTa3lDZWxsQ2xhc3MuVGV4dF06IGNlbGxDbGFzc1J1bGVUcnVlRXhwcmVzc2lvbixcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxFZGl0b3I6IFNreUFnR3JpZENlbGxFZGl0b3JUZXh0Q29tcG9uZW50LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICAgIFtTa3lDZWxsVHlwZS5WYWxpZGF0b3JdOiB7XG4gICAgICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgICAgIC4uLnZhbGlkYXRvckNlbGxDbGFzc1J1bGVzLFxuICAgICAgICAgICAgLi4uZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNlbGxSZW5kZXJlclNlbGVjdG9yOiBnZXRWYWxpZGF0b3JDZWxsUmVuZGVyZXJTZWxlY3RvcihcbiAgICAgICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLXZhbGlkYXRvci10b29sdGlwJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbERlZjoge1xuICAgICAgICBjZWxsQ2xhc3NSdWxlczogZWRpdGFibGVDZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBTa3lBZ0dyaWRIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIG1pbldpZHRoOiAxMDAsXG4gICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgIHN1cHByZXNzSGVhZGVyS2V5Ym9hcmRFdmVudDogKFxuICAgICAgICAgIGtleXByZXNzOiBTdXBwcmVzc0hlYWRlcktleWJvYXJkRXZlbnRQYXJhbXNcbiAgICAgICAgKSA9PiBrZXlwcmVzcy5ldmVudC5jb2RlID09PSAnVGFiJyxcbiAgICAgICAgc3VwcHJlc3NLZXlib2FyZEV2ZW50OiAoa2V5cHJlc3M6IFN1cHByZXNzS2V5Ym9hcmRFdmVudFBhcmFtcykgPT5cbiAgICAgICAgICB0aGlzLiNzdXBwcmVzc1RhYihrZXlwcmVzcyksXG4gICAgICB9LFxuICAgICAgZGVmYXVsdENvbEdyb3VwRGVmOiB7XG4gICAgICAgIGhlYWRlckdyb3VwQ29tcG9uZW50OiBTa3lBZ0dyaWRIZWFkZXJHcm91cENvbXBvbmVudCxcbiAgICAgIH0sXG4gICAgICBkb21MYXlvdXQ6ICdhdXRvSGVpZ2h0JyxcbiAgICAgIGVuc3VyZURvbU9yZGVyOiB0cnVlLFxuICAgICAgZW50ZXJNb3Zlc0Rvd25BZnRlckVkaXQ6IHRydWUsXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICdza3ktYWctZ3JpZC1jZWxsLXJlbmRlcmVyLWN1cnJlbmN5JzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeUNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItY3VycmVuY3ktdmFsaWRhdG9yJzpcbiAgICAgICAgICBTa3lBZ0dyaWRDZWxsUmVuZGVyZXJDdXJyZW5jeVZhbGlkYXRvckNvbXBvbmVudCxcbiAgICAgICAgJ3NreS1hZy1ncmlkLWNlbGwtcmVuZGVyZXItdmFsaWRhdG9yLXRvb2x0aXAnOlxuICAgICAgICAgIFNreUFnR3JpZENlbGxSZW5kZXJlclZhbGlkYXRvclRvb2x0aXBDb21wb25lbnQsXG4gICAgICB9LFxuICAgICAgZ2V0Um93SWQ6IChwYXJhbXMpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YUlkID0gcGFyYW1zLmRhdGEuaWQ7XG4gICAgICAgIGlmIChkYXRhSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiBgJHtwYXJhbXMuZGF0YS5pZH1gO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy4ja2V5TWFwLmhhcyhwYXJhbXMuZGF0YSkpIHtcbiAgICAgICAgICB0aGlzLiNrZXlNYXAuc2V0KHBhcmFtcy5kYXRhLCBgJHtyb3dOb2RlSWQtLX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy4ja2V5TWFwLmdldChwYXJhbXMuZGF0YSkgYXMgc3RyaW5nO1xuICAgICAgfSxcbiAgICAgIGdldFJvd0NsYXNzOiAocGFyYW1zOiBSb3dDbGFzc1BhcmFtcykgPT4ge1xuICAgICAgICBpZiAocGFyYW1zLm5vZGUuaWQpIHtcbiAgICAgICAgICByZXR1cm4gYHNreS1hZy1ncmlkLXJvdy0ke3BhcmFtcy5ub2RlLmlkfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGhlYWRlckhlaWdodDogdGhpcy5nZXRIZWFkZXJIZWlnaHQoKSxcbiAgICAgIGljb25zOiB7XG4gICAgICAgIHNvcnREZXNjZW5kaW5nOiB0aGlzLiNnZXRJY29uVGVtcGxhdGUoJ3NvcnREZXNjZW5kaW5nJyksXG4gICAgICAgIHNvcnRBc2NlbmRpbmc6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnc29ydEFzY2VuZGluZycpLFxuICAgICAgICBjb2x1bW5Nb3ZlTW92ZTogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlTW92ZScpLFxuICAgICAgICBjb2x1bW5Nb3ZlSGlkZTogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlSGlkZScpLFxuICAgICAgICBjb2x1bW5Nb3ZlTGVmdDogdGhpcy4jZ2V0SWNvblRlbXBsYXRlKCdjb2x1bW5Nb3ZlTGVmdCcpLFxuICAgICAgICBjb2x1bW5Nb3ZlUmlnaHQ6IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZVJpZ2h0JyksXG4gICAgICAgIGNvbHVtbk1vdmVQaW46IHRoaXMuI2dldEljb25UZW1wbGF0ZSgnY29sdW1uTW92ZVBpbicpLFxuICAgICAgfSxcbiAgICAgIG9uQ2VsbEZvY3VzZWQ6ICgpID0+IHRoaXMuI29uQ2VsbEZvY3VzZWQoKSxcbiAgICAgIHJvd0hlaWdodDogdGhpcy4jZ2V0Um93SGVpZ2h0KCksXG4gICAgICBnZXRSb3dIZWlnaHQ6ICgpID0+IHRoaXMuI2dldFJvd0hlaWdodCgpLFxuICAgICAgcm93TXVsdGlTZWxlY3RXaXRoQ2xpY2s6IHRydWUsXG4gICAgICByb3dTZWxlY3Rpb246ICdtdWx0aXBsZScsXG4gICAgICBzaW5nbGVDbGlja0VkaXQ6IHRydWUsXG4gICAgICBzb3J0aW5nT3JkZXI6IFsnZGVzYycsICdhc2MnLCBudWxsXSxcbiAgICAgIHN1cHByZXNzUm93Q2xpY2tTZWxlY3Rpb246IHRydWUsXG4gICAgICBzdXBwcmVzc0RyYWdMZWF2ZUhpZGVzQ29sdW1uczogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29sdW1uVHlwZXMgPSBkZWZhdWx0U2t5R3JpZE9wdGlvbnMuY29sdW1uVHlwZXMgYXMgUmVjb3JkPFxuICAgICAgc3RyaW5nLFxuICAgICAgQ29sRGVmXG4gICAgPjtcblxuICAgIGNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5VmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLkN1cnJlbmN5XSxcbiAgICAgIGNlbGxSZW5kZXJlclBhcmFtczoge1xuICAgICAgICBza3lDb21wb25lbnRQcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgdmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICAgICAgcmV0dXJuICEhYCR7dmFsdWUgfHwgJyd9YC5tYXRjaCgvXlteMC05XSooXFxkK1ssLl0/KStcXGQqW14wLTldKiQvKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhbGlkYXRvck1lc3NhZ2U6ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBjdXJyZW5jeScsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHRoaXMuI3Jlc291cmNlcykge1xuICAgICAgdGhpcy4jcmVzb3VyY2VzXG4gICAgICAgIC5nZXRTdHJpbmcoJ3NreV9hZ19ncmlkX2NlbGxfcmVuZGVyZXJfY3VycmVuY3lfdmFsaWRhdG9yX21lc3NhZ2UnKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbHVtblR5cGVzW1xuICAgICAgICAgICAgU2t5Q2VsbFR5cGUuQ3VycmVuY3lWYWxpZGF0b3JcbiAgICAgICAgICBdLmNlbGxSZW5kZXJlclBhcmFtcy5za3lDb21wb25lbnRQcm9wZXJ0aWVzLnZhbGlkYXRvck1lc3NhZ2UgPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXSA9IHtcbiAgICAgIC4uLmNvbHVtblR5cGVzW1NreUNlbGxUeXBlLlZhbGlkYXRvcl0sXG4gICAgICAuLi5jb2x1bW5UeXBlc1tTa3lDZWxsVHlwZS5OdW1iZXJdLFxuICAgICAgY2VsbENsYXNzUnVsZXM6IHtcbiAgICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuVmFsaWRhdG9yXS5jZWxsQ2xhc3NSdWxlcyxcbiAgICAgICAgLi4uY29sdW1uVHlwZXNbU2t5Q2VsbFR5cGUuTnVtYmVyXS5jZWxsQ2xhc3NSdWxlcyxcbiAgICAgIH0sXG4gICAgICBjZWxsUmVuZGVyZXJQYXJhbXM6IHtcbiAgICAgICAgc2t5Q29tcG9uZW50UHJvcGVydGllczoge1xuICAgICAgICAgIHZhbGlkYXRvcjogKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhIXZhbHVlICYmICFpc05hTihwYXJzZUZsb2F0KHZhbHVlKSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB2YWxpZGF0b3JNZXNzYWdlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgICBpZiAodGhpcy4jcmVzb3VyY2VzKSB7XG4gICAgICB0aGlzLiNyZXNvdXJjZXNcbiAgICAgICAgLmdldFN0cmluZygnc2t5X2FnX2dyaWRfY2VsbF9yZW5kZXJlcl9udW1iZXJfdmFsaWRhdG9yX21lc3NhZ2UnKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGNvbHVtblR5cGVzW1xuICAgICAgICAgICAgU2t5Q2VsbFR5cGUuTnVtYmVyVmFsaWRhdG9yXG4gICAgICAgICAgXS5jZWxsUmVuZGVyZXJQYXJhbXMuc2t5Q29tcG9uZW50UHJvcGVydGllcy52YWxpZGF0b3JNZXNzYWdlID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0U2t5R3JpZE9wdGlvbnM7XG4gIH1cblxuICAjb25DZWxsRm9jdXNlZCgpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RWxlbWVudCA9IHRoaXMuI2FnR3JpZEFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzZWRFbGVtZW50KCk7XG5cbiAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5mb2N1c09uRm9jdXNhYmxlQ2hpbGRyZW4oY3VycmVudEVsZW1lbnQpO1xuICB9XG5cbiAgI2dldERlZmF1bHRFZGl0YWJsZUdyaWRPcHRpb25zKGFyZ3M6IFNreUdldEdyaWRPcHRpb25zQXJncyk6IEdyaWRPcHRpb25zIHtcbiAgICBjb25zdCBkZWZhdWx0R3JpZE9wdGlvbnMgPSB0aGlzLiNnZXREZWZhdWx0R3JpZE9wdGlvbnMoYXJncyk7XG5cbiAgICBkZWZhdWx0R3JpZE9wdGlvbnMucm93U2VsZWN0aW9uID0gdW5kZWZpbmVkO1xuXG4gICAgcmV0dXJuIGRlZmF1bHRHcmlkT3B0aW9ucztcbiAgfVxuXG4gICNkYXRlRm9ybWF0dGVyKFxuICAgIHBhcmFtczogVmFsdWVGb3JtYXR0ZXJQYXJhbXMsXG4gICAgbG9jYWxlOiBzdHJpbmcgPSAnZW4tdXMnXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgZGF0ZUNvbmZpZyA9IHsgeWVhcjogJ251bWVyaWMnLCBtb250aDogJzItZGlnaXQnLCBkYXk6ICcyLWRpZ2l0JyB9O1xuICAgIGxldCBkYXRlOiBEYXRlID0gcGFyYW1zLnZhbHVlO1xuXG4gICAgaWYgKGRhdGUgJiYgdHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUocGFyYW1zLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID1cbiAgICAgIGRhdGUgJiZcbiAgICAgIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nICYmXG4gICAgICBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIGRhdGVDb25maWcgYXMgSW50bC5EYXRlVGltZUZvcm1hdE9wdGlvbnMpO1xuXG4gICAgaWYgKGRhdGUgJiYgZGF0ZS5nZXRUaW1lICYmICFpc05hTihkYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiBmb3JtYXR0ZWREYXRlO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gICNnZXRJY29uVGVtcGxhdGUoaWNvbk5hbWU6IGtleW9mIEljb25NYXBUeXBlKTogKCkgPT4gc3RyaW5nIHtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaWNvbiA9IGljb25NYXBbaWNvbk5hbWVdO1xuICAgICAgaWYgKHRoaXMuI2N1cnJlbnRUaGVtZT8udGhlbWUubmFtZSA9PT0gJ21vZGVybicgJiYgaWNvbi5za3lJY29uKSB7XG4gICAgICAgIHJldHVybiBgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJza3ktaS0ke2ljb24uc2t5SWNvbn1cIj48L2k+YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJmYSBmYS0ke2ljb24uZmFJY29ufVwiPjwvaT5gO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAjc3VwcHJlc3NUYWIocGFyYW1zOiBTdXBwcmVzc0tleWJvYXJkRXZlbnRQYXJhbXMpOiBib29sZWFuIHtcbiAgICBpZiAocGFyYW1zLmV2ZW50LmNvZGUgPT09ICdUYWInKSB7XG4gICAgICBpZiAocGFyYW1zLmVkaXRpbmcpIHtcbiAgICAgICAgY29uc3QgY3VycmVudGx5Rm9jdXNlZEVsID1cbiAgICAgICAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRGb2N1c2VkRWxlbWVudCgpO1xuICAgICAgICAvLyBpbmxpbmUgY2VsbCBlZGl0b3JzIGhhdmUgdGhlICdhZy1jZWxsJyBjbGFzcywgd2hpbGUgcG9wdXAgZWRpdG9ycyBoYXZlIHRoZSAnYWctcG9wdXAtZWRpdG9yJyBjbGFzc1xuICAgICAgICBjb25zdCBjZWxsRWwgPSB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXRFbGVtZW50T3JQYXJlbnRXaXRoQ2xhc3MoXG4gICAgICAgICAgY3VycmVudGx5Rm9jdXNlZEVsLFxuICAgICAgICAgICdhZy1jZWxsJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwb3B1cEVsID0gdGhpcy4jYWdHcmlkQWRhcHRlclNlcnZpY2UuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKFxuICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAnYWctcG9wdXAtZWRpdG9yJ1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwYXJlbnRFbCA9IGNlbGxFbCB8fCBwb3B1cEVsO1xuXG4gICAgICAgIGNvbnN0IG5leHRGb2N1c2FibGVFbGVtZW50SW5DZWxsID1cbiAgICAgICAgICB0aGlzLiNhZ0dyaWRBZGFwdGVyU2VydmljZS5nZXROZXh0Rm9jdXNhYmxlRWxlbWVudChcbiAgICAgICAgICAgIGN1cnJlbnRseUZvY3VzZWRFbCxcbiAgICAgICAgICAgIHBhcmVudEVsLFxuICAgICAgICAgICAgcGFyYW1zLmV2ZW50LnNoaWZ0S2V5XG4gICAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuICEhbmV4dEZvY3VzYWJsZUVsZW1lbnRJbkNlbGw7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgI2dldFJvd0hlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLiNjdXJyZW50VGhlbWU/LnRoZW1lPy5uYW1lID09PSAnbW9kZXJuJyA/IDYwIDogMzg7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,70 @@
1
+ export const iconMap = {
2
+ sortDescending: {
3
+ faIcon: 'caret-down',
4
+ skyIcon: 'chevron-down',
5
+ },
6
+ sortAscending: {
7
+ faIcon: 'caret-up',
8
+ skyIcon: 'chevron-up',
9
+ },
10
+ columnMoveMove: {
11
+ faIcon: 'arrows',
12
+ },
13
+ columnMoveHide: {
14
+ faIcon: 'eye-slash',
15
+ skyIcon: 'hide',
16
+ },
17
+ columnMoveLeft: {
18
+ faIcon: 'arrows',
19
+ },
20
+ columnMoveRight: {
21
+ faIcon: 'arrows',
22
+ },
23
+ columnMoveGroup: {
24
+ faIcon: 'arrows',
25
+ },
26
+ columnMovePin: {
27
+ faIcon: 'arrows',
28
+ },
29
+ columnGroupOpened: {
30
+ faIcon: 'caret-right',
31
+ skyIcon: 'double-chevron-right',
32
+ },
33
+ columnGroupClosed: {
34
+ faIcon: 'caret-left',
35
+ skyIcon: 'double-chevron-left',
36
+ },
37
+ dropNotAllowed: {
38
+ faIcon: 'ban',
39
+ skyIcon: 'ban',
40
+ },
41
+ menu: {
42
+ faIcon: 'menu',
43
+ skyIcon: 'bars-2',
44
+ },
45
+ filter: {
46
+ faIcon: 'filter',
47
+ skyIcon: 'filter',
48
+ },
49
+ columns: {
50
+ faIcon: 'columns',
51
+ skyIcon: 'columns',
52
+ },
53
+ last: {
54
+ faIcon: 'step-forward',
55
+ skyIcon: 'double-chevron-right',
56
+ },
57
+ next: {
58
+ faIcon: 'caret-right',
59
+ skyIcon: 'chevron-right',
60
+ },
61
+ previous: {
62
+ faIcon: 'caret-left',
63
+ skyIcon: 'chevron-left',
64
+ },
65
+ first: {
66
+ faIcon: 'step-backward',
67
+ skyIcon: 'double-chevron-left',
68
+ },
69
+ };
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1tYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYWctZ3JpZC9zcmMvbGliL21vZHVsZXMvYWctZ3JpZC9pY29ucy9pY29uLW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBS2hCO0lBQ0YsY0FBYyxFQUFFO1FBQ2QsTUFBTSxFQUFFLFlBQVk7UUFDcEIsT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFDRCxhQUFhLEVBQUU7UUFDYixNQUFNLEVBQUUsVUFBVTtRQUNsQixPQUFPLEVBQUUsWUFBWTtLQUN0QjtJQUNELGNBQWMsRUFBRTtRQUNkLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsTUFBTSxFQUFFLFdBQVc7UUFDbkIsT0FBTyxFQUFFLE1BQU07S0FDaEI7SUFDRCxjQUFjLEVBQUU7UUFDZCxNQUFNLEVBQUUsUUFBUTtLQUNqQjtJQUNELGVBQWUsRUFBRTtRQUNmLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsTUFBTSxFQUFFLFFBQVE7S0FDakI7SUFDRCxhQUFhLEVBQUU7UUFDYixNQUFNLEVBQUUsUUFBUTtLQUNqQjtJQUNELGlCQUFpQixFQUFFO1FBQ2pCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLE9BQU8sRUFBRSxzQkFBc0I7S0FDaEM7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixNQUFNLEVBQUUsWUFBWTtRQUNwQixPQUFPLEVBQUUscUJBQXFCO0tBQy9CO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsTUFBTSxFQUFFLEtBQUs7UUFDYixPQUFPLEVBQUUsS0FBSztLQUNmO0lBQ0QsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUUsUUFBUTtLQUNsQjtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE9BQU8sRUFBRSxRQUFRO0tBQ2xCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsTUFBTSxFQUFFLFNBQVM7UUFDakIsT0FBTyxFQUFFLFNBQVM7S0FDbkI7SUFDRCxJQUFJLEVBQUU7UUFDSixNQUFNLEVBQUUsY0FBYztRQUN0QixPQUFPLEVBQUUsc0JBQXNCO0tBQ2hDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osTUFBTSxFQUFFLGFBQWE7UUFDckIsT0FBTyxFQUFFLGVBQWU7S0FDekI7SUFDRCxRQUFRLEVBQUU7UUFDUixNQUFNLEVBQUUsWUFBWTtRQUNwQixPQUFPLEVBQUUsY0FBYztLQUN4QjtJQUNELEtBQUssRUFBRTtRQUNMLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUI7S0FDL0I7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGljb25NYXA6IHtcbiAgW2tleTogc3RyaW5nXToge1xuICAgIGZhSWNvbjogc3RyaW5nO1xuICAgIHNreUljb24/OiBzdHJpbmc7XG4gIH07XG59ID0ge1xuICBzb3J0RGVzY2VuZGluZzoge1xuICAgIGZhSWNvbjogJ2NhcmV0LWRvd24nLFxuICAgIHNreUljb246ICdjaGV2cm9uLWRvd24nLFxuICB9LFxuICBzb3J0QXNjZW5kaW5nOiB7XG4gICAgZmFJY29uOiAnY2FyZXQtdXAnLFxuICAgIHNreUljb246ICdjaGV2cm9uLXVwJyxcbiAgfSxcbiAgY29sdW1uTW92ZU1vdmU6IHtcbiAgICBmYUljb246ICdhcnJvd3MnLFxuICB9LFxuICBjb2x1bW5Nb3ZlSGlkZToge1xuICAgIGZhSWNvbjogJ2V5ZS1zbGFzaCcsXG4gICAgc2t5SWNvbjogJ2hpZGUnLFxuICB9LFxuICBjb2x1bW5Nb3ZlTGVmdDoge1xuICAgIGZhSWNvbjogJ2Fycm93cycsXG4gIH0sXG4gIGNvbHVtbk1vdmVSaWdodDoge1xuICAgIGZhSWNvbjogJ2Fycm93cycsXG4gIH0sXG4gIGNvbHVtbk1vdmVHcm91cDoge1xuICAgIGZhSWNvbjogJ2Fycm93cycsXG4gIH0sXG4gIGNvbHVtbk1vdmVQaW46IHtcbiAgICBmYUljb246ICdhcnJvd3MnLFxuICB9LFxuICBjb2x1bW5Hcm91cE9wZW5lZDoge1xuICAgIGZhSWNvbjogJ2NhcmV0LXJpZ2h0JyxcbiAgICBza3lJY29uOiAnZG91YmxlLWNoZXZyb24tcmlnaHQnLFxuICB9LFxuICBjb2x1bW5Hcm91cENsb3NlZDoge1xuICAgIGZhSWNvbjogJ2NhcmV0LWxlZnQnLFxuICAgIHNreUljb246ICdkb3VibGUtY2hldnJvbi1sZWZ0JyxcbiAgfSxcbiAgZHJvcE5vdEFsbG93ZWQ6IHtcbiAgICBmYUljb246ICdiYW4nLFxuICAgIHNreUljb246ICdiYW4nLFxuICB9LFxuICBtZW51OiB7XG4gICAgZmFJY29uOiAnbWVudScsXG4gICAgc2t5SWNvbjogJ2JhcnMtMicsXG4gIH0sXG4gIGZpbHRlcjoge1xuICAgIGZhSWNvbjogJ2ZpbHRlcicsXG4gICAgc2t5SWNvbjogJ2ZpbHRlcicsXG4gIH0sXG4gIGNvbHVtbnM6IHtcbiAgICBmYUljb246ICdjb2x1bW5zJyxcbiAgICBza3lJY29uOiAnY29sdW1ucycsXG4gIH0sXG4gIGxhc3Q6IHtcbiAgICBmYUljb246ICdzdGVwLWZvcndhcmQnLFxuICAgIHNreUljb246ICdkb3VibGUtY2hldnJvbi1yaWdodCcsXG4gIH0sXG4gIG5leHQ6IHtcbiAgICBmYUljb246ICdjYXJldC1yaWdodCcsXG4gICAgc2t5SWNvbjogJ2NoZXZyb24tcmlnaHQnLFxuICB9LFxuICBwcmV2aW91czoge1xuICAgIGZhSWNvbjogJ2NhcmV0LWxlZnQnLFxuICAgIHNreUljb246ICdjaGV2cm9uLWxlZnQnLFxuICB9LFxuICBmaXJzdDoge1xuICAgIGZhSWNvbjogJ3N0ZXAtYmFja3dhcmQnLFxuICAgIHNreUljb246ICdkb3VibGUtY2hldnJvbi1sZWZ0JyxcbiAgfSxcbn07XG5leHBvcnQgdHlwZSBJY29uTWFwVHlwZSA9IHR5cGVvZiBpY29uTWFwO1xuIl19
@@ -1263,6 +1263,76 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.11", ngImpo
1263
1263
  args: ['inlineHelpContainer', { read: ElementRef, static: true }]
1264
1264
  }] } });
1265
1265
 
1266
+ const iconMap = {
1267
+ sortDescending: {
1268
+ faIcon: 'caret-down',
1269
+ skyIcon: 'chevron-down',
1270
+ },
1271
+ sortAscending: {
1272
+ faIcon: 'caret-up',
1273
+ skyIcon: 'chevron-up',
1274
+ },
1275
+ columnMoveMove: {
1276
+ faIcon: 'arrows',
1277
+ },
1278
+ columnMoveHide: {
1279
+ faIcon: 'eye-slash',
1280
+ skyIcon: 'hide',
1281
+ },
1282
+ columnMoveLeft: {
1283
+ faIcon: 'arrows',
1284
+ },
1285
+ columnMoveRight: {
1286
+ faIcon: 'arrows',
1287
+ },
1288
+ columnMoveGroup: {
1289
+ faIcon: 'arrows',
1290
+ },
1291
+ columnMovePin: {
1292
+ faIcon: 'arrows',
1293
+ },
1294
+ columnGroupOpened: {
1295
+ faIcon: 'caret-right',
1296
+ skyIcon: 'double-chevron-right',
1297
+ },
1298
+ columnGroupClosed: {
1299
+ faIcon: 'caret-left',
1300
+ skyIcon: 'double-chevron-left',
1301
+ },
1302
+ dropNotAllowed: {
1303
+ faIcon: 'ban',
1304
+ skyIcon: 'ban',
1305
+ },
1306
+ menu: {
1307
+ faIcon: 'menu',
1308
+ skyIcon: 'bars-2',
1309
+ },
1310
+ filter: {
1311
+ faIcon: 'filter',
1312
+ skyIcon: 'filter',
1313
+ },
1314
+ columns: {
1315
+ faIcon: 'columns',
1316
+ skyIcon: 'columns',
1317
+ },
1318
+ last: {
1319
+ faIcon: 'step-forward',
1320
+ skyIcon: 'double-chevron-right',
1321
+ },
1322
+ next: {
1323
+ faIcon: 'caret-right',
1324
+ skyIcon: 'chevron-right',
1325
+ },
1326
+ previous: {
1327
+ faIcon: 'caret-left',
1328
+ skyIcon: 'chevron-left',
1329
+ },
1330
+ first: {
1331
+ faIcon: 'step-backward',
1332
+ skyIcon: 'double-chevron-left',
1333
+ },
1334
+ };
1335
+
1266
1336
  /**
1267
1337
  * @internal
1268
1338
  */
@@ -1634,13 +1704,13 @@ _SkyAgGridService_keyMap = new WeakMap(), _SkyAgGridService_ngUnsubscribe = new
1634
1704
  },
1635
1705
  headerHeight: this.getHeaderHeight(),
1636
1706
  icons: {
1637
- sortDescending: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'caret-down'),
1638
- sortAscending: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'caret-up'),
1639
- columnMoveMove: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
1640
- columnMoveHide: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
1641
- columnMoveLeft: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
1642
- columnMoveRight: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
1643
- columnMovePin: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'arrows'),
1707
+ sortDescending: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'sortDescending'),
1708
+ sortAscending: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'sortAscending'),
1709
+ columnMoveMove: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMoveMove'),
1710
+ columnMoveHide: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMoveHide'),
1711
+ columnMoveLeft: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMoveLeft'),
1712
+ columnMoveRight: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMoveRight'),
1713
+ columnMovePin: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getIconTemplate).call(this, 'columnMovePin'),
1644
1714
  },
1645
1715
  onCellFocused: () => __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_onCellFocused).call(this),
1646
1716
  rowHeight: __classPrivateFieldGet(this, _SkyAgGridService_instances, "m", _SkyAgGridService_getRowHeight).call(this),
@@ -1707,7 +1777,16 @@ _SkyAgGridService_keyMap = new WeakMap(), _SkyAgGridService_ngUnsubscribe = new
1707
1777
  }
1708
1778
  return '';
1709
1779
  }, _SkyAgGridService_getIconTemplate = function _SkyAgGridService_getIconTemplate(iconName) {
1710
- return `<i class="fa fa-${iconName}"></i>`;
1780
+ return () => {
1781
+ var _a;
1782
+ const icon = iconMap[iconName];
1783
+ if (((_a = __classPrivateFieldGet(this, _SkyAgGridService_currentTheme, "f")) === null || _a === void 0 ? void 0 : _a.theme.name) === 'modern' && icon.skyIcon) {
1784
+ return `<i aria-hidden="true" class="sky-i-${icon.skyIcon}"></i>`;
1785
+ }
1786
+ else {
1787
+ return `<i aria-hidden="true" class="fa fa-${icon.faIcon}"></i>`;
1788
+ }
1789
+ };
1711
1790
  }, _SkyAgGridService_suppressTab = function _SkyAgGridService_suppressTab(params) {
1712
1791
  if (params.event.code === 'Tab') {
1713
1792
  if (params.editing) {