slick-components 17.0.9 → 17.0.10
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.
|
@@ -26,11 +26,9 @@ export class SlickEmailerComponent {
|
|
|
26
26
|
this.spinnerStatus = null;
|
|
27
27
|
this.propagateChange = (_) => { };
|
|
28
28
|
this.uuid = SlickUtilsService.newGuid();
|
|
29
|
+
this.tinyMCEUuid = SlickUtilsService.newGuid();
|
|
29
30
|
}
|
|
30
31
|
async ngAfterViewInit() {
|
|
31
|
-
await this.initTinyMCE();
|
|
32
|
-
const body = (this.emailerModel) ? (this.emailerModel.body || '') : '';
|
|
33
|
-
tinymce.get(`emailer_tinymce_${this.tinyMCEUuid}`).setContent(body);
|
|
34
32
|
}
|
|
35
33
|
ngOnDestroy() {
|
|
36
34
|
this.removeTinyMCE();
|
|
@@ -44,13 +42,16 @@ export class SlickEmailerComponent {
|
|
|
44
42
|
this.emailerModel.attachments = [];
|
|
45
43
|
if (!this.emailerModel.toEmailAddresses)
|
|
46
44
|
this.emailerModel.toEmailAddresses = [];
|
|
45
|
+
await this.initTinyMCE();
|
|
46
|
+
const body = (this.emailerModel) ? (this.emailerModel.body || '') : '';
|
|
47
|
+
tinymce.get(`emailer_tinymce_${this.tinyMCEUuid}`).setContent(body);
|
|
47
48
|
}
|
|
48
49
|
else {
|
|
49
50
|
this.emailerModel = null;
|
|
51
|
+
if (this.tinyMCEInitialized)
|
|
52
|
+
tinymce.get(`emailer_tinymce_${this.tinyMCEUuid}`).setContent(null);
|
|
53
|
+
return;
|
|
50
54
|
}
|
|
51
|
-
await this.initTinyMCE();
|
|
52
|
-
const body = (this.emailerModel) ? (this.emailerModel.body || '') : '';
|
|
53
|
-
tinymce.get(`emailer_tinymce_${this.tinyMCEUuid}`).setContent(body);
|
|
54
55
|
}
|
|
55
56
|
// registers 'fn' that will be fired when changes are made
|
|
56
57
|
// this is how we emit the changes back to the form
|
|
@@ -146,37 +147,33 @@ export class SlickEmailerComponent {
|
|
|
146
147
|
async initTinyMCE() {
|
|
147
148
|
return new Promise(async (resolve) => {
|
|
148
149
|
await this.slickFunctionLockService.lock("SLICK_EMAILER_INIT_TINY_MCE");
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
resolve();
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
this.tinyMCEUuid = SlickUtilsService.newGuid();
|
|
150
|
+
tinymce.remove();
|
|
151
|
+
if (!this.tinyMCEInitialized) {
|
|
155
152
|
const tinyMCEContainer = this.tinyMCEContainerRef.nativeElement;
|
|
156
153
|
const tinyMCETextarea = document.createElement("textarea");
|
|
157
154
|
tinyMCETextarea.id = `emailer_tinymce_${this.tinyMCEUuid}`;
|
|
158
155
|
tinyMCETextarea.style.minHeight = "300px";
|
|
159
156
|
tinyMCETextarea.style.maxHeight = "300px";
|
|
160
157
|
tinyMCEContainer.appendChild(tinyMCETextarea);
|
|
161
|
-
tinymce.init({
|
|
162
|
-
selector: `#emailer_tinymce_${this.tinyMCEUuid}`,
|
|
163
|
-
branding: false,
|
|
164
|
-
menubar: 'edit insert format tools',
|
|
165
|
-
plugins: 'link image imagetools code',
|
|
166
|
-
toolbar: 'fontselect | fontsizeselect | styleselect | bold italic underline | indent outdent | bullist | alignleft aligncenter alignright | code | image',
|
|
167
|
-
fontsize_formats: "8px 10px 12px 14px 18px 24px 36px",
|
|
168
|
-
height: this.bodyHeight,
|
|
169
|
-
convert_urls: false,
|
|
170
|
-
setup: (ed) => {
|
|
171
|
-
ed.on('init', (args) => {
|
|
172
|
-
ed.setContent((this.emailerModel) ? (this.emailerModel.body || '') : '');
|
|
173
|
-
this.tinyMCEInitialized = true;
|
|
174
|
-
this.slickFunctionLockService.release("SLICK_EMAILER_INIT_TINY_MCE");
|
|
175
|
-
resolve();
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
158
|
}
|
|
159
|
+
tinymce.init({
|
|
160
|
+
selector: `#emailer_tinymce_${this.tinyMCEUuid}`,
|
|
161
|
+
branding: false,
|
|
162
|
+
menubar: 'edit insert format tools',
|
|
163
|
+
plugins: 'link image imagetools code',
|
|
164
|
+
toolbar: 'fontselect | fontsizeselect | styleselect | bold italic underline | indent outdent | bullist | alignleft aligncenter alignright | code | image',
|
|
165
|
+
fontsize_formats: "8px 10px 12px 14px 18px 24px 36px",
|
|
166
|
+
height: this.bodyHeight,
|
|
167
|
+
convert_urls: false,
|
|
168
|
+
setup: (ed) => {
|
|
169
|
+
ed.on('init', (args) => {
|
|
170
|
+
ed.setContent((this.emailerModel) ? (this.emailerModel.body || '') : '');
|
|
171
|
+
this.tinyMCEInitialized = true;
|
|
172
|
+
this.slickFunctionLockService.release("SLICK_EMAILER_INIT_TINY_MCE");
|
|
173
|
+
resolve();
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
});
|
|
180
177
|
});
|
|
181
178
|
}
|
|
182
179
|
async removeTinyMCE() {
|
|
@@ -232,4 +229,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
|
|
|
232
229
|
type: ViewChild,
|
|
233
230
|
args: ["tinyMCEContainerRef"]
|
|
234
231
|
}] } });
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZW1haWxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1lbWFpbGVyL3NsaWNrLWVtYWlsZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZW1haWxlci9zbGljay1lbWFpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUErQyxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHaEYsT0FBTyxFQUE2Qix3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBZ0JwRyxNQUFNLE9BQU8scUJBQXFCO0lBb0JqQyxZQUFvQix3QkFBa0QsRUFBVSxjQUFpQztRQUE3Riw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBbEIzRixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM3QixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBQ3ZCLDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25FLDBCQUFxQixHQUFxQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNFLDRCQUF1QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBS25HLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBSTdCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUdwQyxrQkFBYSxHQUFXLElB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b0JBQW9CO2dCQUNMLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDQyxVQUFVO3NCQUE5QixLQUFLO3VCQUFDLFlBQVk7Z0JBQ1Esc0JBQXNCO3NCQUFoRCxNQUFNO3VCQUFDLGlCQUFpQjtnQkFDQyxxQkFBcUI7c0JBQTlDLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUNJLHVCQUF1QjtzQkFBbEQsTUFBTTt1QkFBQyxrQkFBa0I7Z0JBRVEsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLWZ1bmN0aW9uLWxvY2suc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJU2xpY2tGaWxlTW9kZWwgfSBmcm9tIFwiLi4vc2xpY2stZmlsZS1tb2RlbC9zbGljay1maWxlLm1vZGVsXCI7XHJcbmltcG9ydCB7IElTbGlja0VtYWlsZXJNb2RlbCwgfSBmcm9tIFwiLi9zbGljay1lbWFpbGVyLm1vZGVsXCI7XHJcbmltcG9ydCB7IElTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwsIFNsaWNrRW1haWxlckFkZHJlc3NNb2RlbCB9IGZyb20gXCIuL3NsaWNrLWVtYWlsZXItYWRkcmVzcy5tb2RlbFwiO1xyXG5cclxuZGVjbGFyZSBjb25zdCB0aW55bWNlOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3NsaWNrLWVtYWlsZXInLFxyXG5cdHRlbXBsYXRlVXJsOiAnc2xpY2stZW1haWxlci5jb21wb25lbnQuaHRtbCcsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja0VtYWlsZXJDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRTbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2VcclxuXHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja0VtYWlsZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dChcInRvRW1haWxBZGRyZXNzTGlzdFwiKSB0b0VtYWlsQWRkcmVzc0xpc3Q6IElTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWxbXTtcclxuXHRASW5wdXQoXCJzaG93QnV0dG9uc1wiKSBzaG93QnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblx0QElucHV0KFwiYm9keUhlaWdodFwiKSBib2R5SGVpZ2h0OiBzdHJpbmcgPSBcIjE4MHB4XCI7XHJcblx0QE91dHB1dChcInRvQWRkcmVzc1NlYXJjaFwiKSB0b0FkZHJlc3NTZWFyY2hFbWl0dGVyOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KFwic2VuZEVtYWlsQ2xpY2tcIikgc2VuZEVtYWlsQ2xpY2tFbWl0dGVyOiBFdmVudEVtaXR0ZXI8SVNsaWNrRW1haWxlck1vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KFwiY2FuY2VsRW1haWxDbGlja1wiKSBjYW5jZWxFbWFpbENsaWNrRW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHRAVmlld0NoaWxkKFwidGlueU1DRUNvbnRhaW5lclJlZlwiKSB0aW55TUNFQ29udGFpbmVyUmVmOiBFbGVtZW50UmVmO1xyXG5cclxuXHRlbWFpbGVyTW9kZWw6IElTbGlja0VtYWlsZXJNb2RlbDtcclxuXHRpc1N1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0dGlueU1DRVV1aWQ6IHN0cmluZztcclxuXHR0aW55TUNFSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHR0b0VtYWlsQWRkcmVzczogc3RyaW5nO1xyXG5cdGVkaXRvcjogYW55O1xyXG5cdHNwaW5uZXJTdGF0dXM6IHN0cmluZyA9IG51bGw7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlOiBTbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblx0XHR0aGlzLnV1aWQgPSBTbGlja1V0aWxzU2VydmljZS5uZXdHdWlkKCk7XHJcblxyXG5cdH1cclxuXHJcblx0YXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0YXdhaXQgdGhpcy5pbml0VGlueU1DRSgpO1xyXG5cdFx0Y29uc3QgYm9keSA9ICh0aGlzLmVtYWlsZXJNb2RlbCkgPyAodGhpcy5lbWFpbGVyTW9kZWwuYm9keSB8fCAnJykgOiAnJztcclxuXHRcdHRpbnltY2UuZ2V0KGBlbWFpbGVyX3RpbnltY2VfJHt0aGlzLnRpbnlNQ0VVdWlkfWApLnNldENvbnRlbnQoYm9keSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpIHtcclxuXHRcdHRoaXMucmVtb3ZlVGlueU1DRSgpO1xyXG5cdH1cclxuXHJcblx0cHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG5cclxuXHQvLyB0aGlzIGlzIHRoZSBpbml0aWFsIHZhbHVlIHNldCB0byB0aGUgY29tcG9uZW50XHJcblx0cHVibGljIGFzeW5jIHdyaXRlVmFsdWUob2JqOiBJU2xpY2tFbWFpbGVyTW9kZWwpIHtcclxuXHRcdGlmIChvYmopIHtcclxuXHRcdFx0dGhpcy5zcGlubmVyU3RhdHVzID0gXCJyZXNldFwiO1xyXG5cdFx0XHR0aGlzLmVtYWlsZXJNb2RlbCA9IG9iajtcclxuXHJcblx0XHRcdGlmICghdGhpcy5lbWFpbGVyTW9kZWwuYXR0YWNobWVudHMpXHJcblx0XHRcdFx0dGhpcy5lbWFpbGVyTW9kZWwuYXR0YWNobWVudHMgPSBbXTtcclxuXHJcblx0XHRcdGlmICghdGhpcy5lbWFpbGVyTW9kZWwudG9FbWFpbEFkZHJlc3NlcylcclxuXHRcdFx0XHR0aGlzLmVtYWlsZXJNb2RlbC50b0VtYWlsQWRkcmVzc2VzID0gW107XHRcdFx0XHJcblx0XHR9XHJcblx0XHRlbHNlIHtcclxuXHRcdFx0dGhpcy5lbWFpbGVyTW9kZWwgPSBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGF3YWl0IHRoaXMuaW5pdFRpbnlNQ0UoKTtcclxuXHRcdGNvbnN0IGJvZHkgPSAodGhpcy5lbWFpbGVyTW9kZWwpID8gKHRoaXMuZW1haWxlck1vZGVsLmJvZHkgfHwgJycpIDogJyc7XHJcblx0XHR0aW55bWNlLmdldChgZW1haWxlcl90aW55bWNlXyR7dGhpcy50aW55TUNFVXVpZH1gKS5zZXRDb250ZW50KGJvZHkpO1xyXG5cdH1cclxuXHJcblx0Ly8gcmVnaXN0ZXJzICdmbicgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gY2hhbmdlcyBhcmUgbWFkZVxyXG5cdC8vIHRoaXMgaXMgaG93IHdlIGVtaXQgdGhlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxyXG5cdHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHQvLyBub3QgdXNlZCwgdXNlZCBmb3IgdG91Y2ggaW5wdXRcclxuXHRwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoKSB7IH1cclxuXHJcblx0dG9BZGRyZXNzU2VhcmNoKHNlYXJjaFRleHQpIHtcclxuXHRcdHRoaXMudG9BZGRyZXNzU2VhcmNoRW1pdHRlci5lbWl0KHNlYXJjaFRleHQpO1xyXG5cdH1cclxuXHJcblx0b25TZWxlY3RFbWFpbEFkZHJlc3MoZW1haWxlckFkZHJlc3NNb2RlbDogSVNsaWNrRW1haWxlckFkZHJlc3NNb2RlbCkge1xyXG5cdFx0dGhpcy5lbWFpbGVyTW9kZWwudG9FbWFpbEFkZHJlc3Nlcy5wdXNoKGVtYWlsZXJBZGRyZXNzTW9kZWwpO1xyXG5cclxuXHRcdHRoaXMudG9FbWFpbEFkZHJlc3MgPSBudWxsO1xyXG5cdH1cclxuXHJcblx0b25GcmVlZm9ybVRleHRTZWxlY3QodGV4dDogc3RyaW5nKSB7XHJcblx0XHRjb25zdCBmcmVlZm9ybUVtYWlsQWRkcmVzcyA9IG5ldyBTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwoKTtcclxuXHRcdGZyZWVmb3JtRW1haWxBZGRyZXNzLmRpc3BsYXlOYW1lID0gdGV4dDtcclxuXHRcdGZyZWVmb3JtRW1haWxBZGRyZXNzLmVtYWlsQWRkcmVzcyA9IHRleHQ7XHJcblxyXG5cdFx0dGhpcy5lbWFpbGVyTW9kZWwudG9FbWFpbEFkZHJlc3Nlcy5wdXNoKGZyZWVmb3JtRW1haWxBZGRyZXNzKTtcclxuXHRcdHRoaXMudG9FbWFpbEFkZHJlc3MgPSBudWxsO1xyXG5cdH1cclxuXHJcblx0ZGVsZXRlRW1haWxBZGRyZXNzKGlkeDogbnVtYmVyKSB7XHJcblx0XHR0aGlzLmVtYWlsZXJNb2RlbC50b0VtYWlsQWRkcmVzc2VzLnNwbGljZShpZHgsIDEpO1xyXG5cdH1cclxuXHJcblx0b25BdHRhY2htZW50c0NoYW5nZWQoYXR0YWNobWVudHM6IElTbGlja0ZpbGVNb2RlbFtdKSB7XHJcblx0XHR0aGlzLmVtYWlsZXJNb2RlbC5hdHRhY2htZW50cyA9IHRoaXMuZW1haWxlck1vZGVsLmF0dGFjaG1lbnRzLmNvbmNhdChhdHRhY2htZW50cyk7XHJcblx0fVxyXG5cclxuXHR2YWxpZGF0ZSgpIHtcclxuXHRcdHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG5cdFx0aWYgKHRoaXMuZW1haWxlck1vZGVsLnRvRW1haWxBZGRyZXNzZXMubGVuZ3RoID09PSAwKVxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cclxuXHRnZXRFbWFpbEFkZHJlc3NlcyhlbWFpbGVyTW9kZWw6IElTbGlja0VtYWlsZXJNb2RlbCk6IElTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWxbXSB7XHJcblx0XHRsZXQgc2xpY2tFbWFpbGVyQWRkcmVzc2VzID0gZW1haWxlck1vZGVsLnRvRW1haWxBZGRyZXNzZXMgfHwgW107XHJcblxyXG5cdFx0aWYgKHRoaXMudG9FbWFpbEFkZHJlc3MpIHtcclxuXHRcdFx0Y29uc3Qgc2NydWJiZWRUb0VtYWlsQWRkcmVzcyA9IHRoaXMudG9FbWFpbEFkZHJlc3MucmVwbGFjZShcIixcIiwgXCI7XCIpLnJlcGxhY2UoL1xccy9nLCBcIjtcIik7XHJcblx0XHRcdGNvbnN0IGVtYWlsQWRkcmVzc2VzVG9BZGRTdHJpbmdzID0gc2NydWJiZWRUb0VtYWlsQWRkcmVzcy5zcGxpdChcIjtcIikuZmlsdGVyKHggPT4geCAhPT0gJycpO1xyXG5cdFx0XHRjb25zdCBlbWFpbEFkZHJlc3Nlc1RvQWRkID0gZW1haWxBZGRyZXNzZXNUb0FkZFN0cmluZ3MubWFwKHggPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHNsaWNrRW1haWxlckFkZHJlc3NNb2RlbCA9IG5ldyBTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwoKTtcclxuXHRcdFx0XHRzbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwuY29udGFjdElkID0gMDtcclxuXHRcdFx0XHRzbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwuZGlzcGxheU5hbWUgPSB4O1xyXG5cdFx0XHRcdHNsaWNrRW1haWxlckFkZHJlc3NNb2RlbC5lbWFpbEFkZHJlc3MgPSB4O1xyXG5cdFx0XHRcdHJldHVybiBzbGlja0VtYWlsZXJBZGRyZXNzTW9kZWw7XHJcblx0XHRcdH0pO1xyXG5cdFx0XHRzbGlja0VtYWlsZXJBZGRyZXNzZXMgPSBzbGlja0VtYWlsZXJBZGRyZXNzZXMuY29uY2F0KGVtYWlsQWRkcmVzc2VzVG9BZGQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMudG9FbWFpbEFkZHJlc3MgPSBudWxsO1xyXG5cclxuXHRcdHJldHVybiBzbGlja0VtYWlsZXJBZGRyZXNzZXM7XHJcblx0fVxyXG5cclxuXHRhc3luYyBzZXRCb2R5KGJvZHk6IHN0cmluZykge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0YXdhaXQgdGhpcy5zbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UubG9jayhcIlNMSUNLX0VNQUlMRVJfU0VUX0JPRFlcIik7XHJcblxyXG5cdFx0XHRhd2FpdCB0aGlzLmluaXRUaW55TUNFKCk7XHJcblx0XHRcdGNvbnN0IHRpbnlNQ0UgPSB0aW55bWNlLmdldChgZW1haWxlcl90aW55bWNlXyR7dGhpcy50aW55TUNFVXVpZH1gKTtcclxuXHJcblx0XHRcdGlmICghdGlueU1DRSlcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKFwidGlueU1DRSBub3QgaW5pdGlhbGl6ZWRcIik7XHJcblxyXG5cdFx0XHR0aW55TUNFLnNldENvbnRlbnQoYm9keSk7XHJcblxyXG5cdFx0fVxyXG5cdFx0ZmluYWxseSB7XHJcblx0XHRcdHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLnJlbGVhc2UoXCJTTElDS19FTUFJTEVSX1NFVF9CT0RZXCIpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0Qm9keSgpIHtcclxuXHRcdHJldHVybiB0aW55bWNlLmdldChgZW1haWxlcl90aW55bWNlXyR7dGhpcy50aW55TUNFVXVpZH1gKS5nZXRDb250ZW50KCk7XHJcblx0fVxyXG5cclxuXHRvblNlbmRFbWFpbCgpIHtcclxuXHRcdHRoaXMuZW1haWxlck1vZGVsLnRvRW1haWxBZGRyZXNzZXMgPSB0aGlzLmdldEVtYWlsQWRkcmVzc2VzKHRoaXMuZW1haWxlck1vZGVsKTtcclxuXHJcblx0XHRpZiAodGhpcy52YWxpZGF0ZSgpID09PSBmYWxzZSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdHRoaXMuZW1haWxlck1vZGVsLmJvZHkgPSB0aGlzLmdldEJvZHkoKTtcclxuXHRcdHRoaXMuc3Bpbm5lclN0YXR1cyA9IFwic3BpblwiO1xyXG5cdFx0aWYgKHRoaXMuc2VuZEVtYWlsQ2xpY2tFbWl0dGVyKVxyXG5cdFx0XHR0aGlzLnNlbmRFbWFpbENsaWNrRW1pdHRlci5lbWl0KHRoaXMuZW1haWxlck1vZGVsKTtcclxuXHR9XHJcblxyXG5cdGVtYWlsU2VudCgpIHtcclxuXHRcdHRoaXMuc3Bpbm5lclN0YXR1cyA9IFwib2tcIjtcclxuXHR9XHJcblxyXG5cdGVtYWlsRXJyb3IoKSB7XHJcblx0XHR0aGlzLnNwaW5uZXJTdGF0dXMgPSBcImVycm9yXCI7XHJcblx0fVxyXG5cclxuXHRvbkNhbmNlbEVtYWlsKCkge1xyXG5cdFx0aWYgKHRoaXMuY2FuY2VsRW1haWxDbGlja0VtaXR0ZXIpXHJcblx0XHRcdHRoaXMuY2FuY2VsRW1haWxDbGlja0VtaXR0ZXIuZW1pdCgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZGlhbG9nSW5pdCgpIHtcclxuXHRcdHRoaXMucmVtb3ZlVGlueU1DRSgpO1xyXG5cclxuXHRcdGF3YWl0IHRoaXMuaW5pdFRpbnlNQ0UoKTtcclxuXHRcdGNvbnN0IGJvZHkgPSAodGhpcy5lbWFpbGVyTW9kZWwpID8gKHRoaXMuZW1haWxlck1vZGVsLmJvZHkgfHwgJycpIDogJyc7XHJcblx0XHR0aW55bWNlLmdldChgZW1haWxlcl90aW55bWNlXyR7dGhpcy50aW55TUNFVXVpZH1gKS5zZXRDb250ZW50KGJvZHkpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgaW5pdFRpbnlNQ0UoKTogUHJvbWlzZTx2b2lkPiB7XHJcblxyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KGFzeW5jIChyZXNvbHZlKSA9PiB7XHJcblx0XHRcdGF3YWl0IHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLmxvY2soXCJTTElDS19FTUFJTEVSX0lOSVRfVElOWV9NQ0VcIik7XHJcblxyXG5cdFx0XHRpZiAodGhpcy50aW55TUNFVXVpZCkge1xyXG5cdFx0XHRcdHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLnJlbGVhc2UoXCJTTElDS19FTUFJTEVSX0lOSVRfVElOWV9NQ0VcIik7XHJcblx0XHRcdFx0cmVzb2x2ZSgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMudGlueU1DRVV1aWQgPSBTbGlja1V0aWxzU2VydmljZS5uZXdHdWlkKCk7XHJcblxyXG5cdFx0XHRcdGNvbnN0IHRpbnlNQ0VDb250YWluZXIgPSA8SFRNTERpdkVsZW1lbnQ+dGhpcy50aW55TUNFQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblx0XHRcdFx0Y29uc3QgdGlueU1DRVRleHRhcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInRleHRhcmVhXCIpO1xyXG5cdFx0XHRcdHRpbnlNQ0VUZXh0YXJlYS5pZCA9IGBlbWFpbGVyX3RpbnltY2VfJHt0aGlzLnRpbnlNQ0VVdWlkfWA7XHJcblx0XHRcdFx0dGlueU1DRVRleHRhcmVhLnN0eWxlLm1pbkhlaWdodCA9IFwiMzAwcHhcIjtcclxuXHRcdFx0XHR0aW55TUNFVGV4dGFyZWEuc3R5bGUubWF4SGVpZ2h0ID0gXCIzMDBweFwiO1xyXG5cdFx0XHRcdHRpbnlNQ0VDb250YWluZXIuYXBwZW5kQ2hpbGQodGlueU1DRVRleHRhcmVhKTtcclxuXHJcblx0XHRcdFx0dGlueW1jZS5pbml0KHtcclxuXHRcdFx0XHRcdHNlbGVjdG9yOiBgI2VtYWlsZXJfdGlueW1jZV8ke3RoaXMudGlueU1DRVV1aWR9YCxcclxuXHRcdFx0XHRcdGJyYW5kaW5nOiBmYWxzZSxcclxuXHRcdFx0XHRcdG1lbnViYXI6ICdlZGl0IGluc2VydCBmb3JtYXQgdG9vbHMnLFxyXG5cdFx0XHRcdFx0cGx1Z2luczogJ2xpbmsgaW1hZ2UgaW1hZ2V0b29scyBjb2RlJyxcclxuXHRcdFx0XHRcdHRvb2xiYXI6ICdmb250c2VsZWN0IHwgZm9udHNpemVzZWxlY3QgfCBzdHlsZXNlbGVjdCB8IGJvbGQgaXRhbGljIHVuZGVybGluZSB8IGluZGVudCBvdXRkZW50IHwgYnVsbGlzdCB8IGFsaWdubGVmdCBhbGlnbmNlbnRlciBhbGlnbnJpZ2h0IHwgY29kZSB8IGltYWdlJyxcclxuXHRcdFx0XHRcdGZvbnRzaXplX2Zvcm1hdHM6IFwiOHB4IDEwcHggMTJweCAxNHB4IDE4cHggMjRweCAzNnB4XCIsXHJcblx0XHRcdFx0XHRoZWlnaHQ6IHRoaXMuYm9keUhlaWdodCxcclxuXHRcdFx0XHRcdGNvbnZlcnRfdXJsczogZmFsc2UsXHJcblx0XHRcdFx0XHRzZXR1cDogKGVkKSA9PiB7XHJcblx0XHRcdFx0XHRcdGVkLm9uKCdpbml0JywgKGFyZ3MpID0+IHtcclxuXHJcblx0XHRcdFx0XHRcdFx0ZWQuc2V0Q29udGVudCgodGhpcy5lbWFpbGVyTW9kZWwpID8gKHRoaXMuZW1haWxlck1vZGVsLmJvZHkgfHwgJycpIDogJycpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMudGlueU1DRUluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZS5yZWxlYXNlKFwiU0xJQ0tfRU1BSUxFUl9JTklUX1RJTllfTUNFXCIpO1xyXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoKTtcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRhc3luYyByZW1vdmVUaW55TUNFKCkge1xyXG5cdFx0aWYgKHRoaXMudGlueU1DRVV1aWQpIHtcclxuXHRcdFx0Y29uc3QgdGlueU1DRSA9IHRpbnltY2UuZ2V0KGBlbWFpbGVyX3RpbnltY2VfJHt0aGlzLnRpbnlNQ0VVdWlkfWApO1xyXG5cclxuXHRcdFx0aWYgKHRpbnlNQ0UpXHJcblx0XHRcdFx0dGlueU1DRS5yZW1vdmUoKTtcclxuXHJcblx0XHRcdGNvbnN0IHRpbnlNQ0VDb250YWluZXIgPSA8SFRNTERpdkVsZW1lbnQ+dGhpcy50aW55TUNFQ29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQ7XHJcblx0XHRcdHRpbnlNQ0VDb250YWluZXIuaW5uZXJIVE1MID0gXCJcIjtcclxuXHJcblx0XHRcdHRoaXMudGlueU1DRUluaXRpYWxpemVkID0gZmFsc2U7XHJcblxyXG5cdFx0XHR0aGlzLnRpbnlNQ0VVdWlkID0gbnVsbDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImVtYWlsZXJNb2RlbFwiIGlkPVwic2xpY2stZW1haWxlcl97e3V1aWR9fVwiIGNsYXNzPVwic2xpY2stZW1haWxlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTdWJtaXR0ZWQgPT09IHRydWUgJiYgZW1haWxlck1vZGVsLnRvRW1haWxBZGRyZXNzZXMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJlcnJvcldyYXBwZXIgc2hvd0ljb25zXCI+PGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+RW1haWwgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBlbWFpbCBhZGRyZXNzPC9kaXY+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1ncm91cC10ZXh0XCI+PHNwYW4gY2xhc3M9XCJmYXMgZmEtc2VhcmNoXCI+PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiICNlbWFpbEFkZHJlc3NBdXRvY29tcGxldGUgWyhuZ01vZGVsKV09XCJ0b0VtYWlsQWRkcmVzc1wiIHBsYWNlaG9sZGVyPVwiRW1haWwgU2VhcmNoLi4uXCIgYXV0b2ZvY3VzIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c2xpY2stYXV0by1jb21wbGV0ZSBbaW5wdXRSZWZdPVwiZW1haWxBZGRyZXNzQXV0b2NvbXBsZXRlXCIgdGV4dEZpZWxkPVwiZW1haWxEaXNwbGF5XCIgW2l0ZW1zXT1cInRvRW1haWxBZGRyZXNzTGlzdFwiIChvblJlZnJlc2gpPVwidG9BZGRyZXNzU2VhcmNoKCRldmVudClcIiAob25TZWxlY3QpPVwib25TZWxlY3RFbWFpbEFkZHJlc3MoJGV2ZW50KVwiIChvbkZyZWVmb3JtVGV4dFNlbGVjdCk9XCJvbkZyZWVmb3JtVGV4dFNlbGVjdCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWVtYWlsRGlzcGxheSBbc2xpY2tBdXRvQ29tcGxldGVMaXN0SXRlbVRlbXBsYXRlXT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSdsaW5lLWhlaWdodDogMS4xZW07IGZvbnQtc2l6ZTogMTJweDsnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2VtYWlsRGlzcGxheS5kaXNwbGF5TmFtZX19IFt7e2VtYWlsRGlzcGxheS5lbWFpbEFkZHJlc3N9fV1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvc2xpY2stYXV0by1jb21wbGV0ZT5cclxuXHJcbiAgICAgICAgICAgIDxsYWJlbD5UbzombmJzcDs8L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBlbWFpbEFkZHJlc3Mgb2YgZW1haWxlck1vZGVsLnRvRW1haWxBZGRyZXNzZXM7IGxldCBpZHggPSBpbmRleDtcIiBjbGFzcz1cInNsaWNrLWVtYWlsZXJfZW1haWwtYWRkcmVzcyBhbGVydCBhbGVydC1zZWNvbmRhcnlcIj57e2VtYWlsQWRkcmVzcy5kaXNwbGF5TmFtZX19IFt7e2VtYWlsQWRkcmVzcy5lbWFpbEFkZHJlc3N9fV08aSAoY2xpY2spPVwiZGVsZXRlRW1haWxBZGRyZXNzKGlkeClcIiBjbGFzcz1cImZhcyBmYS10aW1lcy1jaXJjbGUgYmctd2hpdGUgdGV4dC1kYW5nZXIgbXMtMVwiPjwvaT48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8bGFiZWw+U3ViamVjdDo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFsobmdNb2RlbCldPVwiZW1haWxlck1vZGVsLnN1YmplY3RcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8bGFiZWw+Qm9keTo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2ICN0aW55TUNFQ29udGFpbmVyUmVmPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgICA8bGFiZWw+QXR0YWNobWVudHM6PC9sYWJlbD5cclxuICAgICAgICAgICAgPHNsaWNrLWZpbGUtZHJvcCAoZmlsZXNDaGFuZ2VkKT1cIm9uQXR0YWNobWVudHNDaGFuZ2VkKCRldmVudClcIj48L3NsaWNrLWZpbGUtZHJvcD5cclxuICAgICAgICAgICAgPHNsaWNrLWZpbGUtbGlzdCBbKGZpbGVzKV09XCJlbWFpbGVyTW9kZWwuYXR0YWNobWVudHNcIj48L3NsaWNrLWZpbGUtbGlzdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93QnV0dG9uc1wiIGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHN0eWxlPVwid2lkdGg6IDEyMHB4OyBtYXJnaW4tcmlnaHQ6IDEwcHg7XCIgW3NsaWNrLWJ1dHRvbi1zcGlubmVyXT1cInNwaW5uZXJTdGF0dXNcIiBjbGFzcz1cImJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCIgKGNsaWNrKT1cIm9uU2VuZEVtYWlsKClcIj48aSBjbGFzcz1cImZhciBmYS1lbnZlbG9wZVwiPjwvaT4mbmJzcDtTZW5kPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHN0eWxlPVwid2lkdGg6IDEyMHB4O1wiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLWRhbmdlclwiIChjbGljayk9XCJvbkNhbmNlbEVtYWlsKClcIj48aSBjbGFzcz1cImZhciBmYS10aW1lc1wiPjwvaT4mbmJzcDtDYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2stZW1haWxlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9zbGljay1lbWFpbGVyL3NsaWNrLWVtYWlsZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvc2xpY2stZW1haWxlci9zbGljay1lbWFpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUErQyxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDdkosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHaEYsT0FBTyxFQUE2Qix3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7O0FBZ0JwRyxNQUFNLE9BQU8scUJBQXFCO0lBb0JqQyxZQUFvQix3QkFBa0QsRUFBVSxjQUFpQztRQUE3Riw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBbEIzRixnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM3QixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBQ3ZCLDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ25FLDBCQUFxQixHQUFxQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNFLDRCQUF1QixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBS25HLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBSTdCLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUdwQyxrQkFBYSxHQUFXLElBQUksQ0FBQztRQWM3QixvQkFBZSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFYakMsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBSUQsaURBQWlEO0lBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBdUI7UUFDOUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNULElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO1lBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVc7Z0JBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUVwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0I7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1lBRXpDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JFLENBQUM7YUFDSSxDQUFDO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsa0JBQWtCO2dCQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckUsT0FBTztRQUNSLENBQUM7SUFHRixDQUFDO0lBRUQsMERBQTBEO0lBQzFELG1EQUFtRDtJQUM1QyxnQkFBZ0IsQ0FBQyxFQUFPO1FBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxpQ0FBaUM7SUFDMUIsaUJBQWlCLEtBQUssQ0FBQztJQUU5QixlQUFlLENBQUMsVUFBVTtRQUN6QixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxtQkFBOEM7UUFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUU3RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBWTtRQUNoQyxNQUFNLG9CQUFvQixHQUFHLElBQUksd0JBQXdCLEVBQUUsQ0FBQztRQUM1RCxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLG9CQUFvQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsR0FBVztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELG9CQUFvQixDQUFDLFdBQThCO1FBQ2xELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsUUFBUTtRQUNQLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUNsRCxPQUFPLEtBQUssQ0FBQztRQUVkLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELGlCQUFpQixDQUFDLFlBQWdDO1FBQ2pELElBQUkscUJBQXFCLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztRQUVoRSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3pGLE1BQU0sMEJBQTBCLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMzRixNQUFNLG1CQUFtQixHQUFHLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDOUQsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUM7Z0JBQ2hFLHdCQUF3QixDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZDLHdCQUF3QixDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQ3pDLHdCQUF3QixDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sd0JBQXdCLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUM7WUFDSCxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsT0FBTyxxQkFBcUIsQ0FBQztJQUM5QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQztZQUNKLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBRW5FLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBRW5FLElBQUksQ0FBQyxPQUFPO2dCQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUUxQyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFCLENBQUM7Z0JBQ08sQ0FBQztZQUNSLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUNqRSxDQUFDO0lBQ0YsQ0FBQztJQUVELE9BQU87UUFDTixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3hFLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRS9FLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUs7WUFDNUIsT0FBTztRQUVSLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUM1QixJQUFJLElBQUksQ0FBQyxxQkFBcUI7WUFDN0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFNBQVM7UUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsVUFBVTtRQUNULElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhO1FBQ1osSUFBSSxJQUFJLENBQUMsdUJBQXVCO1lBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLFVBQVU7UUFDZixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2RSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxPQUFPLENBQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQzFDLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBRXhFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVqQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzlCLE1BQU0sZ0JBQWdCLEdBQW1CLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7Z0JBQ2hGLE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzNELGVBQWUsQ0FBQyxFQUFFLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0QsZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO2dCQUMxQyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7Z0JBQzFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMvQyxDQUFDO1lBRUQsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWixRQUFRLEVBQUUsb0JBQW9CLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hELFFBQVEsRUFBRSxLQUFLO2dCQUNmLE9BQU8sRUFBRSwwQkFBMEI7Z0JBQ25DLE9BQU8sRUFBRSw0QkFBNEI7Z0JBQ3JDLE9BQU8sRUFBRSxnSkFBZ0o7Z0JBQ3pKLGdCQUFnQixFQUFFLG1DQUFtQztnQkFDckQsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUN2QixZQUFZLEVBQUUsS0FBSztnQkFDbkIsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQ2IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFFdEIsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7d0JBQy9CLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQzt3QkFDckUsT0FBTyxFQUFFLENBQUM7b0JBQ1gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osQ0FBQzthQUNELENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhO1FBQ2xCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBRW5FLElBQUksT0FBTztnQkFDVixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFFbEIsTUFBTSxnQkFBZ0IsR0FBbUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQztZQUNoRixnQkFBZ0IsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBRWhDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFFaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDekIsQ0FBQztJQUNGLENBQUM7aUlBdk9XLHFCQUFxQjtxSEFBckIscUJBQXFCLGtTQVR0QjtZQUNWO2dCQUNDLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLEVBQUM7Z0JBQ3BELEtBQUssRUFBRSxJQUFJO2FBQ1g7WUFDRCx3QkFBd0I7U0FDeEIsc0pDckJGLDArRkFpREE7OzJGRDFCYSxxQkFBcUI7a0JBWmpDLFNBQVM7K0JBQ0MsZUFBZSxhQUVkO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLHNCQUFzQixFQUFDOzRCQUNwRCxLQUFLLEVBQUUsSUFBSTt5QkFDWDt3QkFDRCx3QkFBd0I7cUJBQ3hCOzZIQUc0QixrQkFBa0I7c0JBQTlDLEtBQUs7dUJBQUMsb0JBQW9CO2dCQUNMLFdBQVc7c0JBQWhDLEtBQUs7dUJBQUMsYUFBYTtnQkFDQyxVQUFVO3NCQUE5QixLQUFLO3VCQUFDLFlBQVk7Z0JBQ1Esc0JBQXNCO3NCQUFoRCxNQUFNO3VCQUFDLGlCQUFpQjtnQkFDQyxxQkFBcUI7c0JBQTlDLE1BQU07dUJBQUMsZ0JBQWdCO2dCQUNJLHVCQUF1QjtzQkFBbEQsTUFBTTt1QkFBQyxrQkFBa0I7Z0JBRVEsbUJBQW1CO3NCQUFwRCxTQUFTO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBTbGlja1NsZWVwU2VydmljZSB9IGZyb20gXCIuLi91dGlscy9zbGljay1zbGVlcC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNsaWNrVXRpbHNTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLXV0aWxzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlIH0gZnJvbSBcIi4uL3V0aWxzL3NsaWNrLWZ1bmN0aW9uLWxvY2suc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJU2xpY2tGaWxlTW9kZWwgfSBmcm9tIFwiLi4vc2xpY2stZmlsZS1tb2RlbC9zbGljay1maWxlLm1vZGVsXCI7XHJcbmltcG9ydCB7IElTbGlja0VtYWlsZXJNb2RlbCwgfSBmcm9tIFwiLi9zbGljay1lbWFpbGVyLm1vZGVsXCI7XHJcbmltcG9ydCB7IElTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwsIFNsaWNrRW1haWxlckFkZHJlc3NNb2RlbCB9IGZyb20gXCIuL3NsaWNrLWVtYWlsZXItYWRkcmVzcy5tb2RlbFwiO1xyXG5cclxuZGVjbGFyZSBjb25zdCB0aW55bWNlOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ3NsaWNrLWVtYWlsZXInLFxyXG5cdHRlbXBsYXRlVXJsOiAnc2xpY2stZW1haWxlci5jb21wb25lbnQuaHRtbCcsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTbGlja0VtYWlsZXJDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZSxcclxuXHRcdH0sXHJcblx0XHRTbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2VcclxuXHRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTbGlja0VtYWlsZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dChcInRvRW1haWxBZGRyZXNzTGlzdFwiKSB0b0VtYWlsQWRkcmVzc0xpc3Q6IElTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWxbXTtcclxuXHRASW5wdXQoXCJzaG93QnV0dG9uc1wiKSBzaG93QnV0dG9uczogYm9vbGVhbiA9IHRydWU7XHJcblx0QElucHV0KFwiYm9keUhlaWdodFwiKSBib2R5SGVpZ2h0OiBzdHJpbmcgPSBcIjE4MHB4XCI7XHJcblx0QE91dHB1dChcInRvQWRkcmVzc1NlYXJjaFwiKSB0b0FkZHJlc3NTZWFyY2hFbWl0dGVyOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KFwic2VuZEVtYWlsQ2xpY2tcIikgc2VuZEVtYWlsQ2xpY2tFbWl0dGVyOiBFdmVudEVtaXR0ZXI8SVNsaWNrRW1haWxlck1vZGVsPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KFwiY2FuY2VsRW1haWxDbGlja1wiKSBjYW5jZWxFbWFpbENsaWNrRW1pdHRlcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHRAVmlld0NoaWxkKFwidGlueU1DRUNvbnRhaW5lclJlZlwiKSB0aW55TUNFQ29udGFpbmVyUmVmOiBFbGVtZW50UmVmO1xyXG5cclxuXHRlbWFpbGVyTW9kZWw6IElTbGlja0VtYWlsZXJNb2RlbDtcclxuXHRpc1N1Ym1pdHRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHR1dWlkOiBzdHJpbmc7XHJcblx0dGlueU1DRVV1aWQ6IHN0cmluZztcclxuXHR0aW55TUNFSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHR0b0VtYWlsQWRkcmVzczogc3RyaW5nO1xyXG5cdGVkaXRvcjogYW55O1xyXG5cdHNwaW5uZXJTdGF0dXM6IHN0cmluZyA9IG51bGw7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlOiBTbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblx0XHR0aGlzLnV1aWQgPSBTbGlja1V0aWxzU2VydmljZS5uZXdHdWlkKCk7XHJcblx0XHR0aGlzLnRpbnlNQ0VVdWlkID0gU2xpY2tVdGlsc1NlcnZpY2UubmV3R3VpZCgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLnJlbW92ZVRpbnlNQ0UoKTtcclxuXHR9XHJcblxyXG5cdHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuXHJcblx0Ly8gdGhpcyBpcyB0aGUgaW5pdGlhbCB2YWx1ZSBzZXQgdG8gdGhlIGNvbXBvbmVudFxyXG5cdHB1YmxpYyBhc3luYyB3cml0ZVZhbHVlKG9iajogSVNsaWNrRW1haWxlck1vZGVsKSB7XHJcblx0XHRpZiAob2JqKSB7XHJcblx0XHRcdHRoaXMuc3Bpbm5lclN0YXR1cyA9IFwicmVzZXRcIjtcclxuXHRcdFx0dGhpcy5lbWFpbGVyTW9kZWwgPSBvYmo7XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMuZW1haWxlck1vZGVsLmF0dGFjaG1lbnRzKVxyXG5cdFx0XHRcdHRoaXMuZW1haWxlck1vZGVsLmF0dGFjaG1lbnRzID0gW107XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMuZW1haWxlck1vZGVsLnRvRW1haWxBZGRyZXNzZXMpXHJcblx0XHRcdFx0dGhpcy5lbWFpbGVyTW9kZWwudG9FbWFpbEFkZHJlc3NlcyA9IFtdO1xyXG5cclxuXHRcdFx0YXdhaXQgdGhpcy5pbml0VGlueU1DRSgpO1xyXG5cdFx0XHRjb25zdCBib2R5ID0gKHRoaXMuZW1haWxlck1vZGVsKSA/ICh0aGlzLmVtYWlsZXJNb2RlbC5ib2R5IHx8ICcnKSA6ICcnO1xyXG5cdFx0XHR0aW55bWNlLmdldChgZW1haWxlcl90aW55bWNlXyR7dGhpcy50aW55TUNFVXVpZH1gKS5zZXRDb250ZW50KGJvZHkpO1xyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHRoaXMuZW1haWxlck1vZGVsID0gbnVsbDtcclxuXHRcdFx0aWYgKHRoaXMudGlueU1DRUluaXRpYWxpemVkKVxyXG5cdFx0XHRcdHRpbnltY2UuZ2V0KGBlbWFpbGVyX3RpbnltY2VfJHt0aGlzLnRpbnlNQ0VVdWlkfWApLnNldENvbnRlbnQobnVsbCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblxyXG5cdH1cclxuXHJcblx0Ly8gcmVnaXN0ZXJzICdmbicgdGhhdCB3aWxsIGJlIGZpcmVkIHdoZW4gY2hhbmdlcyBhcmUgbWFkZVxyXG5cdC8vIHRoaXMgaXMgaG93IHdlIGVtaXQgdGhlIGNoYW5nZXMgYmFjayB0byB0aGUgZm9ybVxyXG5cdHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuXHRcdHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XHJcblx0fVxyXG5cclxuXHQvLyBub3QgdXNlZCwgdXNlZCBmb3IgdG91Y2ggaW5wdXRcclxuXHRwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoKSB7IH1cclxuXHJcblx0dG9BZGRyZXNzU2VhcmNoKHNlYXJjaFRleHQpIHtcclxuXHRcdHRoaXMudG9BZGRyZXNzU2VhcmNoRW1pdHRlci5lbWl0KHNlYXJjaFRleHQpO1xyXG5cdH1cclxuXHJcblx0b25TZWxlY3RFbWFpbEFkZHJlc3MoZW1haWxlckFkZHJlc3NNb2RlbDogSVNsaWNrRW1haWxlckFkZHJlc3NNb2RlbCkge1xyXG5cdFx0dGhpcy5lbWFpbGVyTW9kZWwudG9FbWFpbEFkZHJlc3Nlcy5wdXNoKGVtYWlsZXJBZGRyZXNzTW9kZWwpO1xyXG5cclxuXHRcdHRoaXMudG9FbWFpbEFkZHJlc3MgPSBudWxsO1xyXG5cdH1cclxuXHJcblx0b25GcmVlZm9ybVRleHRTZWxlY3QodGV4dDogc3RyaW5nKSB7XHJcblx0XHRjb25zdCBmcmVlZm9ybUVtYWlsQWRkcmVzcyA9IG5ldyBTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwoKTtcclxuXHRcdGZyZWVmb3JtRW1haWxBZGRyZXNzLmRpc3BsYXlOYW1lID0gdGV4dDtcclxuXHRcdGZyZWVmb3JtRW1haWxBZGRyZXNzLmVtYWlsQWRkcmVzcyA9IHRleHQ7XHJcblxyXG5cdFx0dGhpcy5lbWFpbGVyTW9kZWwudG9FbWFpbEFkZHJlc3Nlcy5wdXNoKGZyZWVmb3JtRW1haWxBZGRyZXNzKTtcclxuXHRcdHRoaXMudG9FbWFpbEFkZHJlc3MgPSBudWxsO1xyXG5cdH1cclxuXHJcblx0ZGVsZXRlRW1haWxBZGRyZXNzKGlkeDogbnVtYmVyKSB7XHJcblx0XHR0aGlzLmVtYWlsZXJNb2RlbC50b0VtYWlsQWRkcmVzc2VzLnNwbGljZShpZHgsIDEpO1xyXG5cdH1cclxuXHJcblx0b25BdHRhY2htZW50c0NoYW5nZWQoYXR0YWNobWVudHM6IElTbGlja0ZpbGVNb2RlbFtdKSB7XHJcblx0XHR0aGlzLmVtYWlsZXJNb2RlbC5hdHRhY2htZW50cyA9IHRoaXMuZW1haWxlck1vZGVsLmF0dGFjaG1lbnRzLmNvbmNhdChhdHRhY2htZW50cyk7XHJcblx0fVxyXG5cclxuXHR2YWxpZGF0ZSgpIHtcclxuXHRcdHRoaXMuaXNTdWJtaXR0ZWQgPSB0cnVlO1xyXG5cdFx0aWYgKHRoaXMuZW1haWxlck1vZGVsLnRvRW1haWxBZGRyZXNzZXMubGVuZ3RoID09PSAwKVxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cclxuXHRnZXRFbWFpbEFkZHJlc3NlcyhlbWFpbGVyTW9kZWw6IElTbGlja0VtYWlsZXJNb2RlbCk6IElTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWxbXSB7XHJcblx0XHRsZXQgc2xpY2tFbWFpbGVyQWRkcmVzc2VzID0gZW1haWxlck1vZGVsLnRvRW1haWxBZGRyZXNzZXMgfHwgW107XHJcblxyXG5cdFx0aWYgKHRoaXMudG9FbWFpbEFkZHJlc3MpIHtcclxuXHRcdFx0Y29uc3Qgc2NydWJiZWRUb0VtYWlsQWRkcmVzcyA9IHRoaXMudG9FbWFpbEFkZHJlc3MucmVwbGFjZShcIixcIiwgXCI7XCIpLnJlcGxhY2UoL1xccy9nLCBcIjtcIik7XHJcblx0XHRcdGNvbnN0IGVtYWlsQWRkcmVzc2VzVG9BZGRTdHJpbmdzID0gc2NydWJiZWRUb0VtYWlsQWRkcmVzcy5zcGxpdChcIjtcIikuZmlsdGVyKHggPT4geCAhPT0gJycpO1xyXG5cdFx0XHRjb25zdCBlbWFpbEFkZHJlc3Nlc1RvQWRkID0gZW1haWxBZGRyZXNzZXNUb0FkZFN0cmluZ3MubWFwKHggPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHNsaWNrRW1haWxlckFkZHJlc3NNb2RlbCA9IG5ldyBTbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwoKTtcclxuXHRcdFx0XHRzbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwuY29udGFjdElkID0gMDtcclxuXHRcdFx0XHRzbGlja0VtYWlsZXJBZGRyZXNzTW9kZWwuZGlzcGxheU5hbWUgPSB4O1xyXG5cdFx0XHRcdHNsaWNrRW1haWxlckFkZHJlc3NNb2RlbC5lbWFpbEFkZHJlc3MgPSB4O1xyXG5cdFx0XHRcdHJldHVybiBzbGlja0VtYWlsZXJBZGRyZXNzTW9kZWw7XHJcblx0XHRcdH0pO1xyXG5cdFx0XHRzbGlja0VtYWlsZXJBZGRyZXNzZXMgPSBzbGlja0VtYWlsZXJBZGRyZXNzZXMuY29uY2F0KGVtYWlsQWRkcmVzc2VzVG9BZGQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMudG9FbWFpbEFkZHJlc3MgPSBudWxsO1xyXG5cclxuXHRcdHJldHVybiBzbGlja0VtYWlsZXJBZGRyZXNzZXM7XHJcblx0fVxyXG5cclxuXHRhc3luYyBzZXRCb2R5KGJvZHk6IHN0cmluZykge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0YXdhaXQgdGhpcy5zbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UubG9jayhcIlNMSUNLX0VNQUlMRVJfU0VUX0JPRFlcIik7XHJcblxyXG5cdFx0XHRhd2FpdCB0aGlzLmluaXRUaW55TUNFKCk7XHJcblx0XHRcdGNvbnN0IHRpbnlNQ0UgPSB0aW55bWNlLmdldChgZW1haWxlcl90aW55bWNlXyR7dGhpcy50aW55TUNFVXVpZH1gKTtcclxuXHJcblx0XHRcdGlmICghdGlueU1DRSlcclxuXHRcdFx0XHRjb25zb2xlLmVycm9yKFwidGlueU1DRSBub3QgaW5pdGlhbGl6ZWRcIik7XHJcblxyXG5cdFx0XHR0aW55TUNFLnNldENvbnRlbnQoYm9keSk7XHJcblxyXG5cdFx0fVxyXG5cdFx0ZmluYWxseSB7XHJcblx0XHRcdHRoaXMuc2xpY2tGdW5jdGlvbkxvY2tTZXJ2aWNlLnJlbGVhc2UoXCJTTElDS19FTUFJTEVSX1NFVF9CT0RZXCIpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Z2V0Qm9keSgpIHtcclxuXHRcdHJldHVybiB0aW55bWNlLmdldChgZW1haWxlcl90aW55bWNlXyR7dGhpcy50aW55TUNFVXVpZH1gKS5nZXRDb250ZW50KCk7XHJcblx0fVxyXG5cclxuXHRvblNlbmRFbWFpbCgpIHtcclxuXHRcdHRoaXMuZW1haWxlck1vZGVsLnRvRW1haWxBZGRyZXNzZXMgPSB0aGlzLmdldEVtYWlsQWRkcmVzc2VzKHRoaXMuZW1haWxlck1vZGVsKTtcclxuXHJcblx0XHRpZiAodGhpcy52YWxpZGF0ZSgpID09PSBmYWxzZSlcclxuXHRcdFx0cmV0dXJuO1xyXG5cclxuXHRcdHRoaXMuZW1haWxlck1vZGVsLmJvZHkgPSB0aGlzLmdldEJvZHkoKTtcclxuXHRcdHRoaXMuc3Bpbm5lclN0YXR1cyA9IFwic3BpblwiO1xyXG5cdFx0aWYgKHRoaXMuc2VuZEVtYWlsQ2xpY2tFbWl0dGVyKVxyXG5cdFx0XHR0aGlzLnNlbmRFbWFpbENsaWNrRW1pdHRlci5lbWl0KHRoaXMuZW1haWxlck1vZGVsKTtcclxuXHR9XHJcblxyXG5cdGVtYWlsU2VudCgpIHtcclxuXHRcdHRoaXMuc3Bpbm5lclN0YXR1cyA9IFwib2tcIjtcclxuXHR9XHJcblxyXG5cdGVtYWlsRXJyb3IoKSB7XHJcblx0XHR0aGlzLnNwaW5uZXJTdGF0dXMgPSBcImVycm9yXCI7XHJcblx0fVxyXG5cclxuXHRvbkNhbmNlbEVtYWlsKCkge1xyXG5cdFx0aWYgKHRoaXMuY2FuY2VsRW1haWxDbGlja0VtaXR0ZXIpXHJcblx0XHRcdHRoaXMuY2FuY2VsRW1haWxDbGlja0VtaXR0ZXIuZW1pdCgpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgZGlhbG9nSW5pdCgpIHtcclxuXHRcdHRoaXMucmVtb3ZlVGlueU1DRSgpO1xyXG5cclxuXHRcdGF3YWl0IHRoaXMuaW5pdFRpbnlNQ0UoKTtcclxuXHRcdGNvbnN0IGJvZHkgPSAodGhpcy5lbWFpbGVyTW9kZWwpID8gKHRoaXMuZW1haWxlck1vZGVsLmJvZHkgfHwgJycpIDogJyc7XHJcblx0XHR0aW55bWNlLmdldChgZW1haWxlcl90aW55bWNlXyR7dGhpcy50aW55TUNFVXVpZH1gKS5zZXRDb250ZW50KGJvZHkpO1xyXG5cdH1cclxuXHJcblx0YXN5bmMgaW5pdFRpbnlNQ0UoKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oYXN5bmMgKHJlc29sdmUpID0+IHtcclxuXHRcdFx0YXdhaXQgdGhpcy5zbGlja0Z1bmN0aW9uTG9ja1NlcnZpY2UubG9jayhcIlNMSUNLX0VNQUlMRVJfSU5JVF9USU5ZX01DRVwiKTtcclxuXHJcblx0XHRcdHRpbnltY2UucmVtb3ZlKCk7XHJcblxyXG5cdFx0XHRpZiAoIXRoaXMudGlueU1DRUluaXRpYWxpemVkKSB7XHJcblx0XHRcdFx0Y29uc3QgdGlueU1DRUNvbnRhaW5lciA9IDxIVE1MRGl2RWxlbWVudD50aGlzLnRpbnlNQ0VDb250YWluZXJSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdFx0XHRjb25zdCB0aW55TUNFVGV4dGFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwidGV4dGFyZWFcIik7XHJcblx0XHRcdFx0dGlueU1DRVRleHRhcmVhLmlkID0gYGVtYWlsZXJfdGlueW1jZV8ke3RoaXMudGlueU1DRVV1aWR9YDtcclxuXHRcdFx0XHR0aW55TUNFVGV4dGFyZWEuc3R5bGUubWluSGVpZ2h0ID0gXCIzMDBweFwiO1xyXG5cdFx0XHRcdHRpbnlNQ0VUZXh0YXJlYS5zdHlsZS5tYXhIZWlnaHQgPSBcIjMwMHB4XCI7XHJcblx0XHRcdFx0dGlueU1DRUNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aW55TUNFVGV4dGFyZWEpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR0aW55bWNlLmluaXQoe1xyXG5cdFx0XHRcdHNlbGVjdG9yOiBgI2VtYWlsZXJfdGlueW1jZV8ke3RoaXMudGlueU1DRVV1aWR9YCxcclxuXHRcdFx0XHRicmFuZGluZzogZmFsc2UsXHJcblx0XHRcdFx0bWVudWJhcjogJ2VkaXQgaW5zZXJ0IGZvcm1hdCB0b29scycsXHJcblx0XHRcdFx0cGx1Z2luczogJ2xpbmsgaW1hZ2UgaW1hZ2V0b29scyBjb2RlJyxcclxuXHRcdFx0XHR0b29sYmFyOiAnZm9udHNlbGVjdCB8IGZvbnRzaXplc2VsZWN0IHwgc3R5bGVzZWxlY3QgfCBib2xkIGl0YWxpYyB1bmRlcmxpbmUgfCBpbmRlbnQgb3V0ZGVudCB8IGJ1bGxpc3QgfCBhbGlnbmxlZnQgYWxpZ25jZW50ZXIgYWxpZ25yaWdodCB8IGNvZGUgfCBpbWFnZScsXHJcblx0XHRcdFx0Zm9udHNpemVfZm9ybWF0czogXCI4cHggMTBweCAxMnB4IDE0cHggMThweCAyNHB4IDM2cHhcIixcclxuXHRcdFx0XHRoZWlnaHQ6IHRoaXMuYm9keUhlaWdodCxcclxuXHRcdFx0XHRjb252ZXJ0X3VybHM6IGZhbHNlLFxyXG5cdFx0XHRcdHNldHVwOiAoZWQpID0+IHtcclxuXHRcdFx0XHRcdGVkLm9uKCdpbml0JywgKGFyZ3MpID0+IHtcclxuXHJcblx0XHRcdFx0XHRcdGVkLnNldENvbnRlbnQoKHRoaXMuZW1haWxlck1vZGVsKSA/ICh0aGlzLmVtYWlsZXJNb2RlbC5ib2R5IHx8ICcnKSA6ICcnKTtcclxuXHRcdFx0XHRcdFx0dGhpcy50aW55TUNFSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNsaWNrRnVuY3Rpb25Mb2NrU2VydmljZS5yZWxlYXNlKFwiU0xJQ0tfRU1BSUxFUl9JTklUX1RJTllfTUNFXCIpO1xyXG5cdFx0XHRcdFx0XHRyZXNvbHZlKCk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGFzeW5jIHJlbW92ZVRpbnlNQ0UoKSB7XHJcblx0XHRpZiAodGhpcy50aW55TUNFVXVpZCkge1xyXG5cdFx0XHRjb25zdCB0aW55TUNFID0gdGlueW1jZS5nZXQoYGVtYWlsZXJfdGlueW1jZV8ke3RoaXMudGlueU1DRVV1aWR9YCk7XHJcblxyXG5cdFx0XHRpZiAodGlueU1DRSlcclxuXHRcdFx0XHR0aW55TUNFLnJlbW92ZSgpO1xyXG5cclxuXHRcdFx0Y29uc3QgdGlueU1DRUNvbnRhaW5lciA9IDxIVE1MRGl2RWxlbWVudD50aGlzLnRpbnlNQ0VDb250YWluZXJSZWYubmF0aXZlRWxlbWVudDtcclxuXHRcdFx0dGlueU1DRUNvbnRhaW5lci5pbm5lckhUTUwgPSBcIlwiO1xyXG5cclxuXHRcdFx0dGhpcy50aW55TUNFSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHJcblx0XHRcdHRoaXMudGlueU1DRVV1aWQgPSBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiZW1haWxlck1vZGVsXCIgaWQ9XCJzbGljay1lbWFpbGVyX3t7dXVpZH19XCIgY2xhc3M9XCJzbGljay1lbWFpbGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc1N1Ym1pdHRlZCA9PT0gdHJ1ZSAmJiBlbWFpbGVyTW9kZWwudG9FbWFpbEFkZHJlc3Nlcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImVycm9yV3JhcHBlciBzaG93SWNvbnNcIj48ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIj5FbWFpbCBtdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGVtYWlsIGFkZHJlc3M8L2Rpdj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHRcIj48c3BhbiBjbGFzcz1cImZhcyBmYS1zZWFyY2hcIj48L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgI2VtYWlsQWRkcmVzc0F1dG9jb21wbGV0ZSBbKG5nTW9kZWwpXT1cInRvRW1haWxBZGRyZXNzXCIgcGxhY2Vob2xkZXI9XCJFbWFpbCBTZWFyY2guLi5cIiBhdXRvZm9jdXMgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzbGljay1hdXRvLWNvbXBsZXRlIFtpbnB1dFJlZl09XCJlbWFpbEFkZHJlc3NBdXRvY29tcGxldGVcIiB0ZXh0RmllbGQ9XCJlbWFpbERpc3BsYXlcIiBbaXRlbXNdPVwidG9FbWFpbEFkZHJlc3NMaXN0XCIgKG9uUmVmcmVzaCk9XCJ0b0FkZHJlc3NTZWFyY2goJGV2ZW50KVwiIChvblNlbGVjdCk9XCJvblNlbGVjdEVtYWlsQWRkcmVzcygkZXZlbnQpXCIgKG9uRnJlZWZvcm1UZXh0U2VsZWN0KT1cIm9uRnJlZWZvcm1UZXh0U2VsZWN0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtZW1haWxEaXNwbGF5IFtzbGlja0F1dG9Db21wbGV0ZUxpc3RJdGVtVGVtcGxhdGVdPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9J2xpbmUtaGVpZ2h0OiAxLjFlbTsgZm9udC1zaXplOiAxMnB4Oyc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZW1haWxEaXNwbGF5LmRpc3BsYXlOYW1lfX0gW3t7ZW1haWxEaXNwbGF5LmVtYWlsQWRkcmVzc319XVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9zbGljay1hdXRvLWNvbXBsZXRlPlxyXG5cclxuICAgICAgICAgICAgPGxhYmVsPlRvOiZuYnNwOzwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGVtYWlsQWRkcmVzcyBvZiBlbWFpbGVyTW9kZWwudG9FbWFpbEFkZHJlc3NlczsgbGV0IGlkeCA9IGluZGV4O1wiIGNsYXNzPVwic2xpY2stZW1haWxlcl9lbWFpbC1hZGRyZXNzIGFsZXJ0IGFsZXJ0LXNlY29uZGFyeVwiPnt7ZW1haWxBZGRyZXNzLmRpc3BsYXlOYW1lfX0gW3t7ZW1haWxBZGRyZXNzLmVtYWlsQWRkcmVzc319XTxpIChjbGljayk9XCJkZWxldGVFbWFpbEFkZHJlc3MoaWR4KVwiIGNsYXNzPVwiZmFzIGZhLXRpbWVzLWNpcmNsZSBiZy13aGl0ZSB0ZXh0LWRhbmdlciBtcy0xXCI+PC9pPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbD5TdWJqZWN0OjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgWyhuZ01vZGVsKV09XCJlbWFpbGVyTW9kZWwuc3ViamVjdFwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbD5Cb2R5OjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgI3RpbnlNQ0VDb250YWluZXJSZWY+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IGZvcm0tZ3JvdXBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICAgIDxsYWJlbD5BdHRhY2htZW50czo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8c2xpY2stZmlsZS1kcm9wIChmaWxlc0NoYW5nZWQpPVwib25BdHRhY2htZW50c0NoYW5nZWQoJGV2ZW50KVwiPjwvc2xpY2stZmlsZS1kcm9wPlxyXG4gICAgICAgICAgICA8c2xpY2stZmlsZS1saXN0IFsoZmlsZXMpXT1cImVtYWlsZXJNb2RlbC5hdHRhY2htZW50c1wiPjwvc2xpY2stZmlsZS1saXN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cInNob3dCdXR0b25zXCIgY2xhc3M9XCJyb3cgZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgc3R5bGU9XCJ3aWR0aDogMTIwcHg7IG1hcmdpbi1yaWdodDogMTBweDtcIiBbc2xpY2stYnV0dG9uLXNwaW5uZXJdPVwic3Bpbm5lclN0YXR1c1wiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIiAoY2xpY2spPVwib25TZW5kRW1haWwoKVwiPjxpIGNsYXNzPVwiZmFyIGZhLWVudmVsb3BlXCI+PC9pPiZuYnNwO1NlbmQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgc3R5bGU9XCJ3aWR0aDogMTIwcHg7XCIgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGFuZ2VyXCIgKGNsaWNrKT1cIm9uQ2FuY2VsRW1haWwoKVwiPjxpIGNsYXNzPVwiZmFyIGZhLXRpbWVzXCI+PC9pPiZuYnNwO0NhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -6,7 +6,7 @@ export class SlickInitParams {
|
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
export class SlickInitService {
|
|
9
|
-
static { this.version = "17.0.
|
|
9
|
+
static { this.version = "17.0.10"; }
|
|
10
10
|
constructor() { }
|
|
11
11
|
static init(initParams) {
|
|
12
12
|
console.info(`Slick Components Version ${SlickInitService.version}`);
|
|
@@ -46,4 +46,4 @@ export class SlickInitService {
|
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SlickInitService, decorators: [{
|
|
47
47
|
type: Injectable
|
|
48
48
|
}], ctorParameters: () => [] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpY2staW5pdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvdXRpbHMvc2xpY2staW5pdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBR0MsYUFBUSxHQUFXLFNBQVMsQ0FBQztJQUc5QixDQUFDO0NBQUE7QUFHRCxNQUFNLE9BQU8sZ0JBQWdCO2FBQ3JCLFlBQU8sR0FBRyxTQUFTLEFBQVosQ0FBYTtJQUUzQixnQkFBZ0IsQ0FBQztJQUdqQixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQTJCO1FBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDckUsVUFBVSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7UUFDeEMsTUFBTyxDQUFDLHFCQUFxQixHQUFHLFVBQVUsQ0FBQztRQUVqRCxPQUFhLE1BQU8sQ0FBQyxxQkFBcUIsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVM7UUFDZixJQUFJLENBQU8sTUFBTyxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDMUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUM1QyxhQUFhLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQztZQUMxQixNQUFPLENBQUMscUJBQXFCLEdBQUcsYUFBYSxDQUFDO1FBQ3JELENBQUM7UUFFRCxPQUE4QixNQUFPLENBQUMscUJBQXFCLENBQUM7SUFDN0QsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLGVBQXVCO1FBQ3pDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUM7SUFDekQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFXO1FBQ2pCLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQWdCO1FBQ2xDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDbEQsQ0FBQztpSUE5Q1csZ0JBQWdCO3FJQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBTbGlja0luaXRQYXJhbXMge1xyXG5cdGF0dGFjaFRvOiBzdHJpbmc7XHJcblx0cGxhdGZvcm06IHN0cmluZztcclxuXHRlcnJvckxvZzogc3RyaW5nID0gXCJtaW5pbWFsXCI7XHJcblx0dmVyc2lvbjogc3RyaW5nO1xyXG5cclxufVxyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2xpY2tJbml0U2VydmljZSB7XHRcclxuXHRzdGF0aWMgdmVyc2lvbiA9IFwiMTcuMC4xMFwiO1xyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuXHJcblx0c3RhdGljIGluaXQoaW5pdFBhcmFtczogU2xpY2tJbml0UGFyYW1zKTogU2xpY2tJbml0UGFyYW1zIHtcclxuXHRcdGNvbnNvbGUuaW5mbyhgU2xpY2sgQ29tcG9uZW50cyBWZXJzaW9uICR7U2xpY2tJbml0U2VydmljZS52ZXJzaW9ufWApO1xyXG5cdFx0aW5pdFBhcmFtcy52ZXJzaW9uID0gU2xpY2tJbml0U2VydmljZS52ZXJzaW9uO1xyXG5cdFx0KDxhbnk+d2luZG93KS5zbGlja0NvbXBvbmVudHNQYXJhbXMgPSBpbml0UGFyYW1zO1xyXG5cclxuXHRcdHJldHVybiAoPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcztcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBnZXRQYXJhbXMoKTogU2xpY2tJbml0UGFyYW1zIHtcclxuXHRcdGlmICghKDxhbnk+d2luZG93KS5zbGlja0NvbXBvbmVudHNQYXJhbXMpIHtcclxuXHRcdFx0Y29uc3QgZGVmYXVsdFBhcmFtcyA9IG5ldyBTbGlja0luaXRQYXJhbXMoKTtcclxuXHRcdFx0ZGVmYXVsdFBhcmFtcy5hdHRhY2hUbyA9IFwiYm9keVwiO1xyXG5cdFx0XHQoPGFueT53aW5kb3cpLnNsaWNrQ29tcG9uZW50c1BhcmFtcyA9IGRlZmF1bHRQYXJhbXM7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIDxTbGlja0luaXRQYXJhbXM+KDxhbnk+d2luZG93KS5zbGlja0NvbXBvbmVudHNQYXJhbXM7XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgZ2V0QXR0YWNoVG8oKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBTbGlja0luaXRTZXJ2aWNlLmdldFBhcmFtcygpLmF0dGFjaFRvO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHNldEF0dGFjaFRvKGF0dGFjaFRvRWxlbWVudDogc3RyaW5nKSB7XHJcblx0XHRTbGlja0luaXRTZXJ2aWNlLmdldFBhcmFtcygpLmF0dGFjaFRvID0gYXR0YWNoVG9FbGVtZW50O1xyXG5cdH1cclxuXHJcblx0c3RhdGljIGdldFBsYXRmb3JtKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gU2xpY2tJbml0U2VydmljZS5nZXRQYXJhbXMoKS5wbGF0Zm9ybTtcclxuXHR9XHJcblxyXG5cdHN0YXRpYyBzZXRQbGF0Zm9ybShwbGF0Zm9ybTogc3RyaW5nKSB7XHJcblx0XHRTbGlja0luaXRTZXJ2aWNlLmdldFBhcmFtcygpLnBsYXRmb3JtID0gcGxhdGZvcm07XHJcblx0fVxyXG5cclxuXHRzdGF0aWMgZ2V0RXJyb3JMb2coKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBTbGlja0luaXRTZXJ2aWNlLmdldFBhcmFtcygpLmVycm9yTG9nO1xyXG5cdH1cclxuXHJcblx0c3RhdGljIHNldEVycm9yTG9nKGVycm9yTG9nOiBzdHJpbmcpIHtcclxuXHRcdFNsaWNrSW5pdFNlcnZpY2UuZ2V0UGFyYW1zKCkuZXJyb3JMb2cgPSBlcnJvckxvZztcclxuXHR9XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -22,7 +22,7 @@ class SlickInitParams {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
class SlickInitService {
|
|
25
|
-
static { this.version = "17.0.
|
|
25
|
+
static { this.version = "17.0.10"; }
|
|
26
26
|
constructor() { }
|
|
27
27
|
static init(initParams) {
|
|
28
28
|
console.info(`Slick Components Version ${SlickInitService.version}`);
|
|
@@ -4304,11 +4304,9 @@ class SlickEmailerComponent {
|
|
|
4304
4304
|
this.spinnerStatus = null;
|
|
4305
4305
|
this.propagateChange = (_) => { };
|
|
4306
4306
|
this.uuid = SlickUtilsService.newGuid();
|
|
4307
|
+
this.tinyMCEUuid = SlickUtilsService.newGuid();
|
|
4307
4308
|
}
|
|
4308
4309
|
async ngAfterViewInit() {
|
|
4309
|
-
await this.initTinyMCE();
|
|
4310
|
-
const body = (this.emailerModel) ? (this.emailerModel.body || '') : '';
|
|
4311
|
-
tinymce.get(`emailer_tinymce_${this.tinyMCEUuid}`).setContent(body);
|
|
4312
4310
|
}
|
|
4313
4311
|
ngOnDestroy() {
|
|
4314
4312
|
this.removeTinyMCE();
|
|
@@ -4322,13 +4320,16 @@ class SlickEmailerComponent {
|
|
|
4322
4320
|
this.emailerModel.attachments = [];
|
|
4323
4321
|
if (!this.emailerModel.toEmailAddresses)
|
|
4324
4322
|
this.emailerModel.toEmailAddresses = [];
|
|
4323
|
+
await this.initTinyMCE();
|
|
4324
|
+
const body = (this.emailerModel) ? (this.emailerModel.body || '') : '';
|
|
4325
|
+
tinymce.get(`emailer_tinymce_${this.tinyMCEUuid}`).setContent(body);
|
|
4325
4326
|
}
|
|
4326
4327
|
else {
|
|
4327
4328
|
this.emailerModel = null;
|
|
4329
|
+
if (this.tinyMCEInitialized)
|
|
4330
|
+
tinymce.get(`emailer_tinymce_${this.tinyMCEUuid}`).setContent(null);
|
|
4331
|
+
return;
|
|
4328
4332
|
}
|
|
4329
|
-
await this.initTinyMCE();
|
|
4330
|
-
const body = (this.emailerModel) ? (this.emailerModel.body || '') : '';
|
|
4331
|
-
tinymce.get(`emailer_tinymce_${this.tinyMCEUuid}`).setContent(body);
|
|
4332
4333
|
}
|
|
4333
4334
|
// registers 'fn' that will be fired when changes are made
|
|
4334
4335
|
// this is how we emit the changes back to the form
|
|
@@ -4424,37 +4425,33 @@ class SlickEmailerComponent {
|
|
|
4424
4425
|
async initTinyMCE() {
|
|
4425
4426
|
return new Promise(async (resolve) => {
|
|
4426
4427
|
await this.slickFunctionLockService.lock("SLICK_EMAILER_INIT_TINY_MCE");
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
resolve();
|
|
4430
|
-
}
|
|
4431
|
-
else {
|
|
4432
|
-
this.tinyMCEUuid = SlickUtilsService.newGuid();
|
|
4428
|
+
tinymce.remove();
|
|
4429
|
+
if (!this.tinyMCEInitialized) {
|
|
4433
4430
|
const tinyMCEContainer = this.tinyMCEContainerRef.nativeElement;
|
|
4434
4431
|
const tinyMCETextarea = document.createElement("textarea");
|
|
4435
4432
|
tinyMCETextarea.id = `emailer_tinymce_${this.tinyMCEUuid}`;
|
|
4436
4433
|
tinyMCETextarea.style.minHeight = "300px";
|
|
4437
4434
|
tinyMCETextarea.style.maxHeight = "300px";
|
|
4438
4435
|
tinyMCEContainer.appendChild(tinyMCETextarea);
|
|
4439
|
-
tinymce.init({
|
|
4440
|
-
selector: `#emailer_tinymce_${this.tinyMCEUuid}`,
|
|
4441
|
-
branding: false,
|
|
4442
|
-
menubar: 'edit insert format tools',
|
|
4443
|
-
plugins: 'link image imagetools code',
|
|
4444
|
-
toolbar: 'fontselect | fontsizeselect | styleselect | bold italic underline | indent outdent | bullist | alignleft aligncenter alignright | code | image',
|
|
4445
|
-
fontsize_formats: "8px 10px 12px 14px 18px 24px 36px",
|
|
4446
|
-
height: this.bodyHeight,
|
|
4447
|
-
convert_urls: false,
|
|
4448
|
-
setup: (ed) => {
|
|
4449
|
-
ed.on('init', (args) => {
|
|
4450
|
-
ed.setContent((this.emailerModel) ? (this.emailerModel.body || '') : '');
|
|
4451
|
-
this.tinyMCEInitialized = true;
|
|
4452
|
-
this.slickFunctionLockService.release("SLICK_EMAILER_INIT_TINY_MCE");
|
|
4453
|
-
resolve();
|
|
4454
|
-
});
|
|
4455
|
-
}
|
|
4456
|
-
});
|
|
4457
4436
|
}
|
|
4437
|
+
tinymce.init({
|
|
4438
|
+
selector: `#emailer_tinymce_${this.tinyMCEUuid}`,
|
|
4439
|
+
branding: false,
|
|
4440
|
+
menubar: 'edit insert format tools',
|
|
4441
|
+
plugins: 'link image imagetools code',
|
|
4442
|
+
toolbar: 'fontselect | fontsizeselect | styleselect | bold italic underline | indent outdent | bullist | alignleft aligncenter alignright | code | image',
|
|
4443
|
+
fontsize_formats: "8px 10px 12px 14px 18px 24px 36px",
|
|
4444
|
+
height: this.bodyHeight,
|
|
4445
|
+
convert_urls: false,
|
|
4446
|
+
setup: (ed) => {
|
|
4447
|
+
ed.on('init', (args) => {
|
|
4448
|
+
ed.setContent((this.emailerModel) ? (this.emailerModel.body || '') : '');
|
|
4449
|
+
this.tinyMCEInitialized = true;
|
|
4450
|
+
this.slickFunctionLockService.release("SLICK_EMAILER_INIT_TINY_MCE");
|
|
4451
|
+
resolve();
|
|
4452
|
+
});
|
|
4453
|
+
}
|
|
4454
|
+
});
|
|
4458
4455
|
});
|
|
4459
4456
|
}
|
|
4460
4457
|
async removeTinyMCE() {
|