@worktile/theia 16.3.13 → 16.3.15

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.
@@ -3,10 +3,10 @@ import { Editor, Element, Transforms } from 'slate';
3
3
  import { ElementKinds, ErrorCodes, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE } from '../../constants';
4
4
  import { getPluginOptions } from '../../core';
5
5
  import { PluginKeys, THE_UPLOAD_SERVICE_TOKEN } from '../../interfaces';
6
+ import * as TheQueries from '../../queries';
6
7
  import { TheContextService } from '../../services/context.service';
7
8
  import * as TheTransforms from '../../transforms';
8
9
  import { base64toBlob } from '../../utils/blob';
9
- import * as TheQueries from '../../queries';
10
10
  export const ImageEditor = {
11
11
  openUpload(editor) {
12
12
  const inputFile = document.createElement('input');
@@ -50,6 +50,23 @@ export const ImageEditor = {
50
50
  file: new File([blob], `${new Date().getTime()}.${ext}`, { type: contentType })
51
51
  });
52
52
  },
53
+ handleExternalImageElement(editor, image) {
54
+ const contextService = editor.injector.get(TheContextService);
55
+ const imageUploaderService = editor.injector.get(THE_UPLOAD_SERVICE_TOKEN);
56
+ const isExternalUrl = image?.hasOwnProperty('externalUrl')
57
+ ? image?.externalUrl
58
+ : imageUploaderService.isExternalUrl?.(image.thumbUrl);
59
+ if (isExternalUrl) {
60
+ const url = image.thumbUrl;
61
+ image.url = url;
62
+ image.externalUrl = url;
63
+ image.thumbUrl = null;
64
+ contextService.addUploadingFiles({
65
+ url: image.url,
66
+ file: image.url
67
+ });
68
+ }
69
+ },
53
70
  verifyImage(editor, image) {
54
71
  if (!PICTURE_ACCEPTED_UPLOAD_MIME.includes(image.type)) {
55
72
  editor.onError({
@@ -85,20 +102,6 @@ export const ImageEditor = {
85
102
  isBase64(url) {
86
103
  return isString(url) && url.includes('base64');
87
104
  },
88
- /**
89
- * 设置图片来源
90
- * @param editor 编辑器对象
91
- * @param image 图片节点
92
- */
93
- setImageSource(editor, image) {
94
- const imageUploaderService = editor.injector.get(THE_UPLOAD_SERVICE_TOKEN);
95
- const externalSource = image?.hasOwnProperty('externalSource')
96
- ? image?.externalSource
97
- : imageUploaderService.isExternalSource?.(image.thumbUrl);
98
- if (externalSource) {
99
- image.externalSource = externalSource;
100
- }
101
- },
102
105
  removeImage(editor, image) {
103
106
  if (image) {
104
107
  TheTransforms.deleteElement(editor, image);
@@ -108,4 +111,4 @@ export const ImageEditor = {
108
111
  }
109
112
  }
110
113
  };
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBUSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDMUQsT0FBTyxFQUVILFlBQVksRUFDWixVQUFVLEVBRVYsNEJBQTRCLEVBQzVCLDRCQUE0QixFQUMvQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUU5QyxPQUFPLEVBQXNCLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN2QixVQUFVLENBQUMsTUFBYztRQUNyQixNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELFNBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZ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S0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBQ0QsUUFBUSxDQUFDLEdBQVc7UUFDaEIsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILGNBQWMsQ0FBQyxNQUFjLEVBQUUsS0FBbUI7UUFDOUMsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxjQUFjLENBQUMsZ0JBQWdCLENBQUM7WUFDMUQsQ0FBQyxDQUFDLEtBQUssRUFBRSxjQUFjO1lBQ3ZCLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLGNBQWMsRUFBRTtZQUNoQixLQUFLLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFDRCxXQUFXLENBQUMsTUFBYyxFQUFFLEtBQW9CO1FBQzVDLElBQUksS0FBSyxFQUFFO1lBQ1AsYUFBYSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDOUM7YUFBTTtZQUNILGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzlEO0lBQ0wsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIFBhdGgsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQge1xuICAgIEFsaWdubWVudCxcbiAgICBFbGVtZW50S2luZHMsXG4gICAgRXJyb3JDb2RlcyxcbiAgICBMYXlvdXRUeXBlcyxcbiAgICBQSUNUVVJFX0FDQ0VQVEVEX1VQTE9BRF9NSU1FLFxuICAgIFBJQ1RVUkVfQUNDRVBURURfVVBMT0FEX1NJWkVcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEltYWdlRWxlbWVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBJbWFnZVBsdWdpbk9wdGlvbnMsIFBsdWdpbktleXMsIFRIRV9VUExPQURfU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgVGhlQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IGJhc2U2NHRvQmxvYiB9IGZyb20gJy4uLy4uL3V0aWxzL2Jsb2InO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcblxuZXhwb3J0IGNvbnN0IEltYWdlRWRpdG9yID0ge1xuICAgIG9wZW5VcGxvYWQoZWRpdG9yOiBFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgaW5wdXRGaWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgaW5wdXRGaWxlLnNldEF0dHJpYnV0ZSgndHlwZScsICdmaWxlJyk7XG4gICAgICAgIGlucHV0RmlsZS5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS8qJyk7XG4gICAgICAgIGlucHV0RmlsZS5zZXRBdHRyaWJ1dGUoJ211bHRpcGxlJywgJ3RydWUnKTtcbiAgICAgICAgaW5wdXRGaWxlLm9uY2hhbmdlID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgSW1hZ2VFZGl0b3IuaW5zZXJ0SW1hZ2VzKGVkaXRvciwgKGV2ZW50LnRhcmdldCBhcyBhbnkpLmZpbGVzKTtcbiAgICAgICAgfTtcbiAgICAgICAgaW5wdXRGaWxlLmNsaWNrKCk7XG4gICAgfSxcbiAgICBpbnNlcnRJbWFnZXMoZWRpdG9yOiBFZGl0b3IsIGltYWdlRmlsZXM6IEZpbGVMaXN0IHwgRmlsZVtdKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGNvbnN0IGltYWdlTm9kZXM6IEVsZW1lbnRbXSA9IFtdO1xuICAgICAgICBjb25zdCB0ZXh0ID0geyB0ZXh0OiAnJyB9O1xuICAgICAgICBmb3IgKGNvbnN0IGltYWdlIG9mIGltYWdlRmlsZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZlcmlmeSA9IEltYWdlRWRpdG9yLnZlcmlmeUltYWdlKGVkaXRvciwgaW1hZ2UpO1xuICAgICAgICAgICAgaWYgKHZlcmlmeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoaW1hZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnRleHRTZXJ2aWNlLmFkZFVwbG9hZGluZ0ZpbGVzKHsgdXJsLCBmaWxlOiBpbWFnZSB9KTtcbiAgICAgICAgICAgICAgICBpbWFnZU5vZGVzLnB1c2goeyB0eXBlOiBFbGVtZW50S2luZHMuaW1hZ2UsIHVybCwgY2hpbGRyZW46IFt0ZXh0XSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaW1hZ2VOb2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLmluc2VydEVsZW1lbnRzKGVkaXRvciwgaW1hZ2VOb2Rlcyk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIGhhbmRsZUJhc2U2NEltYWdlRWxlbWVudChlZGl0b3I6IEVkaXRvciwgaW1hZ2U6IEltYWdlRWxlbWVudCkge1xuICAgICAgICBjb25zdCBpbmRleFNwbGl0ID0gaW1hZ2Uub3JpZ2luVXJsLmluZGV4T2YoJywnKTtcbiAgICAgICAgY29uc3QgYmFzZTY0ID0gaW1hZ2Uub3JpZ2luVXJsLnNsaWNlKGluZGV4U3BsaXQgKyAxKTtcbiAgICAgICAgY29uc3QgY29udGVudFR5cGUgPSBpbWFnZS5vcmlnaW5Vcmwuc3Vic3RyaW5nKGltYWdlLm9yaWdpblVybC5pbmRleE9mKCc6JykgKyAxLCBpbWFnZS5vcmlnaW5VcmwuaW5kZXhPZignOycpKTtcbiAgICAgICAgY29uc3QgZXh0ID0gY29udGVudFR5cGUuc3Vic3RyaW5nKGNvbnRlbnRUeXBlLmluZGV4T2YoJy8nKSArIDEpO1xuICAgICAgICBjb25zdCBibG9iID0gYmFzZTY0dG9CbG9iKGJhc2U2NCwgY29udGVudFR5cGUpO1xuICAgICAgICBjb25zdCBibG9iVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgaW1hZ2UudGh1bWJVcmwgPSBibG9iVXJsO1xuICAgICAgICBpbWFnZS5vcmlnaW5VcmwgPSBibG9iVXJsO1xuICAgICAgICBpbWFnZS51cmwgPSBibG9iVXJsO1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb250ZXh0U2VydmljZS5hZGRVcGxvYWRpbmdGaWxlcyh7XG4gICAgICAgICAgICB1cmw6IGJsb2JVcmwsXG4gICAgICAgICAgICBmaWxlOiBuZXcgRmlsZShbYmxvYl0sIGAke25ldyBEYXRlKCkuZ2V0VGltZSgpfS4ke2V4dH1gLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pXG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgdmVyaWZ5SW1hZ2UoZWRpdG9yOiBFZGl0b3IsIGltYWdlOiBGaWxlKSB7XG4gICAgICAgIGlmICghUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfTUlNRS5pbmNsdWRlcyhpbWFnZS50eXBlKSkge1xuICAgICAgICAgICAgZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6IEVycm9yQ29kZXMuSU1BR0VfRVJSX01JTUVfRk9STUFUXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY2NlcHRlZFVwbG9hZFNpemUgPVxuICAgICAgICAgICAgZ2V0UGx1Z2luT3B0aW9uczxJbWFnZVBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5pbWFnZSk/LmFjY2VwdGVkVXBsb2FkU2l6ZSA/PyBQSUNUVVJFX0FDQ0VQVEVEX1VQTE9BRF9TSVpFO1xuICAgICAgICBpZiAoaW1hZ2Uuc2l6ZSAvIDEwMDAwMDAgPj0gYWNjZXB0ZWRVcGxvYWRTaXplKSB7XG4gICAgICAgICAgICBlZGl0b3Iub25FcnJvcih7XG4gICAgICAgICAgICAgICAgY29kZTogRXJyb3JDb2Rlcy5JTUFHRV9FUlJfU0laRV9MSU1JVFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBpc0FjdGl2ZShlZGl0b3I6IEVkaXRvcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuaW1hZ2UsXG4gICAgICAgICAgICB1bml2ZXJzYWw6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAhIW1hdGNoO1xuICAgIH0sXG4gICAgc2V0SW1hZ2VOb2RlKGVkaXRvcjogRWRpdG9yLCBwcm9wczogUGFydGlhbDxJbWFnZUVsZW1lbnQ+LCBpbWFnZT86IEltYWdlRWxlbWVudCkge1xuICAgICAgICBpZiAoIWltYWdlKSB7XG4gICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLnNldE5vZGVCeVR5cGUoZWRpdG9yLCBwcm9wcywgRWxlbWVudEtpbmRzLmltYWdlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVRdWVyaWVzLmZpbmRQYXRoKGVkaXRvciwgaW1hZ2UpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHByb3BzLCB7IGF0OiBwYXRoIH0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBpc0Jhc2U2NCh1cmw6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmcodXJsKSAmJiB1cmwuaW5jbHVkZXMoJ2Jhc2U2NCcpO1xuICAgIH0sXG4gICAgLyoqXG4gICAgICog6K6+572u5Zu+54mH5p2l5rqQXG4gICAgICogQHBhcmFtIGVkaXRvciDnvJbovpHlmajlr7nosaFcbiAgICAgKiBAcGFyYW0gaW1hZ2Ug5Zu+54mH6IqC54K5XG4gICAgICovXG4gICAgc2V0SW1hZ2VTb3VyY2UoZWRpdG9yOiBFZGl0b3IsIGltYWdlOiBJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaW1hZ2VVcGxvYWRlclNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRIRV9VUExPQURfU0VSVklDRV9UT0tFTik7XG4gICAgICAgIGNvbnN0IGV4dGVybmFsU291cmNlID0gaW1hZ2U/Lmhhc093blByb3BlcnR5KCdleHRlcm5hbFNvdXJjZScpXG4gICAgICAgICAgICA/IGltYWdlPy5leHRlcm5hbFNvdXJjZVxuICAgICAgICAgICAgOiBpbWFnZVVwbG9hZGVyU2VydmljZS5pc0V4dGVybmFsU291cmNlPy4oaW1hZ2UudGh1bWJVcmwpO1xuICAgICAgICBpZiAoZXh0ZXJuYWxTb3VyY2UpIHtcbiAgICAgICAgICAgIGltYWdlLmV4dGVybmFsU291cmNlID0gZXh0ZXJuYWxTb3VyY2U7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIHJlbW92ZUltYWdlKGVkaXRvcjogRWRpdG9yLCBpbWFnZT86IEltYWdlRWxlbWVudCkge1xuICAgICAgICBpZiAoaW1hZ2UpIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuZGVsZXRlRWxlbWVudChlZGl0b3IsIGltYWdlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuZGVsZXRlTm9kZUJ5VHlwZShlZGl0b3IsIEVsZW1lbnRLaW5kcy5pbWFnZSk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvaW1hZ2UvaW1hZ2UuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsNEJBQTRCLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFOUMsT0FBTyxFQUFzQixVQUFVLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RixPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsVUFBVSxDQUFDLE1BQWM7UUFDckIsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1QyxTQUFTLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMzQyxTQUFTLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFD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LGdCQUFnQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUQ7SUFDTCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcywgRXJyb3JDb2RlcywgUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfTUlNRSwgUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfU0laRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBJbWFnZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgSW1hZ2VQbHVnaW5PcHRpb25zLCBQbHVnaW5LZXlzLCBUSEVfVVBMT0FEX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgYmFzZTY0dG9CbG9iIH0gZnJvbSAnLi4vLi4vdXRpbHMvYmxvYic7XG5cbmV4cG9ydCBjb25zdCBJbWFnZUVkaXRvciA9IHtcbiAgICBvcGVuVXBsb2FkKGVkaXRvcjogRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGlucHV0RmlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGlucHV0RmlsZS5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnZmlsZScpO1xuICAgICAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCdhY2NlcHQnLCAnaW1hZ2UvKicpO1xuICAgICAgICBpbnB1dEZpbGUuc2V0QXR0cmlidXRlKCdtdWx0aXBsZScsICd0cnVlJyk7XG4gICAgICAgIGlucHV0RmlsZS5vbmNoYW5nZSA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgICAgICAgIEltYWdlRWRpdG9yLmluc2VydEltYWdlcyhlZGl0b3IsIChldmVudC50YXJnZXQgYXMgYW55KS5maWxlcyk7XG4gICAgICAgIH07XG4gICAgICAgIGlucHV0RmlsZS5jbGljaygpO1xuICAgIH0sXG4gICAgaW5zZXJ0SW1hZ2VzKGVkaXRvcjogRWRpdG9yLCBpbWFnZUZpbGVzOiBGaWxlTGlzdCB8IEZpbGVbXSkge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb25zdCBpbWFnZU5vZGVzOiBFbGVtZW50W10gPSBbXTtcbiAgICAgICAgY29uc3QgdGV4dCA9IHsgdGV4dDogJycgfTtcbiAgICAgICAgZm9yIChjb25zdCBpbWFnZSBvZiBpbWFnZUZpbGVzKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJpZnkgPSBJbWFnZUVkaXRvci52ZXJpZnlJbWFnZShlZGl0b3IsIGltYWdlKTtcbiAgICAgICAgICAgIGlmICh2ZXJpZnkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGltYWdlKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0U2VydmljZS5hZGRVcGxvYWRpbmdGaWxlcyh7IHVybCwgZmlsZTogaW1hZ2UgfSk7XG4gICAgICAgICAgICAgICAgaW1hZ2VOb2Rlcy5wdXNoKHsgdHlwZTogRWxlbWVudEtpbmRzLmltYWdlLCB1cmwsIGNoaWxkcmVuOiBbdGV4dF0gfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGltYWdlTm9kZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5pbnNlcnRFbGVtZW50cyhlZGl0b3IsIGltYWdlTm9kZXMpO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBoYW5kbGVCYXNlNjRJbWFnZUVsZW1lbnQoZWRpdG9yOiBFZGl0b3IsIGltYWdlOiBJbWFnZUVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgaW5kZXhTcGxpdCA9IGltYWdlLm9yaWdpblVybC5pbmRleE9mKCcsJyk7XG4gICAgICAgIGNvbnN0IGJhc2U2NCA9IGltYWdlLm9yaWdpblVybC5zbGljZShpbmRleFNwbGl0ICsgMSk7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gaW1hZ2Uub3JpZ2luVXJsLnN1YnN0cmluZyhpbWFnZS5vcmlnaW5VcmwuaW5kZXhPZignOicpICsgMSwgaW1hZ2Uub3JpZ2luVXJsLmluZGV4T2YoJzsnKSk7XG4gICAgICAgIGNvbnN0IGV4dCA9IGNvbnRlbnRUeXBlLnN1YnN0cmluZyhjb250ZW50VHlwZS5pbmRleE9mKCcvJykgKyAxKTtcbiAgICAgICAgY29uc3QgYmxvYiA9IGJhc2U2NHRvQmxvYihiYXNlNjQsIGNvbnRlbnRUeXBlKTtcbiAgICAgICAgY29uc3QgYmxvYlVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgIGltYWdlLnRodW1iVXJsID0gYmxvYlVybDtcbiAgICAgICAgaW1hZ2Uub3JpZ2luVXJsID0gYmxvYlVybDtcbiAgICAgICAgaW1hZ2UudXJsID0gYmxvYlVybDtcbiAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgY29udGV4dFNlcnZpY2UuYWRkVXBsb2FkaW5nRmlsZXMoe1xuICAgICAgICAgICAgdXJsOiBibG9iVXJsLFxuICAgICAgICAgICAgZmlsZTogbmV3IEZpbGUoW2Jsb2JdLCBgJHtuZXcgRGF0ZSgpLmdldFRpbWUoKX0uJHtleHR9YCwgeyB0eXBlOiBjb250ZW50VHlwZSB9KVxuICAgICAgICB9KTtcbiAgICB9LFxuICAgIGhhbmRsZUV4dGVybmFsSW1hZ2VFbGVtZW50KGVkaXRvcjogRWRpdG9yLCBpbWFnZTogSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGNvbnN0IGltYWdlVXBsb2FkZXJTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUSEVfVVBMT0FEX1NFUlZJQ0VfVE9LRU4pO1xuICAgICAgICBjb25zdCBpc0V4dGVybmFsVXJsID0gaW1hZ2U/Lmhhc093blByb3BlcnR5KCdleHRlcm5hbFVybCcpXG4gICAgICAgICAgICA/IGltYWdlPy5leHRlcm5hbFVybFxuICAgICAgICAgICAgOiBpbWFnZVVwbG9hZGVyU2VydmljZS5pc0V4dGVybmFsVXJsPy4oaW1hZ2UudGh1bWJVcmwpO1xuXG4gICAgICAgIGlmIChpc0V4dGVybmFsVXJsKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBpbWFnZS50aHVtYlVybDtcbiAgICAgICAgICAgIGltYWdlLnVybCA9IHVybDtcbiAgICAgICAgICAgIGltYWdlLmV4dGVybmFsVXJsID0gdXJsO1xuICAgICAgICAgICAgaW1hZ2UudGh1bWJVcmwgPSBudWxsO1xuXG4gICAgICAgICAgICBjb250ZXh0U2VydmljZS5hZGRVcGxvYWRpbmdGaWxlcyh7XG4gICAgICAgICAgICAgICAgdXJsOiBpbWFnZS51cmwsXG4gICAgICAgICAgICAgICAgZmlsZTogaW1hZ2UudXJsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgdmVyaWZ5SW1hZ2UoZWRpdG9yOiBFZGl0b3IsIGltYWdlOiBGaWxlKSB7XG4gICAgICAgIGlmICghUElDVFVSRV9BQ0NFUFRFRF9VUExPQURfTUlNRS5pbmNsdWRlcyhpbWFnZS50eXBlKSkge1xuICAgICAgICAgICAgZWRpdG9yLm9uRXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6IEVycm9yQ29kZXMuSU1BR0VfRVJSX01JTUVfRk9STUFUXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY2NlcHRlZFVwbG9hZFNpemUgPVxuICAgICAgICAgICAgZ2V0UGx1Z2luT3B0aW9uczxJbWFnZVBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5pbWFnZSk/LmFjY2VwdGVkVXBsb2FkU2l6ZSA/PyBQSUNUVVJFX0FDQ0VQVEVEX1VQTE9BRF9TSVpFO1xuICAgICAgICBpZiAoaW1hZ2Uuc2l6ZSAvIDEwMDAwMDAgPj0gYWNjZXB0ZWRVcGxvYWRTaXplKSB7XG4gICAgICAgICAgICBlZGl0b3Iub25FcnJvcih7XG4gICAgICAgICAgICAgICAgY29kZTogRXJyb3JDb2Rlcy5JTUFHRV9FUlJfU0laRV9MSU1JVFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSxcbiAgICBpc0FjdGl2ZShlZGl0b3I6IEVkaXRvcik6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBbbWF0Y2hdID0gRWRpdG9yLm5vZGVzKGVkaXRvciwge1xuICAgICAgICAgICAgbWF0Y2g6IG4gPT4gRWxlbWVudC5pc0VsZW1lbnQobikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMuaW1hZ2UsXG4gICAgICAgICAgICB1bml2ZXJzYWw6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAhIW1hdGNoO1xuICAgIH0sXG4gICAgc2V0SW1hZ2VOb2RlKGVkaXRvcjogRWRpdG9yLCBwcm9wczogUGFydGlhbDxJbWFnZUVsZW1lbnQ+LCBpbWFnZT86IEltYWdlRWxlbWVudCkge1xuICAgICAgICBpZiAoIWltYWdlKSB7XG4gICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLnNldE5vZGVCeVR5cGUoZWRpdG9yLCBwcm9wcywgRWxlbWVudEtpbmRzLmltYWdlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVRdWVyaWVzLmZpbmRQYXRoKGVkaXRvciwgaW1hZ2UpO1xuICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHByb3BzLCB7IGF0OiBwYXRoIH0pO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBpc0Jhc2U2NCh1cmw6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmcodXJsKSAmJiB1cmwuaW5jbHVkZXMoJ2Jhc2U2NCcpO1xuICAgIH0sXG4gICAgcmVtb3ZlSW1hZ2UoZWRpdG9yOiBFZGl0b3IsIGltYWdlPzogSW1hZ2VFbGVtZW50KSB7XG4gICAgICAgIGlmIChpbWFnZSkge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5kZWxldGVFbGVtZW50KGVkaXRvciwgaW1hZ2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5kZWxldGVOb2RlQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmltYWdlKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG4iXX0=
@@ -103,11 +103,11 @@ export const MentionEditor = {
103
103
  scrollStrategy: overlay.scrollStrategies.reposition(),
104
104
  autoAdaptive: true
105
105
  });
106
+ THE_EDITOR_POPOVER_REF.set(editor, popoverRef);
106
107
  popoverRef?.afterClosed().subscribe(() => {
107
108
  MentionEditor.close(editor);
108
109
  });
109
110
  MentionEditor.updatePositionStrategy(editor, isSoftBreak);
110
- THE_EDITOR_POPOVER_REF.set(editor, popoverRef);
111
111
  cdr.markForCheck();
112
112
  },
113
113
  close(editor) {
@@ -171,4 +171,4 @@ export const MentionEditor = {
171
171
  updatePopoverPosition(overlayRef, textElement, [bottomPosition, bottomLeftPosition, topRightPosition, topLeftPosition]);
172
172
  }
173
173
  };
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudGlvbi5lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9tZW50aW9uL21lbnRpb24uZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBVyxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQ3pCLGFBQWEsQ0FBQyxNQUFpQixFQUFFLElBQVk7UUFDekMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBdUIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDOUYsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDNUQsVUFBVSxDQUFDLFVBQVUsQ0FB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QyxDQUFDLEdBQUcsRUFBRTtTQUNuRSxDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO1FBQ3ZFLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uLCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXIgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cywgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgVEhFX0VESVRPUl9PUklHSU5fQU5DSE9SLCBUSEVfRURJVE9SX1BPUE9WRVJfUkVGLCB1cGRhdGVQb3BvdmVyUG9zaXRpb24gfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNZW50aW9uUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vbWVudGlvbi50eXBlJztcblxuZXhwb3J0IGNvbnN0IE1lbnRpb25FZGl0b3IgPSB7XG4gICAgaW5zZXJ0VHJpZ2dlcihlZGl0b3I6IFRoZUVkaXRvciwgdHlwZTogc3RyaW5nKSB7XG4gICAgICAgIE1lbnRpb25FZGl0b3IuY2xvc2UoZWRpdG9yKTtcbiAgICAgICAgY29uc3QgbWVudGlvbnMgPSBnZXRQbHVnaW5PcHRpb25zPE1lbnRpb25QbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMubWVudGlvbik/Lm1lbnRpb25zO1xuICAgICAgICBjb25zdCBjdXJyZW50TWVudGlvbiA9IG1lbnRpb25zLmZpbmQobSA9PiBtPy50eXBlID09PSB0eXBlKTtcbiAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnRUZXh0KGVkaXRvciwgYCAke2N1cnJlbnRNZW50aW9uLnRyaWdnZXJ9YCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgVEhFX0VESVRPUl9PUklHSU5fQU5DSE9SLnNldChlZGl0b3IsIEVkaXRvci5iZWZvcmUoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvcikpO1xuICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2tFbnRyeShlZGl0b3IpWzBdKTtcbiAgICAgICAgICAgIE1lbnRpb25FZGl0b3Iub3BlblNlbGVjdE92ZXJsYXkoZWRpdG9yLCB0eXBlLCB0ZXh0RWxlbWVudCk7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgZGVsZXRlVHJpZ2dlclRleHQoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoSW5mbyA9IE1lbnRpb25FZGl0b3IuZ2V0U2VhcmNoSW5mbyhlZGl0b3IpO1xuICAgICAgICBjb25zdCB7IGN1cnJlbnRSYW5nZSB9ID0gc2VhcmNoSW5mbztcbiAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBjdXJyZW50UmFuZ2UgfSk7XG4gICAgfSxcbiAgICBvcGVuU3VnZ2VzdGlvbihlZGl0b3I6IFRoZUVkaXRvciwgdHlwZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWYgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KEVsZW1lbnRSZWYpO1xuICAgICAgICBjb25zdCBpc1BhcmFncmFwaFN0YXJ0ID0gRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBzZWxlY3Rpb24/LmFuY2hvciwgVGhlUXVlcmllcy5hbmNob3JCbG9ja0VudHJ5KGVkaXRvcilbMV0pO1xuICAgICAgICBjb25zdCBvcmlnaW5BbmNob3IgPSBUSEVfRURJVE9SX09SSUdJTl9BTkNIT1IuZ2V0KGVkaXRvcik7XG4gICAgICAgIGxldCB0ZXh0ID0gJyc7XG5cbiAgICAgICAgaWYgKCFpc1BhcmFncmFwaFN0YXJ0KSB7XG4gICAgICAgICAgICBjb25zdCBiZWZvcmVSYW5nZSA9IHtcbiAgICAgICAgICAgICAgICBhbmNob3I6IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yKSxcbiAgICAgICAgICAgICAgICBmb2N1czogc2VsZWN0aW9uLmZvY3VzXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGV4dCA9IEVkaXRvci5zdHJpbmcoZWRpdG9yLCBiZWZvcmVSYW5nZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1NvZnRCcmVhayA9IHRleHQgPT09ICdcXG4nO1xuICAgICAgICBpZiAoaXNQYXJhZ3JhcGhTdGFydCB8fCB0ZXh0ID09PSAnICcgfHwgaXNTb2Z0QnJlYWspIHtcbiAgICAgICAgICAgIGlmICghb3JpZ2luQW5jaG9yKSB7XG4gICAgICAgICAgICAgICAgVEhFX0VESVRPUl9PUklHSU5fQU5DSE9SLnNldChlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHRFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUoZWRpdG9yLCBUaGVRdWVyaWVzLmFuY2hvckJsb2NrRW50cnkoZWRpdG9yKVswXSk7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW4gPSBpc1BhcmFncmFwaFN0YXJ0ID8gdGV4dEVsZW1lbnQgOiBlbGVtZW50UmVmO1xuICAgICAgICAgICAgTWVudGlvbkVkaXRvci5vcGVuU2VsZWN0T3ZlcmxheShlZGl0b3IsIHR5cGUsIG9yaWdpbiwgaXNTb2Z0QnJlYWspO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRTZWFyY2hJbmZvKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IHBvcG92ZXJSZWYgPSBUSEVfRURJVE9SX1BPUE9WRVJfUkVGLmdldChlZGl0b3IpO1xuICAgICAgICBjb25zdCBvcmlnaW5BbmNob3IgPSBUSEVfRURJVE9SX09SSUdJTl9BTkNIT1IuZ2V0KGVkaXRvcik7XG5cbiAgICAgICAgaWYgKG9yaWdpbkFuY2hvciAmJiBwb3BvdmVyUmVmICYmIHBvcG92ZXJSZWYuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSYW5nZSA9IEVkaXRvci5yYW5nZShlZGl0b3IsIG9yaWdpbkFuY2hvciwgZWRpdG9yLnNlbGVjdGlvbj8uZm9jdXMpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFRleHQgPSBFZGl0b3Iuc3RyaW5nKGVkaXRvciwgY3VycmVudFJhbmdlKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UmFuZ2UsXG4gICAgICAgICAgICAgICAgY3VycmVudFRleHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuICAgIHVwZGF0ZVNlYXJjaFRleHQoZWRpdG9yOiBUaGVFZGl0b3IsIHRleHQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gVEhFX0VESVRPUl9QT1BPVkVSX1JFRi5nZXQoZWRpdG9yKTtcbiAgICAgICAgY29uc3QgbWVudGlvbnMgPSBnZXRQbHVnaW5PcHRpb25zPE1lbnRpb25QbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMubWVudGlvbik/Lm1lbnRpb25zO1xuICAgICAgICBjb25zdCBwYW5lbENsYXNzID0gcG9wb3ZlclJlZi5nZXRPdmVybGF5UmVmKCkuZ2V0Q29uZmlnKCkucGFuZWxDbGFzcztcbiAgICAgICAgY29uc3QgdHlwZSA9IEFycmF5LmlzQXJyYXkocGFuZWxDbGFzcylcbiAgICAgICAgICAgID8gcGFuZWxDbGFzcy5maW5kKGkgPT4gaS5pbmRleE9mKCd0aGUtbWVudGlvbi0nKSA+IC0xKS5zcGxpdCgndGhlLW1lbnRpb24tJylbMV1cbiAgICAgICAgICAgIDogcGFuZWxDbGFzcy5zcGxpdCgndGhlLW1lbnRpb24tJylbMV07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNZW50aW9uID0gbWVudGlvbnMuZmluZChtID0+IG0udHlwZSA9PT0gdHlwZSk7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7Y3VycmVudE1lbnRpb24udHJpZ2dlcn1gKTtcbiAgICAgICAgY29uc3QgYmVmb3JlTWF0Y2ggPSB0ZXh0ICYmIHRleHQubWF0Y2gocmVnZXgpO1xuICAgICAgICBjb25zdCBrZXl3b3JkcyA9IHRleHQuc2xpY2UoMSk7XG4gICAgICAgIGNvbnN0IGNkciA9IGVkaXRvci5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgICAgIGlmIChwb3BvdmVyUmVmPy5jb21wb25lbnRJbnN0YW5jZSAmJiBiZWZvcmVNYXRjaCAmJiAha2V5d29yZHMubWF0Y2goL15cXHN8XFxzJC8pKSB7XG4gICAgICAgICAgICBwb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlLmtleXdvcmRzID0ga2V5d29yZHM7XG4gICAgICAgICAgICBwb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlLmdldFNlYXJjaFJlc3VsdChrZXl3b3Jkcyk7XG4gICAgICAgICAgICBjZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG9wZW5TZWxlY3RPdmVybGF5KGVkaXRvcjogVGhlRWRpdG9yLCB0eXBlOiBzdHJpbmcsIG9yaWdpbjogRWxlbWVudFJlZiB8IEhUTUxFbGVtZW50LCBpc1NvZnRCcmVhayA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXkgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KE92ZXJsYXkpO1xuICAgICAgICBjb25zdCB0aHlQb3BvdmVyID0gZWRpdG9yLmluamVjdG9yLmdldChUaHlQb3BvdmVyKTtcbiAgICAgICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IGVkaXRvci5pbmplY3Rvci5nZXQoVmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIGNvbnN0IGNkciA9IGVkaXRvci5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgICAgICBjb25zdCBtZW50aW9ucyA9IGdldFBsdWdpbk9wdGlvbnM8TWVudGlvblBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5tZW50aW9uKT8ubWVudGlvbnM7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNZW50aW9uID0gbWVudGlvbnMuZmluZChtID0+IG0udHlwZSA9PT0gdHlwZSk7XG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25Db21wb25lbnQgPSBjdXJyZW50TWVudGlvbj8uc3VnZ2VzdGlvbjtcblxuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gdGh5UG9wb3Zlci5vcGVuKHN1Z2dlc3Rpb25Db21wb25lbnQsIHtcbiAgICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogYHRoZS1tZW50aW9uLSR7dHlwZX1gLFxuICAgICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tTGVmdCcsXG4gICAgICAgICAgICBpbnNpZGVDbG9zYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBvdXRzaWRlQ2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBvZmZzZXQ6IDQsXG4gICAgICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgICAgICAgIGF1dG9BZGFwdGl2ZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgcG9wb3ZlclJlZj8uYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgTWVudGlvbkVkaXRvci5jbG9zZShlZGl0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgTWVudGlvbkVkaXRvci51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KGVkaXRvciwgaXNTb2Z0QnJlYWspO1xuXG4gICAgICAgIFRIRV9FRElUT1JfUE9QT1ZFUl9SRUYuc2V0KGVkaXRvciwgcG9wb3ZlclJlZik7XG4gICAgICAgIGNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9LFxuICAgIGNsb3NlKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IHBvcG92ZXJSZWYgPSBUSEVfRURJVE9SX1BPUE9WRVJfUkVGLmdldChlZGl0b3IpO1xuICAgICAgICBpZiAocG9wb3ZlclJlZikge1xuICAgICAgICAgICAgcG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgVEhFX0VESVRPUl9QT1BPVkVSX1JFRi5zZXQoZWRpdG9yLCBudWxsKTtcbiAgICAgICAgICAgIFRIRV9FRElUT1JfT1JJR0lOX0FOQ0hPUi5zZXQoZWRpdG9yLCBudWxsKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaW5zZXJ0TWVudGlvbjxUPihlZGl0b3I6IFRoZUVkaXRvciwgdHlwZTogc3RyaW5nLCBkYXRhOiBUKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGVsZW1lbnQgYXMgRWxlbWVudCk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgIFRyYW5zZm9ybXMubW92ZShlZGl0b3IpO1xuICAgICAgICBUaGVFZGl0b3IuZm9jdXMoZWRpdG9yKTtcblxuICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dCgnICcpO1xuICAgIH0sXG4gICAgaXNBY3RpdmUoZWRpdG9yOiBUaGVFZGl0b3IsIHR5cGU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBbbWF0Y2hdID0gVGhlUXVlcmllcy5nZXROb2Rlc0J5VHlwZShlZGl0b3IsIHR5cGUpO1xuICAgICAgICByZXR1cm4gISFtYXRjaDtcbiAgICB9LFxuICAgIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koZWRpdG9yOiBUaGVFZGl0b3IsIGlzU29mdEJyZWFrID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2tFbnRyeShlZGl0b3IpWzBdKTtcbiAgICAgICAgY29uc3QgbmF0aXZlUmFuZ2UgPSBBbmd1bGFyRWRpdG9yLnRvRE9NUmFuZ2UoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uKTtcbiAgICAgICAgY29uc3QgY3Vyc29yUmVjdCA9IG5hdGl2ZVJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB0ZXh0RWxlbWVudFJlY3QgPSB0ZXh0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgYm90dG9tUG9zaXRpb246IENvbm5lY3RlZFBvc2l0aW9uID0ge1xuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgICBvZmZzZXRYOiBpc1NvZnRCcmVhayA/IDAgOiBjdXJzb3JSZWN0LnggLSB0ZXh0RWxlbWVudFJlY3QueCxcbiAgICAgICAgICAgIG9mZnNldFk6IGlzU29mdEJyZWFrID8gdGV4dEVsZW1lbnRSZWN0LmhlaWdodCA6IGN1cnNvclJlY3QueSAtIHRleHRFbGVtZW50UmVjdC55ICsgMjBcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYm90dG9tTGVmdFBvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIC4uLmJvdHRvbVBvc2l0aW9uLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgICAgb2Zmc2V0WDogaXNTb2Z0QnJlYWsgPyAwIDogY3Vyc29yUmVjdC54IC0gdGV4dEVsZW1lbnRSZWN0LnggKyAxMFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0b3BSaWdodFBvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIC4uLmJvdHRvbVBvc2l0aW9uLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgICAgb2Zmc2V0WTogY3Vyc29yUmVjdC55IC0gdGV4dEVsZW1lbnRSZWN0LnkgKyAoaXNTb2Z0QnJlYWsgPyBjdXJzb3JSZWN0LmhlaWdodCA6IDApXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHRvcExlZnRQb3NpdGlvbjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gICAgICAgICAgICAuLi50b3BSaWdodFBvc2l0aW9uLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgICAgb2Zmc2V0WDogaXNTb2Z0QnJlYWsgPyAwIDogY3Vyc29yUmVjdC54IC0gdGV4dEVsZW1lbnRSZWN0LnggKyAxMFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlSZWYgPSBUSEVfRURJVE9SX1BPUE9WRVJfUkVGLmdldChlZGl0b3IpPy5nZXRPdmVybGF5UmVmKCk7XG4gICAgICAgIHVwZGF0ZVBvcG92ZXJQb3NpdGlvbihvdmVybGF5UmVmLCB0ZXh0RWxlbWVudCwgW2JvdHRvbVBvc2l0aW9uLCBib3R0b21MZWZ0UG9zaXRpb24sIHRvcFJpZ2h0UG9zaXRpb24sIHRvcExlZnRQb3NpdGlvbl0pO1xuICAgIH1cbn07XG4iXX0=
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudGlvbi5lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9tZW50aW9uL21lbnRpb24uZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBVyxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHdEcsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQ3pCLGFBQWEsQ0FBQyxNQUFpQixFQUFFLElBQVk7UUFDekMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBdUIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUM7UUFDOUYsTUFBTSxjQUFjLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDNUQsVUFBVSxDQUFDLFVBQVUsQ0FB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QyxDQUFDLEdBQUcsRUFBRTtTQUNuRSxDQUFDO1FBRUYsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO1FBQ3ZFLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUM1SCxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3RlZFBvc2l0aW9uLCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXIgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgRWRpdG9yLCBFbGVtZW50LCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgQW5ndWxhckVkaXRvciB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cywgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0IHsgVEhFX0VESVRPUl9PUklHSU5fQU5DSE9SLCBUSEVfRURJVE9SX1BPUE9WRVJfUkVGLCB1cGRhdGVQb3BvdmVyUG9zaXRpb24gfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNZW50aW9uUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vbWVudGlvbi50eXBlJztcblxuZXhwb3J0IGNvbnN0IE1lbnRpb25FZGl0b3IgPSB7XG4gICAgaW5zZXJ0VHJpZ2dlcihlZGl0b3I6IFRoZUVkaXRvciwgdHlwZTogc3RyaW5nKSB7XG4gICAgICAgIE1lbnRpb25FZGl0b3IuY2xvc2UoZWRpdG9yKTtcbiAgICAgICAgY29uc3QgbWVudGlvbnMgPSBnZXRQbHVnaW5PcHRpb25zPE1lbnRpb25QbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMubWVudGlvbik/Lm1lbnRpb25zO1xuICAgICAgICBjb25zdCBjdXJyZW50TWVudGlvbiA9IG1lbnRpb25zLmZpbmQobSA9PiBtPy50eXBlID09PSB0eXBlKTtcbiAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnRUZXh0KGVkaXRvciwgYCAke2N1cnJlbnRNZW50aW9uLnRyaWdnZXJ9YCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgVEhFX0VESVRPUl9PUklHSU5fQU5DSE9SLnNldChlZGl0b3IsIEVkaXRvci5iZWZvcmUoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvcikpO1xuICAgICAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2tFbnRyeShlZGl0b3IpWzBdKTtcbiAgICAgICAgICAgIE1lbnRpb25FZGl0b3Iub3BlblNlbGVjdE92ZXJsYXkoZWRpdG9yLCB0eXBlLCB0ZXh0RWxlbWVudCk7XG4gICAgICAgIH0pO1xuICAgIH0sXG4gICAgZGVsZXRlVHJpZ2dlclRleHQoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoSW5mbyA9IE1lbnRpb25FZGl0b3IuZ2V0U2VhcmNoSW5mbyhlZGl0b3IpO1xuICAgICAgICBjb25zdCB7IGN1cnJlbnRSYW5nZSB9ID0gc2VhcmNoSW5mbztcbiAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBjdXJyZW50UmFuZ2UgfSk7XG4gICAgfSxcbiAgICBvcGVuU3VnZ2VzdGlvbihlZGl0b3I6IFRoZUVkaXRvciwgdHlwZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWYgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KEVsZW1lbnRSZWYpO1xuICAgICAgICBjb25zdCBpc1BhcmFncmFwaFN0YXJ0ID0gRWRpdG9yLmlzU3RhcnQoZWRpdG9yLCBzZWxlY3Rpb24/LmFuY2hvciwgVGhlUXVlcmllcy5hbmNob3JCbG9ja0VudHJ5KGVkaXRvcilbMV0pO1xuICAgICAgICBjb25zdCBvcmlnaW5BbmNob3IgPSBUSEVfRURJVE9SX09SSUdJTl9BTkNIT1IuZ2V0KGVkaXRvcik7XG4gICAgICAgIGxldCB0ZXh0ID0gJyc7XG5cbiAgICAgICAgaWYgKCFpc1BhcmFncmFwaFN0YXJ0KSB7XG4gICAgICAgICAgICBjb25zdCBiZWZvcmVSYW5nZSA9IHtcbiAgICAgICAgICAgICAgICBhbmNob3I6IEVkaXRvci5iZWZvcmUoZWRpdG9yLCBzZWxlY3Rpb24uYW5jaG9yKSxcbiAgICAgICAgICAgICAgICBmb2N1czogc2VsZWN0aW9uLmZvY3VzXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGV4dCA9IEVkaXRvci5zdHJpbmcoZWRpdG9yLCBiZWZvcmVSYW5nZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc1NvZnRCcmVhayA9IHRleHQgPT09ICdcXG4nO1xuICAgICAgICBpZiAoaXNQYXJhZ3JhcGhTdGFydCB8fCB0ZXh0ID09PSAnICcgfHwgaXNTb2Z0QnJlYWspIHtcbiAgICAgICAgICAgIGlmICghb3JpZ2luQW5jaG9yKSB7XG4gICAgICAgICAgICAgICAgVEhFX0VESVRPUl9PUklHSU5fQU5DSE9SLnNldChlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHRleHRFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUoZWRpdG9yLCBUaGVRdWVyaWVzLmFuY2hvckJsb2NrRW50cnkoZWRpdG9yKVswXSk7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW4gPSBpc1BhcmFncmFwaFN0YXJ0ID8gdGV4dEVsZW1lbnQgOiBlbGVtZW50UmVmO1xuICAgICAgICAgICAgTWVudGlvbkVkaXRvci5vcGVuU2VsZWN0T3ZlcmxheShlZGl0b3IsIHR5cGUsIG9yaWdpbiwgaXNTb2Z0QnJlYWspO1xuICAgICAgICB9XG4gICAgfSxcbiAgICBnZXRTZWFyY2hJbmZvKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IHBvcG92ZXJSZWYgPSBUSEVfRURJVE9SX1BPUE9WRVJfUkVGLmdldChlZGl0b3IpO1xuICAgICAgICBjb25zdCBvcmlnaW5BbmNob3IgPSBUSEVfRURJVE9SX09SSUdJTl9BTkNIT1IuZ2V0KGVkaXRvcik7XG5cbiAgICAgICAgaWYgKG9yaWdpbkFuY2hvciAmJiBwb3BvdmVyUmVmICYmIHBvcG92ZXJSZWYuY29tcG9uZW50SW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSYW5nZSA9IEVkaXRvci5yYW5nZShlZGl0b3IsIG9yaWdpbkFuY2hvciwgZWRpdG9yLnNlbGVjdGlvbj8uZm9jdXMpO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFRleHQgPSBFZGl0b3Iuc3RyaW5nKGVkaXRvciwgY3VycmVudFJhbmdlKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50UmFuZ2UsXG4gICAgICAgICAgICAgICAgY3VycmVudFRleHRcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9LFxuICAgIHVwZGF0ZVNlYXJjaFRleHQoZWRpdG9yOiBUaGVFZGl0b3IsIHRleHQ6IHN0cmluZykge1xuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gVEhFX0VESVRPUl9QT1BPVkVSX1JFRi5nZXQoZWRpdG9yKTtcbiAgICAgICAgY29uc3QgbWVudGlvbnMgPSBnZXRQbHVnaW5PcHRpb25zPE1lbnRpb25QbHVnaW5PcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMubWVudGlvbik/Lm1lbnRpb25zO1xuICAgICAgICBjb25zdCBwYW5lbENsYXNzID0gcG9wb3ZlclJlZi5nZXRPdmVybGF5UmVmKCkuZ2V0Q29uZmlnKCkucGFuZWxDbGFzcztcbiAgICAgICAgY29uc3QgdHlwZSA9IEFycmF5LmlzQXJyYXkocGFuZWxDbGFzcylcbiAgICAgICAgICAgID8gcGFuZWxDbGFzcy5maW5kKGkgPT4gaS5pbmRleE9mKCd0aGUtbWVudGlvbi0nKSA+IC0xKS5zcGxpdCgndGhlLW1lbnRpb24tJylbMV1cbiAgICAgICAgICAgIDogcGFuZWxDbGFzcy5zcGxpdCgndGhlLW1lbnRpb24tJylbMV07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNZW50aW9uID0gbWVudGlvbnMuZmluZChtID0+IG0udHlwZSA9PT0gdHlwZSk7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7Y3VycmVudE1lbnRpb24udHJpZ2dlcn1gKTtcbiAgICAgICAgY29uc3QgYmVmb3JlTWF0Y2ggPSB0ZXh0ICYmIHRleHQubWF0Y2gocmVnZXgpO1xuICAgICAgICBjb25zdCBrZXl3b3JkcyA9IHRleHQuc2xpY2UoMSk7XG4gICAgICAgIGNvbnN0IGNkciA9IGVkaXRvci5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gICAgICAgIGlmIChwb3BvdmVyUmVmPy5jb21wb25lbnRJbnN0YW5jZSAmJiBiZWZvcmVNYXRjaCAmJiAha2V5d29yZHMubWF0Y2goL15cXHN8XFxzJC8pKSB7XG4gICAgICAgICAgICBwb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlLmtleXdvcmRzID0ga2V5d29yZHM7XG4gICAgICAgICAgICBwb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlLmdldFNlYXJjaFJlc3VsdChrZXl3b3Jkcyk7XG4gICAgICAgICAgICBjZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9LFxuICAgIG9wZW5TZWxlY3RPdmVybGF5KGVkaXRvcjogVGhlRWRpdG9yLCB0eXBlOiBzdHJpbmcsIG9yaWdpbjogRWxlbWVudFJlZiB8IEhUTUxFbGVtZW50LCBpc1NvZnRCcmVhayA9IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IG92ZXJsYXkgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KE92ZXJsYXkpO1xuICAgICAgICBjb25zdCB0aHlQb3BvdmVyID0gZWRpdG9yLmluamVjdG9yLmdldChUaHlQb3BvdmVyKTtcbiAgICAgICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IGVkaXRvci5pbmplY3Rvci5nZXQoVmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIGNvbnN0IGNkciA9IGVkaXRvci5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgICAgICBjb25zdCBtZW50aW9ucyA9IGdldFBsdWdpbk9wdGlvbnM8TWVudGlvblBsdWdpbk9wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5tZW50aW9uKT8ubWVudGlvbnM7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRNZW50aW9uID0gbWVudGlvbnMuZmluZChtID0+IG0udHlwZSA9PT0gdHlwZSk7XG4gICAgICAgIGNvbnN0IHN1Z2dlc3Rpb25Db21wb25lbnQgPSBjdXJyZW50TWVudGlvbj8uc3VnZ2VzdGlvbjtcblxuICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gdGh5UG9wb3Zlci5vcGVuKHN1Z2dlc3Rpb25Db21wb25lbnQsIHtcbiAgICAgICAgICAgIG9yaWdpbixcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICB0eXBlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogYHRoZS1tZW50aW9uLSR7dHlwZX1gLFxuICAgICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tTGVmdCcsXG4gICAgICAgICAgICBpbnNpZGVDbG9zYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBvdXRzaWRlQ2xvc2FibGU6IHRydWUsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBvZmZzZXQ6IDQsXG4gICAgICAgICAgICBtaW5XaWR0aDogMCxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBzY3JvbGxTdHJhdGVneTogb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcbiAgICAgICAgICAgIGF1dG9BZGFwdGl2ZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgVEhFX0VESVRPUl9QT1BPVkVSX1JFRi5zZXQoZWRpdG9yLCBwb3BvdmVyUmVmKTtcbiAgICAgICAgcG9wb3ZlclJlZj8uYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgTWVudGlvbkVkaXRvci5jbG9zZShlZGl0b3IpO1xuICAgICAgICB9KTtcbiAgICAgICAgTWVudGlvbkVkaXRvci51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KGVkaXRvciwgaXNTb2Z0QnJlYWspO1xuXG4gICAgICAgIGNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9LFxuICAgIGNsb3NlKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IHBvcG92ZXJSZWYgPSBUSEVfRURJVE9SX1BPUE9WRVJfUkVGLmdldChlZGl0b3IpO1xuICAgICAgICBpZiAocG9wb3ZlclJlZikge1xuICAgICAgICAgICAgcG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgVEhFX0VESVRPUl9QT1BPVkVSX1JFRi5zZXQoZWRpdG9yLCBudWxsKTtcbiAgICAgICAgICAgIFRIRV9FRElUT1JfT1JJR0lOX0FOQ0hPUi5zZXQoZWRpdG9yLCBudWxsKTtcbiAgICAgICAgfVxuICAgIH0sXG4gICAgaW5zZXJ0TWVudGlvbjxUPihlZGl0b3I6IFRoZUVkaXRvciwgdHlwZTogc3RyaW5nLCBkYXRhOiBUKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICAgICAgVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhlZGl0b3IsIGVsZW1lbnQgYXMgRWxlbWVudCk7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgZWRpdG9yLnNlbGVjdGlvbik7XG4gICAgICAgIFRyYW5zZm9ybXMubW92ZShlZGl0b3IpO1xuICAgICAgICBUaGVFZGl0b3IuZm9jdXMoZWRpdG9yKTtcblxuICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dCgnICcpO1xuICAgIH0sXG4gICAgaXNBY3RpdmUoZWRpdG9yOiBUaGVFZGl0b3IsIHR5cGU6IHN0cmluZykge1xuICAgICAgICBjb25zdCBbbWF0Y2hdID0gVGhlUXVlcmllcy5nZXROb2Rlc0J5VHlwZShlZGl0b3IsIHR5cGUpO1xuICAgICAgICByZXR1cm4gISFtYXRjaDtcbiAgICB9LFxuICAgIHVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koZWRpdG9yOiBUaGVFZGl0b3IsIGlzU29mdEJyZWFrID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgdGV4dEVsZW1lbnQgPSBBbmd1bGFyRWRpdG9yLnRvRE9NTm9kZShlZGl0b3IsIFRoZVF1ZXJpZXMuYW5jaG9yQmxvY2tFbnRyeShlZGl0b3IpWzBdKTtcbiAgICAgICAgY29uc3QgbmF0aXZlUmFuZ2UgPSBBbmd1bGFyRWRpdG9yLnRvRE9NUmFuZ2UoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uKTtcbiAgICAgICAgY29uc3QgY3Vyc29yUmVjdCA9IG5hdGl2ZVJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCB0ZXh0RWxlbWVudFJlY3QgPSB0ZXh0RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgYm90dG9tUG9zaXRpb246IENvbm5lY3RlZFBvc2l0aW9uID0ge1xuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgICBvZmZzZXRYOiBpc1NvZnRCcmVhayA/IDAgOiBjdXJzb3JSZWN0LnggLSB0ZXh0RWxlbWVudFJlY3QueCxcbiAgICAgICAgICAgIG9mZnNldFk6IGlzU29mdEJyZWFrID8gdGV4dEVsZW1lbnRSZWN0LmhlaWdodCA6IGN1cnNvclJlY3QueSAtIHRleHRFbGVtZW50UmVjdC55ICsgMjBcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgYm90dG9tTGVmdFBvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIC4uLmJvdHRvbVBvc2l0aW9uLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgICAgb2Zmc2V0WDogaXNTb2Z0QnJlYWsgPyAwIDogY3Vyc29yUmVjdC54IC0gdGV4dEVsZW1lbnRSZWN0LnggKyAxMFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB0b3BSaWdodFBvc2l0aW9uOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgICAgICAgICAgIC4uLmJvdHRvbVBvc2l0aW9uLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgICAgb2Zmc2V0WTogY3Vyc29yUmVjdC55IC0gdGV4dEVsZW1lbnRSZWN0LnkgKyAoaXNTb2Z0QnJlYWsgPyBjdXJzb3JSZWN0LmhlaWdodCA6IDApXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHRvcExlZnRQb3NpdGlvbjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gICAgICAgICAgICAuLi50b3BSaWdodFBvc2l0aW9uLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdlbmQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgICAgb2Zmc2V0WDogaXNTb2Z0QnJlYWsgPyAwIDogY3Vyc29yUmVjdC54IC0gdGV4dEVsZW1lbnRSZWN0LnggKyAxMFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlSZWYgPSBUSEVfRURJVE9SX1BPUE9WRVJfUkVGLmdldChlZGl0b3IpPy5nZXRPdmVybGF5UmVmKCk7XG4gICAgICAgIHVwZGF0ZVBvcG92ZXJQb3NpdGlvbihvdmVybGF5UmVmLCB0ZXh0RWxlbWVudCwgW2JvdHRvbVBvc2l0aW9uLCBib3R0b21MZWZ0UG9zaXRpb24sIHRvcFJpZ2h0UG9zaXRpb24sIHRvcExlZnRQb3NpdGlvbl0pO1xuICAgIH1cbn07XG4iXX0=
@@ -109,6 +109,9 @@ export class TheContextService {
109
109
  this.uploadingFiles.push(file);
110
110
  }
111
111
  removeUploadFile(file) {
112
+ if (!file) {
113
+ return;
114
+ }
112
115
  this.uploadingFiles.splice(this.uploadingFiles.findIndex(item => item.url === file.url), 1);
113
116
  }
114
117
  ngOnDestroy() {
@@ -130,4 +133,4 @@ export class TheContextService {
130
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TheContextService, decorators: [{
131
134
  type: Injectable
132
135
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQWMsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQWEsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBZ0JoRixNQUFNLE9BQU8saUJBQWlCO0lBb0MxQixZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWpDMUIsYUFBUSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBSXpDLG1CQUFjLEdBQWtDLEVBQUUsQ0FBQztRQUVuRCxzQkFBaUIsR0FBc0I7WUFDMUMsUUFBUSxFQUFFLEtBQUs7WUFDZixLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFRSyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBZ0QsQ0FBQztRQUVqRixxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRTFDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFpRixDQUFDO1FBRWpILHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFpRixDQUFDO1FBRWpILG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWlGLENBQUM7UUFTakgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQWEsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUYsSUFB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RSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7K0dBbktRLGlCQUFpQjttSEFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lLCBPbkRlc3Ryb3ksIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb250U2l6ZXMsIE1hcmtUeXBlcywgU2Nyb2xsRGlyZWN0aW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzL25vZGUtdHlwZXMnO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlQ29udGV4dE9wdGlvbnMge1xuICAgIGVkaXRvcjogVGhlRWRpdG9yO1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG4gICAgd2lkdGg/OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBQYWludEZvcm1hdFN0YXR1cyB7XG4gICAgaXNBY3RpdmU6IGJvb2xlYW47XG4gICAgbWFya3M6IHsgW2tleSBpbiBNYXJrVHlwZXNdPzogYW55IH07XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaGVDb250ZXh0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBzY3JvbGxTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIHByaXZhdGUgb3B0aW9uczogVGhlQ29udGV4dE9wdGlvbnM7XG5cbiAgICBwdWJsaWMgdXBsb2FkaW5nRmlsZXM6IHsgdXJsOiBzdHJpbmc7IGZpbGU6IEZpbGUgfVtdID0gW107XG5cbiAgICBwdWJsaWMgcGFpbnRGb3JtYXRTdGF0dXM6IFBhaW50Rm9ybWF0U3RhdHVzID0ge1xuICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXG4gICAgICAgIG1hcmtzOiB7fVxuICAgIH07XG5cbiAgICBwdWJsaWMgb25Nb3VzZVVwJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcblxuICAgIHB1YmxpYyBvbk1vdXNlTW92ZSQ6IE9ic2VydmFibGU8TW91c2VFdmVudD47XG5cbiAgICBwdWJsaWMgb25Nb3VzZURvd24kOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXG4gICAgcHVibGljIGNvbnRhaW5lclNjcm9sbGVkJCA9IG5ldyBTdWJqZWN0PHsgZXZlbnQ6IEV2ZW50OyBkaXJlY3Rpb246IFNjcm9sbERpcmVjdGlvbiB9PigpO1xuXG4gICAgcHVibGljIHVwbG9hZGluZ1N0YXR1cyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgcHVibGljIGNvbnRhaW5lclJlc2l6ZWQkID0gbmV3IFN1YmplY3Q8eyBlbnRyeTogUmVzaXplT2JzZXJ2ZXJFbnRyeTsgd2lkdGhDaGFuZ2VkOiBib29sZWFuOyBoZWlnaHRDaGFuZ2VkOiBib29sZWFuIH0+KCk7XG5cbiAgICBwdWJsaWMgdGhlRWRpdG9yUmVzaXplZCQgPSBuZXcgU3ViamVjdDx7IGVudHJ5OiBSZXNpemVPYnNlcnZlckVudHJ5OyB3aWR0aENoYW5nZWQ6IGJvb2xlYW47IGhlaWdodENoYW5nZWQ6IGJvb2xlYW4gfT4oKTtcblxuICAgIHB1YmxpYyB3aW5kb3dSZXNpemVkJCA9IG5ldyBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PigpO1xuXG4gICAgcHJpdmF0ZSBjb250YWluZXJSZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBwcml2YXRlIHRoZUVkaXRvclJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIHByaXZhdGUgd2luZG93UmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uTW91c2VVcCQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCBgbW91c2V1cGApLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZU1vdmUkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgYG1vdXNlbW92ZWApLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICAgICAgICAgIHRoaXMub25Nb3VzZURvd24kID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgYG1vdXNlZG93bmApLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluaXRpYWxpemUob3B0aW9uczogVGhlQ29udGV4dE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5yZWJpbmRDb250YWluZXJTY3JvbGwoKTtcbiAgICAgICAgdGhpcy5iaW5kQ29udGFpbmVyUmVzaXplKCk7XG4gICAgICAgIHRoaXMuYmluZFRoZUVkaXRvclJlc2l6ZSgpO1xuICAgICAgICB0aGlzLmJpbmRXaW5kb3dSZXNpemUoKTtcbiAgICB9XG5cbiAgICBnZXRTY3JvbGxDb250YWluZXIoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCB7IHNjcm9sbENvbnRhaW5lciB9ID0gdGhpcy5vcHRpb25zLmVkaXRvcj8ub3B0aW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5uYXRpdmVFbGVtZW50LmNsb3Nlc3Qoc2Nyb2xsQ29udGFpbmVyKSB8fCB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHNjcm9sbENvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgcmViaW5kQ29udGFpbmVyU2Nyb2xsKCkge1xuICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgY29uc3QgeyBzY3JvbGxDb250YWluZXIgfSA9IHRoaXMub3B0aW9ucy5lZGl0b3I/Lm9wdGlvbnM7XG4gICAgICAgIGlmIChzY3JvbGxDb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldFNjcm9sbENvbnRhaW5lcigpO1xuICAgICAgICAgICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmV2aW91c0NvbnRhaW5lclNjcm9sbCA9IHsgeDogMCwgeTogMCB9O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxFdmVudD4oY29udGFpbmVyRWxlbWVudCwgJ3Njcm9sbCcpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRpcmVzID0geyBldmVudCwgZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb24uWSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW3gsIHldID0gW3RhcmdldC5zY3JvbGxMZWZ0LCB0YXJnZXQuc2Nyb2xsVG9wXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4ICE9PSBwcmV2aW91c0NvbnRhaW5lclNjcm9sbC54KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXJlcy5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uWDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh5ICE9PSBwcmV2aW91c0NvbnRhaW5lclNjcm9sbC55KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXJlcy5kaXJlY3Rpb24gPSBTY3JvbGxEaXJlY3Rpb24uWTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzQ29udGFpbmVyU2Nyb2xsID0geyB4LCB5IH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lclNjcm9sbGVkJC5uZXh0KGVudGlyZXMpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRDb250YWluZXJSZXNpemUoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmdldFNjcm9sbENvbnRhaW5lcigpO1xuICAgICAgICBpZiAoY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJSZXNpemVPYnNlcnZlciA9IHRoaXMuZWxlbWVudFJlc2l6ZShjb250YWluZXJFbGVtZW50LCB0aGlzLmNvbnRhaW5lclJlc2l6ZWQkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJpbmRUaGVFZGl0b3JSZXNpemUoKSB7XG4gICAgICAgIHRoaXMudGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXIgPSB0aGlzLmVsZW1lbnRSZXNpemUodGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQsIHRoaXMudGhlRWRpdG9yUmVzaXplZCQpO1xuICAgIH1cblxuICAgIGJpbmRXaW5kb3dSZXNpemUoKSB7XG4gICAgICAgIHRoaXMud2luZG93UmVzaXplT2JzZXJ2ZXIgPSB0aGlzLmVsZW1lbnRSZXNpemUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB0aGlzLndpbmRvd1Jlc2l6ZWQkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVsZW1lbnRSZXNpemUoXG4gICAgICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgICAgICBzdWJqZWN0OiBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PlxuICAgICkge1xuICAgICAgICBsZXQgcHJldmlvdXNDb250YWluZXJSZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZW50aXJlcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UmVjdCA9IGVudGlyZXNbMF0uY29udGVudFJlY3Q7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB7IGVudHJ5OiBlbnRpcmVzWzBdLCB3aWR0aENoYW5nZWQ6IGZhbHNlLCBoZWlnaHRDaGFuZ2VkOiBmYWxzZSB9O1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRSZWN0LndpZHRoICE9PSBwcmV2aW91c0NvbnRhaW5lclJlY3Qud2lkdGgpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQud2lkdGhDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChjdXJyZW50UmVjdC5oZWlnaHQgIT09IHByZXZpb3VzQ29udGFpbmVyUmVjdC5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQuaGVpZ2h0Q2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwcmV2aW91c0NvbnRhaW5lclJlY3QgPSBjdXJyZW50UmVjdDtcbiAgICAgICAgICAgIHN1YmplY3QubmV4dChyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIHJlc2l6ZU9ic2VydmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPcHRpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy53aWR0aCkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3RFbGVtZW50Q2hpbGQgPSB0aGlzLmdldEZpcnN0RWxlbWVudENoaWxkKCk7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMud2lkdGggPSBmaXJzdEVsZW1lbnRDaGlsZC5vZmZzZXRXaWR0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREZWZhdWx0Rm9udFNpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZWRpdG9yPy5vcHRpb25zPy5mb250U2l6ZSB8fCBGb250U2l6ZXMuZm9udFNpemUxNDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RWRpdGFibGVFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnRoZS1lZGl0b3ItdHlwbycpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGaXJzdEVsZW1lbnRDaGlsZCgpIHtcbiAgICAgICAgY29uc3QgZWRpdGFibGVFbGVtZW50ID0gdGhpcy5nZXRFZGl0YWJsZUVsZW1lbnQoKTtcbiAgICAgICAgcmV0dXJuIGVkaXRhYmxlRWxlbWVudD8uZmlyc3RFbGVtZW50Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgYWRkVXBsb2FkaW5nRmlsZXMoZmlsZTogeyB1cmw6IHN0cmluZzsgZmlsZTogRmlsZSB9KSB7XG4gICAgICAgIHRoaXMudXBsb2FkaW5nRmlsZXMucHVzaChmaWxlKTtcbiAgICB9XG5cbiAgICByZW1vdmVVcGxvYWRGaWxlKGZpbGU6IHsgdXJsOiBzdHJpbmc7IGZpbGU6IEZpbGUgfSkge1xuICAgICAgICB0aGlzLnVwbG9hZGluZ0ZpbGVzLnNwbGljZShcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nRmlsZXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbS51cmwgPT09IGZpbGUudXJsKSxcbiAgICAgICAgICAgIDFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGxvYWRpbmdTdGF0dXMkLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyU2Nyb2xsZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnRoZUVkaXRvclJlc2l6ZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclJlc2l6ZWQkPy5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIHRoaXMudGhlRWRpdG9yUmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgdGhpcy53aW5kb3dSZXNpemVkJD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy53aW5kb3dSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICB0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1QyxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQWMsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQWEsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBZ0JoRixNQUFNLE9BQU8saUJBQWlCO0lBb0MxQixZQUFvQixNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWpDMUIsYUFBUSxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBSXpDLG1CQUFjLEdBQTJDLEVBQUUsQ0FBQztRQUU1RCxzQkFBaUIsR0FBc0I7WUFDMUMsUUFBUSxFQUFFLEtBQUs7WUFDZixLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFRSyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBZ0QsQ0FBQztRQUVqRixxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBRTFDLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFpRixDQUFDO1FBRWpILHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFpRixDQUFDO1FBRWpILG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWlGLENBQUM7UUFTakgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQWEsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDMUYsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQWEsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDOUYsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQWEsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbEcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQTBCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM1SCxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUN2QyxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO1FBQ3pELElBQUksZUFBZSxFQUFFO1lBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDbkQsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7b0JBQy9CLElBQUksdUJBQXVCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBUSxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQ3JGLE1BQU0sT0FBTyxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3hELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFxQixDQUFDO3dCQUMzQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBQ3JELElBQUksQ0FBQyxLQUFLLHVCQUF1QixDQUFDLENBQUMsRUFBRTs0QkFDakMsT0FBTyxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDO3lCQUN6Qzt3QkFDRCxJQUFJLENBQUMsS0FBSyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUU7NEJBQ2pDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQzt5QkFDekM7d0JBQ0QsdUJBQXVCLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7d0JBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzFDLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsQ0FBQyxDQUFDO2FBQ047U0FDSjtJQUNMLENBQUM7SUFFRCxtQkFBbUI7UUFDZixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ25ELElBQUksZ0JBQWdCLEVBQUU7WUFDbEIsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDL0Y7SUFDTCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFTyxhQUFhLENBQ2pCLE9BQW9CLEVBQ3BCLE9BQStGO1FBRS9GLElBQUkscUJBQXFCLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDNUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDaEQsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUMzQyxNQUFNLE1BQU0sR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDaEYsSUFBSSxXQUFXLENBQUMsS0FBSyxLQUFLLHFCQUFxQixDQUFDLEtBQUssRUFBRTtnQkFDbkQsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7YUFDOUI7WUFDRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUsscUJBQXFCLENBQUMsTUFBTSxFQUFFO2dCQUNyRCxNQUFNLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzthQUMvQjtZQUNELHFCQUFxQixHQUFHLFdBQVcsQ0FBQztZQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxPQUFPLGNBQWMsQ0FBQztJQUMxQixDQUFDO0lBRU0sVUFBVTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRTtZQUNyQixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDLFdBQVcsQ0FBQztTQUN0RDtRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDO0lBQzFFLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sb0JBQW9CO1FBQ3ZCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2xELE9BQU8sZUFBZSxFQUFFLGlCQUFnQyxDQUFDO0lBQzdELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUEwQztRQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBMEM7UUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUM1RCxDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOytHQXRLUSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSwgT25EZXN0cm95LCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9udFNpemVzLCBNYXJrVHlwZXMsIFNjcm9sbERpcmVjdGlvbiB9IGZyb20gJy4uL2NvbnN0YW50cy9ub2RlLXR5cGVzJztcbmltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRoZUNvbnRleHRPcHRpb25zIHtcbiAgICBlZGl0b3I6IFRoZUVkaXRvcjtcbiAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIHdpZHRoPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgUGFpbnRGb3JtYXRTdGF0dXMge1xuICAgIGlzQWN0aXZlOiBib29sZWFuO1xuICAgIG1hcmtzOiB7IFtrZXkgaW4gTWFya1R5cGVzXT86IGFueSB9O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGhlQ29udGV4dFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgc2Nyb2xsU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcml2YXRlIG9wdGlvbnM6IFRoZUNvbnRleHRPcHRpb25zO1xuXG4gICAgcHVibGljIHVwbG9hZGluZ0ZpbGVzOiB7IHVybDogc3RyaW5nOyBmaWxlOiBGaWxlIHwgc3RyaW5nIH1bXSA9IFtdO1xuXG4gICAgcHVibGljIHBhaW50Rm9ybWF0U3RhdHVzOiBQYWludEZvcm1hdFN0YXR1cyA9IHtcbiAgICAgICAgaXNBY3RpdmU6IGZhbHNlLFxuICAgICAgICBtYXJrczoge31cbiAgICB9O1xuXG4gICAgcHVibGljIG9uTW91c2VVcCQ6IE9ic2VydmFibGU8TW91c2VFdmVudD47XG5cbiAgICBwdWJsaWMgb25Nb3VzZU1vdmUkOiBPYnNlcnZhYmxlPE1vdXNlRXZlbnQ+O1xuXG4gICAgcHVibGljIG9uTW91c2VEb3duJDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PjtcblxuICAgIHB1YmxpYyBjb250YWluZXJTY3JvbGxlZCQgPSBuZXcgU3ViamVjdDx7IGV2ZW50OiBFdmVudDsgZGlyZWN0aW9uOiBTY3JvbGxEaXJlY3Rpb24gfT4oKTtcblxuICAgIHB1YmxpYyB1cGxvYWRpbmdTdGF0dXMkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHB1YmxpYyBjb250YWluZXJSZXNpemVkJCA9IG5ldyBTdWJqZWN0PHsgZW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnk7IHdpZHRoQ2hhbmdlZDogYm9vbGVhbjsgaGVpZ2h0Q2hhbmdlZDogYm9vbGVhbiB9PigpO1xuXG4gICAgcHVibGljIHRoZUVkaXRvclJlc2l6ZWQkID0gbmV3IFN1YmplY3Q8eyBlbnRyeTogUmVzaXplT2JzZXJ2ZXJFbnRyeTsgd2lkdGhDaGFuZ2VkOiBib29sZWFuOyBoZWlnaHRDaGFuZ2VkOiBib29sZWFuIH0+KCk7XG5cbiAgICBwdWJsaWMgd2luZG93UmVzaXplZCQgPSBuZXcgU3ViamVjdDx7IGVudHJ5OiBSZXNpemVPYnNlcnZlckVudHJ5OyB3aWR0aENoYW5nZWQ6IGJvb2xlYW47IGhlaWdodENoYW5nZWQ6IGJvb2xlYW4gfT4oKTtcblxuICAgIHByaXZhdGUgY29udGFpbmVyUmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gICAgcHJpdmF0ZSB0aGVFZGl0b3JSZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgICBwcml2YXRlIHdpbmRvd1Jlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk1vdXNlVXAkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHdpbmRvdywgYG1vdXNldXBgKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgICAgICAgICB0aGlzLm9uTW91c2VNb3ZlJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csIGBtb3VzZW1vdmVgKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgICAgICAgICB0aGlzLm9uTW91c2VEb3duJCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih3aW5kb3csIGBtb3VzZWRvd25gKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbml0aWFsaXplKG9wdGlvbnM6IFRoZUNvbnRleHRPcHRpb25zKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMucmViaW5kQ29udGFpbmVyU2Nyb2xsKCk7XG4gICAgICAgIHRoaXMuYmluZENvbnRhaW5lclJlc2l6ZSgpO1xuICAgICAgICB0aGlzLmJpbmRUaGVFZGl0b3JSZXNpemUoKTtcbiAgICAgICAgdGhpcy5iaW5kV2luZG93UmVzaXplKCk7XG4gICAgfVxuXG4gICAgZ2V0U2Nyb2xsQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgY29uc3QgeyBzY3JvbGxDb250YWluZXIgfSA9IHRoaXMub3B0aW9ucy5lZGl0b3I/Lm9wdGlvbnM7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudC5jbG9zZXN0KHNjcm9sbENvbnRhaW5lcikgfHwgdGhpcy5vcHRpb25zLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihzY3JvbGxDb250YWluZXIpO1xuICAgIH1cblxuICAgIHJlYmluZENvbnRhaW5lclNjcm9sbCgpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGNvbnN0IHsgc2Nyb2xsQ29udGFpbmVyIH0gPSB0aGlzLm9wdGlvbnMuZWRpdG9yPy5vcHRpb25zO1xuICAgICAgICBpZiAoc2Nyb2xsQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gdGhpcy5nZXRTY3JvbGxDb250YWluZXIoKTtcbiAgICAgICAgICAgIGlmIChjb250YWluZXJFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJldmlvdXNDb250YWluZXJTY3JvbGwgPSB7IHg6IDAsIHk6IDAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8RXZlbnQ+KGNvbnRhaW5lckVsZW1lbnQsICdzY3JvbGwnKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW50aXJlcyA9IHsgZXZlbnQsIGRpcmVjdGlvbjogU2Nyb2xsRGlyZWN0aW9uLlkgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFt4LCB5XSA9IFt0YXJnZXQuc2Nyb2xsTGVmdCwgdGFyZ2V0LnNjcm9sbFRvcF07XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeCAhPT0gcHJldmlvdXNDb250YWluZXJTY3JvbGwueCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGlyZXMuZGlyZWN0aW9uID0gU2Nyb2xsRGlyZWN0aW9uLlg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoeSAhPT0gcHJldmlvdXNDb250YWluZXJTY3JvbGwueSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGlyZXMuZGlyZWN0aW9uID0gU2Nyb2xsRGlyZWN0aW9uLlk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0NvbnRhaW5lclNjcm9sbCA9IHsgeCwgeSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJTY3JvbGxlZCQubmV4dChlbnRpcmVzKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kQ29udGFpbmVyUmVzaXplKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gdGhpcy5nZXRTY3JvbGxDb250YWluZXIoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lckVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyUmVzaXplT2JzZXJ2ZXIgPSB0aGlzLmVsZW1lbnRSZXNpemUoY29udGFpbmVyRWxlbWVudCwgdGhpcy5jb250YWluZXJSZXNpemVkJCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBiaW5kVGhlRWRpdG9yUmVzaXplKCkge1xuICAgICAgICB0aGlzLnRoZUVkaXRvclJlc2l6ZU9ic2VydmVyID0gdGhpcy5lbGVtZW50UmVzaXplKHRoaXMub3B0aW9ucy5uYXRpdmVFbGVtZW50LCB0aGlzLnRoZUVkaXRvclJlc2l6ZWQkKTtcbiAgICB9XG5cbiAgICBiaW5kV2luZG93UmVzaXplKCkge1xuICAgICAgICB0aGlzLndpbmRvd1Jlc2l6ZU9ic2VydmVyID0gdGhpcy5lbGVtZW50UmVzaXplKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgdGhpcy53aW5kb3dSZXNpemVkJCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVzaXplKFxuICAgICAgICBlbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICAgICAgc3ViamVjdDogU3ViamVjdDx7IGVudHJ5OiBSZXNpemVPYnNlcnZlckVudHJ5OyB3aWR0aENoYW5nZWQ6IGJvb2xlYW47IGhlaWdodENoYW5nZWQ6IGJvb2xlYW4gfT5cbiAgICApIHtcbiAgICAgICAgbGV0IHByZXZpb3VzQ29udGFpbmVyUmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IHJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKGVudGlyZXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFJlY3QgPSBlbnRpcmVzWzBdLmNvbnRlbnRSZWN0O1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geyBlbnRyeTogZW50aXJlc1swXSwgd2lkdGhDaGFuZ2VkOiBmYWxzZSwgaGVpZ2h0Q2hhbmdlZDogZmFsc2UgfTtcbiAgICAgICAgICAgIGlmIChjdXJyZW50UmVjdC53aWR0aCAhPT0gcHJldmlvdXNDb250YWluZXJSZWN0LndpZHRoKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LndpZHRoQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY3VycmVudFJlY3QuaGVpZ2h0ICE9PSBwcmV2aW91c0NvbnRhaW5lclJlY3QuaGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LmhlaWdodENoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcHJldmlvdXNDb250YWluZXJSZWN0ID0gY3VycmVudFJlY3Q7XG4gICAgICAgICAgICBzdWJqZWN0Lm5leHQocmVzdWx0KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWxlbWVudCk7XG4gICAgICAgIHJldHVybiByZXNpemVPYnNlcnZlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T3B0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMud2lkdGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0RWxlbWVudENoaWxkID0gdGhpcy5nZXRGaXJzdEVsZW1lbnRDaGlsZCgpO1xuICAgICAgICAgICAgdGhpcy5vcHRpb25zLndpZHRoID0gZmlyc3RFbGVtZW50Q2hpbGQub2Zmc2V0V2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVmYXVsdEZvbnRTaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmVkaXRvcj8ub3B0aW9ucz8uZm9udFNpemUgfHwgRm9udFNpemVzLmZvbnRTaXplMTQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEVkaXRhYmxlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50aGUtZWRpdG9yLXR5cG8nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rmlyc3RFbGVtZW50Q2hpbGQoKSB7XG4gICAgICAgIGNvbnN0IGVkaXRhYmxlRWxlbWVudCA9IHRoaXMuZ2V0RWRpdGFibGVFbGVtZW50KCk7XG4gICAgICAgIHJldHVybiBlZGl0YWJsZUVsZW1lbnQ/LmZpcnN0RWxlbWVudENoaWxkIGFzIEhUTUxFbGVtZW50O1xuICAgIH1cblxuICAgIGFkZFVwbG9hZGluZ0ZpbGVzKGZpbGU6IHsgdXJsOiBzdHJpbmc7IGZpbGU6IEZpbGUgfCBzdHJpbmcgfSkge1xuICAgICAgICB0aGlzLnVwbG9hZGluZ0ZpbGVzLnB1c2goZmlsZSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlVXBsb2FkRmlsZShmaWxlOiB7IHVybDogc3RyaW5nOyBmaWxlOiBGaWxlIHwgc3RyaW5nIH0pIHtcbiAgICAgICAgaWYgKCFmaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGxvYWRpbmdGaWxlcy5zcGxpY2UoXG4gICAgICAgICAgICB0aGlzLnVwbG9hZGluZ0ZpbGVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0udXJsID09PSBmaWxlLnVybCksXG4gICAgICAgICAgICAxXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBsb2FkaW5nU3RhdHVzJC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lclNjcm9sbGVkJD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy50aGVFZGl0b3JSZXNpemVkJD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJSZXNpemVkJD8uY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJSZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgICB0aGlzLnRoZUVkaXRvclJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICAgIHRoaXMud2luZG93UmVzaXplZCQ/LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMud2luZG93UmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxufVxuIl19
@@ -45,4 +45,4 @@ export function dataSerializing(mode, value) {
45
45
  }
46
46
  return value;
47
47
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10cmFuc2Zvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvZGF0YS10cmFuc2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZO0lBQ3JDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzVCLE9BQU87WUFDSCxJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVM7WUFDNUIsUUFBUSxFQUFFO2dCQUNOO29CQUNJLElBQUksRUFBRSxDQUFDO2lCQUNWO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFhO0lBQ3JDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRSxPQUFPLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7S0FDM0U7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFpQixFQUFFLEtBQTRCO0lBQzNFLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDUixPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0tBQ25DO0lBQ0QsSUFBSSxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRTtRQUMzQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzlCO0lBQ0QsT0FBUSxLQUFzQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQWlCLEVBQUUsS0FBbUI7SUFDbEUsSUFBSSxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRTtRQUMzQixPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBWSxDQUFDLENBQUM7S0FDckQ7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY2VuZGFudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IFRoZWlhQ29udmVydGVyIH0gZnJvbSAnQGF0aW5jL3NlbGVuZSc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlRGF0YU1vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUVtcHR5UGFyYWdyYXBoIH0gZnJvbSAnLi9jcmVhdGUtZW1wdHktcGFyYWdyYXBoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBsYWluVG9UaGVpYSh0ZXh0OiBzdHJpbmcpOiBEZXNjZW5kYW50W10ge1xuICAgIGlmICh0eXBlb2YgdGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0LnNwbGl0KCdcXG4nKS5tYXAoaSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLFxuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBodG1sVG9UaGVpYSh2YWx1ZTogc3RyaW5nKTogRGVzY2VuZGFudFtdIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBodG1sRG9tID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh2YWx1ZSwgJ3RleHQvaHRtbCcpO1xuICAgICAgICByZXR1cm4gVGhlaWFDb252ZXJ0ZXIuY29udmVydFRvVGhlaWEoQXJyYXkuZnJvbShodG1sRG9tLmJvZHkuY2hpbGRyZW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0YURlc2VyaWFsaXplKG1vZGU6IFRoZURhdGFNb2RlLCB2YWx1ZTogRGVzY2VuZGFudFtdIHwgc3RyaW5nKTogRGVzY2VuZGFudFtdIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiBbY3JlYXRlRW1wdHlQYXJhZ3JhcGgoKV07XG4gICAgfVxuICAgIGlmIChtb2RlID09PSBUaGVEYXRhTW9kZS5odG1sKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKC88W14+XSs+Ly50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGh0bWxUb1RoZWlhKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGxhaW5Ub1RoZWlhKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuICh2YWx1ZSBhcyBEZXNjZW5kYW50W10pIHx8IFtjcmVhdGVFbXB0eVBhcmFncmFwaCgpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFTZXJpYWxpemluZyhtb2RlOiBUaGVEYXRhTW9kZSwgdmFsdWU6IERlc2NlbmRhbnRbXSk6IHN0cmluZyB8IERlc2NlbmRhbnRbXSB7XG4gICAgaWYgKG1vZGUgPT09IFRoZURhdGFNb2RlLmh0bWwpIHtcbiAgICAgICAgcmV0dXJuIFRoZWlhQ29udmVydGVyLmNvbnZlcnRUb0h0bWwodmFsdWUgYXMgYW55KTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10cmFuc2Zvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvdXRpbHMvZGF0YS10cmFuc2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFZO0lBQ3JDLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzVCLE9BQU87WUFDSCxJQUFJLEVBQUUsWUFBWSxDQUFDLFNBQVM7WUFDNUIsUUFBUSxFQUFFO2dCQUNOO29CQUNJLElBQUksRUFBRSxDQUFDO2lCQUNWO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFhO0lBQ3JDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRSxPQUFPLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7S0FDM0U7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFpQixFQUFFLEtBQTRCO0lBQzNFLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDUixPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0tBQ25DO0lBQ0QsSUFBSSxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRTtRQUMzQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzlCO0lBQ0QsT0FBUSxLQUFzQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQWlCLEVBQUUsS0FBbUI7SUFDbEUsSUFBSSxJQUFJLEtBQUssV0FBVyxDQUFDLElBQUksRUFBRTtRQUMzQixPQUFPLGNBQWMsQ0FBQyxhQUFhLENBQUMsS0FBWSxDQUFDLENBQUM7S0FDckQ7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGhlaWFDb252ZXJ0ZXIgfSBmcm9tICdAYXRpbmMvc2VsZW5lJztcbmltcG9ydCB7IERlc2NlbmRhbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVGhlRGF0YU1vZGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUVtcHR5UGFyYWdyYXBoIH0gZnJvbSAnLi9jcmVhdGUtZW1wdHktcGFyYWdyYXBoJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBsYWluVG9UaGVpYSh0ZXh0OiBzdHJpbmcpOiBEZXNjZW5kYW50W10ge1xuICAgIGlmICh0eXBlb2YgdGV4dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuICAgIHJldHVybiB0ZXh0LnNwbGl0KCdcXG4nKS5tYXAoaSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLFxuICAgICAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBodG1sVG9UaGVpYSh2YWx1ZTogc3RyaW5nKTogRGVzY2VuZGFudFtdIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCBodG1sRG9tID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh2YWx1ZSwgJ3RleHQvaHRtbCcpO1xuICAgICAgICByZXR1cm4gVGhlaWFDb252ZXJ0ZXIuY29udmVydFRvVGhlaWEoQXJyYXkuZnJvbShodG1sRG9tLmJvZHkuY2hpbGRyZW4pKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0YURlc2VyaWFsaXplKG1vZGU6IFRoZURhdGFNb2RlLCB2YWx1ZTogRGVzY2VuZGFudFtdIHwgc3RyaW5nKTogRGVzY2VuZGFudFtdIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiBbY3JlYXRlRW1wdHlQYXJhZ3JhcGgoKV07XG4gICAgfVxuICAgIGlmIChtb2RlID09PSBUaGVEYXRhTW9kZS5odG1sKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKC88W14+XSs+Ly50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGh0bWxUb1RoZWlhKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcGxhaW5Ub1RoZWlhKHZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuICh2YWx1ZSBhcyBEZXNjZW5kYW50W10pIHx8IFtjcmVhdGVFbXB0eVBhcmFncmFwaCgpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGFTZXJpYWxpemluZyhtb2RlOiBUaGVEYXRhTW9kZSwgdmFsdWU6IERlc2NlbmRhbnRbXSk6IHN0cmluZyB8IERlc2NlbmRhbnRbXSB7XG4gICAgaWYgKG1vZGUgPT09IFRoZURhdGFNb2RlLmh0bWwpIHtcbiAgICAgICAgcmV0dXJuIFRoZWlhQ29udmVydGVyLmNvbnZlcnRUb0h0bWwodmFsdWUgYXMgYW55KTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuIl19