@wizishop/wizi-block 4.2.2-beta → 4.2.23-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/assets/i18n/en.json +1 -1
  2. package/assets/i18n/fr.json +1 -1
  3. package/bundles/wizishop-wizi-block.umd.js +602 -385
  4. package/bundles/wizishop-wizi-block.umd.js.map +1 -1
  5. package/bundles/wizishop-wizi-block.umd.min.js +1 -1
  6. package/bundles/wizishop-wizi-block.umd.min.js.map +1 -1
  7. package/esm2015/lib/components/configs/configs.component.js +2 -2
  8. package/esm2015/lib/dtos/blocks/parent-block.dto.js +3 -2
  9. package/esm2015/lib/dtos/blocks/witness/witness-background-one.dto.js +2 -2
  10. package/esm2015/lib/dtos/forms/forms.dto.js +2 -2
  11. package/esm2015/lib/shared/components/editorjs/editorjs.component.js +27 -7
  12. package/esm2015/lib/shared/components/editorjs/tools/inline/link-tool.component.js +76 -15
  13. package/esm2015/lib/shared/components/editorjs/tools/inline/text-background-color-tool.component.js +5 -7
  14. package/esm2015/lib/shared/components/editorjs/tools/inline/text-color-tool.component.js +4 -2
  15. package/esm2015/lib/shared/components/editorjs/tools/inline/text-size-tool.component.js +4 -3
  16. package/esm2015/lib/shared/components/editorjs/tools/inline/tool-type/inline-style-tool.component.js +51 -20
  17. package/esm2015/lib/shared/components/editorjs/tools/paragraph/text-type-tool.component.js +3 -2
  18. package/esm2015/lib/shared/components/editorjs/tools/paragraph/tool-type/paragraph-style-tool.component.js +35 -7
  19. package/esm2015/lib/shared/components/editorjs/tools/paragraph/tool-type/text-edition.component.js +5 -6
  20. package/esm2015/lib/shared/components/editorjs/tools/utils/editorjs-conversion.service.js +13 -1
  21. package/esm2015/lib/shared/components/editorjs/tools/utils/editorjs-tool.component.js +35 -2
  22. package/esm2015/lib/shared/components/editorjs/tools/utils/editorjs-translation.service.js +20 -0
  23. package/esm2015/lib/structures/text-backgrounds/four-rows-icon-text/text-backgrounds-four-rows-icon-text.component.js +7 -2
  24. package/esm2015/lib/structures/text-backgrounds/three-rows-icon-text/text-backgrounds-three-rows-icon-text.component.js +2 -2
  25. package/esm2015/lib/structures/text-backgrounds/two-rows-icon-text/text-backgrounds-two-rows-icon-text.component.js +2 -2
  26. package/esm2015/lib/structures/texts/quadruple-numbers/texts-quadruple-numbers.component.js +2 -2
  27. package/esm2015/lib/structures/timer/airport/timer-airport.component.js +2 -2
  28. package/esm2015/lib/structures/timer/background/timer-background.component.js +2 -2
  29. package/esm2015/lib/structures/timer/clock/timer-clock.component.js +2 -2
  30. package/esm2015/lib/structures/timer/multiple-img/timer-multiple-img.component.js +2 -2
  31. package/esm2015/lib/structures/timer/simple/timer-simple.component.js +2 -2
  32. package/esm2015/lib/wizi-block.component.js +4 -4
  33. package/esm2015/wizishop-wizi-block.js +227 -226
  34. package/fesm2015/wizishop-wizi-block.js +276 -74
  35. package/fesm2015/wizishop-wizi-block.js.map +1 -1
  36. package/lib/shared/components/editorjs/editorjs.component.d.ts +5 -1
  37. package/lib/shared/components/editorjs/tools/inline/link-tool.component.d.ts +1 -0
  38. package/lib/shared/components/editorjs/tools/inline/tool-type/inline-style-tool.component.d.ts +2 -2
  39. package/lib/shared/components/editorjs/tools/paragraph/tool-type/paragraph-style-tool.component.d.ts +5 -0
  40. package/lib/shared/components/editorjs/tools/utils/editorjs-tool.component.d.ts +2 -0
  41. package/lib/shared/components/editorjs/tools/utils/editorjs-translation.service.d.ts +7 -0
  42. package/lib/structures/text-backgrounds/four-rows-icon-text/text-backgrounds-four-rows-icon-text.component.d.ts +1 -0
  43. package/package.json +1 -1
  44. package/wizi-block.scss +2133 -1869
  45. package/wizishop-wizi-block.d.ts +226 -225
  46. package/wizishop-wizi-block.metadata.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';
3
+ import { editorJSI18nDictionnary } from '../utils/editorjs-translation.service';
3
4
  import { InlineStyleTool } from './tool-type/inline-style-tool.component';
4
5
  // @dynamic
5
6
  export class LinkTool extends InlineStyleTool {
@@ -30,6 +31,8 @@ export class LinkTool extends InlineStyleTool {
30
31
  linkInputId: 'linkInput',
31
32
  targetCheckboxId: 'targetCheckbox',
32
33
  obfuscationCheckboxId: 'obfuscationCheckbox',
34
+ addButtonClass: 'ce-inline-actions--link__add',
35
+ deleteButtonClass: 'ce-inline-actions--link__delete',
33
36
  };
34
37
  this.attributeName = 'data-htap,href';
35
38
  this.attributesToApply = [];
@@ -90,10 +93,11 @@ export class LinkTool extends InlineStyleTool {
90
93
  if (!this.parentEditor) {
91
94
  this.parentEditor = this.findParentEditor();
92
95
  }
96
+ let uuid = this.parentEditor.getAttribute('id').replace('editorJs-', '');
93
97
  this.attributesToApply = [];
94
- let targetCheckbox = this.parentEditor.querySelector('#' + this.linkCss['targetCheckboxId']);
95
- let obfuscationCheckbox = this.parentEditor.querySelector('#' + this.linkCss['obfuscationCheckboxId']);
96
- let linkInput = this.parentEditor.querySelector('#' + this.linkCss['linkInputId']);
98
+ let targetCheckbox = this.parentEditor.querySelector('#' + this.linkCss['targetCheckboxId'] + uuid);
99
+ let obfuscationCheckbox = this.parentEditor.querySelector('#' + this.linkCss['obfuscationCheckboxId'] + uuid);
100
+ let linkInput = this.parentEditor.querySelector('#' + this.linkCss['linkInputId'] + uuid);
97
101
  if (targetCheckbox.checked) {
98
102
  this.attributesToApply.push({
99
103
  name: 'target',
@@ -122,7 +126,25 @@ export class LinkTool extends InlineStyleTool {
122
126
  this.openLinkDropdown();
123
127
  });
124
128
  }
129
+ deleteLink() {
130
+ return __awaiter(this, void 0, void 0, function* () {
131
+ if (!this.parentEditor) {
132
+ this.parentEditor = this.findParentEditor();
133
+ }
134
+ this.tag = 'A';
135
+ this.attributesToApply = null;
136
+ this.modifies.tag = true;
137
+ this.resetUserSelection();
138
+ yield this.surround(null, true);
139
+ this.checkState(this.currentSelection);
140
+ this.openLinkDropdown();
141
+ });
142
+ }
125
143
  renderActions() {
144
+ if (!this.parentEditor) {
145
+ this.parentEditor = this.findParentEditor();
146
+ }
147
+ let uuid = this.parentEditor.getAttribute('id').replace('editorJs-', '');
126
148
  let container = document.createElement('div');
127
149
  container.className = this.linkCss['container'] + ' hidden';
128
150
  let linkContainer = document.createElement('div');
@@ -132,27 +154,31 @@ export class LinkTool extends InlineStyleTool {
132
154
  let obfuscationContainer = document.createElement('div');
133
155
  obfuscationContainer.className = this.linkCss['obfuscationContainer'];
134
156
  let applyButton = document.createElement('button');
135
- applyButton.innerText = this.api.i18n.t('add');
157
+ applyButton.className = this.linkCss['addButtonClass'];
158
+ applyButton.innerText = editorJSI18nDictionnary.messages.tools.link['add'];
136
159
  applyButton.addEventListener('click', () => this.applyLink());
137
160
  let linkInput = document.createElement('input');
138
- linkInput.setAttribute('id', this.linkCss['linkInputId']);
139
- linkInput.setAttribute('placeholder', this.api.i18n.t('placeholder'));
161
+ linkInput.setAttribute('id', this.linkCss['linkInputId'] + uuid);
162
+ linkInput.setAttribute('placeholder', editorJSI18nDictionnary.messages.tools.link['placeholder']);
140
163
  let targetCheckbox = document.createElement('input');
141
- targetCheckbox.setAttribute('id', this.linkCss['targetCheckboxId']);
164
+ targetCheckbox.setAttribute('id', this.linkCss['targetCheckboxId'] + uuid);
142
165
  targetCheckbox.setAttribute('type', 'checkbox');
143
166
  let targetLabel = document.createElement('label');
144
- targetLabel.innerText = this.api.i18n.t('external');
145
- targetLabel.setAttribute('for', this.linkCss['targetCheckboxId']);
167
+ targetLabel.innerText = editorJSI18nDictionnary.messages.tools.link['external'];
168
+ targetLabel.setAttribute('for', this.linkCss['targetCheckboxId'] + uuid);
146
169
  let obfuscationCheckbox = document.createElement('input');
147
- obfuscationCheckbox.setAttribute('id', this.linkCss['obfuscationCheckboxId']);
170
+ obfuscationCheckbox.setAttribute('id', this.linkCss['obfuscationCheckboxId'] + uuid);
148
171
  obfuscationCheckbox.setAttribute('type', 'checkbox');
149
172
  let obfuscationLabel = document.createElement('label');
150
- obfuscationLabel.innerText = this.api.i18n.t('obfuscated');
151
- obfuscationLabel.setAttribute('for', this.linkCss['obfuscationCheckboxId']);
173
+ obfuscationLabel.innerText = editorJSI18nDictionnary.messages.tools.link['obfuscated'];
174
+ obfuscationLabel.setAttribute('for', this.linkCss['obfuscationCheckboxId'] + uuid);
152
175
  let obfuscationTooltipContainer = document.createElement('div');
153
176
  let obbfuscationTooltip = document.createElement('div');
154
- obbfuscationTooltip.innerHTML = this.api.i18n.t('info');
177
+ obbfuscationTooltip.innerHTML = editorJSI18nDictionnary.messages.tools.link['info'];
155
178
  obfuscationTooltipContainer.appendChild(obbfuscationTooltip);
179
+ let deleteButton = document.createElement('button');
180
+ deleteButton.className = this.linkCss['deleteButtonClass'] + ' hidden';
181
+ deleteButton.addEventListener('click', () => this.deleteLink());
156
182
  linkContainer.appendChild(linkInput);
157
183
  targetContainer.appendChild(targetCheckbox);
158
184
  targetContainer.appendChild(targetLabel);
@@ -163,9 +189,42 @@ export class LinkTool extends InlineStyleTool {
163
189
  container.appendChild(targetContainer);
164
190
  container.appendChild(obfuscationContainer);
165
191
  container.appendChild(applyButton);
192
+ container.appendChild(deleteButton);
166
193
  return container;
167
194
  }
168
- showActions(mark) { }
195
+ showActions(mark) {
196
+ if (!this.parentEditor) {
197
+ this.parentEditor = this.findParentEditor();
198
+ }
199
+ let uuid = this.parentEditor.getAttribute('id').replace('editorJs-', '');
200
+ let targetCheckbox = this.parentEditor.querySelector('#' + this.linkCss['targetCheckboxId'] + uuid);
201
+ let obfuscationCheckbox = this.parentEditor.querySelector('#' + this.linkCss['obfuscationCheckboxId'] + uuid);
202
+ let linkInput = this.parentEditor.querySelector('#' + this.linkCss['linkInputId'] + uuid);
203
+ let deleteButton = this.parentEditor.querySelector('.' + this.linkCss['deleteButtonClass']);
204
+ let addButton = this.parentEditor.querySelector('.' + this.linkCss['addButtonClass']);
205
+ linkInput.value = '';
206
+ if (this.checkState(this.getSelection())) {
207
+ let selection = this.getSelection();
208
+ let element = this.hasStyle(selection.anchorNode);
209
+ linkInput.value = element.getAttribute(element.tagName.toLowerCase() === 'a' ? 'href' : 'data-htap');
210
+ targetCheckbox.checked = element.getAttribute('target') === '_blank';
211
+ obfuscationCheckbox.checked = element.tagName.toLowerCase() === 'span';
212
+ if (deleteButton.classList.contains('hidden')) {
213
+ deleteButton.classList.remove('hidden');
214
+ }
215
+ if (!addButton.classList.contains('hidden')) {
216
+ addButton.classList.add('hidden');
217
+ }
218
+ }
219
+ else {
220
+ if (!deleteButton.classList.contains('hidden')) {
221
+ deleteButton.classList.add('hidden');
222
+ }
223
+ if (addButton.classList.contains('hidden')) {
224
+ addButton.classList.remove('hidden');
225
+ }
226
+ }
227
+ }
169
228
  hideActions() { }
170
229
  openLinkDropdown() {
171
230
  if (!this.parentEditor) {
@@ -175,6 +234,7 @@ export class LinkTool extends InlineStyleTool {
175
234
  this.saveUserSelection();
176
235
  if (linkDropdown) {
177
236
  if (linkDropdown.classList.contains('hidden')) {
237
+ this.showActions(null);
178
238
  let viewportOffset = linkDropdown.getBoundingClientRect();
179
239
  if (viewportOffset.left + linkDropdown.offsetWidth > document.body.offsetWidth) {
180
240
  let left = parseInt(window.getComputedStyle(linkDropdown, null).getPropertyValue('left')) -
@@ -194,6 +254,7 @@ export class LinkTool extends InlineStyleTool {
194
254
  }, 400);
195
255
  }
196
256
  else {
257
+ this.resetUserSelection();
197
258
  this.isLinkDropdownOpen = false;
198
259
  linkDropdown.classList.add('hidden');
199
260
  }
@@ -218,4 +279,4 @@ export class LinkTool extends InlineStyleTool {
218
279
  }
219
280
  }
220
281
  LinkTool.title = 'Link';
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9wYXVsaW5lL0RvY3VtZW50cy93b3Jrc3BhY2Uvd2l6aS1ibG9jay9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvY29tcG9uZW50cy9lZGl0b3Jqcy90b29scy9pbmxpbmUvbGluay10b29sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFtQixjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTFFLFdBQVc7QUFDWCxNQUFNLE9BQU8sUUFBUyxTQUFRLGVBQWU7SUFzRXpDLFlBQVksRUFBRSxHQUFHLEVBQUU7UUFDZixLQUFLLEVBQUUsQ0FBQztRQXBFSyxnQkFBVyxHQUFXLE1BQU0sQ0FBQztRQUU3QixRQUFHLEdBQUc7WUFDbkIsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLGNBQWMsRUFBRSxzQkFBc0I7U0FDekMsQ0FBQztRQUVNLFVBQUssR0FBa0M7WUFDM0MsTUFBTSxFQUFFLFNBQVM7U0FDcEIsQ0FBQztRQU1GLFFBQUcsR0FBRyxNQUFNLENBQUM7UUFFYix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFMUIsYUFBUSxHQUFHO1lBQ1AsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLElBQUk7U0FDbEIsQ0FBQztRQUVGLFlBQU8sR0FBVztZQUNkLFNBQVMsRUFBRSx5QkFBeUI7WUFDcEMsYUFBYSxFQUFFLG9DQUFvQztZQUNuRCxlQUFlLEVBQUUsaUNBQWlDO1lBQ2xELG9CQUFvQixFQUFFLHNDQUFzQztZQUM1RCxXQUFXLEVBQUUsV0FBVztZQUN4QixnQkFBZ0IsRUFBRSxnQkFBZ0I7WUFDbEMscUJBQXFCLEVBQUUscUJBQXFCO1NBQy9DLENBQUM7UUFFRixrQkFBYSxHQUFXLGdCQUFnQixDQUFDO1FBRXpDLHNCQUFpQixHQUFrQyxFQUFFLENBQUM7UUFFdEQsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBNEJoQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUE1Qk0sTUFBTSxLQUFLLFFBQVE7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLE1BQU0sS0FBSyxRQUFRO1FBQ3RCLE9BQU87WUFDSCxDQUFDLEVBQUUsRUFBRTtTQUNXLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLEtBQUs7UUFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFRRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQXNCLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDM0UsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFSyxRQUFRLENBQUMsS0FBWSxFQUFFLFlBQXFCLEtBQUs7O1lBQ25ELElBQUksU0FBUyxFQUFFO2dCQUNYLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7YUFDeEM7UUFDTCxDQUFDO0tBQUE7SUFFRCxVQUFVLENBQUMsU0FBUztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNqQixhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3BDO1FBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBYyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFcEUsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVLLFNBQVM7O1lBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7YUFDL0M7WUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1lBRTVCLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQXFCLENBQUM7WUFDakgsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFxQixDQUFDO1lBQzNILElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFxQixDQUFDO1lBQ3ZHLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRTtnQkFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztvQkFDeEIsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsS0FBSyxFQUFFLFFBQVE7aUJBQ2xCLENBQUMsQ0FBQzthQUNOO1lBQ0QsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDO2dCQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7b0JBQ3hCLElBQUksRUFBRSxXQUFXO29CQUNqQixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7aUJBQy9CLENBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNILElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO2dCQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQztnQkFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQztvQkFDeEIsSUFBSSxFQUFFLE1BQU07b0JBQ1osS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO2lCQUN6QixDQUFDLENBQUM7YUFDTjtZQUNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM1QixDQUFDO0tBQUE7SUFFRCxhQUFhO1FBQ1QsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxTQUFTLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBRTVELElBQUksYUFBYSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEQsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hELElBQUksZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUQsSUFBSSxvQkFBb0IsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pELG9CQUFvQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDdEUsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRTlELElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzFELFNBQVMsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsY0FBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDcEUsY0FBYyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxXQUFXLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxXQUFXLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsbUJBQW1CLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUM5RSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELElBQUksZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNELGdCQUFnQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSwyQkFBMkIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLElBQUksbUJBQW1CLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCxtQkFBbUIsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTdELGFBQWEsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QyxlQUFlLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RELG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25ELG9CQUFvQixDQUFDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBRTlELFNBQVMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDckMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2QyxTQUFTLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDNUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVuQyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQUksSUFBRyxDQUFDO0lBRXBCLFdBQVcsS0FBSSxDQUFDO0lBRWhCLGdCQUFnQjtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDL0M7UUFDRCxJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksWUFBWSxFQUFFO1lBQ2QsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDM0MsSUFBSSxjQUFjLEdBQUcsWUFBWSxDQUFDLHFCQUFxQixFQUFFLENBQUM7Z0JBQzFELElBQUksY0FBYyxDQUFDLElBQUksR0FBaUIsWUFBYSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDM0YsSUFBSSxJQUFJLEdBQ0osUUFBUSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzlFLENBQUMsY0FBYyxDQUFDLElBQUksR0FBaUIsWUFBYSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNsRixZQUFhLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDO2lCQUNuRTtnQkFDYSxZQUFhLENBQUMsS0FBSyxDQUFDLEdBQUc7b0JBQ2pDLEdBQUc7d0JBQ0gsQ0FDa0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsNkJBQTZCLENBQUUsQ0FBQyxZQUFZOzRCQUMxRixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FDakUsQ0FBQyxRQUFRLEVBQUU7d0JBQ1osSUFBSSxDQUFDO2dCQUNULFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN4QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM1QyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdEYsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO2dCQUNuQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDWDtpQkFBTTtnQkFDSCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO2dCQUNoQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN4QztTQUNKO0lBQ0wsQ0FBQztJQUVELHdCQUF3QixDQUFDLE1BQU07UUFDM0IsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzVCLE9BQU8sT0FBTyxFQUFFO2dCQUNaLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFO29CQUN2RCxPQUFPO2lCQUNWO2dCQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO2FBQ25DO1lBQ0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUNoQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQzs7QUF4UGEsY0FBSyxHQUFHLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElubGluZVRvb2wsIFNhbml0aXplckNvbmZpZyB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVPYmplY3QsIGlzQmxvY2tGb2N1c2VkLCBzZXRCbG9ja0ZvY3VzIH0gZnJvbSAnLi4vdXRpbHMvZWRpdG9yanMtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5saW5lU3R5bGVUb29sIH0gZnJvbSAnLi90b29sLXR5cGUvaW5saW5lLXN0eWxlLXRvb2wuY29tcG9uZW50JztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBMaW5rVG9vbCBleHRlbmRzIElubGluZVN0eWxlVG9vbCBpbXBsZW1lbnRzIElubGluZVRvb2wge1xuICAgIHB1YmxpYyBzdGF0aWMgdGl0bGUgPSAnTGluayc7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmROYW1lOiBzdHJpbmcgPSAnbGluayc7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IENTUyA9IHtcbiAgICAgICAgYnV0dG9uOiAnY2UtaW5saW5lLXRvb2wnLFxuICAgICAgICBidXR0b25BY3RpdmU6ICdjZS1pbmxpbmUtdG9vbC0tYWN0aXZlJyxcbiAgICAgICAgYnV0dG9uTW9kaWZpZXI6ICdjZS1pbmxpbmUtdG9vbC0tbGluaycsXG4gICAgfTtcblxuICAgIHByaXZhdGUgbm9kZXM6IHsgYnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudCB9ID0ge1xuICAgICAgICBidXR0b246IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBhcGk6IGFueTtcblxuICAgIHByaXZhdGUgX3N0YXRlOiBib29sZWFuO1xuXG4gICAgdGFnID0gJ1NQQU4nO1xuXG4gICAgaGFzU2VwYXJhdG9yQmVmb3JlID0gdHJ1ZTtcblxuICAgIG1vZGlmaWVzID0ge1xuICAgICAgICB0YWc6IGZhbHNlLFxuICAgICAgICBzdHlsZTogZmFsc2UsXG4gICAgICAgIGNsYXNzOiBmYWxzZSxcbiAgICAgICAgYXR0cmlidXRlOiB0cnVlLFxuICAgIH07XG5cbiAgICBsaW5rQ3NzOiBPYmplY3QgPSB7XG4gICAgICAgIGNvbnRhaW5lcjogJ2NlLWlubGluZS1hY3Rpb25zLS1saW5rJyxcbiAgICAgICAgbGlua0NvbnRhaW5lcjogJ2NlLWlubGluZS1hY3Rpb25zLS1saW5rX19jb250YWluZXInLFxuICAgICAgICB0YXJnZXRDb250YWluZXI6ICdjZS1pbmxpbmUtYWN0aW9ucy0tbGlua19fdGFyZ2V0JyxcbiAgICAgICAgb2JmdXNjYXRpb25Db250YWluZXI6ICdjZS1pbmxpbmUtYWN0aW9ucy0tbGlua19fb2JmdXNjYXRpb24nLFxuICAgICAgICBsaW5rSW5wdXRJZDogJ2xpbmtJbnB1dCcsXG4gICAgICAgIHRhcmdldENoZWNrYm94SWQ6ICd0YXJnZXRDaGVja2JveCcsXG4gICAgICAgIG9iZnVzY2F0aW9uQ2hlY2tib3hJZDogJ29iZnVzY2F0aW9uQ2hlY2tib3gnLFxuICAgIH07XG5cbiAgICBhdHRyaWJ1dGVOYW1lOiBzdHJpbmcgPSAnZGF0YS1odGFwLGhyZWYnO1xuXG4gICAgYXR0cmlidXRlc1RvQXBwbHk6IEFycmF5PEF0dHJpYnV0ZU9iamVjdD4gfCBudWxsID0gW107XG5cbiAgICBpc0xpbmtEcm9wZG93bk9wZW46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGlzSW5saW5lKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBzYW5pdGl6ZSgpOiBTYW5pdGl6ZXJDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYjoge30sXG4gICAgICAgIH0gYXMgU2FuaXRpemVyQ29uZmlnO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2hvcnRjdXQoKSB7XG4gICAgICAgIHJldHVybiAnQ01EK0snO1xuICAgIH1cblxuICAgIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRlO1xuICAgIH1cblxuICAgIHNldCBzdGF0ZShzdGF0ZSkge1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IHN0YXRlO1xuXG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC50b2dnbGUodGhpcy5hcGkuc3R5bGVzLmlubGluZVRvb2xCdXR0b25BY3RpdmUsIHN0YXRlKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcih7IGFwaSB9KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYXBpID0gYXBpO1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24udHlwZSA9ICdidXR0b24nO1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuQ1NTLmJ1dHRvbiwgdGhpcy5DU1MuYnV0dG9uTW9kaWZpZXIpO1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbkxpbmtEcm9wZG93bigpKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2VwYXJhdG9yQmVmb3JlKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuc2VwYXJhdG9yQ2xhc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXMuYnV0dG9uO1xuICAgIH1cblxuICAgIGFzeW5jIHN1cnJvdW5kKHJhbmdlOiBSYW5nZSwgYXBwbHlMaW5rOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgaWYgKGFwcGx5TGluaykge1xuICAgICAgICAgICAgdGhpcy5zYXZlVXNlclNlbGVjdGlvbigpO1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjQ29tbWFuZFN0eWxlKHRoaXMudGFnKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tTdGF0ZSh0aGlzLmdldFNlbGVjdGlvbigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoZWNrU3RhdGUoc2VsZWN0aW9uKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXJlbnRFZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50RWRpdG9yID0gdGhpcy5maW5kUGFyZW50RWRpdG9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0Jsb2NrRm9jdXNlZCkge1xuICAgICAgICAgICAgc2V0QmxvY2tGb2N1cyh0aGlzLnBhcmVudEVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLmhhc1N0eWxlKDxIVE1MRWxlbWVudD5zZWxlY3Rpb24uYW5jaG9yTm9kZSkgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC50b2dnbGUodGhpcy5DU1MuYnV0dG9uQWN0aXZlLCBpc0FjdGl2ZSk7XG5cbiAgICAgICAgcmV0dXJuIGlzQWN0aXZlO1xuICAgIH1cblxuICAgIGFzeW5jIGFwcGx5TGluaygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudEVkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRFZGl0b3IgPSB0aGlzLmZpbmRQYXJlbnRFZGl0b3IoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF0dHJpYnV0ZXNUb0FwcGx5ID0gW107XG5cbiAgICAgICAgbGV0IHRhcmdldENoZWNrYm94ID0gdGhpcy5wYXJlbnRFZGl0b3IucXVlcnlTZWxlY3RvcignIycgKyB0aGlzLmxpbmtDc3NbJ3RhcmdldENoZWNrYm94SWQnXSkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgbGV0IG9iZnVzY2F0aW9uQ2hlY2tib3ggPSB0aGlzLnBhcmVudEVkaXRvci5xdWVyeVNlbGVjdG9yKCcjJyArIHRoaXMubGlua0Nzc1snb2JmdXNjYXRpb25DaGVja2JveElkJ10pIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGxldCBsaW5rSW5wdXQgPSB0aGlzLnBhcmVudEVkaXRvci5xdWVyeVNlbGVjdG9yKCcjJyArIHRoaXMubGlua0Nzc1snbGlua0lucHV0SWQnXSkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKHRhcmdldENoZWNrYm94LmNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1RvQXBwbHkucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3RhcmdldCcsXG4gICAgICAgICAgICAgICAgdmFsdWU6ICdfYmxhbmsnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iZnVzY2F0aW9uQ2hlY2tib3guY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy50YWcgPSAnU1BBTic7XG4gICAgICAgICAgICB0aGlzLm1vZGlmaWVzLnRhZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzVG9BcHBseS5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnZGF0YS1odGFwJyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogYnRvYShsaW5rSW5wdXQudmFsdWUpLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRhZyA9ICdBJztcbiAgICAgICAgICAgIHRoaXMubW9kaWZpZXMudGFnID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1RvQXBwbHkucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2hyZWYnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBsaW5rSW5wdXQudmFsdWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlc2V0VXNlclNlbGVjdGlvbigpO1xuICAgICAgICBhd2FpdCB0aGlzLnN1cnJvdW5kKG51bGwsIHRydWUpO1xuICAgICAgICB0aGlzLmNoZWNrU3RhdGUodGhpcy5jdXJyZW50U2VsZWN0aW9uKTtcbiAgICAgICAgdGhpcy5vcGVuTGlua0Ryb3Bkb3duKCk7XG4gICAgfVxuXG4gICAgcmVuZGVyQWN0aW9ucygpIHtcbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBjb250YWluZXIuY2xhc3NOYW1lID0gdGhpcy5saW5rQ3NzWydjb250YWluZXInXSArICcgaGlkZGVuJztcblxuICAgICAgICBsZXQgbGlua0NvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBsaW5rQ29udGFpbmVyLmNsYXNzTmFtZSA9IHRoaXMubGlua0Nzc1snbGlua0NvbnRhaW5lciddO1xuICAgICAgICBsZXQgdGFyZ2V0Q29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRhcmdldENvbnRhaW5lci5jbGFzc05hbWUgPSB0aGlzLmxpbmtDc3NbJ3RhcmdldENvbnRhaW5lciddO1xuICAgICAgICBsZXQgb2JmdXNjYXRpb25Db250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgb2JmdXNjYXRpb25Db250YWluZXIuY2xhc3NOYW1lID0gdGhpcy5saW5rQ3NzWydvYmZ1c2NhdGlvbkNvbnRhaW5lciddO1xuICAgICAgICBsZXQgYXBwbHlCdXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKTtcbiAgICAgICAgYXBwbHlCdXR0b24uaW5uZXJUZXh0ID0gdGhpcy5hcGkuaTE4bi50KCdhZGQnKTtcbiAgICAgICAgYXBwbHlCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLmFwcGx5TGluaygpKTtcblxuICAgICAgICBsZXQgbGlua0lucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgICAgbGlua0lucHV0LnNldEF0dHJpYnV0ZSgnaWQnLCB0aGlzLmxpbmtDc3NbJ2xpbmtJbnB1dElkJ10pO1xuICAgICAgICBsaW5rSW5wdXQuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsIHRoaXMuYXBpLmkxOG4udCgncGxhY2Vob2xkZXInKSk7XG4gICAgICAgIGxldCB0YXJnZXRDaGVja2JveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIHRhcmdldENoZWNrYm94LnNldEF0dHJpYnV0ZSgnaWQnLCB0aGlzLmxpbmtDc3NbJ3RhcmdldENoZWNrYm94SWQnXSk7XG4gICAgICAgIHRhcmdldENoZWNrYm94LnNldEF0dHJpYnV0ZSgndHlwZScsICdjaGVja2JveCcpO1xuICAgICAgICBsZXQgdGFyZ2V0TGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xuICAgICAgICB0YXJnZXRMYWJlbC5pbm5lclRleHQgPSB0aGlzLmFwaS5pMThuLnQoJ2V4dGVybmFsJyk7XG4gICAgICAgIHRhcmdldExhYmVsLnNldEF0dHJpYnV0ZSgnZm9yJywgdGhpcy5saW5rQ3NzWyd0YXJnZXRDaGVja2JveElkJ10pO1xuICAgICAgICBsZXQgb2JmdXNjYXRpb25DaGVja2JveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIG9iZnVzY2F0aW9uQ2hlY2tib3guc2V0QXR0cmlidXRlKCdpZCcsIHRoaXMubGlua0Nzc1snb2JmdXNjYXRpb25DaGVja2JveElkJ10pO1xuICAgICAgICBvYmZ1c2NhdGlvbkNoZWNrYm94LnNldEF0dHJpYnV0ZSgndHlwZScsICdjaGVja2JveCcpO1xuICAgICAgICBsZXQgb2JmdXNjYXRpb25MYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xhYmVsJyk7XG4gICAgICAgIG9iZnVzY2F0aW9uTGFiZWwuaW5uZXJUZXh0ID0gdGhpcy5hcGkuaTE4bi50KCdvYmZ1c2NhdGVkJyk7XG4gICAgICAgIG9iZnVzY2F0aW9uTGFiZWwuc2V0QXR0cmlidXRlKCdmb3InLCB0aGlzLmxpbmtDc3NbJ29iZnVzY2F0aW9uQ2hlY2tib3hJZCddKTtcbiAgICAgICAgbGV0IG9iZnVzY2F0aW9uVG9vbHRpcENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBsZXQgb2JiZnVzY2F0aW9uVG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBvYmJmdXNjYXRpb25Ub29sdGlwLmlubmVySFRNTCA9IHRoaXMuYXBpLmkxOG4udCgnaW5mbycpO1xuICAgICAgICBvYmZ1c2NhdGlvblRvb2x0aXBDb250YWluZXIuYXBwZW5kQ2hpbGQob2JiZnVzY2F0aW9uVG9vbHRpcCk7XG5cbiAgICAgICAgbGlua0NvbnRhaW5lci5hcHBlbmRDaGlsZChsaW5rSW5wdXQpO1xuICAgICAgICB0YXJnZXRDb250YWluZXIuYXBwZW5kQ2hpbGQodGFyZ2V0Q2hlY2tib3gpO1xuICAgICAgICB0YXJnZXRDb250YWluZXIuYXBwZW5kQ2hpbGQodGFyZ2V0TGFiZWwpO1xuICAgICAgICBvYmZ1c2NhdGlvbkNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmZ1c2NhdGlvbkNoZWNrYm94KTtcbiAgICAgICAgb2JmdXNjYXRpb25Db250YWluZXIuYXBwZW5kQ2hpbGQob2JmdXNjYXRpb25MYWJlbCk7XG4gICAgICAgIG9iZnVzY2F0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKG9iZnVzY2F0aW9uVG9vbHRpcENvbnRhaW5lcik7XG5cbiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGxpbmtDb250YWluZXIpO1xuICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQodGFyZ2V0Q29udGFpbmVyKTtcbiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKG9iZnVzY2F0aW9uQ29udGFpbmVyKTtcbiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGFwcGx5QnV0dG9uKTtcblxuICAgICAgICByZXR1cm4gY29udGFpbmVyO1xuICAgIH1cblxuICAgIHNob3dBY3Rpb25zKG1hcmspIHt9XG5cbiAgICBoaWRlQWN0aW9ucygpIHt9XG5cbiAgICBvcGVuTGlua0Ryb3Bkb3duKCkge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50RWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsaW5rRHJvcGRvd24gPSB0aGlzLnBhcmVudEVkaXRvci5xdWVyeVNlbGVjdG9yKCcuJyArIHRoaXMubGlua0Nzc1snY29udGFpbmVyJ10pO1xuICAgICAgICB0aGlzLnNhdmVVc2VyU2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChsaW5rRHJvcGRvd24pIHtcbiAgICAgICAgICAgIGlmIChsaW5rRHJvcGRvd24uY2xhc3NMaXN0LmNvbnRhaW5zKCdoaWRkZW4nKSkge1xuICAgICAgICAgICAgICAgIGxldCB2aWV3cG9ydE9mZnNldCA9IGxpbmtEcm9wZG93bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBpZiAodmlld3BvcnRPZmZzZXQubGVmdCArICg8SFRNTEVsZW1lbnQ+bGlua0Ryb3Bkb3duKS5vZmZzZXRXaWR0aCA+IGRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxlZnQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VJbnQod2luZG93LmdldENvbXB1dGVkU3R5bGUobGlua0Ryb3Bkb3duLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdsZWZ0JykpIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICh2aWV3cG9ydE9mZnNldC5sZWZ0ICsgKDxIVE1MRWxlbWVudD5saW5rRHJvcGRvd24pLm9mZnNldFdpZHRoIC0gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCk7XG4gICAgICAgICAgICAgICAgICAgICg8SFRNTEVsZW1lbnQ+bGlua0Ryb3Bkb3duKS5zdHlsZS5sZWZ0ID0gbGVmdC50b1N0cmluZygpICsgJ3B4JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKDxIVE1MRWxlbWVudD5saW5rRHJvcGRvd24pLnN0eWxlLnRvcCA9XG4gICAgICAgICAgICAgICAgICAgICctJyArXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICg8SFRNTEVsZW1lbnQ+dGhpcy5wYXJlbnRFZGl0b3IucXVlcnlTZWxlY3RvcignLmNlLWlubGluZS10b29sYmFyX19idXR0b25zJykpLm9mZnNldEhlaWdodCAtXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5ub2Rlcy5idXR0b24ub2Zmc2V0VG9wICsgdGhpcy5ub2Rlcy5idXR0b24ub2Zmc2V0SGVpZ2h0KVxuICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5nKCkgK1xuICAgICAgICAgICAgICAgICAgICAncHgnO1xuICAgICAgICAgICAgICAgIGxpbmtEcm9wZG93bi5jbGFzc0xpc3QucmVtb3ZlKCdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCRldmVudCkgPT4gdGhpcy5pc0xpbmtEcm9wZG93bkZvY3VzZWRPdXQoJGV2ZW50KSk7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMaW5rRHJvcGRvd25PcGVuID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LCA0MDApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTGlua0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxpbmtEcm9wZG93bi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzTGlua0Ryb3Bkb3duRm9jdXNlZE91dCgkZXZlbnQpIHtcbiAgICAgICAgbGV0IGNvbG9yU2VsZWN0aW9uID0gdGhpcy5wYXJlbnRFZGl0b3IucXVlcnlTZWxlY3RvcignLicgKyB0aGlzLmxpbmtDc3NbJ2NvbnRhaW5lciddKTtcbiAgICAgICAgaWYgKHRoaXMuaXNMaW5rRHJvcGRvd25PcGVuKSB7XG4gICAgICAgICAgICBsZXQgZWxlbWVudCA9ICRldmVudC50YXJnZXQ7XG4gICAgICAgICAgICB3aGlsZSAoZWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyh0aGlzLmxpbmtDc3NbJ2NvbnRhaW5lciddKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsICgkZXZlbnQpID0+IHRoaXMuaXNMaW5rRHJvcGRvd25Gb2N1c2VkT3V0KCRldmVudCkpO1xuICAgICAgICAgICAgdGhpcy5pc0xpbmtEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgIGNvbG9yU2VsZWN0aW9uLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpO1xuICAgICAgICAgICAgdGhpcy5hcGkudG9vbGJhci5jbG9zZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9wYXVsaW5lL0RvY3VtZW50cy93b3Jrc3BhY2Uvd2l6aS1ibG9jay9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvY29tcG9uZW50cy9lZGl0b3Jqcy90b29scy9pbmxpbmUvbGluay10b29sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFtQixjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTFFLFdBQVc7QUFDWCxNQUFNLE9BQU8sUUFBUyxTQUFRLGVBQWU7SUF3RXpDLFlBQVksRUFBRSxHQUFHLEVBQUU7UUFDZixLQUFLLEVBQUUsQ0FBQztRQXRFSyxnQkFBVyxHQUFXLE1BQU0sQ0FBQztRQUU3QixRQUFHLEdBQUc7WUFDbkIsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLGNBQWMsRUFBRSxzQkFBc0I7U0FDekMsQ0FBQztRQUVNLFVBQUssR0FBa0M7WUFDM0MsTUFBTSxFQUFFLFNBQVM7U0FDcEIsQ0FBQztRQU1GLFFBQUcsR0FBRyxNQUFNLENBQUM7UUFFYix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFFMUIsYUFBUSxHQUFHO1lBQ1AsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLElBQUk7U0FDbEIsQ0FBQztRQUVGLFlBQU8sR0FBVztZQUNkLFNBQVMsRUFBRSx5QkFBeUI7WUFDcEMsYUFBYSxFQUFFLG9DQUFvQztZQUNuRCxlQUFlLEVBQUUsaUNBQWlDO1lBQ2xELG9CQUFvQixFQUFFLHNDQUFz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QUN4QztTQUNKO0lBQ0wsQ0FBQztJQUVELHdCQUF3QixDQUFDLE1BQU07UUFDM0IsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzVCLE9BQU8sT0FBTyxFQUFFO2dCQUNaLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFO29CQUN2RCxPQUFPO2lCQUNWO2dCQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDO2FBQ25DO1lBQ0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUNoQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQztTQUNmO0lBQ0wsQ0FBQzs7QUFwVGEsY0FBSyxHQUFHLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElubGluZVRvb2wsIFNhbml0aXplckNvbmZpZyB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XG5pbXBvcnQgeyBBdHRyaWJ1dGVPYmplY3QsIGlzQmxvY2tGb2N1c2VkLCBzZXRCbG9ja0ZvY3VzIH0gZnJvbSAnLi4vdXRpbHMvZWRpdG9yanMtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZWRpdG9ySlNJMThuRGljdGlvbm5hcnkgfSBmcm9tICcuLi91dGlscy9lZGl0b3Jqcy10cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElubGluZVN0eWxlVG9vbCB9IGZyb20gJy4vdG9vbC10eXBlL2lubGluZS1zdHlsZS10b29sLmNvbXBvbmVudCc7XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgTGlua1Rvb2wgZXh0ZW5kcyBJbmxpbmVTdHlsZVRvb2wgaW1wbGVtZW50cyBJbmxpbmVUb29sIHtcbiAgICBwdWJsaWMgc3RhdGljIHRpdGxlID0gJ0xpbmsnO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kTmFtZTogc3RyaW5nID0gJ2xpbmsnO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBDU1MgPSB7XG4gICAgICAgIGJ1dHRvbjogJ2NlLWlubGluZS10b29sJyxcbiAgICAgICAgYnV0dG9uQWN0aXZlOiAnY2UtaW5saW5lLXRvb2wtLWFjdGl2ZScsXG4gICAgICAgIGJ1dHRvbk1vZGlmaWVyOiAnY2UtaW5saW5lLXRvb2wtLWxpbmsnLFxuICAgIH07XG5cbiAgICBwcml2YXRlIG5vZGVzOiB7IGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQgfSA9IHtcbiAgICAgICAgYnV0dG9uOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIHByaXZhdGUgYXBpOiBhbnk7XG5cbiAgICBwcml2YXRlIF9zdGF0ZTogYm9vbGVhbjtcblxuICAgIHRhZyA9ICdTUEFOJztcblxuICAgIGhhc1NlcGFyYXRvckJlZm9yZSA9IHRydWU7XG5cbiAgICBtb2RpZmllcyA9IHtcbiAgICAgICAgdGFnOiBmYWxzZSxcbiAgICAgICAgc3R5bGU6IGZhbHNlLFxuICAgICAgICBjbGFzczogZmFsc2UsXG4gICAgICAgIGF0dHJpYnV0ZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgbGlua0NzczogT2JqZWN0ID0ge1xuICAgICAgICBjb250YWluZXI6ICdjZS1pbmxpbmUtYWN0aW9ucy0tbGluaycsXG4gICAgICAgIGxpbmtDb250YWluZXI6ICdjZS1pbmxpbmUtYWN0aW9ucy0tbGlua19fY29udGFpbmVyJyxcbiAgICAgICAgdGFyZ2V0Q29udGFpbmVyOiAnY2UtaW5saW5lLWFjdGlvbnMtLWxpbmtfX3RhcmdldCcsXG4gICAgICAgIG9iZnVzY2F0aW9uQ29udGFpbmVyOiAnY2UtaW5saW5lLWFjdGlvbnMtLWxpbmtfX29iZnVzY2F0aW9uJyxcbiAgICAgICAgbGlua0lucHV0SWQ6ICdsaW5rSW5wdXQnLFxuICAgICAgICB0YXJnZXRDaGVja2JveElkOiAndGFyZ2V0Q2hlY2tib3gnLFxuICAgICAgICBvYmZ1c2NhdGlvbkNoZWNrYm94SWQ6ICdvYmZ1c2NhdGlvbkNoZWNrYm94JyxcbiAgICAgICAgYWRkQnV0dG9uQ2xhc3M6ICdjZS1pbmxpbmUtYWN0aW9ucy0tbGlua19fYWRkJyxcbiAgICAgICAgZGVsZXRlQnV0dG9uQ2xhc3M6ICdjZS1pbmxpbmUtYWN0aW9ucy0tbGlua19fZGVsZXRlJyxcbiAgICB9O1xuXG4gICAgYXR0cmlidXRlTmFtZTogc3RyaW5nID0gJ2RhdGEtaHRhcCxocmVmJztcblxuICAgIGF0dHJpYnV0ZXNUb0FwcGx5OiBBcnJheTxBdHRyaWJ1dGVPYmplY3Q+IHwgbnVsbCA9IFtdO1xuXG4gICAgaXNMaW5rRHJvcGRvd25PcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBpc0lubGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXQgc2FuaXRpemUoKTogU2FuaXRpemVyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGI6IHt9LFxuICAgICAgICB9IGFzIFNhbml0aXplckNvbmZpZztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNob3J0Y3V0KCkge1xuICAgICAgICByZXR1cm4gJ0NNRCtLJztcbiAgICB9XG5cbiAgICBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICB9XG5cbiAgICBzZXQgc3RhdGUoc3RhdGUpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcblxuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuYXBpLnN0eWxlcy5pbmxpbmVUb29sQnV0dG9uQWN0aXZlLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoeyBhcGkgfSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLnR5cGUgPSAnYnV0dG9uJztcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5idXR0b24sIHRoaXMuQ1NTLmJ1dHRvbk1vZGlmaWVyKTtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW5MaW5rRHJvcGRvd24oKSk7XG4gICAgICAgIGlmICh0aGlzLmhhc1NlcGFyYXRvckJlZm9yZSkge1xuICAgICAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LmFkZCh0aGlzLnNlcGFyYXRvckNsYXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzLmJ1dHRvbjtcbiAgICB9XG5cbiAgICBhc3luYyBzdXJyb3VuZChyYW5nZTogUmFuZ2UsIGFwcGx5TGluazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmIChhcHBseUxpbmspIHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZVVzZXJTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY0NvbW1hbmRTdHlsZSh0aGlzLnRhZyk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrU3RhdGUodGhpcy5nZXRTZWxlY3Rpb24oKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja1N0YXRlKHNlbGVjdGlvbikge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50RWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNCbG9ja0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHNldEJsb2NrRm9jdXModGhpcy5wYXJlbnRFZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5oYXNTdHlsZSg8SFRNTEVsZW1lbnQ+c2VsZWN0aW9uLmFuY2hvck5vZGUpID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuQ1NTLmJ1dHRvbkFjdGl2ZSwgaXNBY3RpdmUpO1xuXG4gICAgICAgIHJldHVybiBpc0FjdGl2ZTtcbiAgICB9XG5cbiAgICBhc3luYyBhcHBseUxpbmsoKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXJlbnRFZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50RWRpdG9yID0gdGhpcy5maW5kUGFyZW50RWRpdG9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHV1aWQgPSB0aGlzLnBhcmVudEVkaXRvci5nZXRBdHRyaWJ1dGUoJ2lkJykucmVwbGFjZSgnZWRpdG9ySnMtJywgJycpO1xuICAgICAgICB0aGlzLmF0dHJpYnV0ZXNUb0FwcGx5ID0gW107XG5cbiAgICAgICAgbGV0IHRhcmdldENoZWNrYm94ID0gdGhpcy5wYXJlbnRFZGl0b3IucXVlcnlTZWxlY3RvcignIycgKyB0aGlzLmxpbmtDc3NbJ3RhcmdldENoZWNrYm94SWQnXSArIHV1aWQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGxldCBvYmZ1c2NhdGlvbkNoZWNrYm94ID0gdGhpcy5wYXJlbnRFZGl0b3IucXVlcnlTZWxlY3RvcignIycgKyB0aGlzLmxpbmtDc3NbJ29iZnVzY2F0aW9uQ2hlY2tib3hJZCddICsgdXVpZCkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgbGV0IGxpbmtJbnB1dCA9IHRoaXMucGFyZW50RWRpdG9yLnF1ZXJ5U2VsZWN0b3IoJyMnICsgdGhpcy5saW5rQ3NzWydsaW5rSW5wdXRJZCddICsgdXVpZCkgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgICAgICBpZiAodGFyZ2V0Q2hlY2tib3guY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzVG9BcHBseS5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAndGFyZ2V0JyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogJ19ibGFuaycsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JmdXNjYXRpb25DaGVja2JveC5jaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLnRhZyA9ICdTUEFOJztcbiAgICAgICAgICAgIHRoaXMubW9kaWZpZXMudGFnID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNUb0FwcGx5LnB1c2goe1xuICAgICAgICAgICAgICAgIG5hbWU6ICdkYXRhLWh0YXAnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBidG9hKGxpbmtJbnB1dC52YWx1ZSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGFnID0gJ0EnO1xuICAgICAgICAgICAgdGhpcy5tb2RpZmllcy50YWcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzVG9BcHBseS5wdXNoKHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnaHJlZicsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGxpbmtJbnB1dC52YWx1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVzZXRVc2VyU2VsZWN0aW9uKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3Vycm91bmQobnVsbCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuY2hlY2tTdGF0ZSh0aGlzLmN1cnJlbnRTZWxlY3Rpb24pO1xuICAgICAgICB0aGlzLm9wZW5MaW5rRHJvcGRvd24oKTtcbiAgICB9XG5cbiAgICBhc3luYyBkZWxldGVMaW5rKCkge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50RWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGFnID0gJ0EnO1xuICAgICAgICB0aGlzLmF0dHJpYnV0ZXNUb0FwcGx5ID0gbnVsbDtcbiAgICAgICAgdGhpcy5tb2RpZmllcy50YWcgPSB0cnVlO1xuICAgICAgICB0aGlzLnJlc2V0VXNlclNlbGVjdGlvbigpO1xuICAgICAgICBhd2FpdCB0aGlzLnN1cnJvdW5kKG51bGwsIHRydWUpO1xuICAgICAgICB0aGlzLmNoZWNrU3RhdGUodGhpcy5jdXJyZW50U2VsZWN0aW9uKTtcbiAgICAgICAgdGhpcy5vcGVuTGlua0Ryb3Bkb3duKCk7XG4gICAgfVxuXG4gICAgcmVuZGVyQWN0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudEVkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRFZGl0b3IgPSB0aGlzLmZpbmRQYXJlbnRFZGl0b3IoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdXVpZCA9IHRoaXMucGFyZW50RWRpdG9yLmdldEF0dHJpYnV0ZSgnaWQnKS5yZXBsYWNlKCdlZGl0b3JKcy0nLCAnJyk7XG4gICAgICAgIGxldCBjb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29udGFpbmVyLmNsYXNzTmFtZSA9IHRoaXMubGlua0Nzc1snY29udGFpbmVyJ10gKyAnIGhpZGRlbic7XG5cbiAgICAgICAgbGV0IGxpbmtDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgbGlua0NvbnRhaW5lci5jbGFzc05hbWUgPSB0aGlzLmxpbmtDc3NbJ2xpbmtDb250YWluZXInXTtcbiAgICAgICAgbGV0IHRhcmdldENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0YXJnZXRDb250YWluZXIuY2xhc3NOYW1lID0gdGhpcy5saW5rQ3NzWyd0YXJnZXRDb250YWluZXInXTtcbiAgICAgICAgbGV0IG9iZnVzY2F0aW9uQ29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIG9iZnVzY2F0aW9uQ29udGFpbmVyLmNsYXNzTmFtZSA9IHRoaXMubGlua0Nzc1snb2JmdXNjYXRpb25Db250YWluZXInXTtcbiAgICAgICAgbGV0IGFwcGx5QnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gICAgICAgIGFwcGx5QnV0dG9uLmNsYXNzTmFtZSA9IHRoaXMubGlua0Nzc1snYWRkQnV0dG9uQ2xhc3MnXTtcbiAgICAgICAgYXBwbHlCdXR0b24uaW5uZXJUZXh0ID0gZWRpdG9ySlNJMThuRGljdGlvbm5hcnkubWVzc2FnZXMudG9vbHMubGlua1snYWRkJ107XG4gICAgICAgIGFwcGx5QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5hcHBseUxpbmsoKSk7XG5cbiAgICAgICAgbGV0IGxpbmtJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIGxpbmtJbnB1dC5zZXRBdHRyaWJ1dGUoJ2lkJywgdGhpcy5saW5rQ3NzWydsaW5rSW5wdXRJZCddICsgdXVpZCk7XG4gICAgICAgIGxpbmtJbnB1dC5zZXRBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJywgZWRpdG9ySlNJMThuRGljdGlvbm5hcnkubWVzc2FnZXMudG9vbHMubGlua1sncGxhY2Vob2xkZXInXSk7XG4gICAgICAgIGxldCB0YXJnZXRDaGVja2JveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIHRhcmdldENoZWNrYm94LnNldEF0dHJpYnV0ZSgnaWQnLCB0aGlzLmxpbmtDc3NbJ3RhcmdldENoZWNrYm94SWQnXSArIHV1aWQpO1xuICAgICAgICB0YXJnZXRDaGVja2JveC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnY2hlY2tib3gnKTtcbiAgICAgICAgbGV0IHRhcmdldExhYmVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGFiZWwnKTtcbiAgICAgICAgdGFyZ2V0TGFiZWwuaW5uZXJUZXh0ID0gZWRpdG9ySlNJMThuRGljdGlvbm5hcnkubWVzc2FnZXMudG9vbHMubGlua1snZXh0ZXJuYWwnXTtcbiAgICAgICAgdGFyZ2V0TGFiZWwuc2V0QXR0cmlidXRlKCdmb3InLCB0aGlzLmxpbmtDc3NbJ3RhcmdldENoZWNrYm94SWQnXSArIHV1aWQpO1xuICAgICAgICBsZXQgb2JmdXNjYXRpb25DaGVja2JveCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICAgIG9iZnVzY2F0aW9uQ2hlY2tib3guc2V0QXR0cmlidXRlKCdpZCcsIHRoaXMubGlua0Nzc1snb2JmdXNjYXRpb25DaGVja2JveElkJ10gKyB1dWlkKTtcbiAgICAgICAgb2JmdXNjYXRpb25DaGVja2JveC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnY2hlY2tib3gnKTtcbiAgICAgICAgbGV0IG9iZnVzY2F0aW9uTGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsYWJlbCcpO1xuICAgICAgICBvYmZ1c2NhdGlvbkxhYmVsLmlubmVyVGV4dCA9IGVkaXRvckpTSTE4bkRpY3Rpb25uYXJ5Lm1lc3NhZ2VzLnRvb2xzLmxpbmtbJ29iZnVzY2F0ZWQnXTtcbiAgICAgICAgb2JmdXNjYXRpb25MYWJlbC5zZXRBdHRyaWJ1dGUoJ2ZvcicsIHRoaXMubGlua0Nzc1snb2JmdXNjYXRpb25DaGVja2JveElkJ10gKyB1dWlkKTtcbiAgICAgICAgbGV0IG9iZnVzY2F0aW9uVG9vbHRpcENvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBsZXQgb2JiZnVzY2F0aW9uVG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBvYmJmdXNjYXRpb25Ub29sdGlwLmlubmVySFRNTCA9IGVkaXRvckpTSTE4bkRpY3Rpb25uYXJ5Lm1lc3NhZ2VzLnRvb2xzLmxpbmtbJ2luZm8nXTtcbiAgICAgICAgb2JmdXNjYXRpb25Ub29sdGlwQ29udGFpbmVyLmFwcGVuZENoaWxkKG9iYmZ1c2NhdGlvblRvb2x0aXApO1xuICAgICAgICBsZXQgZGVsZXRlQnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7XG4gICAgICAgIGRlbGV0ZUJ1dHRvbi5jbGFzc05hbWUgPSB0aGlzLmxpbmtDc3NbJ2RlbGV0ZUJ1dHRvbkNsYXNzJ10gKyAnIGhpZGRlbic7XG4gICAgICAgIGRlbGV0ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuZGVsZXRlTGluaygpKTtcblxuICAgICAgICBsaW5rQ29udGFpbmVyLmFwcGVuZENoaWxkKGxpbmtJbnB1dCk7XG4gICAgICAgIHRhcmdldENvbnRhaW5lci5hcHBlbmRDaGlsZCh0YXJnZXRDaGVja2JveCk7XG4gICAgICAgIHRhcmdldENvbnRhaW5lci5hcHBlbmRDaGlsZCh0YXJnZXRMYWJlbCk7XG4gICAgICAgIG9iZnVzY2F0aW9uQ29udGFpbmVyLmFwcGVuZENoaWxkKG9iZnVzY2F0aW9uQ2hlY2tib3gpO1xuICAgICAgICBvYmZ1c2NhdGlvbkNvbnRhaW5lci5hcHBlbmRDaGlsZChvYmZ1c2NhdGlvbkxhYmVsKTtcbiAgICAgICAgb2JmdXNjYXRpb25Db250YWluZXIuYXBwZW5kQ2hpbGQob2JmdXNjYXRpb25Ub29sdGlwQ29udGFpbmVyKTtcblxuICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQobGlua0NvbnRhaW5lcik7XG4gICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0YXJnZXRDb250YWluZXIpO1xuICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQob2JmdXNjYXRpb25Db250YWluZXIpO1xuICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoYXBwbHlCdXR0b24pO1xuICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoZGVsZXRlQnV0dG9uKTtcblxuICAgICAgICByZXR1cm4gY29udGFpbmVyO1xuICAgIH1cblxuICAgIHNob3dBY3Rpb25zKG1hcmspIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudEVkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRFZGl0b3IgPSB0aGlzLmZpbmRQYXJlbnRFZGl0b3IoKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgdXVpZCA9IHRoaXMucGFyZW50RWRpdG9yLmdldEF0dHJpYnV0ZSgnaWQnKS5yZXBsYWNlKCdlZGl0b3JKcy0nLCAnJyk7XG5cbiAgICAgICAgbGV0IHRhcmdldENoZWNrYm94ID0gdGhpcy5wYXJlbnRFZGl0b3IucXVlcnlTZWxlY3RvcignIycgKyB0aGlzLmxpbmtDc3NbJ3RhcmdldENoZWNrYm94SWQnXSArIHV1aWQpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGxldCBvYmZ1c2NhdGlvbkNoZWNrYm94ID0gdGhpcy5wYXJlbnRFZGl0b3IucXVlcnlTZWxlY3RvcignIycgKyB0aGlzLmxpbmtDc3NbJ29iZnVzY2F0aW9uQ2hlY2tib3hJZCddICsgdXVpZCkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgbGV0IGxpbmtJbnB1dCA9IHRoaXMucGFyZW50RWRpdG9yLnF1ZXJ5U2VsZWN0b3IoJyMnICsgdGhpcy5saW5rQ3NzWydsaW5rSW5wdXRJZCddICsgdXVpZCkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgbGV0IGRlbGV0ZUJ1dHRvbiA9IHRoaXMucGFyZW50RWRpdG9yLnF1ZXJ5U2VsZWN0b3IoJy4nICsgdGhpcy5saW5rQ3NzWydkZWxldGVCdXR0b25DbGFzcyddKTtcbiAgICAgICAgbGV0IGFkZEJ1dHRvbiA9IHRoaXMucGFyZW50RWRpdG9yLnF1ZXJ5U2VsZWN0b3IoJy4nICsgdGhpcy5saW5rQ3NzWydhZGRCdXR0b25DbGFzcyddKTtcbiAgICAgICAgbGlua0lucHV0LnZhbHVlID0gJyc7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrU3RhdGUodGhpcy5nZXRTZWxlY3Rpb24oKSkpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3Rpb24gPSB0aGlzLmdldFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSB0aGlzLmhhc1N0eWxlKDxIVE1MRWxlbWVudD5zZWxlY3Rpb24uYW5jaG9yTm9kZSk7XG4gICAgICAgICAgICBsaW5rSW5wdXQudmFsdWUgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2EnID8gJ2hyZWYnIDogJ2RhdGEtaHRhcCcpO1xuICAgICAgICAgICAgdGFyZ2V0Q2hlY2tib3guY2hlY2tlZCA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCd0YXJnZXQnKSA9PT0gJ19ibGFuayc7XG4gICAgICAgICAgICBvYmZ1c2NhdGlvbkNoZWNrYm94LmNoZWNrZWQgPSBlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3NwYW4nO1xuICAgICAgICAgICAgaWYgKGRlbGV0ZUJ1dHRvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2hpZGRlbicpKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFhZGRCdXR0b24uY2xhc3NMaXN0LmNvbnRhaW5zKCdoaWRkZW4nKSkge1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghZGVsZXRlQnV0dG9uLmNsYXNzTGlzdC5jb250YWlucygnaGlkZGVuJykpIHtcbiAgICAgICAgICAgICAgICBkZWxldGVCdXR0b24uY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoYWRkQnV0dG9uLmNsYXNzTGlzdC5jb250YWlucygnaGlkZGVuJykpIHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBoaWRlQWN0aW9ucygpIHt9XG5cbiAgICBvcGVuTGlua0Ryb3Bkb3duKCkge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50RWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBsaW5rRHJvcGRvd24gPSB0aGlzLnBhcmVudEVkaXRvci5xdWVyeVNlbGVjdG9yKCcuJyArIHRoaXMubGlua0Nzc1snY29udGFpbmVyJ10pO1xuICAgICAgICB0aGlzLnNhdmVVc2VyU2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChsaW5rRHJvcGRvd24pIHtcbiAgICAgICAgICAgIGlmIChsaW5rRHJvcGRvd24uY2xhc3NMaXN0LmNvbnRhaW5zKCdoaWRkZW4nKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0FjdGlvbnMobnVsbCk7XG4gICAgICAgICAgICAgICAgbGV0IHZpZXdwb3J0T2Zmc2V0ID0gbGlua0Ryb3Bkb3duLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgICAgICAgIGlmICh2aWV3cG9ydE9mZnNldC5sZWZ0ICsgKDxIVE1MRWxlbWVudD5saW5rRHJvcGRvd24pLm9mZnNldFdpZHRoID4gZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbGVmdCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShsaW5rRHJvcGRvd24sIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2xlZnQnKSkgLVxuICAgICAgICAgICAgICAgICAgICAgICAgKHZpZXdwb3J0T2Zmc2V0LmxlZnQgKyAoPEhUTUxFbGVtZW50PmxpbmtEcm9wZG93bikub2Zmc2V0V2lkdGggLSBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgKDxIVE1MRWxlbWVudD5saW5rRHJvcGRvd24pLnN0eWxlLmxlZnQgPSBsZWZ0LnRvU3RyaW5nKCkgKyAncHgnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAoPEhUTUxFbGVtZW50PmxpbmtEcm9wZG93bikuc3R5bGUudG9wID1cbiAgICAgICAgICAgICAgICAgICAgJy0nICtcbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgKDxIVE1MRWxlbWVudD50aGlzLnBhcmVudEVkaXRvci5xdWVyeVNlbGVjdG9yKCcuY2UtaW5saW5lLXRvb2xiYXJfX2J1dHRvbnMnKSkub2Zmc2V0SGVpZ2h0IC1cbiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLm5vZGVzLmJ1dHRvbi5vZmZzZXRUb3AgKyB0aGlzLm5vZGVzLmJ1dHRvbi5vZmZzZXRIZWlnaHQpXG4gICAgICAgICAgICAgICAgICAgICkudG9TdHJpbmcoKSArXG4gICAgICAgICAgICAgICAgICAgICdweCc7XG4gICAgICAgICAgICAgICAgbGlua0Ryb3Bkb3duLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpO1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoJGV2ZW50KSA9PiB0aGlzLmlzTGlua0Ryb3Bkb3duRm9jdXNlZE91dCgkZXZlbnQpKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xpbmtEcm9wZG93bk9wZW4gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0sIDQwMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRVc2VyU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0xpbmtEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBsaW5rRHJvcGRvd24uY2xhc3NMaXN0LmFkZCgnaGlkZGVuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0xpbmtEcm9wZG93bkZvY3VzZWRPdXQoJGV2ZW50KSB7XG4gICAgICAgIGxldCBjb2xvclNlbGVjdGlvbiA9IHRoaXMucGFyZW50RWRpdG9yLnF1ZXJ5U2VsZWN0b3IoJy4nICsgdGhpcy5saW5rQ3NzWydjb250YWluZXInXSk7XG4gICAgICAgIGlmICh0aGlzLmlzTGlua0Ryb3Bkb3duT3Blbikge1xuICAgICAgICAgICAgbGV0IGVsZW1lbnQgPSAkZXZlbnQudGFyZ2V0O1xuICAgICAgICAgICAgd2hpbGUgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnModGhpcy5saW5rQ3NzWydjb250YWluZXInXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoJGV2ZW50KSA9PiB0aGlzLmlzTGlua0Ryb3Bkb3duRm9jdXNlZE91dCgkZXZlbnQpKTtcbiAgICAgICAgICAgIHRoaXMuaXNMaW5rRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgICAgICAgICBjb2xvclNlbGVjdGlvbi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgICAgICAgIHRoaXMuYXBpLnRvb2xiYXIuY2xvc2UoKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,5 +1,6 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';
3
+ import { editorJSI18nDictionnary } from '../utils/editorjs-translation.service';
3
4
  import { ColorTool } from './tool-type/color-tool.component';
4
5
  // @dynamic
5
6
  export class TextBackgroundColorTool extends ColorTool {
@@ -73,12 +74,8 @@ export class TextBackgroundColorTool extends ColorTool {
73
74
  }
74
75
  applyColor(color, inputToFocus = null) {
75
76
  return __awaiter(this, void 0, void 0, function* () {
76
- console.log('applyColor');
77
77
  let colorIndicator = this.nodes.button.querySelectorAll('.' + this.CSS.colorIndicatorModifier)[0];
78
78
  this.style.input = color;
79
- console.log('this.style.input');
80
- console.log(this.style.input);
81
- console.warn(color);
82
79
  this.resetUserSelection();
83
80
  yield this.surround(null, true);
84
81
  this.checkDefaultColors();
@@ -98,6 +95,7 @@ export class TextBackgroundColorTool extends ColorTool {
98
95
  if (!isBlockFocused) {
99
96
  setBlockFocus(this.parentEditor);
100
97
  }
98
+ this.checkDefaultColors();
101
99
  const isActive = this.hasStyle(selection.anchorNode) ? true : false;
102
100
  this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);
103
101
  return isActive;
@@ -123,13 +121,13 @@ export class TextBackgroundColorTool extends ColorTool {
123
121
  let removeColorContainerIcon = document.createElement('span');
124
122
  removeColorContainer.classList.add(this.CSS.removeBackgroundColorClass);
125
123
  removeColorContainer.addEventListener('click', () => this.applyColor('rgba(0,0,0,0)'));
126
- removeColorContainer.innerText = this.api.i18n.t('None');
124
+ removeColorContainer.innerText = editorJSI18nDictionnary.messages.tools.textBackgroundColor['None'];
127
125
  removeColorContainer.appendChild(removeColorContainerIcon);
128
126
  this.colorSelection.appendChild(removeColorContainer);
129
127
  let customColor = document.createElement('div');
130
128
  customColor.className = this.colorSelectionCss['container'];
131
129
  let text = document.createElement('p');
132
- text.innerText = this.api.i18n.t('customColor');
130
+ text.innerText = editorJSI18nDictionnary.messages.tools.textBackgroundColor['customColor'];
133
131
  let button = document.createElement('div');
134
132
  button.addEventListener('click', (event) => this.openCustomColorPicker(event));
135
133
  let container = this.createCustomColorPicker();
@@ -155,4 +153,4 @@ export class TextBackgroundColorTool extends ColorTool {
155
153
  }
156
154
  }
157
155
  TextBackgroundColorTool.title = 'Background Color';
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1iYWNrZ3JvdW5kLWNvbG9yLXRvb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3BhdWxpbmUvRG9jdW1lbnRzL3dvcmtzcGFjZS93aXppLWJsb2NrL3Byb2plY3RzL3dpemktYmxvY2svc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9jb21wb25lbnRzL2VkaXRvcmpzL3Rvb2xzL2lubGluZS90ZXh0LWJhY2tncm91bmQtY29sb3ItdG9vbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFlLE1BQU0sa0NBQWtDLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTdELFdBQVc7QUFDWCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsU0FBUztJQTJEbEQsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUNmLEtBQUssRUFBRSxDQUFDO1FBekRLLGdCQUFXLEdBQVcscUJBQXFCLENBQUM7UUFFN0QsUUFBRyxHQUFHO1lBQ0YsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLGNBQWMsRUFBRSxxQ0FBcUM7WUFDckQsc0JBQXNCLEVBQUUscURBQXFEO1lBQzdFLHNCQUFzQixFQUFFLG9DQUFvQztZQUM1RCxhQUFhLEVBQUUsaUNBQWlDO1lBQ2hELDBCQUEwQixFQUFFLDZDQUE2QztTQUM1RSxDQUFDO1FBRUYsVUFBSyxHQUFrQztZQUNuQyxNQUFNLEVBQUUsU0FBUztTQUNwQixDQUFDO1FBTUYsUUFBRyxHQUFHLE1BQU0sQ0FBQztRQUViLFVBQUssR0FBZ0I7WUFDakIsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixLQUFLLEVBQUUsSUFBSTtZQUNYLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUVGLGFBQVEsR0FBRztZQUNQLEdBQUcsRUFBRSxLQUFLO1lBQ1Ys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QUM7U0FDMUM7SUFDTCxDQUFDOztBQWxMYSw2QkFBSyxHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5saW5lVG9vbCwgU2FuaXRpemVyQ29uZmlnIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcbmltcG9ydCB7IGlzQmxvY2tGb2N1c2VkLCBzZXRCbG9ja0ZvY3VzLCBTdHlsZU9iamVjdCB9IGZyb20gJy4uL3V0aWxzL2VkaXRvcmpzLXRvb2wuY29tcG9uZW50JztcbmltcG9ydCB7IENvbG9yVG9vbCB9IGZyb20gJy4vdG9vbC10eXBlL2NvbG9yLXRvb2wuY29tcG9uZW50JztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBUZXh0QmFja2dyb3VuZENvbG9yVG9vbCBleHRlbmRzIENvbG9yVG9vbCBpbXBsZW1lbnRzIElubGluZVRvb2wge1xuICAgIHB1YmxpYyBzdGF0aWMgdGl0bGUgPSAnQmFja2dyb3VuZCBDb2xvcic7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmROYW1lOiBzdHJpbmcgPSAndGV4dGJhY2tncm91bmRjb2xvcic7XG5cbiAgICBDU1MgPSB7XG4gICAgICAgIGJ1dHRvbjogJ2NlLWlubGluZS10b29sJyxcbiAgICAgICAgYnV0dG9uQWN0aXZlOiAnY2UtaW5saW5lLXRvb2wtLWFjdGl2ZScsXG4gICAgICAgIGJ1dHRvbk1vZGlmaWVyOiAnY2UtaW5saW5lLXRvb2wtLXRleHRCYWNrZ3JvdW5kQ29sb3InLFxuICAgICAgICBjb2xvckluZGljYXRvck1vZGlmaWVyOiAnY2UtaW5saW5lLXRvb2wtLXRleHRCYWNrZ3JvdW5kQ29sb3JfX2NvbG9ySW5kaWNhdG9yJyxcbiAgICAgICAgY29sb3JTZWxlY3Rpb25Nb2RpZmllcjogJ2NlLWlubGluZS1hY3Rpb25zLS1iYWNrZ3JvdW5kQ29sb3InLFxuICAgICAgICBjb2xvclBpY2tlcklkOiAnY29sb3JQaWNrZXItdGV4dEJhY2tncm91bmRDb2xvcicsXG4gICAgICAgIHJlbW92ZUJhY2tncm91bmRDb2xvckNsYXNzOiAnY2UtaW5saW5lLXRvb2wtLXRleHRCYWNrZ3JvdW5kQ29sb3JfX3JlbW92ZScsXG4gICAgfTtcblxuICAgIG5vZGVzOiB7IGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQgfSA9IHtcbiAgICAgICAgYnV0dG9uOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIGFwaTogYW55O1xuXG4gICAgcHJpdmF0ZSBfc3RhdGU6IGJvb2xlYW47XG5cbiAgICB0YWcgPSAnU1BBTic7XG5cbiAgICBzdHlsZTogU3R5bGVPYmplY3QgPSB7XG4gICAgICAgIHByb3BlcnR5OiAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgIHZhbHVlOiAnJDEnLFxuICAgICAgICBkZWZhdWx0OiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBpbnB1dDogJycsXG4gICAgfTtcblxuICAgIG1vZGlmaWVzID0ge1xuICAgICAgICB0YWc6IGZhbHNlLFxuICAgICAgICBzdHlsZTogdHJ1ZSxcbiAgICAgICAgY2xhc3M6IGZhbHNlLFxuICAgICAgICBhdHRyaWJ1dGU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBpc0lubGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXQgc2FuaXRpemUoKTogU2FuaXRpemVyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGI6IHt9LFxuICAgICAgICB9IGFzIFNhbml0aXplckNvbmZpZztcbiAgICB9XG5cbiAgICBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICB9XG5cbiAgICBzZXQgc3RhdGUoc3RhdGUpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcblxuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuYXBpLnN0eWxlcy5pbmxpbmVUb29sQnV0dG9uQWN0aXZlLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoeyBhcGkgfSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLnR5cGUgPSAnYnV0dG9uJztcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5idXR0b24sIHRoaXMuQ1NTLmJ1dHRvbk1vZGlmaWVyKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2VwYXJhdG9yQmVmb3JlKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuc2VwYXJhdG9yQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuQ29sb3JQaWNrZXIoKSk7XG4gICAgICAgIHRoaXMuY29sb3JJbmRpY2F0b3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHRoaXMuY29sb3JJbmRpY2F0b3IuY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5jb2xvckluZGljYXRvck1vZGlmaWVyKTtcbiAgICAgICAgdGhpcy5jb2xvckluZGljYXRvci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3I6JyArIHRoaXMuZ2V0Q3VycmVudENvbG9yQXBwbGllZCh0aGlzLmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUucGFyZW50RWxlbWVudClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uYXBwZW5kKHRoaXMuY29sb3JJbmRpY2F0b3IpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzLmJ1dHRvbjtcbiAgICB9XG5cbiAgICBhc3luYyBzdXJyb3VuZChyYW5nZTogUmFuZ2UsIGFwcGx5Q29sb3I6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAoYXBwbHlDb2xvcikge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjQ29tbWFuZFN0eWxlKHRoaXMudGFnKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tTdGF0ZSh0aGlzLmdldFNlbGVjdGlvbigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGFwcGx5Q29sb3IoY29sb3I6IHN0cmluZywgaW5wdXRUb0ZvY3VzOiBIVE1MSW5wdXRFbGVtZW50ID0gbnVsbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zb2xlLmxvZygnYXBwbHlDb2xvcicpO1xuICAgICAgICBsZXQgY29sb3JJbmRpY2F0b3IgPSB0aGlzLm5vZGVzLmJ1dHRvbi5xdWVyeVNlbGVjdG9yQWxsKCcuJyArIHRoaXMuQ1NTLmNvbG9ySW5kaWNhdG9yTW9kaWZpZXIpWzBdO1xuICAgICAgICB0aGlzLnN0eWxlLmlucHV0ID0gY29sb3I7XG4gICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLnN0eWxlLmlucHV0Jyk7XG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMuc3R5bGUuaW5wdXQpO1xuICAgICAgICBjb25zb2xlLndhcm4oY29sb3IpO1xuICAgICAgICB0aGlzLnJlc2V0VXNlclNlbGVjdGlvbigpO1xuICAgICAgICBhd2FpdCB0aGlzLnN1cnJvdW5kKG51bGwsIHRydWUpO1xuICAgICAgICB0aGlzLmNoZWNrRGVmYXVsdENvbG9ycygpO1xuICAgICAgICB0aGlzLmNoZWNrU3RhdGUodGhpcy5jdXJyZW50U2VsZWN0aW9uKTtcbiAgICAgICAgY29sb3JJbmRpY2F0b3Iuc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLWNvbG9yOicgKyBjb2xvcik7XG4gICAgICAgIHRoaXMuc2F2ZVVzZXJTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKGlucHV0VG9Gb2N1cykge1xuICAgICAgICAgICAgaW5wdXRUb0ZvY3VzLmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgICAgLy90aGlzLmhpZGVBY3Rpb25zKCk7XG4gICAgfVxuXG4gICAgY2hlY2tTdGF0ZShzZWxlY3Rpb24pIHtcbiAgICAgICAgaWYgKCF0aGlzLnBhcmVudEVkaXRvcikge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRFZGl0b3IgPSB0aGlzLmZpbmRQYXJlbnRFZGl0b3IoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzQmxvY2tGb2N1c2VkKSB7XG4gICAgICAgICAgICBzZXRCbG9ja0ZvY3VzKHRoaXMucGFyZW50RWRpdG9yKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IHRoaXMuaGFzU3R5bGUoPEhUTUxFbGVtZW50PnNlbGVjdGlvbi5hbmNob3JOb2RlKSA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LnRvZ2dsZSh0aGlzLkNTUy5idXR0b25BY3RpdmUsIGlzQWN0aXZlKTtcblxuICAgICAgICByZXR1cm4gaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgcmVuZGVyQWN0aW9ucygpIHtcbiAgICAgICAgdGhpcy5jb2xvclNlbGVjdGlvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmNvbG9yU2VsZWN0aW9uLmNsYXNzTmFtZSA9IHRoaXMuY29sb3JTZWxlY3Rpb25Dc3NbJ3dyYXBwZXInXSArICcgaGlkZGVuICcgKyB0aGlzLkNTUy5jb2xvclNlbGVjdGlvbk1vZGlmaWVyO1xuICAgICAgICB0aGlzLmNvbG9ycy5mb3JFYWNoKChjb2xvclJvdykgPT4ge1xuICAgICAgICAgICAgbGV0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgcm93LmNsYXNzTmFtZSA9IHRoaXMuY29sb3JTZWxlY3Rpb25Dc3NbJ3JvdyddO1xuICAgICAgICAgICAgY29sb3JSb3cuZm9yRWFjaCgoY29sb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY29sb3IgJiYgY29sb3IgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBjb2xvckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JFbGVtZW50LmNsYXNzTmFtZSA9IHRoaXMuY29sb3JTZWxlY3Rpb25Dc3NbJ2l0ZW0nXTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JFbGVtZW50LnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZC1jb2xvcjonICsgY29sb3IpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLmFwcGx5Q29sb3IoY29sb3IpKTtcbiAgICAgICAgICAgICAgICAgICAgcm93LmFwcGVuZENoaWxkKGNvbG9yRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNvbG9yU2VsZWN0aW9uLmFwcGVuZENoaWxkKHJvdyk7XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgcmVtb3ZlQ29sb3JDb250YWluZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgbGV0IHJlbW92ZUNvbG9yQ29udGFpbmVySWNvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgcmVtb3ZlQ29sb3JDb250YWluZXIuY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5yZW1vdmVCYWNrZ3JvdW5kQ29sb3JDbGFzcyk7XG4gICAgICAgIHJlbW92ZUNvbG9yQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5hcHBseUNvbG9yKCdyZ2JhKDAsMCwwLDApJykpO1xuICAgICAgICByZW1vdmVDb2xvckNvbnRhaW5lci5pbm5lclRleHQgPSB0aGlzLmFwaS5pMThuLnQoJ05vbmUnKTtcbiAgICAgICAgcmVtb3ZlQ29sb3JDb250YWluZXIuYXBwZW5kQ2hpbGQocmVtb3ZlQ29sb3JDb250YWluZXJJY29uKTtcbiAgICAgICAgdGhpcy5jb2xvclNlbGVjdGlvbi5hcHBlbmRDaGlsZChyZW1vdmVDb2xvckNvbnRhaW5lcik7XG5cbiAgICAgICAgbGV0IGN1c3RvbUNvbG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGN1c3RvbUNvbG9yLmNsYXNzTmFtZSA9IHRoaXMuY29sb3JTZWxlY3Rpb25Dc3NbJ2NvbnRhaW5lciddO1xuICAgICAgICBsZXQgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcbiAgICAgICAgdGV4dC5pbm5lclRleHQgPSB0aGlzLmFwaS5pMThuLnQoJ2N1c3RvbUNvbG9yJyk7XG4gICAgICAgIGxldCBidXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB0aGlzLm9wZW5DdXN0b21Db2xvclBpY2tlcihldmVudCkpO1xuICAgICAgICBsZXQgY29udGFpbmVyID0gdGhpcy5jcmVhdGVDdXN0b21Db2xvclBpY2tlcigpO1xuICAgICAgICBidXR0b24uYXBwZW5kQ2hpbGQoY29udGFpbmVyKTtcblxuICAgICAgICBjdXN0b21Db2xvci5hcHBlbmRDaGlsZCh0ZXh0KTtcbiAgICAgICAgY3VzdG9tQ29sb3IuYXBwZW5kQ2hpbGQoYnV0dG9uKTtcbiAgICAgICAgdGhpcy5jb2xvclNlbGVjdGlvbi5hcHBlbmRDaGlsZChjdXN0b21Db2xvcik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuY29sb3JTZWxlY3Rpb247XG4gICAgfVxuXG4gICAgc2hvd0FjdGlvbnMobWFyaykge1xuICAgICAgICB0aGlzLnN0eWxlLmlucHV0ID0gbWFyayAmJiBtYXJrLnN0eWxlICYmIG1hcmsuc3R5bGUuYmFja2dyb3VuZENvbG9yID8gbWFyay5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgOiAnI2Y1ZjFjYyc7XG5cbiAgICAgICAgdGhpcy5jb2xvclNlbGVjdGlvbi5vbmNoYW5nZSA9ICgpID0+IHtcbiAgICAgICAgICAgIG1hcmsuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gdGhpcy5zdHlsZS5pbnB1dDtcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5jb2xvclNlbGVjdGlvbi5oaWRkZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBoaWRlQWN0aW9ucygpIHtcbiAgICAgICAgbGV0IGNvbG9yU2VsZWN0aW9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLicgKyB0aGlzLkNTUy5jb2xvclNlbGVjdGlvbk1vZGlmaWVyKVswXTtcbiAgICAgICAgdGhpcy5pc0NvbG9yU2VsZWN0aW9uT3BlbiA9IGZhbHNlO1xuICAgICAgICBpZiAoIWNvbG9yU2VsZWN0aW9uLmNsYXNzTGlzdC5jb250YWlucygnaGlkZGVuJykpIHtcbiAgICAgICAgICAgIGNvbG9yU2VsZWN0aW9uLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1iYWNrZ3JvdW5kLWNvbG9yLXRvb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3BhdWxpbmUvRG9jdW1lbnRzL3dvcmtzcGFjZS93aXppLWJsb2NrL3Byb2plY3RzL3dpemktYmxvY2svc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9jb21wb25lbnRzL2VkaXRvcmpzL3Rvb2xzL2lubGluZS90ZXh0LWJhY2tncm91bmQtY29sb3ItdG9vbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFlLE1BQU0sa0NBQWtDLENBQUM7QUFDOUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTdELFdBQVc7QUFDWCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsU0FBUztJQTJEbEQsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUNmLEtBQUssRUFBRSxDQUFDO1FBekRLLGdCQUFXLEdBQVcscUJBQXFCLENBQUM7UUFFN0QsUUFBRyxHQUFHO1lBQ0YsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLGNBQWMsRUFBRSxxQ0FBcUM7WUFDckQsc0JBQXNCLEVBQUUscURBQXFEO1lBQzdFLHNCQUFzQixFQUFFLG9DQUFvQztZQUM1RCxhQUFhLEVBQUUsaUNBQWlDO1lBQ2hELDBCQUEwQixFQUFFLDZDQUE2QztTQUM1RSxDQUFDO1FBRUYsVUFBSyxHQUFrQztZQUNuQyxNQUFNLEVBQUUsU0FBUztTQUNwQixDQUFDO1FBTUYsUUFBRyxHQUFHLE1BQU0sQ0FBQztRQUViLFVBQUssR0FBZ0I7WUFDakIsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixLQUFLLEVBQUUsSUFBSTtZQUNYLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxFQUFFO1NBQ1os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b25maWcgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xuaW1wb3J0IHsgaXNCbG9ja0ZvY3VzZWQsIHNldEJsb2NrRm9jdXMsIFN0eWxlT2JqZWN0IH0gZnJvbSAnLi4vdXRpbHMvZWRpdG9yanMtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZWRpdG9ySlNJMThuRGljdGlvbm5hcnkgfSBmcm9tICcuLi91dGlscy9lZGl0b3Jqcy10cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbG9yVG9vbCB9IGZyb20gJy4vdG9vbC10eXBlL2NvbG9yLXRvb2wuY29tcG9uZW50JztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBUZXh0QmFja2dyb3VuZENvbG9yVG9vbCBleHRlbmRzIENvbG9yVG9vbCBpbXBsZW1lbnRzIElubGluZVRvb2wge1xuICAgIHB1YmxpYyBzdGF0aWMgdGl0bGUgPSAnQmFja2dyb3VuZCBDb2xvcic7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmROYW1lOiBzdHJpbmcgPSAndGV4dGJhY2tncm91bmRjb2xvcic7XG5cbiAgICBDU1MgPSB7XG4gICAgICAgIGJ1dHRvbjogJ2NlLWlubGluZS10b29sJyxcbiAgICAgICAgYnV0dG9uQWN0aXZlOiAnY2UtaW5saW5lLXRvb2wtLWFjdGl2ZScsXG4gICAgICAgIGJ1dHRvbk1vZGlmaWVyOiAnY2UtaW5saW5lLXRvb2wtLXRleHRCYWNrZ3JvdW5kQ29sb3InLFxuICAgICAgICBjb2xvckluZGljYXRvck1vZGlmaWVyOiAnY2UtaW5saW5lLXRvb2wtLXRleHRCYWNrZ3JvdW5kQ29sb3JfX2NvbG9ySW5kaWNhdG9yJyxcbiAgICAgICAgY29sb3JTZWxlY3Rpb25Nb2RpZmllcjogJ2NlLWlubGluZS1hY3Rpb25zLS1iYWNrZ3JvdW5kQ29sb3InLFxuICAgICAgICBjb2xvclBpY2tlcklkOiAnY29sb3JQaWNrZXItdGV4dEJhY2tncm91bmRDb2xvcicsXG4gICAgICAgIHJlbW92ZUJhY2tncm91bmRDb2xvckNsYXNzOiAnY2UtaW5saW5lLXRvb2wtLXRleHRCYWNrZ3JvdW5kQ29sb3JfX3JlbW92ZScsXG4gICAgfTtcblxuICAgIG5vZGVzOiB7IGJ1dHRvbjogSFRNTEJ1dHRvbkVsZW1lbnQgfSA9IHtcbiAgICAgICAgYnV0dG9uOiB1bmRlZmluZWQsXG4gICAgfTtcblxuICAgIGFwaTogYW55O1xuXG4gICAgcHJpdmF0ZSBfc3RhdGU6IGJvb2xlYW47XG5cbiAgICB0YWcgPSAnU1BBTic7XG5cbiAgICBzdHlsZTogU3R5bGVPYmplY3QgPSB7XG4gICAgICAgIHByb3BlcnR5OiAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgIHZhbHVlOiAnJDEnLFxuICAgICAgICBkZWZhdWx0OiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBpbnB1dDogJycsXG4gICAgfTtcblxuICAgIG1vZGlmaWVzID0ge1xuICAgICAgICB0YWc6IGZhbHNlLFxuICAgICAgICBzdHlsZTogdHJ1ZSxcbiAgICAgICAgY2xhc3M6IGZhbHNlLFxuICAgICAgICBhdHRyaWJ1dGU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBpc0lubGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXQgc2FuaXRpemUoKTogU2FuaXRpemVyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGI6IHt9LFxuICAgICAgICB9IGFzIFNhbml0aXplckNvbmZpZztcbiAgICB9XG5cbiAgICBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICB9XG5cbiAgICBzZXQgc3RhdGUoc3RhdGUpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcblxuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuYXBpLnN0eWxlcy5pbmxpbmVUb29sQnV0dG9uQWN0aXZlLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoeyBhcGkgfSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLnR5cGUgPSAnYnV0dG9uJztcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5idXR0b24sIHRoaXMuQ1NTLmJ1dHRvbk1vZGlmaWVyKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2VwYXJhdG9yQmVmb3JlKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuc2VwYXJhdG9yQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuQ29sb3JQaWNrZXIoKSk7XG4gICAgICAgIHRoaXMuY29sb3JJbmRpY2F0b3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHRoaXMuY29sb3JJbmRpY2F0b3IuY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5jb2xvckluZGljYXRvck1vZGlmaWVyKTtcbiAgICAgICAgdGhpcy5jb2xvckluZGljYXRvci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3I6JyArIHRoaXMuZ2V0Q3VycmVudENvbG9yQXBwbGllZCh0aGlzLmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUucGFyZW50RWxlbWVudClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uYXBwZW5kKHRoaXMuY29sb3JJbmRpY2F0b3IpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzLmJ1dHRvbjtcbiAgICB9XG5cbiAgICBhc3luYyBzdXJyb3VuZChyYW5nZTogUmFuZ2UsIGFwcGx5Q29sb3I6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAoYXBwbHlDb2xvcikge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjQ29tbWFuZFN0eWxlKHRoaXMudGFnKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tTdGF0ZSh0aGlzLmdldFNlbGVjdGlvbigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGFwcGx5Q29sb3IoY29sb3I6IHN0cmluZywgaW5wdXRUb0ZvY3VzOiBIVE1MSW5wdXRFbGVtZW50ID0gbnVsbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBsZXQgY29sb3JJbmRpY2F0b3IgPSB0aGlzLm5vZGVzLmJ1dHRvbi5xdWVyeVNlbGVjdG9yQWxsKCcuJyArIHRoaXMuQ1NTLmNvbG9ySW5kaWNhdG9yTW9kaWZpZXIpWzBdO1xuICAgICAgICB0aGlzLnN0eWxlLmlucHV0ID0gY29sb3I7XG4gICAgICAgIHRoaXMucmVzZXRVc2VyU2VsZWN0aW9uKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3Vycm91bmQobnVsbCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuY2hlY2tEZWZhdWx0Q29sb3JzKCk7XG4gICAgICAgIHRoaXMuY2hlY2tTdGF0ZSh0aGlzLmN1cnJlbnRTZWxlY3Rpb24pO1xuICAgICAgICBjb2xvckluZGljYXRvci5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQtY29sb3I6JyArIGNvbG9yKTtcbiAgICAgICAgdGhpcy5zYXZlVXNlclNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoaW5wdXRUb0ZvY3VzKSB7XG4gICAgICAgICAgICBpbnB1dFRvRm9jdXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICAvL3RoaXMuaGlkZUFjdGlvbnMoKTtcbiAgICB9XG5cbiAgICBjaGVja1N0YXRlKHNlbGVjdGlvbikge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50RWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNCbG9ja0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHNldEJsb2NrRm9jdXModGhpcy5wYXJlbnRFZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2hlY2tEZWZhdWx0Q29sb3JzKCk7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5oYXNTdHlsZSg8SFRNTEVsZW1lbnQ+c2VsZWN0aW9uLmFuY2hvck5vZGUpID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuQ1NTLmJ1dHRvbkFjdGl2ZSwgaXNBY3RpdmUpO1xuXG4gICAgICAgIHJldHVybiBpc0FjdGl2ZTtcbiAgICB9XG5cbiAgICByZW5kZXJBY3Rpb25zKCkge1xuICAgICAgICB0aGlzLmNvbG9yU2VsZWN0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uY2xhc3NOYW1lID0gdGhpcy5jb2xvclNlbGVjdGlvbkNzc1snd3JhcHBlciddICsgJyBoaWRkZW4gJyArIHRoaXMuQ1NTLmNvbG9yU2VsZWN0aW9uTW9kaWZpZXI7XG4gICAgICAgIHRoaXMuY29sb3JzLmZvckVhY2goKGNvbG9yUm93KSA9PiB7XG4gICAgICAgICAgICBsZXQgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICByb3cuY2xhc3NOYW1lID0gdGhpcy5jb2xvclNlbGVjdGlvbkNzc1sncm93J107XG4gICAgICAgICAgICBjb2xvclJvdy5mb3JFYWNoKChjb2xvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjb2xvciAmJiBjb2xvciAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvckVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jb2xvclNlbGVjdGlvbkNzc1snaXRlbSddO1xuICAgICAgICAgICAgICAgICAgICBjb2xvckVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLWNvbG9yOicgKyBjb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuYXBwbHlDb2xvcihjb2xvcikpO1xuICAgICAgICAgICAgICAgICAgICByb3cuYXBwZW5kQ2hpbGQoY29sb3JFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uYXBwZW5kQ2hpbGQocm93KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCByZW1vdmVDb2xvckNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBsZXQgcmVtb3ZlQ29sb3JDb250YWluZXJJY29uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICByZW1vdmVDb2xvckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHRoaXMuQ1NTLnJlbW92ZUJhY2tncm91bmRDb2xvckNsYXNzKTtcbiAgICAgICAgcmVtb3ZlQ29sb3JDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLmFwcGx5Q29sb3IoJ3JnYmEoMCwwLDAsMCknKSk7XG4gICAgICAgIHJlbW92ZUNvbG9yQ29udGFpbmVyLmlubmVyVGV4dCA9IGVkaXRvckpTSTE4bkRpY3Rpb25uYXJ5Lm1lc3NhZ2VzLnRvb2xzLnRleHRCYWNrZ3JvdW5kQ29sb3JbJ05vbmUnXTtcbiAgICAgICAgcmVtb3ZlQ29sb3JDb250YWluZXIuYXBwZW5kQ2hpbGQocmVtb3ZlQ29sb3JDb250YWluZXJJY29uKTtcbiAgICAgICAgdGhpcy5jb2xvclNlbGVjdGlvbi5hcHBlbmRDaGlsZChyZW1vdmVDb2xvckNvbnRhaW5lcik7XG5cbiAgICAgICAgbGV0IGN1c3RvbUNvbG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGN1c3RvbUNvbG9yLmNsYXNzTmFtZSA9IHRoaXMuY29sb3JTZWxlY3Rpb25Dc3NbJ2NvbnRhaW5lciddO1xuICAgICAgICBsZXQgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcbiAgICAgICAgdGV4dC5pbm5lclRleHQgPSBlZGl0b3JKU0kxOG5EaWN0aW9ubmFyeS5tZXNzYWdlcy50b29scy50ZXh0QmFja2dyb3VuZENvbG9yWydjdXN0b21Db2xvciddO1xuICAgICAgICBsZXQgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldmVudCkgPT4gdGhpcy5vcGVuQ3VzdG9tQ29sb3JQaWNrZXIoZXZlbnQpKTtcbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IHRoaXMuY3JlYXRlQ3VzdG9tQ29sb3JQaWNrZXIoKTtcbiAgICAgICAgYnV0dG9uLmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG5cbiAgICAgICAgY3VzdG9tQ29sb3IuYXBwZW5kQ2hpbGQodGV4dCk7XG4gICAgICAgIGN1c3RvbUNvbG9yLmFwcGVuZENoaWxkKGJ1dHRvbik7XG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uYXBwZW5kQ2hpbGQoY3VzdG9tQ29sb3IpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbG9yU2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHNob3dBY3Rpb25zKG1hcmspIHtcbiAgICAgICAgdGhpcy5zdHlsZS5pbnB1dCA9IG1hcmsgJiYgbWFyay5zdHlsZSAmJiBtYXJrLnN0eWxlLmJhY2tncm91bmRDb2xvciA/IG1hcmsuc3R5bGUuYmFja2dyb3VuZENvbG9yIDogJyNmNWYxY2MnO1xuXG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24ub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBtYXJrLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRoaXMuc3R5bGUuaW5wdXQ7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uaGlkZGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaGlkZUFjdGlvbnMoKSB7XG4gICAgICAgIGxldCBjb2xvclNlbGVjdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy4nICsgdGhpcy5DU1MuY29sb3JTZWxlY3Rpb25Nb2RpZmllcilbMF07XG4gICAgICAgIHRoaXMuaXNDb2xvclNlbGVjdGlvbk9wZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFjb2xvclNlbGVjdGlvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2hpZGRlbicpKSB7XG4gICAgICAgICAgICBjb2xvclNlbGVjdGlvbi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';
3
+ import { editorJSI18nDictionnary } from '../utils/editorjs-translation.service';
3
4
  import { ColorTool } from './tool-type/color-tool.component';
4
5
  // @dynamic
5
6
  export class TextColorTool extends ColorTool {
@@ -93,6 +94,7 @@ export class TextColorTool extends ColorTool {
93
94
  if (!isBlockFocused) {
94
95
  setBlockFocus(this.parentEditor);
95
96
  }
97
+ this.checkDefaultColors();
96
98
  const isActive = this.hasStyle(selection.anchorNode) ? true : false;
97
99
  this.nodes.button.classList.toggle(this.CSS.buttonActive, isActive);
98
100
  return isActive;
@@ -117,7 +119,7 @@ export class TextColorTool extends ColorTool {
117
119
  let customColor = document.createElement('div');
118
120
  customColor.className = this.colorSelectionCss['container'];
119
121
  let text = document.createElement('p');
120
- text.innerText = this.api.i18n.t('customColor');
122
+ text.innerText = editorJSI18nDictionnary.messages.tools.textBackgroundColor['customColor'];
121
123
  let button = document.createElement('div');
122
124
  button.addEventListener('click', (event) => this.openCustomColorPicker(event));
123
125
  let container = this.createCustomColorPicker();
@@ -143,4 +145,4 @@ export class TextColorTool extends ColorTool {
143
145
  }
144
146
  }
145
147
  TextColorTool.title = 'Text Color';
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1jb2xvci10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9wYXVsaW5lL0RvY3VtZW50cy93b3Jrc3BhY2Uvd2l6aS1ibG9jay9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvY29tcG9uZW50cy9lZGl0b3Jqcy90b29scy9pbmxpbmUvdGV4dC1jb2xvci10b29sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQWUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0QsV0FBVztBQUNYLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQTBEeEMsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUNmLEtBQUssRUFBRSxDQUFDO1FBeERLLGdCQUFXLEdBQVcsV0FBVyxDQUFDO1FBRW5ELFFBQUcsR0FBRztZQUNGLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsWUFBWSxFQUFFLHdCQUF3QjtZQUN0QyxjQUFjLEVBQUUsMkJBQTJCO1lBQzNDLHNCQUFzQixFQUFFLDJDQUEyQztZQUNuRSxzQkFBc0IsRUFBRSw4QkFBOEI7WUFDdEQsYUFBYSxFQUFFLHVCQUF1QjtTQUN6QyxDQUFDO1FBRUYsVUFBSyxHQUFrQztZQUNuQyxNQUFNLEVBQUUsU0FBUztTQUNwQixDQUFDO1FBTUYsUUFBRyxHQUFHLE1BQU0sQ0FBQztRQUViLFVBQUssR0FBZ0I7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsS0FBSyxFQUFFLElBQUk7WUFDWCxPQUFPLEVBQUUsU0FBUztZQUNsQixLQUFLLEVBQUUsU0FBUztTQUNuQixDQUFDO1FBRUYsYUFBUSxHQUFHO1lBQ1AsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLEtB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LENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDOztBQXJLYSxtQkFBSyxHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElubGluZVRvb2wsIFNhbml0aXplckNvbmZpZyB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XG5pbXBvcnQgeyBpc0Jsb2NrRm9jdXNlZCwgc2V0QmxvY2tGb2N1cywgU3R5bGVPYmplY3QgfSBmcm9tICcuLi91dGlscy9lZGl0b3Jqcy10b29sLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xvclRvb2wgfSBmcm9tICcuL3Rvb2wtdHlwZS9jb2xvci10b29sLmNvbXBvbmVudCc7XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgVGV4dENvbG9yVG9vbCBleHRlbmRzIENvbG9yVG9vbCBpbXBsZW1lbnRzIElubGluZVRvb2wge1xuICAgIHB1YmxpYyBzdGF0aWMgdGl0bGUgPSAnVGV4dCBDb2xvcic7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmROYW1lOiBzdHJpbmcgPSAndGV4dGNvbG9yJztcblxuICAgIENTUyA9IHtcbiAgICAgICAgYnV0dG9uOiAnY2UtaW5saW5lLXRvb2wnLFxuICAgICAgICBidXR0b25BY3RpdmU6ICdjZS1pbmxpbmUtdG9vbC0tYWN0aXZlJyxcbiAgICAgICAgYnV0dG9uTW9kaWZpZXI6ICdjZS1pbmxpbmUtdG9vbC0tdGV4dENvbG9yJyxcbiAgICAgICAgY29sb3JJbmRpY2F0b3JNb2RpZmllcjogJ2NlLWlubGluZS10b29sLS10ZXh0Q29sb3JfX2NvbG9ySW5kaWNhdG9yJyxcbiAgICAgICAgY29sb3JTZWxlY3Rpb25Nb2RpZmllcjogJ2NlLWlubGluZS1hY3Rpb25zLS10ZXh0Q29sb3InLFxuICAgICAgICBjb2xvclBpY2tlcklkOiAnY29sb3JQaWNrZXItdGV4dENvbG9yJyxcbiAgICB9O1xuXG4gICAgbm9kZXM6IHsgYnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudCB9ID0ge1xuICAgICAgICBidXR0b246IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgYXBpOiBhbnk7XG5cbiAgICBwcml2YXRlIF9zdGF0ZTogYm9vbGVhbjtcblxuICAgIHRhZyA9ICdTUEFOJztcblxuICAgIHN0eWxlOiBTdHlsZU9iamVjdCA9IHtcbiAgICAgICAgcHJvcGVydHk6ICdjb2xvcicsXG4gICAgICAgIHZhbHVlOiAnJDEnLFxuICAgICAgICBkZWZhdWx0OiAnaW5pdGlhbCcsXG4gICAgICAgIGlucHV0OiAnI2Y1ZjFjYycsXG4gICAgfTtcblxuICAgIG1vZGlmaWVzID0ge1xuICAgICAgICB0YWc6IGZhbHNlLFxuICAgICAgICBzdHlsZTogdHJ1ZSxcbiAgICAgICAgY2xhc3M6IGZhbHNlLFxuICAgICAgICBhdHRyaWJ1dGU6IGZhbHNlLFxuICAgIH07XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBpc0lubGluZSgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXQgc2FuaXRpemUoKTogU2FuaXRpemVyQ29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGI6IHt9LFxuICAgICAgICB9IGFzIFNhbml0aXplckNvbmZpZztcbiAgICB9XG5cbiAgICBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0ZTtcbiAgICB9XG5cbiAgICBzZXQgc3RhdGUoc3RhdGUpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcblxuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuYXBpLnN0eWxlcy5pbmxpbmVUb29sQnV0dG9uQWN0aXZlLCBzdGF0ZSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoeyBhcGkgfSkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmFwaSA9IGFwaTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJykgYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLnR5cGUgPSAnYnV0dG9uJztcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5idXR0b24sIHRoaXMuQ1NTLmJ1dHRvbk1vZGlmaWVyKTtcbiAgICAgICAgaWYgKHRoaXMuaGFzU2VwYXJhdG9yQmVmb3JlKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuc2VwYXJhdG9yQ2xhc3MpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5vcGVuQ29sb3JQaWNrZXIoKSk7XG4gICAgICAgIHRoaXMuY29sb3JJbmRpY2F0b3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIHRoaXMuY29sb3JJbmRpY2F0b3IuY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5jb2xvckluZGljYXRvck1vZGlmaWVyKTtcbiAgICAgICAgdGhpcy5jb2xvckluZGljYXRvci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3I6JyArIHRoaXMuZ2V0Q3VycmVudENvbG9yQXBwbGllZCh0aGlzLmdldFNlbGVjdGlvbigpLmFuY2hvck5vZGUucGFyZW50RWxlbWVudClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uYXBwZW5kKHRoaXMuY29sb3JJbmRpY2F0b3IpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzLmJ1dHRvbjtcbiAgICB9XG5cbiAgICBhc3luYyBzdXJyb3VuZChyYW5nZTogUmFuZ2UsIGFwcGx5Q29sb3I6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICBpZiAoYXBwbHlDb2xvcikge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5leGVjQ29tbWFuZFN0eWxlKHRoaXMudGFnKTtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tTdGF0ZSh0aGlzLmdldFNlbGVjdGlvbigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGFwcGx5Q29sb3IoY29sb3I6IHN0cmluZywgaW5wdXRUb0ZvY3VzOiBIVE1MSW5wdXRFbGVtZW50ID0gbnVsbCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBsZXQgY29sb3JJbmRpY2F0b3IgPSB0aGlzLm5vZGVzLmJ1dHRvbi5xdWVyeVNlbGVjdG9yQWxsKCcuJyArIHRoaXMuQ1NTLmNvbG9ySW5kaWNhdG9yTW9kaWZpZXIpWzBdO1xuICAgICAgICB0aGlzLnN0eWxlLmlucHV0ID0gY29sb3I7XG4gICAgICAgIHRoaXMucmVzZXRVc2VyU2VsZWN0aW9uKCk7XG4gICAgICAgIGF3YWl0IHRoaXMuc3Vycm91bmQobnVsbCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuY2hlY2tEZWZhdWx0Q29sb3JzKCk7XG4gICAgICAgIHRoaXMuY2hlY2tTdGF0ZSh0aGlzLmN1cnJlbnRTZWxlY3Rpb24pO1xuICAgICAgICBjb2xvckluZGljYXRvci5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQtY29sb3I6JyArIGNvbG9yKTtcbiAgICAgICAgdGhpcy5zYXZlVXNlclNlbGVjdGlvbigpO1xuICAgICAgICBpZiAoaW5wdXRUb0ZvY3VzKSB7XG4gICAgICAgICAgICBpbnB1dFRvRm9jdXMuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgICAvL3RoaXMuaGlkZUFjdGlvbnMoKTtcbiAgICB9XG5cbiAgICBjaGVja1N0YXRlKHNlbGVjdGlvbikge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50RWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNCbG9ja0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHNldEJsb2NrRm9jdXModGhpcy5wYXJlbnRFZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gdGhpcy5oYXNTdHlsZSg8SFRNTEVsZW1lbnQ+c2VsZWN0aW9uLmFuY2hvck5vZGUpID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QudG9nZ2xlKHRoaXMuQ1NTLmJ1dHRvbkFjdGl2ZSwgaXNBY3RpdmUpO1xuXG4gICAgICAgIHJldHVybiBpc0FjdGl2ZTtcbiAgICB9XG5cbiAgICByZW5kZXJBY3Rpb25zKCkge1xuICAgICAgICB0aGlzLmNvbG9yU2VsZWN0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uY2xhc3NOYW1lID0gdGhpcy5jb2xvclNlbGVjdGlvbkNzc1snd3JhcHBlciddICsgJyBoaWRkZW4gJyArIHRoaXMuQ1NTLmNvbG9yU2VsZWN0aW9uTW9kaWZpZXI7XG4gICAgICAgIHRoaXMuY29sb3JzLmZvckVhY2goKGNvbG9yUm93KSA9PiB7XG4gICAgICAgICAgICBsZXQgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICByb3cuY2xhc3NOYW1lID0gdGhpcy5jb2xvclNlbGVjdGlvbkNzc1sncm93J107XG4gICAgICAgICAgICBjb2xvclJvdy5mb3JFYWNoKChjb2xvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjb2xvciAmJiBjb2xvciAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbG9yRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgICAgICBjb2xvckVsZW1lbnQuY2xhc3NOYW1lID0gdGhpcy5jb2xvclNlbGVjdGlvbkNzc1snaXRlbSddO1xuICAgICAgICAgICAgICAgICAgICBjb2xvckVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdiYWNrZ3JvdW5kLWNvbG9yOicgKyBjb2xvcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMuYXBwbHlDb2xvcihjb2xvcikpO1xuICAgICAgICAgICAgICAgICAgICByb3cuYXBwZW5kQ2hpbGQoY29sb3JFbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uYXBwZW5kQ2hpbGQocm93KTtcbiAgICAgICAgfSk7XG4gICAgICAgIGxldCBjdXN0b21Db2xvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBjdXN0b21Db2xvci5jbGFzc05hbWUgPSB0aGlzLmNvbG9yU2VsZWN0aW9uQ3NzWydjb250YWluZXInXTtcbiAgICAgICAgbGV0IHRleHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XG4gICAgICAgIHRleHQuaW5uZXJUZXh0ID0gdGhpcy5hcGkuaTE4bi50KCdjdXN0b21Db2xvcicpO1xuICAgICAgICBsZXQgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldmVudCkgPT4gdGhpcy5vcGVuQ3VzdG9tQ29sb3JQaWNrZXIoZXZlbnQpKTtcbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IHRoaXMuY3JlYXRlQ3VzdG9tQ29sb3JQaWNrZXIoKTtcbiAgICAgICAgYnV0dG9uLmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG5cbiAgICAgICAgY3VzdG9tQ29sb3IuYXBwZW5kQ2hpbGQodGV4dCk7XG4gICAgICAgIGN1c3RvbUNvbG9yLmFwcGVuZENoaWxkKGJ1dHRvbik7XG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uYXBwZW5kQ2hpbGQoY3VzdG9tQ29sb3IpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbG9yU2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHNob3dBY3Rpb25zKG1hcmspIHtcbiAgICAgICAgdGhpcy5zdHlsZS5pbnB1dCA9IG1hcmsgJiYgbWFyay5zdHlsZSAmJiBtYXJrLnN0eWxlLmJhY2tncm91bmRDb2xvciA/IG1hcmsuc3R5bGUuYmFja2dyb3VuZENvbG9yIDogJyNmNWYxY2MnO1xuXG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24ub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBtYXJrLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRoaXMuc3R5bGUuaW5wdXQ7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uaGlkZGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaGlkZUFjdGlvbnMoKSB7XG4gICAgICAgIGxldCBjb2xvclNlbGVjdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy4nICsgdGhpcy5DU1MuY29sb3JTZWxlY3Rpb25Nb2RpZmllcilbMF07XG4gICAgICAgIHRoaXMuaXNDb2xvclNlbGVjdGlvbk9wZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFjb2xvclNlbGVjdGlvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2hpZGRlbicpKSB7XG4gICAgICAgICAgICBjb2xvclNlbGVjdGlvbi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1jb2xvci10b29sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIvaG9tZS9wYXVsaW5lL0RvY3VtZW50cy93b3Jrc3BhY2Uvd2l6aS1ibG9jay9wcm9qZWN0cy93aXppLWJsb2NrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvY29tcG9uZW50cy9lZGl0b3Jqcy90b29scy9pbmxpbmUvdGV4dC1jb2xvci10b29sLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQWUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFN0QsV0FBVztBQUNYLE1BQU0sT0FBTyxhQUFjLFNBQVEsU0FBUztJQTBEeEMsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUNmLEtBQUssRUFBRSxDQUFDO1FBeERLLGdCQUFXLEdBQVcsV0FBVyxDQUFDO1FBRW5ELFFBQUcsR0FBRztZQUNGLE1BQU0sRUFBRSxnQkFBZ0I7WUFDeEIsWUFBWSxFQUFFLHdCQUF3QjtZQUN0QyxjQUFjLEVBQUUsMkJBQTJCO1lBQzNDLHNCQUFzQixFQUFFLDJDQUEyQztZQUNuRSxzQkFBc0IsRUFBRSw4QkFBOEI7WUFDdEQsYUFBYSxFQUFFLHVCQUF1QjtTQUN6QyxDQUFDO1FBRUYsVUFBSyxHQUFrQztZQUNuQyxNQUFNLEVBQUUsU0FBUztTQUNwQixDQUFDO1FBTUYsUUFBRyxHQUFHLE1BQU0sQ0FBQztRQUViLFVBQUssR0FBZ0I7WUFDakIsUUFBUSxFQUFFLE9BQU87WUFDakIsS0FBSyxFQUFFLElBQUk7WUFDWCxPQUFPLEVBQUUsU0FBUztZQUNsQixLQUFLLEVBQUUsU0FBUztTQUNuQixDQUFDO1FBRUYsYUFBUSxHQUFHO1lBQ1AsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVB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Q0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzlDLGNBQWMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQzs7QUF0S2EsbUJBQUssR0FBRyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmxpbmVUb29sLCBTYW5pdGl6ZXJDb25maWcgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xuaW1wb3J0IHsgaXNCbG9ja0ZvY3VzZWQsIHNldEJsb2NrRm9jdXMsIFN0eWxlT2JqZWN0IH0gZnJvbSAnLi4vdXRpbHMvZWRpdG9yanMtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZWRpdG9ySlNJMThuRGljdGlvbm5hcnkgfSBmcm9tICcuLi91dGlscy9lZGl0b3Jqcy10cmFuc2xhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IENvbG9yVG9vbCB9IGZyb20gJy4vdG9vbC10eXBlL2NvbG9yLXRvb2wuY29tcG9uZW50JztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBUZXh0Q29sb3JUb29sIGV4dGVuZHMgQ29sb3JUb29sIGltcGxlbWVudHMgSW5saW5lVG9vbCB7XG4gICAgcHVibGljIHN0YXRpYyB0aXRsZSA9ICdUZXh0IENvbG9yJztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZE5hbWU6IHN0cmluZyA9ICd0ZXh0Y29sb3InO1xuXG4gICAgQ1NTID0ge1xuICAgICAgICBidXR0b246ICdjZS1pbmxpbmUtdG9vbCcsXG4gICAgICAgIGJ1dHRvbkFjdGl2ZTogJ2NlLWlubGluZS10b29sLS1hY3RpdmUnLFxuICAgICAgICBidXR0b25Nb2RpZmllcjogJ2NlLWlubGluZS10b29sLS10ZXh0Q29sb3InLFxuICAgICAgICBjb2xvckluZGljYXRvck1vZGlmaWVyOiAnY2UtaW5saW5lLXRvb2wtLXRleHRDb2xvcl9fY29sb3JJbmRpY2F0b3InLFxuICAgICAgICBjb2xvclNlbGVjdGlvbk1vZGlmaWVyOiAnY2UtaW5saW5lLWFjdGlvbnMtLXRleHRDb2xvcicsXG4gICAgICAgIGNvbG9yUGlja2VySWQ6ICdjb2xvclBpY2tlci10ZXh0Q29sb3InLFxuICAgIH07XG5cbiAgICBub2RlczogeyBidXR0b246IEhUTUxCdXR0b25FbGVtZW50IH0gPSB7XG4gICAgICAgIGJ1dHRvbjogdW5kZWZpbmVkLFxuICAgIH07XG5cbiAgICBhcGk6IGFueTtcblxuICAgIHByaXZhdGUgX3N0YXRlOiBib29sZWFuO1xuXG4gICAgdGFnID0gJ1NQQU4nO1xuXG4gICAgc3R5bGU6IFN0eWxlT2JqZWN0ID0ge1xuICAgICAgICBwcm9wZXJ0eTogJ2NvbG9yJyxcbiAgICAgICAgdmFsdWU6ICckMScsXG4gICAgICAgIGRlZmF1bHQ6ICdpbml0aWFsJyxcbiAgICAgICAgaW5wdXQ6ICcjZjVmMWNjJyxcbiAgICB9O1xuXG4gICAgbW9kaWZpZXMgPSB7XG4gICAgICAgIHRhZzogZmFsc2UsXG4gICAgICAgIHN0eWxlOiB0cnVlLFxuICAgICAgICBjbGFzczogZmFsc2UsXG4gICAgICAgIGF0dHJpYnV0ZTogZmFsc2UsXG4gICAgfTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGlzSW5saW5lKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBzYW5pdGl6ZSgpOiBTYW5pdGl6ZXJDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYjoge30sXG4gICAgICAgIH0gYXMgU2FuaXRpemVyQ29uZmlnO1xuICAgIH1cblxuICAgIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRlO1xuICAgIH1cblxuICAgIHNldCBzdGF0ZShzdGF0ZSkge1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IHN0YXRlO1xuXG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC50b2dnbGUodGhpcy5hcGkuc3R5bGVzLmlubGluZVRvb2xCdXR0b25BY3RpdmUsIHN0YXRlKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcih7IGFwaSB9KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYXBpID0gYXBpO1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24udHlwZSA9ICdidXR0b24nO1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuQ1NTLmJ1dHRvbiwgdGhpcy5DU1MuYnV0dG9uTW9kaWZpZXIpO1xuICAgICAgICBpZiAodGhpcy5oYXNTZXBhcmF0b3JCZWZvcmUpIHtcbiAgICAgICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC5hZGQodGhpcy5zZXBhcmF0b3JDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW5Db2xvclBpY2tlcigpKTtcbiAgICAgICAgdGhpcy5jb2xvckluZGljYXRvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgdGhpcy5jb2xvckluZGljYXRvci5jbGFzc0xpc3QuYWRkKHRoaXMuQ1NTLmNvbG9ySW5kaWNhdG9yTW9kaWZpZXIpO1xuICAgICAgICB0aGlzLmNvbG9ySW5kaWNhdG9yLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICdzdHlsZScsXG4gICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcjonICsgdGhpcy5nZXRDdXJyZW50Q29sb3JBcHBsaWVkKHRoaXMuZ2V0U2VsZWN0aW9uKCkuYW5jaG9yTm9kZS5wYXJlbnRFbGVtZW50KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5hcHBlbmQodGhpcy5jb2xvckluZGljYXRvcik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXMuYnV0dG9uO1xuICAgIH1cblxuICAgIGFzeW5jIHN1cnJvdW5kKHJhbmdlOiBSYW5nZSwgYXBwbHlDb2xvcjogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIGlmIChhcHBseUNvbG9yKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmV4ZWNDb21tYW5kU3R5bGUodGhpcy50YWcpO1xuICAgICAgICAgICAgdGhpcy5jaGVja1N0YXRlKHRoaXMuZ2V0U2VsZWN0aW9uKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgYXBwbHlDb2xvcihjb2xvcjogc3RyaW5nLCBpbnB1dFRvRm9jdXM6IEhUTUxJbnB1dEVsZW1lbnQgPSBudWxsKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCBjb2xvckluZGljYXRvciA9IHRoaXMubm9kZXMuYnV0dG9uLnF1ZXJ5U2VsZWN0b3JBbGwoJy4nICsgdGhpcy5DU1MuY29sb3JJbmRpY2F0b3JNb2RpZmllcilbMF07XG4gICAgICAgIHRoaXMuc3R5bGUuaW5wdXQgPSBjb2xvcjtcbiAgICAgICAgdGhpcy5yZXNldFVzZXJTZWxlY3Rpb24oKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zdXJyb3VuZChudWxsLCB0cnVlKTtcbiAgICAgICAgdGhpcy5jaGVja0RlZmF1bHRDb2xvcnMoKTtcbiAgICAgICAgdGhpcy5jaGVja1N0YXRlKHRoaXMuY3VycmVudFNlbGVjdGlvbik7XG4gICAgICAgIGNvbG9ySW5kaWNhdG9yLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCAnYmFja2dyb3VuZC1jb2xvcjonICsgY29sb3IpO1xuICAgICAgICB0aGlzLnNhdmVVc2VyU2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChpbnB1dFRvRm9jdXMpIHtcbiAgICAgICAgICAgIGlucHV0VG9Gb2N1cy5mb2N1cygpO1xuICAgICAgICB9XG4gICAgICAgIC8vdGhpcy5oaWRlQWN0aW9ucygpO1xuICAgIH1cblxuICAgIGNoZWNrU3RhdGUoc2VsZWN0aW9uKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXJlbnRFZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50RWRpdG9yID0gdGhpcy5maW5kUGFyZW50RWRpdG9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0Jsb2NrRm9jdXNlZCkge1xuICAgICAgICAgICAgc2V0QmxvY2tGb2N1cyh0aGlzLnBhcmVudEVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jaGVja0RlZmF1bHRDb2xvcnMoKTtcbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLmhhc1N0eWxlKDxIVE1MRWxlbWVudD5zZWxlY3Rpb24uYW5jaG9yTm9kZSkgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC50b2dnbGUodGhpcy5DU1MuYnV0dG9uQWN0aXZlLCBpc0FjdGl2ZSk7XG5cbiAgICAgICAgcmV0dXJuIGlzQWN0aXZlO1xuICAgIH1cblxuICAgIHJlbmRlckFjdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5jb2xvclNlbGVjdGlvbi5jbGFzc05hbWUgPSB0aGlzLmNvbG9yU2VsZWN0aW9uQ3NzWyd3cmFwcGVyJ10gKyAnIGhpZGRlbiAnICsgdGhpcy5DU1MuY29sb3JTZWxlY3Rpb25Nb2RpZmllcjtcbiAgICAgICAgdGhpcy5jb2xvcnMuZm9yRWFjaCgoY29sb3JSb3cpID0+IHtcbiAgICAgICAgICAgIGxldCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIHJvdy5jbGFzc05hbWUgPSB0aGlzLmNvbG9yU2VsZWN0aW9uQ3NzWydyb3cnXTtcbiAgICAgICAgICAgIGNvbG9yUm93LmZvckVhY2goKGNvbG9yKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbG9yICYmIGNvbG9yICE9PSAnJykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29sb3JFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yRWxlbWVudC5jbGFzc05hbWUgPSB0aGlzLmNvbG9yU2VsZWN0aW9uQ3NzWydpdGVtJ107XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2JhY2tncm91bmQtY29sb3I6JyArIGNvbG9yKTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3JFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5hcHBseUNvbG9yKGNvbG9yKSk7XG4gICAgICAgICAgICAgICAgICAgIHJvdy5hcHBlbmRDaGlsZChjb2xvckVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5jb2xvclNlbGVjdGlvbi5hcHBlbmRDaGlsZChyb3cpO1xuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGN1c3RvbUNvbG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGN1c3RvbUNvbG9yLmNsYXNzTmFtZSA9IHRoaXMuY29sb3JTZWxlY3Rpb25Dc3NbJ2NvbnRhaW5lciddO1xuICAgICAgICBsZXQgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3AnKTtcbiAgICAgICAgdGV4dC5pbm5lclRleHQgPSBlZGl0b3JKU0kxOG5EaWN0aW9ubmFyeS5tZXNzYWdlcy50b29scy50ZXh0QmFja2dyb3VuZENvbG9yWydjdXN0b21Db2xvciddO1xuICAgICAgICBsZXQgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldmVudCkgPT4gdGhpcy5vcGVuQ3VzdG9tQ29sb3JQaWNrZXIoZXZlbnQpKTtcbiAgICAgICAgbGV0IGNvbnRhaW5lciA9IHRoaXMuY3JlYXRlQ3VzdG9tQ29sb3JQaWNrZXIoKTtcbiAgICAgICAgYnV0dG9uLmFwcGVuZENoaWxkKGNvbnRhaW5lcik7XG5cbiAgICAgICAgY3VzdG9tQ29sb3IuYXBwZW5kQ2hpbGQodGV4dCk7XG4gICAgICAgIGN1c3RvbUNvbG9yLmFwcGVuZENoaWxkKGJ1dHRvbik7XG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uYXBwZW5kQ2hpbGQoY3VzdG9tQ29sb3IpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNvbG9yU2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHNob3dBY3Rpb25zKG1hcmspIHtcbiAgICAgICAgdGhpcy5zdHlsZS5pbnB1dCA9IG1hcmsgJiYgbWFyay5zdHlsZSAmJiBtYXJrLnN0eWxlLmJhY2tncm91bmRDb2xvciA/IG1hcmsuc3R5bGUuYmFja2dyb3VuZENvbG9yIDogJyNmNWYxY2MnO1xuXG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24ub25jaGFuZ2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBtYXJrLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IHRoaXMuc3R5bGUuaW5wdXQ7XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuY29sb3JTZWxlY3Rpb24uaGlkZGVuID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaGlkZUFjdGlvbnMoKSB7XG4gICAgICAgIGxldCBjb2xvclNlbGVjdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy4nICsgdGhpcy5DU1MuY29sb3JTZWxlY3Rpb25Nb2RpZmllcilbMF07XG4gICAgICAgIHRoaXMuaXNDb2xvclNlbGVjdGlvbk9wZW4gPSBmYWxzZTtcbiAgICAgICAgaWYgKCFjb2xvclNlbGVjdGlvbi5jbGFzc0xpc3QuY29udGFpbnMoJ2hpZGRlbicpKSB7XG4gICAgICAgICAgICBjb2xvclNlbGVjdGlvbi5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -2,6 +2,7 @@ import { __awaiter } from "tslib";
2
2
  import { InlineTextTool } from './tool-type/text-tool.component';
3
3
  import { TEXT_SIZES } from '../utils/texts.component';
4
4
  import { isBlockFocused, setBlockFocus } from '../utils/editorjs-tool.component';
5
+ import { editorJSI18nDictionnary } from '../utils/editorjs-translation.service';
5
6
  // @dynamic
6
7
  export class textSizeTool extends InlineTextTool {
7
8
  constructor({ api }) {
@@ -55,7 +56,7 @@ export class textSizeTool extends InlineTextTool {
55
56
  this.nodes.button.addEventListener('click', () => this.openDropdown());
56
57
  this.textSizes.forEach((textSize) => {
57
58
  let span = document.createElement('span');
58
- span.innerText = this.api.i18n.t(textSize.name);
59
+ span.innerText = editorJSI18nDictionnary.messages.tools.textSize[textSize.name];
59
60
  this.nodes.button.appendChild(span);
60
61
  });
61
62
  let dropdownArrow = document.createElement('span');
@@ -100,7 +101,7 @@ export class textSizeTool extends InlineTextTool {
100
101
  this.textSizes.forEach((textSize) => {
101
102
  let row = document.createElement('div');
102
103
  row.className = this.dropdownCss['row'];
103
- row.innerText = this.api.i18n.t(textSize.name);
104
+ row.innerText = editorJSI18nDictionnary.messages.tools.textSize[textSize.name];
104
105
  row.addEventListener('click', () => this.applyTextStyle(textSize.class));
105
106
  textSizeDropdown.appendChild(row);
106
107
  });
@@ -130,4 +131,4 @@ export class textSizeTool extends InlineTextTool {
130
131
  }
131
132
  }
132
133
  textSizeTool.title = 'Text Size';
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zaXplLXRvb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3BhdWxpbmUvRG9jdW1lbnRzL3dvcmtzcGFjZS93aXppLWJsb2NrL3Byb2plY3RzL3dpemktYmxvY2svc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9jb21wb25lbnRzL2VkaXRvcmpzL3Rvb2xzL2lubGluZS90ZXh0LXNpemUtdG9vbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQVksVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRixXQUFXO0FBQ1gsTUFBTSxPQUFPLFlBQWEsU0FBUSxjQUFjO0lBd0Q1QyxZQUFZLEVBQUUsR0FBRyxFQUFFO1FBQ2YsS0FBSyxFQUFFLENBQUM7UUF0REssZ0JBQVcsR0FBVyxVQUFVLENBQUM7UUFFbEQsUUFBRyxHQUFHO1lBQ0YsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLGNBQWMsRUFBRSwwQkFBMEI7WUFDMUMsbUJBQW1CLEVBQUUsaUNBQWlDO1lBQ3RELHFCQUFxQixFQUFFLDZCQUE2QjtTQUN2RCxDQUFDO1FBRUYsVUFBSyxHQUFrQztZQUNuQyxNQUFNLEVBQUUsU0FBUztTQUNwQixDQUFDO1FBTUYsUUFBRyxHQUFHLE1BQU0sQ0FBQztRQUViLGNBQVMsR0FBb0IsVUFBVSxDQUFDO1FBRXhDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYixhQUFRLEdBQUc7WUFDUCxHQUFHLEVBQUUsS0FBSztZQUNWLEtBQUssRUFBRSxLQUFLO1lBQ1osS0FBSyxFQUFFLElBQUk7WUFDWCxTQUFTLEVBQUUsS0FBSztTQUNuQixDQUFD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QUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsQ0FBQztLQUFBOztBQXBKYSxrQkFBSyxHQUFHLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElubGluZVRvb2wsIFNhbml0aXplckNvbmZpZyB9IGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XG5pbXBvcnQgeyBJbmxpbmVUZXh0VG9vbCB9IGZyb20gJy4vdG9vbC10eXBlL3RleHQtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dFNpemUsIFRFWFRfU0laRVMgfSBmcm9tICcuLi91dGlscy90ZXh0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgaXNCbG9ja0ZvY3VzZWQsIHNldEJsb2NrRm9jdXMgfSBmcm9tICcuLi91dGlscy9lZGl0b3Jqcy10b29sLmNvbXBvbmVudCc7XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgdGV4dFNpemVUb29sIGV4dGVuZHMgSW5saW5lVGV4dFRvb2wgaW1wbGVtZW50cyBJbmxpbmVUb29sIHtcbiAgICBwdWJsaWMgc3RhdGljIHRpdGxlID0gJ1RleHQgU2l6ZSc7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmROYW1lOiBzdHJpbmcgPSAndGV4dFNpemUnO1xuXG4gICAgQ1NTID0ge1xuICAgICAgICBidXR0b246ICdjZS1pbmxpbmUtdG9vbCcsXG4gICAgICAgIGJ1dHRvbkFjdGl2ZTogJ2NlLWlubGluZS10b29sLS1hY3RpdmUnLFxuICAgICAgICBidXR0b25Nb2RpZmllcjogJ2NlLWlubGluZS10b29sLS10ZXh0U2l6ZScsXG4gICAgICAgIGFycm93QnV0dG9uTW9kaWZpZXI6ICdjZS1pbmxpbmUtdG9vbC0tdGV4dFNpemVfX2Fycm93JyxcbiAgICAgICAgdGV4dFNlbGVjdGlvbk1vZGlmaWVyOiAnY2UtaW5saW5lLWFjdGlvbnMtLXRleHRTaXplJyxcbiAgICB9O1xuXG4gICAgbm9kZXM6IHsgYnV0dG9uOiBIVE1MQnV0dG9uRWxlbWVudCB9ID0ge1xuICAgICAgICBidXR0b246IHVuZGVmaW5lZCxcbiAgICB9O1xuXG4gICAgYXBpOiBhbnk7XG5cbiAgICBwcml2YXRlIF9zdGF0ZTogYm9vbGVhbjtcblxuICAgIHRhZyA9ICdTUEFOJztcblxuICAgIHRleHRTaXplczogQXJyYXk8VGV4dFNpemU+ID0gVEVYVF9TSVpFUztcblxuICAgIGNsYXNzVG9BcHBseSA9ICcnO1xuXG4gICAgY2xhc3NlcyA9ICcnO1xuXG4gICAgbW9kaWZpZXMgPSB7XG4gICAgICAgIHRhZzogZmFsc2UsXG4gICAgICAgIHN0eWxlOiBmYWxzZSxcbiAgICAgICAgY2xhc3M6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZTogZmFsc2UsXG4gICAgfTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IGlzSW5saW5lKCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldCBzYW5pdGl6ZSgpOiBTYW5pdGl6ZXJDb25maWcge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYjoge30sXG4gICAgICAgIH0gYXMgU2FuaXRpemVyQ29uZmlnO1xuICAgIH1cblxuICAgIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXRlO1xuICAgIH1cblxuICAgIHNldCBzdGF0ZShzdGF0ZSkge1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IHN0YXRlO1xuXG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC50b2dnbGUodGhpcy5hcGkuc3R5bGVzLmlubGluZVRvb2xCdXR0b25BY3RpdmUsIHN0YXRlKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcih7IGFwaSB9KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuYXBpID0gYXBpO1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdidXR0b24nKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24udHlwZSA9ICdidXR0b24nO1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuQ1NTLmJ1dHRvbiwgdGhpcy5DU1MuYnV0dG9uTW9kaWZpZXIpO1xuICAgICAgICBpZiAodGhpcy5oYXNTZXBhcmF0b3JCZWZvcmUpIHtcbiAgICAgICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC5hZGQodGhpcy5zZXBhcmF0b3JDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB0aGlzLm9wZW5Ecm9wZG93bigpKTtcbiAgICAgICAgdGhpcy50ZXh0U2l6ZXMuZm9yRWFjaCgodGV4dFNpemUpID0+IHtcbiAgICAgICAgICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgc3Bhbi5pbm5lclRleHQgPSB0aGlzLmFwaS5pMThuLnQodGV4dFNpemUubmFtZSk7XG4gICAgICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5hcHBlbmRDaGlsZChzcGFuKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGV0IGRyb3Bkb3duQXJyb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgIGRyb3Bkb3duQXJyb3cuY2xhc3NMaXN0LmFkZCh0aGlzLkNTUy5hcnJvd0J1dHRvbk1vZGlmaWVyKTtcbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uYXBwZW5kQ2hpbGQoZHJvcGRvd25BcnJvdyk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXMuYnV0dG9uO1xuICAgIH1cblxuICAgIGFzeW5jIHN1cnJvdW5kKHJhbmdlOiBSYW5nZSwgYXBwbHlTdHlsZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuc2F2ZVVzZXJTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKGFwcGx5U3R5bGUpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZXhlY0NvbW1hbmRTdHlsZSh0aGlzLnRhZyk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrU3RhdGUodGhpcy5nZXRTZWxlY3Rpb24oKSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoZWNrU3RhdGUoc2VsZWN0aW9uKSB7XG4gICAgICAgIGlmICghdGhpcy5wYXJlbnRFZGl0b3IpIHtcbiAgICAgICAgICAgIHRoaXMucGFyZW50RWRpdG9yID0gdGhpcy5maW5kUGFyZW50RWRpdG9yKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc0Jsb2NrRm9jdXNlZCkge1xuICAgICAgICAgICAgc2V0QmxvY2tGb2N1cyh0aGlzLnBhcmVudEVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuaGFzU3R5bGUoPEhUTUxFbGVtZW50PnNlbGVjdGlvbi5hbmNob3JOb2RlKTtcbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBlbGVtZW50ID8gdHJ1ZSA6IGZhbHNlO1xuXG4gICAgICAgIHRoaXMudGV4dFNpemVzLmZvckVhY2goKHRleHRTaXplKSA9PiB7XG4gICAgICAgICAgICBpZiAodGV4dFNpemUuY2xhc3MgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQ/LmNsYXNzTGlzdC5jb250YWlucyh0ZXh0U2l6ZS5jbGFzcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LmFkZCh0ZXh0U2l6ZS5jbGFzcyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LnJlbW92ZSh0ZXh0U2l6ZS5jbGFzcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gaXNBY3RpdmU7XG4gICAgfVxuXG4gICAgcmVuZGVyQWN0aW9ucygpIHtcbiAgICAgICAgbGV0IHRleHRTaXplRHJvcGRvd24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGV4dFNpemVEcm9wZG93bi5jbGFzc05hbWUgPSB0aGlzLmRyb3Bkb3duQ3NzWydjb250YWluZXInXSArICcgaGlkZGVuICcgKyB0aGlzLkNTUy50ZXh0U2VsZWN0aW9uTW9kaWZpZXI7XG4gICAgICAgIHRoaXMudGV4dFNpemVzLmZvckVhY2goKHRleHRTaXplKSA9PiB7XG4gICAgICAgICAgICBsZXQgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICByb3cuY2xhc3NOYW1lID0gdGhpcy5kcm9wZG93bkNzc1sncm93J107XG4gICAgICAgICAgICByb3cuaW5uZXJUZXh0ID0gdGhpcy5hcGkuaTE4bi50KHRleHRTaXplLm5hbWUpO1xuICAgICAgICAgICAgcm93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5hcHBseVRleHRTdHlsZSh0ZXh0U2l6ZS5jbGFzcykpO1xuICAgICAgICAgICAgdGV4dFNpemVEcm9wZG93bi5hcHBlbmRDaGlsZChyb3cpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuY2xhc3NlcyA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dFNpemVzLmZvckVhY2goKHRleHRTaXplKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2xhc3NlcyAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGFzc2VzICs9ICcsJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jbGFzc2VzICs9IHRleHRTaXplLmNsYXNzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHRTaXplRHJvcGRvd247XG4gICAgfVxuXG4gICAgc2hvd0FjdGlvbnMobWFyaykge1xuICAgICAgICAvL3RoaXMuc3R5bGUuaW5wdXQgPSBtYXJrICYmIG1hcmsuc3R5bGUgJiYgbWFyay5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPyBtYXJrLnN0eWxlLmJhY2tncm91bmRDb2xvciA6ICcjZjVmMWNjJztcbiAgICB9XG5cbiAgICBoaWRlQWN0aW9ucygpIHt9XG5cbiAgICBhc3luYyBhcHBseVRleHRTdHlsZShjbGFzc1RvQXBwbHk6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNsYXNzVG9BcHBseSA9IGNsYXNzVG9BcHBseTtcbiAgICAgICAgdGhpcy5yZXNldFVzZXJTZWxlY3Rpb24oKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zdXJyb3VuZChudWxsLCB0cnVlKTtcbiAgICAgICAgdGhpcy5jaGVja1N0YXRlKHRoaXMuY3VycmVudFNlbGVjdGlvbik7XG4gICAgICAgIHRoaXMuc2F2ZVVzZXJTZWxlY3Rpb24oKTtcbiAgICAgICAgdGhpcy5oaWRlQWN0aW9ucygpO1xuICAgIH1cbn1cbiJdfQ==
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zaXplLXRvb2wuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Ii9ob21lL3BhdWxpbmUvRG9jdW1lbnRzL3dvcmtzcGFjZS93aXppLWJsb2NrL3Byb2plY3RzL3dpemktYmxvY2svc3JjLyIsInNvdXJjZXMiOlsibGliL3NoYXJlZC9jb21wb25lbnRzL2VkaXRvcmpzL3Rvb2xzL2lubGluZS90ZXh0LXNpemUtdG9vbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQVksVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVoRixXQUFXO0FBQ1gsTUFBTSxPQUFPLFlBQWEsU0FBUSxjQUFjO0lBd0Q1QyxZQUFZLEVBQUUsR0FBRyxFQUFFO1FBQ2YsS0FBSyxFQUFFLENBQUM7UUF0REssZ0JBQVcsR0FBVyxVQUFVLENBQUM7UUFFbEQsUUFBRyxHQUFHO1lBQ0YsTUFBTSxFQUFFLGdCQUFnQjtZQUN4QixZQUFZLEVBQUUsd0JBQXdCO1lBQ3RDLGNBQWMsRUFBRSwwQkFBMEI7WUFDMUMsbUJBQW1CLEVBQUUsaUNBQWlDO1lBQ3RELHFCQUFxQixFQUFFLDZCQUE2QjtTQUN2RCxDQUFDO1FBRUYsVUFBSyxHQUFrQztZQUNuQyxNQUFNLEVBQUUsU0FBUztTQUNwQixDQUFDO1FBTUYsUUFBRyxHQUFHLE1BQU0sQ0FBQztRQUViLGNBQVMsR0FBb0IsVUFBVSxDQUFDO1FBRXhDLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFYixhQUFRLEdBQUc7WUFDUCxHQUFHLEVBQUUsS0FBSztZQUNWLEtBQUssRUFBRSxLQUFLO1lBQ1os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QUFDO1lBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7S0FBQTs7QUFwSmEsa0JBQUssR0FBRyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmxpbmVUb29sLCBTYW5pdGl6ZXJDb25maWcgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xuaW1wb3J0IHsgSW5saW5lVGV4dFRvb2wgfSBmcm9tICcuL3Rvb2wtdHlwZS90ZXh0LXRvb2wuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRTaXplLCBURVhUX1NJWkVTIH0gZnJvbSAnLi4vdXRpbHMvdGV4dHMuY29tcG9uZW50JztcbmltcG9ydCB7IGlzQmxvY2tGb2N1c2VkLCBzZXRCbG9ja0ZvY3VzIH0gZnJvbSAnLi4vdXRpbHMvZWRpdG9yanMtdG9vbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZWRpdG9ySlNJMThuRGljdGlvbm5hcnkgfSBmcm9tICcuLi91dGlscy9lZGl0b3Jqcy10cmFuc2xhdGlvbi5zZXJ2aWNlJztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyB0ZXh0U2l6ZVRvb2wgZXh0ZW5kcyBJbmxpbmVUZXh0VG9vbCBpbXBsZW1lbnRzIElubGluZVRvb2wge1xuICAgIHB1YmxpYyBzdGF0aWMgdGl0bGUgPSAnVGV4dCBTaXplJztcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZE5hbWU6IHN0cmluZyA9ICd0ZXh0U2l6ZSc7XG5cbiAgICBDU1MgPSB7XG4gICAgICAgIGJ1dHRvbjogJ2NlLWlubGluZS10b29sJyxcbiAgICAgICAgYnV0dG9uQWN0aXZlOiAnY2UtaW5saW5lLXRvb2wtLWFjdGl2ZScsXG4gICAgICAgIGJ1dHRvbk1vZGlmaWVyOiAnY2UtaW5saW5lLXRvb2wtLXRleHRTaXplJyxcbiAgICAgICAgYXJyb3dCdXR0b25Nb2RpZmllcjogJ2NlLWlubGluZS10b29sLS10ZXh0U2l6ZV9fYXJyb3cnLFxuICAgICAgICB0ZXh0U2VsZWN0aW9uTW9kaWZpZXI6ICdjZS1pbmxpbmUtYWN0aW9ucy0tdGV4dFNpemUnLFxuICAgIH07XG5cbiAgICBub2RlczogeyBidXR0b246IEhUTUxCdXR0b25FbGVtZW50IH0gPSB7XG4gICAgICAgIGJ1dHRvbjogdW5kZWZpbmVkLFxuICAgIH07XG5cbiAgICBhcGk6IGFueTtcblxuICAgIHByaXZhdGUgX3N0YXRlOiBib29sZWFuO1xuXG4gICAgdGFnID0gJ1NQQU4nO1xuXG4gICAgdGV4dFNpemVzOiBBcnJheTxUZXh0U2l6ZT4gPSBURVhUX1NJWkVTO1xuXG4gICAgY2xhc3NUb0FwcGx5ID0gJyc7XG5cbiAgICBjbGFzc2VzID0gJyc7XG5cbiAgICBtb2RpZmllcyA9IHtcbiAgICAgICAgdGFnOiBmYWxzZSxcbiAgICAgICAgc3R5bGU6IGZhbHNlLFxuICAgICAgICBjbGFzczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXQgaXNJbmxpbmUoKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0IHNhbml0aXplKCk6IFNhbml0aXplckNvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBiOiB7fSxcbiAgICAgICAgfSBhcyBTYW5pdGl6ZXJDb25maWc7XG4gICAgfVxuXG4gICAgZ2V0IHN0YXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RhdGU7XG4gICAgfVxuXG4gICAgc2V0IHN0YXRlKHN0YXRlKSB7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gc3RhdGU7XG5cbiAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LnRvZ2dsZSh0aGlzLmFwaS5zdHlsZXMuaW5saW5lVG9vbEJ1dHRvbkFjdGl2ZSwgc3RhdGUpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHsgYXBpIH0pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5hcGkgPSBhcGk7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi50eXBlID0gJ2J1dHRvbic7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC5hZGQodGhpcy5DU1MuYnV0dG9uLCB0aGlzLkNTUy5idXR0b25Nb2RpZmllcik7XG4gICAgICAgIGlmICh0aGlzLmhhc1NlcGFyYXRvckJlZm9yZSkge1xuICAgICAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uY2xhc3NMaXN0LmFkZCh0aGlzLnNlcGFyYXRvckNsYXNzKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5vZGVzLmJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHRoaXMub3BlbkRyb3Bkb3duKCkpO1xuICAgICAgICB0aGlzLnRleHRTaXplcy5mb3JFYWNoKCh0ZXh0U2l6ZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgICAgICAgICBzcGFuLmlubmVyVGV4dCA9IGVkaXRvckpTSTE4bkRpY3Rpb25uYXJ5Lm1lc3NhZ2VzLnRvb2xzLnRleHRTaXplW3RleHRTaXplLm5hbWVdO1xuICAgICAgICAgICAgdGhpcy5ub2Rlcy5idXR0b24uYXBwZW5kQ2hpbGQoc3Bhbik7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGxldCBkcm9wZG93bkFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICBkcm9wZG93bkFycm93LmNsYXNzTGlzdC5hZGQodGhpcy5DU1MuYXJyb3dCdXR0b25Nb2RpZmllcik7XG4gICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmFwcGVuZENoaWxkKGRyb3Bkb3duQXJyb3cpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzLmJ1dHRvbjtcbiAgICB9XG5cbiAgICBhc3luYyBzdXJyb3VuZChyYW5nZTogUmFuZ2UsIGFwcGx5U3R5bGU6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICB0aGlzLnNhdmVVc2VyU2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChhcHBseVN0eWxlKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmV4ZWNDb21tYW5kU3R5bGUodGhpcy50YWcpO1xuICAgICAgICAgICAgdGhpcy5jaGVja1N0YXRlKHRoaXMuZ2V0U2VsZWN0aW9uKCkpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja1N0YXRlKHNlbGVjdGlvbikge1xuICAgICAgICBpZiAoIXRoaXMucGFyZW50RWRpdG9yKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudEVkaXRvciA9IHRoaXMuZmluZFBhcmVudEVkaXRvcigpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNCbG9ja0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIHNldEJsb2NrRm9jdXModGhpcy5wYXJlbnRFZGl0b3IpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmhhc1N0eWxlKDxIVE1MRWxlbWVudD5zZWxlY3Rpb24uYW5jaG9yTm9kZSk7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gZWxlbWVudCA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgICB0aGlzLnRleHRTaXplcy5mb3JFYWNoKCh0ZXh0U2l6ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRleHRTaXplLmNsYXNzICE9PSAnJykge1xuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50Py5jbGFzc0xpc3QuY29udGFpbnModGV4dFNpemUuY2xhc3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC5hZGQodGV4dFNpemUuY2xhc3MpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm9kZXMuYnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUodGV4dFNpemUuY2xhc3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIGlzQWN0aXZlO1xuICAgIH1cblxuICAgIHJlbmRlckFjdGlvbnMoKSB7XG4gICAgICAgIGxldCB0ZXh0U2l6ZURyb3Bkb3duID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRleHRTaXplRHJvcGRvd24uY2xhc3NOYW1lID0gdGhpcy5kcm9wZG93bkNzc1snY29udGFpbmVyJ10gKyAnIGhpZGRlbiAnICsgdGhpcy5DU1MudGV4dFNlbGVjdGlvbk1vZGlmaWVyO1xuICAgICAgICB0aGlzLnRleHRTaXplcy5mb3JFYWNoKCh0ZXh0U2l6ZSkgPT4ge1xuICAgICAgICAgICAgbGV0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgcm93LmNsYXNzTmFtZSA9IHRoaXMuZHJvcGRvd25Dc3NbJ3JvdyddO1xuICAgICAgICAgICAgcm93LmlubmVyVGV4dCA9IGVkaXRvckpTSTE4bkRpY3Rpb25uYXJ5Lm1lc3NhZ2VzLnRvb2xzLnRleHRTaXplW3RleHRTaXplLm5hbWVdO1xuICAgICAgICAgICAgcm93LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gdGhpcy5hcHBseVRleHRTdHlsZSh0ZXh0U2l6ZS5jbGFzcykpO1xuICAgICAgICAgICAgdGV4dFNpemVEcm9wZG93bi5hcHBlbmRDaGlsZChyb3cpO1xuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuY2xhc3NlcyA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMudGV4dFNpemVzLmZvckVhY2goKHRleHRTaXplKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2xhc3NlcyAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGFzc2VzICs9ICcsJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jbGFzc2VzICs9IHRleHRTaXplLmNsYXNzO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHRTaXplRHJvcGRvd247XG4gICAgfVxuXG4gICAgc2hvd0FjdGlvbnMobWFyaykge1xuICAgICAgICAvL3RoaXMuc3R5bGUuaW5wdXQgPSBtYXJrICYmIG1hcmsuc3R5bGUgJiYgbWFyay5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPyBtYXJrLnN0eWxlLmJhY2tncm91bmRDb2xvciA6ICcjZjVmMWNjJztcbiAgICB9XG5cbiAgICBoaWRlQWN0aW9ucygpIHt9XG5cbiAgICBhc3luYyBhcHBseVRleHRTdHlsZShjbGFzc1RvQXBwbHk6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNsYXNzVG9BcHBseSA9IGNsYXNzVG9BcHBseTtcbiAgICAgICAgdGhpcy5yZXNldFVzZXJTZWxlY3Rpb24oKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zdXJyb3VuZChudWxsLCB0cnVlKTtcbiAgICAgICAgdGhpcy5jaGVja1N0YXRlKHRoaXMuY3VycmVudFNlbGVjdGlvbik7XG4gICAgICAgIHRoaXMuc2F2ZVVzZXJTZWxlY3Rpb24oKTtcbiAgICAgICAgdGhpcy5oaWRlQWN0aW9ucygpO1xuICAgIH1cbn1cbiJdfQ==