nuxeo-development-framework 6.0.5 → 6.0.7

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 (32) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +756 -3
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +1 -3
  4. package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +2 -2
  5. package/esm2015/lib/components/ndf-signatures/emdha/dialogs/auth/emdha-auth.dialog.js +116 -0
  6. package/esm2015/lib/components/ndf-signatures/emdha/dialogs/index.js +2 -0
  7. package/esm2015/lib/components/ndf-signatures/emdha/index.js +3 -0
  8. package/esm2015/lib/components/ndf-signatures/emdha/services/emdha.service.js +133 -0
  9. package/esm2015/lib/components/ndf-signatures/emdha/services/index.js +2 -0
  10. package/esm2015/lib/components/ndf-signatures/index.js +5 -0
  11. package/esm2015/lib/components/ndf-signatures/ndf-signature-panel/ndf-signature-panel.component.js +132 -0
  12. package/esm2015/lib/components/ndf-signatures/ndf-signatures.module.js +68 -0
  13. package/esm2015/lib/components/ndf-signatures/services/index.js +2 -0
  14. package/esm2015/lib/components/ndf-signatures/services/signatures.service.js +307 -0
  15. package/esm2015/lib/shared/components/nuxeo-dialog/models/dialog-option.model.js +1 -1
  16. package/esm2015/public-api.js +2 -1
  17. package/fesm2015/nuxeo-development-framework.js +700 -6
  18. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  19. package/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.d.ts +0 -1
  20. package/lib/components/ndf-signatures/emdha/dialogs/auth/emdha-auth.dialog.d.ts +18 -0
  21. package/lib/components/ndf-signatures/emdha/dialogs/index.d.ts +1 -0
  22. package/lib/components/ndf-signatures/emdha/index.d.ts +2 -0
  23. package/lib/components/ndf-signatures/emdha/services/emdha.service.d.ts +31 -0
  24. package/lib/components/ndf-signatures/emdha/services/index.d.ts +1 -0
  25. package/lib/components/ndf-signatures/index.d.ts +4 -0
  26. package/lib/components/ndf-signatures/ndf-signature-panel/ndf-signature-panel.component.d.ts +37 -0
  27. package/lib/components/ndf-signatures/ndf-signatures.module.d.ts +17 -0
  28. package/lib/components/ndf-signatures/services/index.d.ts +1 -0
  29. package/lib/components/ndf-signatures/services/signatures.service.d.ts +53 -0
  30. package/lib/shared/components/nuxeo-dialog/models/dialog-option.model.d.ts +1 -0
  31. package/package.json +1 -1
  32. package/public-api.d.ts +1 -0
@@ -0,0 +1,307 @@
1
+ var _SignaturesService_instances, _SignaturesService_userSignatures, _SignaturesService_trackedSignatures, _SignaturesService_signAlreadyDrawed, _SignaturesService_selectedSign, _SignaturesService_createUserSignature, _SignaturesService_exctractNotRepeatedSign, _SignaturesService_findSignatureToDelete, _SignaturesService_findSignatureToUpdate, _SignaturesService_startConstructingSignOptions, _SignaturesService_getTitle, _SignaturesService_constructAndDrawSignature, _SignaturesService_checkIfHasSignatures, _SignaturesService_registerAuditLog;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { Injectable } from '@angular/core';
4
+ import { BaseService } from '../../../shared';
5
+ import { BehaviorSubject, of, throwError } from 'rxjs';
6
+ import { EmdhaAuthDialog } from '../emdha';
7
+ import { map, switchMap, take, tap } from 'rxjs/operators';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../emdha";
10
+ import * as i2 from "../../pdf-tron/pdftron/pdftron.service";
11
+ import * as i3 from "../../documents/services/documents.service";
12
+ export var SignatureType;
13
+ (function (SignatureType) {
14
+ SignatureType["Tron"] = "tron";
15
+ SignatureType["Emdha"] = "emdha";
16
+ })(SignatureType || (SignatureType = {}));
17
+ export var InsertSingPosition;
18
+ (function (InsertSingPosition) {
19
+ InsertSingPosition["CurrentPage"] = "currentPage";
20
+ InsertSingPosition["FirstPage"] = "firstPage";
21
+ InsertSingPosition["LastPage"] = "lastPage";
22
+ InsertSingPosition["FirstLastPage"] = "firstLast";
23
+ InsertSingPosition["AllPages"] = "allPages";
24
+ })(InsertSingPosition || (InsertSingPosition = {}));
25
+ export class SignaturesService extends BaseService {
26
+ constructor(injector, emdhaService, pdftronService, documentsService) {
27
+ super(injector);
28
+ this.emdhaService = emdhaService;
29
+ this.pdftronService = pdftronService;
30
+ this.documentsService = documentsService;
31
+ _SignaturesService_instances.add(this);
32
+ _SignaturesService_userSignatures.set(this, []);
33
+ _SignaturesService_trackedSignatures.set(this, []);
34
+ _SignaturesService_signAlreadyDrawed.set(this, false);
35
+ _SignaturesService_selectedSign.set(this, void 0);
36
+ this.hasSignatures$ = new BehaviorSubject(false);
37
+ this.operations = {
38
+ get: 'AC_UA_UserSignature_GetAsBase64',
39
+ create: 'AC_UA_DMS_User_Signature_Create',
40
+ delete: 'AC_UA_DMS_User_Signature_Delete',
41
+ lock: 'AC_UA_DMS_Document_Lock',
42
+ unlock: 'AC_UA_DMS_Document_Unlock',
43
+ audit: 'AC_AU_RegisterAuditLog',
44
+ createVersion: 'Document.CreateVersion'
45
+ };
46
+ }
47
+ lockDocument(mode, docId, headers = {}) {
48
+ return this.automation({
49
+ operation: this.operations.lock,
50
+ input: docId,
51
+ params: { mode },
52
+ headers
53
+ });
54
+ }
55
+ unlockDocument(docId, headers = {}) {
56
+ return this.automation({
57
+ operation: this.operations.unlock,
58
+ input: docId,
59
+ headers
60
+ });
61
+ }
62
+ getLockOwner(userId) {
63
+ return this.request(`user/${userId}`);
64
+ }
65
+ getUserSignatures(forceFetch = false) {
66
+ if (!forceFetch && __classPrivateFieldGet(this, _SignaturesService_userSignatures, "f").length > 0) {
67
+ return of(__classPrivateFieldGet(this, _SignaturesService_userSignatures, "f"));
68
+ }
69
+ else {
70
+ __classPrivateFieldSet(this, _SignaturesService_userSignatures, [], "f");
71
+ }
72
+ return this.automation({
73
+ operation: this.operations.get,
74
+ headers: { 'X-NXproperties': '*' }
75
+ }).pipe(take(1), map((data) => {
76
+ let base64sign = '';
77
+ let notRepeatedSign = __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_exctractNotRepeatedSign).call(this, data);
78
+ notRepeatedSign.map((sign, i) => {
79
+ if (sign['file:content']) {
80
+ base64sign =
81
+ 'data:' +
82
+ (sign['file:content']['mime-type'] ? sign['file:content']['mime-type'] : 'image/png') +
83
+ ';base64,' +
84
+ sign['file:content']['data'];
85
+ __classPrivateFieldGet(this, _SignaturesService_userSignatures, "f").push({
86
+ id: i,
87
+ image: base64sign,
88
+ name: sign.name || sign.title
89
+ });
90
+ }
91
+ });
92
+ return __classPrivateFieldGet(this, _SignaturesService_userSignatures, "f");
93
+ }));
94
+ }
95
+ addUserSignature(file) {
96
+ return this.documentsService.uploadBatch([file]).pipe(take(1), switchMap((batch) => __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_createUserSignature).call(this, batch).pipe(take(1))), switchMap(() => this.getUserSignatures(true)));
97
+ }
98
+ deleteUserSignature(sign) {
99
+ return this.automation({
100
+ operation: this.operations.delete,
101
+ context: {
102
+ userSignatureName: sign.name
103
+ }
104
+ }).pipe(map(() => {
105
+ __classPrivateFieldGet(this, _SignaturesService_userSignatures, "f").splice(sign.id, 1);
106
+ return __classPrivateFieldGet(this, _SignaturesService_userSignatures, "f");
107
+ }));
108
+ }
109
+ applySignToDocument(sign, insertPosition) {
110
+ __classPrivateFieldSet(this, _SignaturesService_selectedSign, sign, "f");
111
+ if (__classPrivateFieldGet(this, _SignaturesService_signAlreadyDrawed, "f")) {
112
+ this.pdftronService.instance.annotManager.deleteAnnotations(__classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f"));
113
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_startConstructingSignOptions).call(this, sign, insertPosition, false);
114
+ }
115
+ else {
116
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_startConstructingSignOptions).call(this, sign, insertPosition, true);
117
+ }
118
+ __classPrivateFieldSet(this, _SignaturesService_signAlreadyDrawed, true, "f");
119
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_checkIfHasSignatures).call(this);
120
+ }
121
+ // client should lock/unlock the document to customize header if need
122
+ saveSingFile(signatureType, document, file, extraHeaders = {}, useVersionCustomParam = true, updateDocument = true) {
123
+ // const signInfo = this.pdftronService.getSignatureAnnotaionsInfo(
124
+ // this.#trackedSignatures,
125
+ // );
126
+ if (__classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f").length <= 0) {
127
+ return throwError(() => new Error('No signature to save'));
128
+ }
129
+ if (signatureType === SignatureType.Emdha) {
130
+ const pdfYCoordinate = 792;
131
+ const x1 = __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f")[0].X;
132
+ const y1 = pdfYCoordinate -
133
+ (__classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f")[0].Y + __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f")[0].Height < pdfYCoordinate
134
+ ? __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f")[0].Y + __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f")[0].Height
135
+ : __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f")[0].Y);
136
+ const x2 = x1 + __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f")[0].Width;
137
+ const y2 = y1 + __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f")[0].Height;
138
+ const emdhaPayload = {
139
+ uid: document.uid,
140
+ pageNumber: this.pdftronService.instance.docViewer.getCurrentPage(),
141
+ pageCoordinates: `${Math.floor(x1)},${Math.floor(y1)},${Math.floor(x2)},${Math.floor(y2)}`,
142
+ signImage: __classPrivateFieldGet(this, _SignaturesService_selectedSign, "f").image
143
+ };
144
+ return this.emdhaService.start(EmdhaAuthDialog, emdhaPayload);
145
+ }
146
+ else {
147
+ return this.documentsService.uploadBatch([file], extraHeaders).pipe(take(1), switchMap((batch) => {
148
+ const props = { 'file:content': batch[0].blob };
149
+ const versionCustomParam = {
150
+ increment: 'major',
151
+ saveDocument: true
152
+ };
153
+ return this.documentsService
154
+ .createVersion(document.uid, 'minor', this.operations.createVersion, useVersionCustomParam ? versionCustomParam : null)
155
+ .pipe(take(1), switchMap(() => {
156
+ if (!updateDocument)
157
+ return of(batch);
158
+ return this.documentsService.updateDocument(Object.assign(Object.assign({}, document), { properties: props }));
159
+ }), tap(() => {
160
+ this.documentsService.reFetch.next(true);
161
+ if (this.operations.audit) {
162
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_registerAuditLog).call(this, document.uid, 'sign');
163
+ }
164
+ }), take(1));
165
+ }));
166
+ }
167
+ }
168
+ onTrackingSignature(signatures) {
169
+ console.log('onTrackingSignature', signatures);
170
+ if (signatures.action === 'delete') {
171
+ signatures.anotations.map((anot) => {
172
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_findSignatureToDelete).call(this, anot); // delete old signature with its old position
173
+ });
174
+ }
175
+ else if (signatures.action === 'modify') {
176
+ if (signatures.anotations[0]['applyMovingToAllPages']) {
177
+ __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f").map((sign) => {
178
+ sign.X = signatures.anotations[0]['X'];
179
+ sign.Y = signatures.anotations[0]['Y'];
180
+ this.pdftronService.instance.annotManager.redrawAnnotation(sign);
181
+ });
182
+ }
183
+ else {
184
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_findSignatureToUpdate).call(this, signatures.anotations[0]); // delete old signature with its old position
185
+ __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f").push(signatures.anotations[0]); // add new signature with its new position
186
+ }
187
+ }
188
+ else if (signatures.action === 'add') {
189
+ __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f").push(signatures.anotations[0]);
190
+ }
191
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_checkIfHasSignatures).call(this);
192
+ }
193
+ reset() {
194
+ __classPrivateFieldSet(this, _SignaturesService_trackedSignatures, [], "f");
195
+ __classPrivateFieldSet(this, _SignaturesService_signAlreadyDrawed, false, "f");
196
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_checkIfHasSignatures).call(this);
197
+ }
198
+ setCustomToken(token) {
199
+ this.emdhaService.customToken = token;
200
+ }
201
+ }
202
+ _SignaturesService_userSignatures = new WeakMap(), _SignaturesService_trackedSignatures = new WeakMap(), _SignaturesService_signAlreadyDrawed = new WeakMap(), _SignaturesService_selectedSign = new WeakMap(), _SignaturesService_instances = new WeakSet(), _SignaturesService_createUserSignature = function _SignaturesService_createUserSignature(batch) {
203
+ return this.customAutomation({
204
+ operation: this.operations.create,
205
+ context: {
206
+ signature: {
207
+ 'file:content': {
208
+ 'upload-batch': batch[0]['blob']['upload-batch'],
209
+ 'upload-fileId': batch[0]['blob']['upload-fileId']
210
+ }
211
+ }
212
+ }
213
+ });
214
+ }, _SignaturesService_exctractNotRepeatedSign = function _SignaturesService_exctractNotRepeatedSign(newSignatures) {
215
+ let notRepeated = newSignatures.filter((sign) => !__classPrivateFieldGet(this, _SignaturesService_userSignatures, "f").some((s) => s.name === sign.title));
216
+ return notRepeated;
217
+ }, _SignaturesService_findSignatureToDelete = function _SignaturesService_findSignatureToDelete(signature) {
218
+ __classPrivateFieldSet(this, _SignaturesService_trackedSignatures, __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f").filter((sign) => {
219
+ return (sign.PageNumber !== signature.PageNumber ||
220
+ sign.ImageData !== signature.ImageData ||
221
+ (sign.X !== signature.X && sign.Y !== signature.Y));
222
+ }), "f");
223
+ }, _SignaturesService_findSignatureToUpdate = function _SignaturesService_findSignatureToUpdate(signature) {
224
+ __classPrivateFieldSet(this, _SignaturesService_trackedSignatures, __classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f").filter((sign) => {
225
+ return sign.PageNumber !== signature.PageNumber || sign.ImageData !== signature.ImageData;
226
+ }), "f");
227
+ }, _SignaturesService_startConstructingSignOptions = function _SignaturesService_startConstructingSignOptions(sign, insertPosition, addMoveButton) {
228
+ this.pdftronService.instance.annotManager.setReadOnly(false);
229
+ if (addMoveButton) {
230
+ this.pdftronService.instance.annotationPopup.add({
231
+ type: 'actionButton',
232
+ img: '<svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" fill="currentColor" class="bi bi-arrows-move" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M7.646.146a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1-.708.708L8.5 1.707V5.5a.5.5 0 0 1-1 0V1.707L6.354 2.854a.5.5 0 1 1-.708-.708zM8 10a.5.5 0 0 1 .5.5v3.793l1.146-1.147a.5.5 0 0 1 .708.708l-2 2a.5.5 0 0 1-.708 0l-2-2a.5.5 0 0 1 .708-.708L7.5 14.293V10.5A.5.5 0 0 1 8 10M.146 8.354a.5.5 0 0 1 0-.708l2-2a.5.5 0 1 1 .708.708L1.707 7.5H5.5a.5.5 0 0 1 0 1H1.707l1.147 1.146a.5.5 0 0 1-.708.708zM10 8a.5.5 0 0 1 .5-.5h3.793l-1.147-1.146a.5.5 0 0 1 .708-.708l2 2a.5.5 0 0 1 0 .708l-2 2a.5.5 0 0 1-.708-.708L14.293 8.5H10.5A.5.5 0 0 1 10 8"/></svg>',
233
+ title: this.translateService.instant('viewer.Sync movement with all pages'),
234
+ onClick: () => {
235
+ let selectAnot = this.pdftronService.instance.annotManager.getSelectedAnnotations();
236
+ selectAnot[0]['applyMovingToAllPages'] = selectAnot[0]['applyMovingToAllPages'] ? false : true;
237
+ this.pdftronService.instance.annotManager.setNoteContents(selectAnot[0], __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_getTitle).call(this, selectAnot[0]));
238
+ console.log(selectAnot);
239
+ }
240
+ });
241
+ this.pdftronService.instance.disableElements([
242
+ 'toolbarGroup-Shapes',
243
+ 'toolbarGroup-Edit',
244
+ 'toolbarGroup-Insert',
245
+ 'toolbarGroup-Annotate',
246
+ 'linkButton',
247
+ 'annotationStyleEditButton',
248
+ 'annotationCommentButton'
249
+ ]);
250
+ }
251
+ let pageCount = this.pdftronService.instance.docViewer.getPageCount();
252
+ if (pageCount === 1 ||
253
+ (pageCount > 1 && insertPosition === InsertSingPosition.FirstPage) ||
254
+ (pageCount > 1 && insertPosition === InsertSingPosition.LastPage)) {
255
+ let page = pageCount > 1 && insertPosition === InsertSingPosition.LastPage ? pageCount : 1;
256
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_constructAndDrawSignature).call(this, page, sign.image);
257
+ }
258
+ else if (insertPosition === InsertSingPosition.FirstLastPage) {
259
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_constructAndDrawSignature).call(this, 1, sign.image);
260
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_constructAndDrawSignature).call(this, pageCount, sign.image);
261
+ }
262
+ else if (insertPosition === InsertSingPosition.CurrentPage) {
263
+ const currentPage = this.pdftronService.instance.docViewer.getCurrentPage();
264
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_constructAndDrawSignature).call(this, currentPage, sign.image);
265
+ }
266
+ else if (insertPosition === InsertSingPosition.AllPages) {
267
+ for (let pageNum = 1; pageNum < pageCount + 1; pageNum++) {
268
+ __classPrivateFieldGet(this, _SignaturesService_instances, "m", _SignaturesService_constructAndDrawSignature).call(this, pageNum, sign.image);
269
+ }
270
+ }
271
+ }, _SignaturesService_getTitle = function _SignaturesService_getTitle(selectAnot) {
272
+ if (selectAnot && selectAnot['applyMovingToAllPages']) {
273
+ return this.translateService.instant('viewer.Motion is synchronized with all pages');
274
+ }
275
+ else {
276
+ return this.translateService.instant('viewer.Motion is not synchronized with all pages');
277
+ }
278
+ }, _SignaturesService_constructAndDrawSignature = function _SignaturesService_constructAndDrawSignature(page, signImg) {
279
+ const signatureAnnot = new this.pdftronService.instance.Annotations.StampAnnotation();
280
+ signatureAnnot.PageNumber = page;
281
+ let pageHeight = this.pdftronService.instance.docViewer.getPageHeight(page);
282
+ let pageWidth = this.pdftronService.instance.docViewer.getPageWidth(page);
283
+ signatureAnnot.X = pageWidth - 180;
284
+ signatureAnnot.Y = pageHeight - 110;
285
+ signatureAnnot.Width = 140;
286
+ signatureAnnot.Height = 60;
287
+ const keepAsSVG = false;
288
+ signatureAnnot.setImageData(signImg, keepAsSVG);
289
+ signatureAnnot.Author = this.pdftronService.instance.annotManager.getCurrentUser();
290
+ this.pdftronService.instance.annotManager.addAnnotation(signatureAnnot);
291
+ this.pdftronService.instance.annotManager.redrawAnnotation(signatureAnnot);
292
+ }, _SignaturesService_checkIfHasSignatures = function _SignaturesService_checkIfHasSignatures() {
293
+ this.hasSignatures$.next(__classPrivateFieldGet(this, _SignaturesService_trackedSignatures, "f").length > 0);
294
+ }, _SignaturesService_registerAuditLog = function _SignaturesService_registerAuditLog(docId, eventType) {
295
+ return this.customAutomation({
296
+ operation: this.operations.audit,
297
+ input: docId,
298
+ params: { event: eventType }
299
+ });
300
+ };
301
+ SignaturesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SignaturesService, deps: [{ token: i0.Injector }, { token: i1.EmdhaService }, { token: i2.PdftronService }, { token: i3.DocumentsService }], target: i0.ɵɵFactoryTarget.Injectable });
302
+ SignaturesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SignaturesService, providedIn: 'root' });
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SignaturesService, decorators: [{
304
+ type: Injectable,
305
+ args: [{ providedIn: 'root' }]
306
+ }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.EmdhaService }, { type: i2.PdftronService }, { type: i3.DocumentsService }]; } });
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtc2lnbmF0dXJlcy9zZXJ2aWNlcy9zaWduYXR1cmVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQVUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkUsT0FBTyxFQUFFLGVBQWUsRUFBOEIsTUFBTSxVQUFVLENBQUM7QUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU8zRCxNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3hCLDhCQUFhLENBQUE7SUFDYixnQ0FBZSxDQUFBO0FBQ2hCLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQUNELE1BQU0sQ0FBTixJQUFZLGtCQU1YO0FBTkQsV0FBWSxrQkFBa0I7SUFDN0IsaURBQTJCLENBQUE7SUFDM0IsNkNBQXVCLENBQUE7SUFDdkIsMkNBQXFCLENBQUE7SUFDckIsaURBQTJCLENBQUE7SUFDM0IsMkNBQXFCLENBQUE7QUFDdEIsQ0FBQyxFQU5XLGtCQUFrQixLQUFsQixrQkFBa0IsUUFNN0I7QUFHRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQWlCakQsWUFBWSxRQUFrQixFQUNyQixZQUEwQixFQUMxQixjQUE4QixFQUM5QixnQkFBa0M7UUFFMUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBSlIsaUJBQVks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QUMsVUFBVSxDQUFDLEtBQUs7UUFDaEMsS0FBSyxFQUFFLEtBQUs7UUFDWixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0tBQzVCLENBQUMsQ0FBQztBQUNKLENBQUM7K0dBNVRXLGlCQUFpQjttSEFBakIsaUJBQWlCLGNBREosTUFBTTs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQnO1xyXG5pbXBvcnQgeyBQZGZ0cm9uU2VydmljZSB9IGZyb20gJy4uLy4uL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEb2N1bWVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZG9jdW1lbnRzL3NlcnZpY2VzL2RvY3VtZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW1kaGFBdXRoRGlhbG9nLCBFbWRoYVBheWxvYWQsIEVtZGhhU2VydmljZSB9IGZyb20gJy4uL2VtZGhhJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlclNpZ25hdHVyZSB7XHJcblx0aWQ6IG51bWJlcjtcclxuXHRuYW1lOiBzdHJpbmc7XHJcblx0aW1hZ2U6IHN0cmluZztcclxufVxyXG5leHBvcnQgZW51bSBTaWduYXR1cmVUeXBlIHtcclxuXHRUcm9uID0gJ3Ryb24nLFxyXG5cdEVtZGhhID0gJ2VtZGhhJ1xyXG59XHJcbmV4cG9ydCBlbnVtIEluc2VydFNpbmdQb3NpdGlvbiB7XHJcblx0Q3VycmVudFBhZ2UgPSAnY3VycmVudFBhZ2UnLFxyXG5cdEZpcnN0UGFnZSA9ICdmaXJzdFBhZ2UnLFxyXG5cdExhc3RQYWdlID0gJ2xhc3RQYWdlJyxcclxuXHRGaXJzdExhc3RQYWdlID0gJ2ZpcnN0TGFzdCcsXHJcblx0QWxsUGFnZXMgPSAnYWxsUGFnZXMnXHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBTaWduYXR1cmVzU2VydmljZSBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcclxuXHQjdXNlclNpZ25hdHVyZXM6IFVzZXJTaWduYXR1cmVbXSA9IFtdO1xyXG5cdCN0cmFja2VkU2lnbmF0dXJlcyA9IFtdO1xyXG5cdCNzaWduQWxyZWFkeURyYXdlZCA9IGZhbHNlO1xyXG5cdCNzZWxlY3RlZFNpZ246IFVzZXJTaWduYXR1cmU7XHJcblx0aGFzU2lnbmF0dXJlcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcblx0b3BlcmF0aW9ucyA9IHtcclxuXHRcdGdldDogJ0FDX1VBX1VzZXJTaWduYXR1cmVfR2V0QXNCYXNlNjQnLFxyXG5cdFx0Y3JlYXRlOiAnQUNfVUFfRE1TX1VzZXJfU2lnbmF0dXJlX0NyZWF0ZScsXHJcblx0XHRkZWxldGU6ICdBQ19VQV9ETVNfVXNlcl9TaWduYXR1cmVfRGVsZXRlJyxcclxuXHRcdGxvY2s6ICdBQ19VQV9ETVNfRG9jdW1lbnRfTG9jaycsXHJcblx0XHR1bmxvY2s6ICdBQ19VQV9ETVNfRG9jdW1lbnRfVW5sb2NrJyxcclxuXHRcdGF1ZGl0OiAnQUNfQVVfUmVnaXN0ZXJBdWRpdExvZycsXHJcblx0XHRjcmVhdGVWZXJzaW9uOiAnRG9jdW1lbnQuQ3JlYXRlVmVyc2lvbidcclxuXHR9O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsXHJcblx0XHRwcml2YXRlIGVtZGhhU2VydmljZTogRW1kaGFTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBwZGZ0cm9uU2VydmljZTogUGRmdHJvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIGRvY3VtZW50c1NlcnZpY2U6IERvY3VtZW50c1NlcnZpY2UsXHJcblx0KSB7XHJcblx0XHRzdXBlcihpbmplY3Rvcik7XHJcblx0fVxyXG5cclxuXHRsb2NrRG9jdW1lbnQobW9kZTogc3RyaW5nLCBkb2NJZDogc3RyaW5nLCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30pIHtcclxuXHRcdHJldHVybiB0aGlzLmF1dG9tYXRpb24oe1xyXG5cdFx0XHRvcGVyYXRpb246IHRoaXMub3BlcmF0aW9ucy5sb2NrLFxyXG5cdFx0XHRpbnB1dDogZG9jSWQsXHJcblx0XHRcdHBhcmFtczogeyBtb2RlIH0sXHJcblx0XHRcdGhlYWRlcnNcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0dW5sb2NrRG9jdW1lbnQoZG9jSWQ6IHN0cmluZywgaGVhZGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9KSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hdXRvbWF0aW9uKHtcclxuXHRcdFx0b3BlcmF0aW9uOiB0aGlzLm9wZXJhdGlvbnMudW5sb2NrLFxyXG5cdFx0XHRpbnB1dDogZG9jSWQsXHJcblx0XHRcdGhlYWRlcnNcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Z2V0TG9ja093bmVyKHVzZXJJZCkge1xyXG5cdFx0cmV0dXJuIHRoaXMucmVxdWVzdChgdXNlci8ke3VzZXJJZH1gKTtcclxuXHR9XHJcblx0Z2V0VXNlclNpZ25hdHVyZXMoZm9yY2VGZXRjaDogYm9vbGVhbiA9IGZhbHNlKTogT2JzZXJ2YWJsZTxVc2VyU2lnbmF0dXJlW10+IHtcclxuXHRcdGlmICghZm9yY2VGZXRjaCAmJiB0aGlzLiN1c2VyU2lnbmF0dXJlcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHJldHVybiBvZih0aGlzLiN1c2VyU2lnbmF0dXJlcyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLiN1c2VyU2lnbmF0dXJlcyA9IFtdO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMuYXV0b21hdGlvbih7XHJcblx0XHRcdG9wZXJhdGlvbjogdGhpcy5vcGVyYXRpb25zLmdldCxcclxuXHRcdFx0aGVhZGVyczogeyAnWC1OWHByb3BlcnRpZXMnOiAnKicgfVxyXG5cdFx0fSkucGlwZShcclxuXHRcdFx0dGFrZSgxKSxcclxuXHRcdFx0bWFwKChkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10pID0+IHtcclxuXHRcdFx0XHRsZXQgYmFzZTY0c2lnbiA9ICcnO1xyXG5cdFx0XHRcdGxldCBub3RSZXBlYXRlZFNpZ24gPSB0aGlzLiNleGN0cmFjdE5vdFJlcGVhdGVkU2lnbihkYXRhKTtcclxuXHRcdFx0XHRub3RSZXBlYXRlZFNpZ24ubWFwKChzaWduLCBpKSA9PiB7XHJcblx0XHRcdFx0XHRpZiAoc2lnblsnZmlsZTpjb250ZW50J10pIHtcclxuXHRcdFx0XHRcdFx0YmFzZTY0c2lnbiA9XHJcblx0XHRcdFx0XHRcdFx0J2RhdGE6JyArXHJcblx0XHRcdFx0XHRcdFx0KHNpZ25bJ2ZpbGU6Y29udGVudCddWydtaW1lLXR5cGUnXSA/IHNpZ25bJ2ZpbGU6Y29udGVudCddWydtaW1lLXR5cGUnXSA6ICdpbWFnZS9wbmcnKSArXHJcblx0XHRcdFx0XHRcdFx0JztiYXNlNjQsJyArXHJcblx0XHRcdFx0XHRcdFx0c2lnblsnZmlsZTpjb250ZW50J11bJ2RhdGEnXTtcclxuXHJcblx0XHRcdFx0XHRcdHRoaXMuI3VzZXJTaWduYXR1cmVzLnB1c2goe1xyXG5cdFx0XHRcdFx0XHRcdGlkOiBpLFxyXG5cdFx0XHRcdFx0XHRcdGltYWdlOiBiYXNlNjRzaWduLFxyXG5cdFx0XHRcdFx0XHRcdG5hbWU6IHNpZ24ubmFtZSB8fCBzaWduLnRpdGxlXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLiN1c2VyU2lnbmF0dXJlcztcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblx0fVxyXG5cdGFkZFVzZXJTaWduYXR1cmUoZmlsZTogRmlsZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuZG9jdW1lbnRzU2VydmljZS51cGxvYWRCYXRjaChbZmlsZV0pLnBpcGUoXHJcblx0XHRcdHRha2UoMSksXHJcblx0XHRcdHN3aXRjaE1hcCgoYmF0Y2gpID0+IHRoaXMuI2NyZWF0ZVVzZXJTaWduYXR1cmUoYmF0Y2gpLnBpcGUodGFrZSgxKSkpLFxyXG5cdFx0XHRzd2l0Y2hNYXAoKCkgPT4gdGhpcy5nZXRVc2VyU2lnbmF0dXJlcyh0cnVlKSlcclxuXHRcdCk7XHJcblx0fVxyXG5cdGRlbGV0ZVVzZXJTaWduYXR1cmUoc2lnbjogVXNlclNpZ25hdHVyZSkge1xyXG5cdFx0cmV0dXJuIHRoaXMuYXV0b21hdGlvbih7XHJcblx0XHRcdG9wZXJhdGlvbjogdGhpcy5vcGVyYXRpb25zLmRlbGV0ZSxcclxuXHRcdFx0Y29udGV4dDoge1xyXG5cdFx0XHRcdHVzZXJTaWduYXR1cmVOYW1lOiBzaWduLm5hbWVcclxuXHRcdFx0fVxyXG5cdFx0fSkucGlwZShcclxuXHRcdFx0bWFwKCgpID0+IHtcclxuXHRcdFx0XHR0aGlzLiN1c2VyU2lnbmF0dXJlcy5zcGxpY2Uoc2lnbi5pZCwgMSk7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuI3VzZXJTaWduYXR1cmVzO1xyXG5cdFx0XHR9KVxyXG5cdFx0KTtcclxuXHR9XHJcblx0YXBwbHlTaWduVG9Eb2N1bWVudChzaWduOiBVc2VyU2lnbmF0dXJlLCBpbnNlcnRQb3NpdGlvbjogSW5zZXJ0U2luZ1Bvc2l0aW9uKSB7XHJcblx0XHR0aGlzLiNzZWxlY3RlZFNpZ24gPSBzaWduO1xyXG5cdFx0aWYgKHRoaXMuI3NpZ25BbHJlYWR5RHJhd2VkKSB7XHJcblx0XHRcdHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmRlbGV0ZUFubm90YXRpb25zKHRoaXMuI3RyYWNrZWRTaWduYXR1cmVzKTtcclxuXHRcdFx0dGhpcy4jc3RhcnRDb25zdHJ1Y3RpbmdTaWduT3B0aW9ucyhzaWduLCBpbnNlcnRQb3NpdGlvbiwgZmFsc2UpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy4jc3RhcnRDb25zdHJ1Y3RpbmdTaWduT3B0aW9ucyhzaWduLCBpbnNlcnRQb3NpdGlvbiwgdHJ1ZSk7XHJcblx0XHR9XHJcblx0XHR0aGlzLiNzaWduQWxyZWFkeURyYXdlZCA9IHRydWU7XHJcblx0XHR0aGlzLiNjaGVja0lmSGFzU2lnbmF0dXJlcygpO1xyXG5cdH1cclxuXHJcblx0Ly8gY2xpZW50IHNob3VsZCBsb2NrL3VubG9jayB0aGUgZG9jdW1lbnQgdG8gY3VzdG9taXplIGhlYWRlciBpZiBuZWVkXHJcblx0c2F2ZVNpbmdGaWxlKHNpZ25hdHVyZVR5cGU6IFNpZ25hdHVyZVR5cGUsXHJcblx0XHRkb2N1bWVudDogUmVjb3JkPHN0cmluZywgYW55PixcclxuXHRcdGZpbGU6IEZpbGUsXHJcblx0XHRleHRyYUhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcclxuXHRcdHVzZVZlcnNpb25DdXN0b21QYXJhbSA9IHRydWUsXHJcblx0XHR1cGRhdGVEb2N1bWVudCA9IHRydWUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0Ly8gY29uc3Qgc2lnbkluZm8gPSB0aGlzLnBkZnRyb25TZXJ2aWNlLmdldFNpZ25hdHVyZUFubm90YWlvbnNJbmZvKFxyXG5cdFx0Ly8gICB0aGlzLiN0cmFja2VkU2lnbmF0dXJlcyxcclxuXHRcdC8vICk7XHJcblx0XHRpZiAodGhpcy4jdHJhY2tlZFNpZ25hdHVyZXMubGVuZ3RoIDw9IDApIHtcclxuXHRcdFx0cmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdObyBzaWduYXR1cmUgdG8gc2F2ZScpKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoc2lnbmF0dXJlVHlwZSA9PT0gU2lnbmF0dXJlVHlwZS5FbWRoYSkge1xyXG5cdFx0XHRjb25zdCBwZGZZQ29vcmRpbmF0ZSA9IDc5MjtcclxuXHRcdFx0Y29uc3QgeDEgPSB0aGlzLiN0cmFja2VkU2lnbmF0dXJlc1swXS5YO1xyXG5cdFx0XHRjb25zdCB5MSA9XHJcblx0XHRcdFx0cGRmWUNvb3JkaW5hdGUgLVxyXG5cdFx0XHRcdCh0aGlzLiN0cmFja2VkU2lnbmF0dXJlc1swXS5ZICsgdGhpcy4jdHJhY2tlZFNpZ25hdHVyZXNbMF0uSGVpZ2h0IDwgcGRmWUNvb3JkaW5hdGVcclxuXHRcdFx0XHRcdD8gdGhpcy4jdHJhY2tlZFNpZ25hdHVyZXNbMF0uWSArIHRoaXMuI3RyYWNrZWRTaWduYXR1cmVzWzBdLkhlaWdodFxyXG5cdFx0XHRcdFx0OiB0aGlzLiN0cmFja2VkU2lnbmF0dXJlc1swXS5ZKTtcclxuXHRcdFx0Y29uc3QgeDIgPSB4MSArIHRoaXMuI3RyYWNrZWRTaWduYXR1cmVzWzBdLldpZHRoO1xyXG5cdFx0XHRjb25zdCB5MiA9IHkxICsgdGhpcy4jdHJhY2tlZFNpZ25hdHVyZXNbMF0uSGVpZ2h0O1xyXG5cclxuXHRcdFx0Y29uc3QgZW1kaGFQYXlsb2FkOiBFbWRoYVBheWxvYWQgPSB7XHJcblx0XHRcdFx0dWlkOiBkb2N1bWVudC51aWQsXHJcblx0XHRcdFx0cGFnZU51bWJlcjogdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0Q3VycmVudFBhZ2UoKSxcclxuXHRcdFx0XHRwYWdlQ29vcmRpbmF0ZXM6IGAke01hdGguZmxvb3IoeDEpfSwke01hdGguZmxvb3IoeTEpfSwke01hdGguZmxvb3IoeDIpfSwke01hdGguZmxvb3IoeTIpfWAsXHJcblx0XHRcdFx0c2lnbkltYWdlOiB0aGlzLiNzZWxlY3RlZFNpZ24uaW1hZ2VcclxuXHRcdFx0fTtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZW1kaGFTZXJ2aWNlLnN0YXJ0KEVtZGhhQXV0aERpYWxvZywgZW1kaGFQYXlsb2FkKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmRvY3VtZW50c1NlcnZpY2UudXBsb2FkQmF0Y2goW2ZpbGVdLCBleHRyYUhlYWRlcnMpLnBpcGUoXHJcblx0XHRcdFx0dGFrZSgxKSxcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKGJhdGNoKSA9PiB7XHJcblx0XHRcdFx0XHRjb25zdCBwcm9wcyA9IHsgJ2ZpbGU6Y29udGVudCc6IGJhdGNoWzBdLmJsb2IgfTtcclxuXHRcdFx0XHRcdGNvbnN0IHZlcnNpb25DdXN0b21QYXJhbSA9IHtcclxuXHRcdFx0XHRcdFx0aW5jcmVtZW50OiAnbWFqb3InLFxyXG5cdFx0XHRcdFx0XHRzYXZlRG9jdW1lbnQ6IHRydWVcclxuXHRcdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuZG9jdW1lbnRzU2VydmljZVxyXG5cdFx0XHRcdFx0XHQuY3JlYXRlVmVyc2lvbihkb2N1bWVudC51aWQsICdtaW5vcicsIHRoaXMub3BlcmF0aW9ucy5jcmVhdGVWZXJzaW9uLCB1c2VWZXJzaW9uQ3VzdG9tUGFyYW0gPyB2ZXJzaW9uQ3VzdG9tUGFyYW0gOiBudWxsKVxyXG5cdFx0XHRcdFx0XHQucGlwZShcclxuXHRcdFx0XHRcdFx0XHR0YWtlKDEpLFxyXG5cdFx0XHRcdFx0XHRcdHN3aXRjaE1hcCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoIXVwZGF0ZURvY3VtZW50KSByZXR1cm4gb2YoYmF0Y2gpXHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5kb2N1bWVudHNTZXJ2aWNlLnVwZGF0ZURvY3VtZW50KHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Li4uZG9jdW1lbnQsXHJcblx0XHRcdFx0XHRcdFx0XHRcdHByb3BlcnRpZXM6IHByb3BzXHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0XHRcdHRhcCgoKSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLmRvY3VtZW50c1NlcnZpY2UucmVGZXRjaC5uZXh0KHRydWUpO1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRoaXMub3BlcmF0aW9ucy5hdWRpdCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGlzLiNyZWdpc3RlckF1ZGl0TG9nKGRvY3VtZW50LnVpZCwgJ3NpZ24nKTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdFx0XHR0YWtlKDEpXHJcblx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uVHJhY2tpbmdTaWduYXR1cmUoc2lnbmF0dXJlczogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0Y29uc29sZS5sb2coJ29uVHJhY2tpbmdTaWduYXR1cmUnLCBzaWduYXR1cmVzKTtcclxuXHRcdGlmIChzaWduYXR1cmVzLmFjdGlvbiA9PT0gJ2RlbGV0ZScpIHtcclxuXHRcdFx0c2lnbmF0dXJlcy5hbm90YXRpb25zLm1hcCgoYW5vdCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuI2ZpbmRTaWduYXR1cmVUb0RlbGV0ZShhbm90KTsgLy8gZGVsZXRlIG9sZCBzaWduYXR1cmUgd2l0aCBpdHMgb2xkIHBvc2l0aW9uXHJcblx0XHRcdH0pO1xyXG5cdFx0fSBlbHNlIGlmIChzaWduYXR1cmVzLmFjdGlvbiA9PT0gJ21vZGlmeScpIHtcclxuXHRcdFx0aWYgKHNpZ25hdHVyZXMuYW5vdGF0aW9uc1swXVsnYXBwbHlNb3ZpbmdUb0FsbFBhZ2VzJ10pIHtcclxuXHRcdFx0XHR0aGlzLiN0cmFja2VkU2lnbmF0dXJlcy5tYXAoKHNpZ24pID0+IHtcclxuXHRcdFx0XHRcdHNpZ24uWCA9IHNpZ25hdHVyZXMuYW5vdGF0aW9uc1swXVsnWCddO1xyXG5cdFx0XHRcdFx0c2lnbi5ZID0gc2lnbmF0dXJlcy5hbm90YXRpb25zWzBdWydZJ107XHJcblx0XHRcdFx0XHR0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlLmFubm90TWFuYWdlci5yZWRyYXdBbm5vdGF0aW9uKHNpZ24pO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuI2ZpbmRTaWduYXR1cmVUb1VwZGF0ZShzaWduYXR1cmVzLmFub3RhdGlvbnNbMF0pOyAvLyBkZWxldGUgb2xkIHNpZ25hdHVyZSB3aXRoIGl0cyBvbGQgcG9zaXRpb25cclxuXHRcdFx0XHR0aGlzLiN0cmFja2VkU2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZXMuYW5vdGF0aW9uc1swXSk7IC8vIGFkZCBuZXcgc2lnbmF0dXJlIHdpdGggaXRzIG5ldyBwb3NpdGlvblxyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2UgaWYgKHNpZ25hdHVyZXMuYWN0aW9uID09PSAnYWRkJykge1xyXG5cdFx0XHR0aGlzLiN0cmFja2VkU2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZXMuYW5vdGF0aW9uc1swXSk7XHJcblx0XHR9XHJcblx0XHR0aGlzLiNjaGVja0lmSGFzU2lnbmF0dXJlcygpO1xyXG5cdH1cclxuXHRyZXNldCgpIHtcclxuXHRcdHRoaXMuI3RyYWNrZWRTaWduYXR1cmVzID0gW107XHJcblx0XHR0aGlzLiNzaWduQWxyZWFkeURyYXdlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy4jY2hlY2tJZkhhc1NpZ25hdHVyZXMoKTtcclxuXHR9XHJcblx0c2V0Q3VzdG9tVG9rZW4odG9rZW46IHN0cmluZykge1xyXG5cdFx0dGhpcy5lbWRoYVNlcnZpY2UuY3VzdG9tVG9rZW4gPSB0b2tlbjtcclxuXHR9XHJcblxyXG5cdCNjcmVhdGVVc2VyU2lnbmF0dXJlKGJhdGNoOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuY3VzdG9tQXV0b21hdGlvbih7XHJcblx0XHRcdG9wZXJhdGlvbjogdGhpcy5vcGVyYXRpb25zLmNyZWF0ZSxcclxuXHRcdFx0Y29udGV4dDoge1xyXG5cdFx0XHRcdHNpZ25hdHVyZToge1xyXG5cdFx0XHRcdFx0J2ZpbGU6Y29udGVudCc6IHtcclxuXHRcdFx0XHRcdFx0J3VwbG9hZC1iYXRjaCc6IGJhdGNoWzBdWydibG9iJ11bJ3VwbG9hZC1iYXRjaCddLFxyXG5cdFx0XHRcdFx0XHQndXBsb2FkLWZpbGVJZCc6IGJhdGNoWzBdWydibG9iJ11bJ3VwbG9hZC1maWxlSWQnXVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdCNleGN0cmFjdE5vdFJlcGVhdGVkU2lnbihuZXdTaWduYXR1cmVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+W10pIHtcclxuXHRcdGxldCBub3RSZXBlYXRlZCA9IG5ld1NpZ25hdHVyZXMuZmlsdGVyKChzaWduKSA9PiAhdGhpcy4jdXNlclNpZ25hdHVyZXMuc29tZSgocykgPT4gcy5uYW1lID09PSBzaWduLnRpdGxlKSk7XHJcblx0XHRyZXR1cm4gbm90UmVwZWF0ZWQ7XHJcblx0fVxyXG5cdC8vIGZpbmQgc2lnbiBhbmQgZGVsZXRlIGl0XHJcblx0I2ZpbmRTaWduYXR1cmVUb0RlbGV0ZShzaWduYXR1cmUpIHtcclxuXHRcdHRoaXMuI3RyYWNrZWRTaWduYXR1cmVzID0gdGhpcy4jdHJhY2tlZFNpZ25hdHVyZXMuZmlsdGVyKChzaWduKSA9PiB7XHJcblx0XHRcdHJldHVybiAoXHJcblx0XHRcdFx0c2lnbi5QYWdlTnVtYmVyICE9PSBzaWduYXR1cmUuUGFnZU51bWJlciB8fFxyXG5cdFx0XHRcdHNpZ24uSW1hZ2VEYXRhICE9PSBzaWduYXR1cmUuSW1hZ2VEYXRhIHx8XHJcblx0XHRcdFx0KHNpZ24uWCAhPT0gc2lnbmF0dXJlLlggJiYgc2lnbi5ZICE9PSBzaWduYXR1cmUuWSlcclxuXHRcdFx0KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQvLyBmaW5kIHNpZ24gYW5kIGRlbGV0ZSBpdFxyXG5cdCNmaW5kU2lnbmF0dXJlVG9VcGRhdGUoc2lnbmF0dXJlKSB7XHJcblx0XHR0aGlzLiN0cmFja2VkU2lnbmF0dXJlcyA9IHRoaXMuI3RyYWNrZWRTaWduYXR1cmVzLmZpbHRlcigoc2lnbikgPT4ge1xyXG5cdFx0XHRyZXR1cm4gc2lnbi5QYWdlTnVtYmVyICE9PSBzaWduYXR1cmUuUGFnZU51bWJlciB8fCBzaWduLkltYWdlRGF0YSAhPT0gc2lnbmF0dXJlLkltYWdlRGF0YTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHQjc3RhcnRDb25zdHJ1Y3RpbmdTaWduT3B0aW9ucyhzaWduOiBVc2VyU2lnbmF0dXJlLCBpbnNlcnRQb3NpdGlvbjogSW5zZXJ0U2luZ1Bvc2l0aW9uLCBhZGRNb3ZlQnV0dG9uOiBib29sZWFuKSB7XHJcblx0XHR0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlLmFubm90TWFuYWdlci5zZXRSZWFkT25seShmYWxzZSk7XHJcblx0XHRpZiAoYWRkTW92ZUJ1dHRvbikge1xyXG5cdFx0XHR0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlLmFubm90YXRpb25Qb3B1cC5hZGQoe1xyXG5cdFx0XHRcdHR5cGU6ICdhY3Rpb25CdXR0b24nLFxyXG5cdFx0XHRcdGltZzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjJcIiBoZWlnaHQ9XCIyMlwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBjbGFzcz1cImJpIGJpLWFycm93cy1tb3ZlXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuNjQ2LjE0NmEuNS41IDAgMCAxIC43MDggMGwyIDJhLjUuNSAwIDAgMS0uNzA4LjcwOEw4LjUgMS43MDdWNS41YS41LjUgMCAwIDEtMSAwVjEuNzA3TDYuMzU0IDIuODU0YS41LjUgMCAxIDEtLjcwOC0uNzA4ek04IDEwYS41LjUgMCAwIDEgLjUuNXYzLjc5M2wxLjE0Ni0xLjE0N2EuNS41IDAgMCAxIC43MDguNzA4bC0yIDJhLjUuNSAwIDAgMS0uNzA4IDBsLTItMmEuNS41IDAgMCAxIC43MDgtLjcwOEw3LjUgMTQuMjkzVjEwLjVBLjUuNSAwIDAgMSA4IDEwTS4xNDYgOC4zNTRhLjUuNSAwIDAgMSAwLS43MDhsMi0yYS41LjUgMCAxIDEgLjcwOC43MDhMMS43MDcgNy41SDUuNWEuNS41IDAgMCAxIDAgMUgxLjcwN2wxLjE0NyAxLjE0NmEuNS41IDAgMCAxLS43MDguNzA4ek0xMCA4YS41LjUgMCAwIDEgLjUtLjVoMy43OTNsLTEuMTQ3LTEuMTQ2YS41LjUgMCAwIDEgLjcwOC0uNzA4bDIgMmEuNS41IDAgMCAxIDAgLjcwOGwtMiAyYS41LjUgMCAwIDEtLjcwOC0uNzA4TDE0LjI5MyA4LjVIMTAuNUEuNS41IDAgMCAxIDEwIDhcIi8+PC9zdmc+JyxcclxuXHRcdFx0XHR0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3ZpZXdlci5TeW5jIG1vdmVtZW50IHdpdGggYWxsIHBhZ2VzJyksXHJcblx0XHRcdFx0b25DbGljazogKCkgPT4ge1xyXG5cdFx0XHRcdFx0bGV0IHNlbGVjdEFub3QgPSB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlLmFubm90TWFuYWdlci5nZXRTZWxlY3RlZEFubm90YXRpb25zKCk7XHJcblx0XHRcdFx0XHRzZWxlY3RBbm90WzBdWydhcHBseU1vdmluZ1RvQWxsUGFnZXMnXSA9IHNlbGVjdEFub3RbMF1bJ2FwcGx5TW92aW5nVG9BbGxQYWdlcyddID8gZmFsc2UgOiB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5hbm5vdE1hbmFnZXIuc2V0Tm90ZUNvbnRlbnRzKHNlbGVjdEFub3RbMF0sIHRoaXMuI2dldFRpdGxlKHNlbGVjdEFub3RbMF0pKTtcclxuXHRcdFx0XHRcdGNvbnNvbGUubG9nKHNlbGVjdEFub3QpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHRcdHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UuZGlzYWJsZUVsZW1lbnRzKFtcclxuXHRcdFx0XHQndG9vbGJhckdyb3VwLVNoYXBlcycsXHJcblx0XHRcdFx0J3Rvb2xiYXJHcm91cC1FZGl0JyxcclxuXHRcdFx0XHQndG9vbGJhckdyb3VwLUluc2VydCcsXHJcblx0XHRcdFx0J3Rvb2xiYXJHcm91cC1Bbm5vdGF0ZScsXHJcblx0XHRcdFx0J2xpbmtCdXR0b24nLFxyXG5cdFx0XHRcdCdhbm5vdGF0aW9uU3R5bGVFZGl0QnV0dG9uJyxcclxuXHRcdFx0XHQnYW5ub3RhdGlvbkNvbW1lbnRCdXR0b24nXHJcblx0XHRcdF0pO1xyXG5cdFx0fVxyXG5cdFx0bGV0IHBhZ2VDb3VudCA9IHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UuZG9jVmlld2VyLmdldFBhZ2VDb3VudCgpO1xyXG5cdFx0aWYgKFxyXG5cdFx0XHRwYWdlQ291bnQgPT09IDEgfHxcclxuXHRcdFx0KHBhZ2VDb3VudCA+IDEgJiYgaW5zZXJ0UG9zaXRpb24gPT09IEluc2VydFNpbmdQb3NpdGlvbi5GaXJzdFBhZ2UpIHx8XHJcblx0XHRcdChwYWdlQ291bnQgPiAxICYmIGluc2VydFBvc2l0aW9uID09PSBJbnNlcnRTaW5nUG9zaXRpb24uTGFzdFBhZ2UpXHJcblx0XHQpIHtcclxuXHRcdFx0bGV0IHBhZ2UgPSBwYWdlQ291bnQgPiAxICYmIGluc2VydFBvc2l0aW9uID09PSBJbnNlcnRTaW5nUG9zaXRpb24uTGFzdFBhZ2UgPyBwYWdlQ291bnQgOiAxO1xyXG5cdFx0XHR0aGlzLiNjb25zdHJ1Y3RBbmREcmF3U2lnbmF0dXJlKHBhZ2UsIHNpZ24uaW1hZ2UpO1xyXG5cdFx0fSBlbHNlIGlmIChpbnNlcnRQb3NpdGlvbiA9PT0gSW5zZXJ0U2luZ1Bvc2l0aW9uLkZpcnN0TGFzdFBhZ2UpIHtcclxuXHRcdFx0dGhpcy4jY29uc3RydWN0QW5kRHJhd1NpZ25hdHVyZSgxLCBzaWduLmltYWdlKTtcclxuXHRcdFx0dGhpcy4jY29uc3RydWN0QW5kRHJhd1NpZ25hdHVyZShwYWdlQ291bnQsIHNpZ24uaW1hZ2UpO1xyXG5cdFx0fSBlbHNlIGlmIChpbnNlcnRQb3NpdGlvbiA9PT0gSW5zZXJ0U2luZ1Bvc2l0aW9uLkN1cnJlbnRQYWdlKSB7XHJcblx0XHRcdGNvbnN0IGN1cnJlbnRQYWdlID0gdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0Q3VycmVudFBhZ2UoKTtcclxuXHRcdFx0dGhpcy4jY29uc3RydWN0QW5kRHJhd1NpZ25hdHVyZShjdXJyZW50UGFnZSwgc2lnbi5pbWFnZSk7XHJcblx0XHR9IGVsc2UgaWYgKGluc2VydFBvc2l0aW9uID09PSBJbnNlcnRTaW5nUG9zaXRpb24uQWxsUGFnZXMpIHtcclxuXHRcdFx0Zm9yIChsZXQgcGFnZU51bSA9IDE7IHBhZ2VOdW0gPCBwYWdlQ291bnQgKyAxOyBwYWdlTnVtKyspIHtcclxuXHRcdFx0XHR0aGlzLiNjb25zdHJ1Y3RBbmREcmF3U2lnbmF0dXJlKHBhZ2VOdW0sIHNpZ24uaW1hZ2UpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdCNnZXRUaXRsZShzZWxlY3RBbm90KSB7XHJcblx0XHRpZiAoc2VsZWN0QW5vdCAmJiBzZWxlY3RBbm90WydhcHBseU1vdmluZ1RvQWxsUGFnZXMnXSkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3ZpZXdlci5Nb3Rpb24gaXMgc3luY2hyb25pemVkIHdpdGggYWxsIHBhZ2VzJyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ3ZpZXdlci5Nb3Rpb24gaXMgbm90IHN5bmNocm9uaXplZCB3aXRoIGFsbCBwYWdlcycpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHQjY29uc3RydWN0QW5kRHJhd1NpZ25hdHVyZShwYWdlLCBzaWduSW1nKSB7XHJcblx0XHRjb25zdCBzaWduYXR1cmVBbm5vdCA9IG5ldyB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlLkFubm90YXRpb25zLlN0YW1wQW5ub3RhdGlvbigpO1xyXG5cdFx0c2lnbmF0dXJlQW5ub3QuUGFnZU51bWJlciA9IHBhZ2U7XHJcblx0XHRsZXQgcGFnZUhlaWdodCA9IHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UuZG9jVmlld2VyLmdldFBhZ2VIZWlnaHQocGFnZSk7XHJcblx0XHRsZXQgcGFnZVdpZHRoID0gdGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5kb2NWaWV3ZXIuZ2V0UGFnZVdpZHRoKHBhZ2UpO1xyXG5cdFx0c2lnbmF0dXJlQW5ub3QuWCA9IHBhZ2VXaWR0aCAtIDE4MDtcclxuXHRcdHNpZ25hdHVyZUFubm90LlkgPSBwYWdlSGVpZ2h0IC0gMTEwO1xyXG5cdFx0c2lnbmF0dXJlQW5ub3QuV2lkdGggPSAxNDA7XHJcblx0XHRzaWduYXR1cmVBbm5vdC5IZWlnaHQgPSA2MDtcclxuXHRcdGNvbnN0IGtlZXBBc1NWRyA9IGZhbHNlO1xyXG5cdFx0c2lnbmF0dXJlQW5ub3Quc2V0SW1hZ2VEYXRhKHNpZ25JbWcsIGtlZXBBc1NWRyk7XHJcblx0XHRzaWduYXR1cmVBbm5vdC5BdXRob3IgPSB0aGlzLnBkZnRyb25TZXJ2aWNlLmluc3RhbmNlLmFubm90TWFuYWdlci5nZXRDdXJyZW50VXNlcigpO1xyXG5cclxuXHRcdHRoaXMucGRmdHJvblNlcnZpY2UuaW5zdGFuY2UuYW5ub3RNYW5hZ2VyLmFkZEFubm90YXRpb24oc2lnbmF0dXJlQW5ub3QpO1xyXG5cdFx0dGhpcy5wZGZ0cm9uU2VydmljZS5pbnN0YW5jZS5hbm5vdE1hbmFnZXIucmVkcmF3QW5ub3RhdGlvbihzaWduYXR1cmVBbm5vdCk7XHJcblx0fVxyXG5cdCNjaGVja0lmSGFzU2lnbmF0dXJlcygpIHtcclxuXHRcdHRoaXMuaGFzU2lnbmF0dXJlcyQubmV4dCh0aGlzLiN0cmFja2VkU2lnbmF0dXJlcy5sZW5ndGggPiAwKTtcclxuXHR9XHJcblx0I3JlZ2lzdGVyQXVkaXRMb2coZG9jSWQ6IHN0cmluZywgZXZlbnRUeXBlOiBzdHJpbmcpIHtcclxuXHRcdHJldHVybiB0aGlzLmN1c3RvbUF1dG9tYXRpb24oe1xyXG5cdFx0XHRvcGVyYXRpb246IHRoaXMub3BlcmF0aW9ucy5hdWRpdCxcclxuXHRcdFx0aW5wdXQ6IGRvY0lkLFxyXG5cdFx0XHRwYXJhbXM6IHsgZXZlbnQ6IGV2ZW50VHlwZSB9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW9wdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9tb2RlbHMvZGlhbG9nLW9wdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5leHBvcnQgdHlwZSBEaWFsb2dBY3Rpb25UeXBlID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBPYnNlcnZhYmxlPGFueT47XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nT3B0aW9ucyB7XHJcblx0Y29tcG9uZW50OiBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdHdpZHRoPzogc3RyaW5nO1xyXG5cdGhlaWdodD86IHN0cmluZztcclxuXHRtYXhXaWR0aD86IHN0cmluZyxcclxuXHRwYW5lbENsYXNzPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPjtcclxuXHRjb25maWc/OiB7XHJcblx0XHR0aXRsZT86IHN0cmluZztcclxuXHRcdHN1YlRpdGxlPzogc3RyaW5nO1xyXG5cdFx0Y29udGVudFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRcdGFjdGlvbnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblx0fTtcclxuXHRkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLW9wdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL251eGVvLWRpYWxvZy9tb2RlbHMvZGlhbG9nLW9wdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5leHBvcnQgdHlwZSBEaWFsb2dBY3Rpb25UeXBlID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBPYnNlcnZhYmxlPGFueT47XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nT3B0aW9ucyB7XHJcblx0Y29tcG9uZW50OiBUeXBlPGFueT4gfCBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdHdpZHRoPzogc3RyaW5nO1xyXG5cdGhlaWdodD86IHN0cmluZztcclxuXHRtYXhXaWR0aD86IHN0cmluZyxcclxuXHRtaW5XaWR0aD86IHN0cmluZyxcclxuXHRwYW5lbENsYXNzPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPjtcclxuXHRjb25maWc/OiB7XHJcblx0XHR0aXRsZT86IHN0cmluZztcclxuXHRcdHN1YlRpdGxlPzogc3RyaW5nO1xyXG5cdFx0Y29udGVudFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRcdGFjdGlvbnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblx0fTtcclxuXHRkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG4iXX0=
@@ -257,6 +257,7 @@ export * from './lib/components/ndf-config-editor';
257
257
  export * from './lib/components/ndf-filters';
258
258
  export * from './lib/components/ndf-uploader';
259
259
  export * from './lib/components/ndf-scanner';
260
+ export * from './lib/components/ndf-signatures';
260
261
  export * from './lib/shared/evaluator';
261
262
  export * from './lib/shared/constants';
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLHdCQUF3QjtBQUN4QixjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrRkFBa0YsQ0FBQztBQUNqRyxjQUFjLG9GQUFvRixDQUFDO0FBQ25HLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsd0ZBQXdGLENBQUM7QUFDdkcsY0FBYywrR0FBK0csQ0FBQztBQUU5SCxjQUFjLHVJQUF1SSxDQUFDO0FBQ3RKLGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYyx5RUFBeUUsQ0FBQztBQUN4RixjQUFjLG9GQUFvRixDQUFDO0FBQ25HLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsd0ZBQXdGLENBQUM7QUFDdkcsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMs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LENBQUM7QUFDakQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCwwQkFBMEI7QUFDMUIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELE9BQU87QUFDUCxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG51eGVvLWRldmVsb3BtZW50LWZyYW1ld29ya1xyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbXBvbmVudHMvaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvbW9kZWxzL2luZGV4JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3NlcnZpY2VzL2luZGV4JztcclxuXHJcbi8vIGV4cG9ydCBhbGwgY29tcG9uZW50c1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbW1lbnRzL2NvbW1lbnRzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29tbWVudHMvY29tcG9uZW50cy9jb21tZW50cy1kYXNobGV0L2NvbW1lbnRzLWRhc2hsZXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb21tZW50cy9jb21wb25lbnRzL2VkaXQtZGVsZXRlLW1vZGFsL2VkaXQtZGVsZXRlLW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybS1jYWxsZXIvY29uZmlybS1jYWxsZXIuZGlhbG9nJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtLWNhbGxlci9jb25maXJtLWNhbGxlci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm0tY2FsbGVyL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24tY3JlYXRlLWZvcm0vY29ycmVzcG9uZGVuY2UtcmVsYXRpb24tY3JlYXRlLWZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb21wb25lbnRzL3ZlcnNpb25zL3ZlcnNpb25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vY29ycmVzcG9uZGVuY2UtcmVsYXRpb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9zZXJ2aWNlcy9jb3JyZXNwb25kZW5jZS1yZWFsYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vc2VydmljZXMvdmlld2VyLWZpbGVzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1lbnRpdHkvY3JlYXRlLWVudGl0eS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NyZWF0ZS1lbnRpdHkvY3JlYXRlLWVudGl0eS9jcmVhdGUtZW50aXR5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3RzLXRhZ3MvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS10YWdzL2NvcnJlc3BvbmRlbmNlLXRhZ3MuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jdHMtdGFncy9jdHMtdGFncy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N0cy10YWdzL3NlcnZpY2VzL3RhZ3MtYXBpLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N1c3RvbS10b2FzdHIvY3VzdG9tLXRvYXN0ci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9hdHRhY2htZW50cy1saXN0L2F0dGFjaG1lbnRzLWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9hdHRhY2htZW50cy1wYWdlLXByb3ZpZGVyL2F0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9kb2N1bWVudC1saXN0L2RvY3VtZW50cy1saXN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbXBvbmVudHMvZG9jdW1lbnQtc2Nhbi9kb2N1bWVudC1zY2FuLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbXBvbmVudHMvZG9jdW1lbnQtc2Nhbi9kb2N1bWVudC1zY2FuLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2RvY3VtZW50LXVwbG9hZC9kb2N1bWVudC11cGxvYWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9kb2N1bWVudHMvZG9jdW1lbnRzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbnN0YW50cy9kb2N1bWVudC10ZW1wbGF0ZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb25zdGFudHMvZG9jdW1lbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvZG9jdW1lbnRzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL3NlcnZpY2VzL2RvY3VtZW50LXRlbXBsYXRlcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvc2VydmljZXMvZG9jdW1lbnRzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtY2hhcnQvZHluYW1pYy1jaGFydC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtY2hhcnQvZHluYW1pYy1jaGFydC9keW5hbWljLWNoYXJ0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1jaGFydC9zZXJ2aWNlcy9jaGFydC1kYXRhLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZmlsdGVyL2R5bmFtaWMtZmlsdGVyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1maWx0ZXIvZHluYW1pYy1maWx0ZXIvZHluYW1pYy1maWx0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9kZXBhcnRtZW50LWZvcm0vZGVwYXJ0bWVudC1mb3JtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLWJvb2xpdGVtL2R5bmFtaWMtZm9ybS1ib29saXRlbS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1idWlsZGVyL2R5bmFtaWMtZm9ybS1idWlsZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLWNoZWNrYm94LWl0ZW0vZHluYW1pYy1mb3JtLWNoZWNrYm94LWl0ZW0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZGF0ZWl0ZW0vZHluYW1pYy1mb3JtLWRhdGVpdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLWRlcGFydG1lbnQvZHluYW1pYy1mb3JtLWRlcGFydG1lbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9zZXJ2aWNlcy9kZXBhcnRtZW50LWFwaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZmllbGQvZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLWhpanJpLWRhdGVpdGVtL2R5bmFtaWMtZm9ybS1oaWpyaS1kYXRlaXRlbS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1tYXBpdGVtL2R5bmFtaWMtZm9ybS1tYXBpdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLW9wdGlvbnMvZHluYW1pYy1mb3JtLW9wdGlvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tc2VsZWN0LXRhZy9keW5hbWljLWZvcm0tc2VsZWN0LXRhZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1zZWxlY3QtdXNlci1maWx0ZXIvZHluYW1pYy1mb3JtLXNlbGVjdC11c2VyLWZpbHRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1zZWxlY3QtdXNlcnMvZHluYW1pYy1mb3JtLXNlbGVjdC11c2Vycy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1zZWxlY3RpdGVtL2R5bmFtaWMtZm9ybS1zZWxlY3RpdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXNsaWRlLXRvZ2dsZWl0ZW0vZHluYW1pYy1mb3JtLXNsaWRlLXRvZ2dsZWl0ZW0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdGV4dGFyZWEvZHluYW1pYy1mb3JtLXRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRleHRpdGVtL2R5bmFtaWMtZm9ybS10ZXh0aXRlbS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3QvZHJvcGRvd24tdHJlZXZpZXctc2VsZWN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXZpZXdlci9keW5hbWljLWZvcm0tdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXZvY2FidWxhcnktaXRlbS9keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9mb3JtLWJ1aWxkZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtc2VhcmNoL2R5bmFtaWMtc2VhcmNoLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1zZWFyY2gvZHluYW1pYy1zZWFyY2gvZHluYW1pYy1zZWFyY2guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLXZpZXcvYm9vbGVhbi12aWV3ZXIvYm9vbGVhbi12aWV3ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLXZpZXcvY3VzdG9tLWRvY3VtZW50LXZpZXdlci9jdXN0b20tZG9jdW1lbnQtdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy12aWV3L2N1c3RvbS1wcC12aWV3ZXIvY3VzdG9tLXBwLXZpZXdlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdmlldy9jdXRvbWUtdm9jLXZpZXdlci9jdXRvbWUtdm9jLXZpZXdlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdmlldy9kYXRhLXZpZXdlci9kYXRhLXZpZXdlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdmlldy9kYXRlLXZpZXdlci9kYXRlLXZpZXdlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdmlldy9kZXBhcnRtZW50LXZpZXdlci9kZXBhcnRtZW50LXZpZXdlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdmlldy9kcm9wZG93bi12aWV3ZXIvZHJvcGRvd24tdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy12aWV3L2R5bmFtaWMtdmlldy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdmlldy9saXN0LXZpZXdlci9saXN0LXZpZXdlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvYWRkLXRvLWNvbGxlY3Rpb24vYWRkLXRvLWNvbGxlY3Rpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2NsaXBib2FyZC9jbGlwYm9hcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2NvcHkvY29weS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvY3JlYXRlLWRpcmVjdG9yeS9jcmVhdGUtZGlyZWN0b3J5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jcmVhdGUtbW9kYWwvY3JlYXRlLW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jcmVhdGlvbi10eXBlL2NyZWF0aW9uLXR5cGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2RlbGV0ZS9kZWxldGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2ZvbGRlci1tb2RhbC9mb2xkZXItbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2xvYW4tcmVxdWVzdC9sb2FuLXJlcXVlc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL21vdmUvbW92ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvcHVibGlzaC1kaWFsb2cvcHVibGlzaC1kaWFsb2cuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL3JlbmFtZS9yZW5hbWUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL3NjYW4tbW9kYWwvc2Nhbi1tb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvc2hhcmUtZGlhbG9nL3NoYXJlLWRpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvc2lkZXBhbmVsL3NpZGVwYW5lbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvdGVtcGxhdGUtbW9kYWwvdGVtcGxhdGUtbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL3RyYW5zZmVyLWRvYy90cmFuc2Zlci1kb2MuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL3VwZGF0ZS1tb2RhbC91cGRhdGUtbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9kaXJlY3RpdmVzL2ZpbGUtZ3JpZC1pbmZpbml0ZS1zY3JvbGwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9maWxlLW1hbmFnZXIuYWJzdHJhY3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2ZpbGUtbWFuZ2VyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvbW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9ncmVnb3JpYW4tZGF0ZXBpY2tlci9ncmVnb3JpYW4tZGF0ZXBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWRhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIvbmd4LWhpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIvc2VydmljZXMvZGF0ZS1mb3JtYXR0ZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIvc2VydmljZXMvZGF0ZS1oZWxwZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF0ZXN0LWFjdGl2aXR5L2NvbXBvbmVudHMvYWN0aXZpdHktbGluZS9hY3Rpdml0eS1saW5lLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF0ZXN0LWFjdGl2aXR5L2NvbXBvbmVudHMvbGF0ZXN0LWFjdGl2aXR5L2xhdGVzdC1hY3Rpdml0eS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xhdGVzdC1hY3Rpdml0eS9jb21wb25lbnRzL3NpbmdsZS1hY3Rpdml0eS9zaW5nbGUtYWN0aXZpdHkuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXRlc3QtYWN0aXZpdHkvbGF0ZXN0LWFjdGl2aXR5Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9wZGYtdHJvbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vcGRmdHJvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9wZGZ0cm9uL3NpbGVudC1wZGZ0cm9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL2RpcmVjdGl2ZXMvbmRmLXRyb24tZXh0cmFjdC10ZXh0LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdXNlcnMtY2FyZC91c2Vycy1jYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdXNlcnMtY2FyZC91c2Vycy1jYXJkLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmlld2VyLWxvZy9jb21wb25lbnRzL3ZpZXdlci1sb2cvdmlld2VyLWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZpZXdlci1sb2cvdmlld2VyLWxvZy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZvY2FidWxhcnkvaW50ZXJmYWNlcy9vcC10eXBlLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdm9jYWJ1bGFyeS9zZXJ2aWNlcy92b2NhYnVsYXJ5LWFwaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92b2NhYnVsYXJ5L3RyYW5zbGF0ZWQtdm9jYWJ1bGFyeS1zZWxlY3QvdHJhbnNsYXRlZC12b2NhYnVsYXJ5LXNlbGVjdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZvY2FidWxhcnkvdm9jYWJ1bGFyeS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZvY2FidWxhcnkvdm9jYWJ1bGFyeS92b2NhYnVsYXJ5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvY29yZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtc2VydmljZXMvZmlsZS1tYW5hZ2VyLmFkYXB0ZXInO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaXNwbGF5LXN1aXRhYmxlLWljb24vZGlzcGxheS1zdWl0YWJsZS1pY29uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGlzcGxheS1zdWl0YWJsZS1pY29uL2Rpc3BsYXktc3VpdGFibGUtaWNvbi9kaXNwbGF5LXN1aXRhYmxlLWljb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaXNwbGF5LXN1aXRhYmxlLWljb24vZGlzcGxheS1zdWl0YWJsZS1pY29uL2ljb24uc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0dGFjaG1lbnQtaXRlbS9hdHRhY2htZW50LWl0ZW0ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdHRhY2htZW50LWl0ZW0vYXR0YWNobWVudC1pdGVtL2F0dGFjaG1lbnQtaXRlbS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbGVjdC11c2Vycy1ieS1kZXBhcnRtZW50L3NlbGVjdC11c2Vycy1ieS1kZXBhcnRtZW50Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VsZWN0LXVzZXJzLWJ5LWRlcGFydG1lbnQvc2VsZWN0LXVzZXJzLWJ5LWRlcGFydG1lbnRzL2RlcGFydG1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWxlY3QtdXNlcnMtYnktZGVwYXJ0bWVudC9zZWxlY3QtdXNlcnMtYnktZGVwYXJ0bWVudHMvc2VsZWN0LXVzZXJzLWJ5LWRlcGFydG1lbnRzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3BlbGwtY2hlY2tlci1maWVsZC9zcGVsbC1jaGVja2VyLWZpZWxkLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc3BlbGwtY2hlY2tlci1maWVsZC9zcGVsbC1jaGVja2VyLXRleHQtZmllbGQvc3BlbGwtY2hlY2tlci10ZXh0LWZpZWxkLmNvbXBvbmVudCc7XHJcblxyXG4vLyBzZXJ2aWNlcyBmcm9tIGZpbGUgbWFuZ2VyXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy9kaWFsb2ctbWFuZ21lbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy9keW5hbWljLWZvcm0uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy9maWxlLW1hbmFnZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy9nbG9iYWwtcGRmdHJvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL21haW5mb2xkZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy9wdWJsaXNoaW5nLWRvY3VtZW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtc2VydmljZXMvcmVjZW50bHktdmlld2VkLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtc2VydmljZXMvc2hhcmVkLWRvY3Muc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy91cGxvYWQtZmlsZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL3VwbG9hZC1tYW5hZ21lbnQuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2FjdGl2aXRpZXMtbG9nL2FjdGl2aXRpZXMtbG9nLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWN0aXZpdGllcy1sb2cvYWN0aXZpdGllcy1sb2cvYWN0aXZpdGllcy1sb2cuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLXRhYnMvZHluYW1pYy10YWJzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy10YWJzL2R5bmFtaWMtdGFicy9keW5hbWljLXRhYnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tdXRpcGxlLWR5bmFtaWMtZm9ybS12aWV3ZXIvbXVsdGlwbGUtZHluYW1pYy1mb3JtLXZpZXdlci9tdWx0aXBsZS1keW5hbWljLWZvcm0tdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbXV0aXBsZS1keW5hbWljLWZvcm0tdmlld2VyL211dGlwbGUtZHluYW1pYy1mb3JtLXZpZXdlci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL2FkZC1wZXJtaXNzaW9ucy1kaWFsb2cvYWRkLXBlcm1pc3Npb25zLWRpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL3Blcm1pc3Npb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbnMvcGVybWlzc2lvbnMtdGVtcGxhdGUvcGVybWlzc2lvbnMtdGVtcGxhdGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdXNlci91c2VyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdXNlci91c2VyL3VzZXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXR0YWNobWVudC1tb2RhbC9hdHRhY2htZW50LW1vZGFsLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXR0YWNobWVudC1tb2RhbC9hdHRhY2htZW50cy9hdHRhY2htZW50cy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaWFncmFtcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdG9hc3RzJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1maWVsZHMtcmVuZGVyZXIvZHluYW1pYy1maWVsZHMtcmVuZGVyZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZpZWxkcy1yZW5kZXJlci9keW5hbWljLWZpZWxkcy1yZW5kZXJlci9keW5hbWljLWZpZWxkcy1yZW5kZXJlci5jb21wb25lbnQnO1xyXG5cclxuLy8gZXhwb3J0IGFsbCBmcm9tIHNoYXJlZCBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvY29tcG9uZW50cy9pdGVtLWxpc3QvaXRlbS1saXN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jb21wb25lbnRzL25vLWRhdGEvbm8tZGF0YS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvY29tcG9uZW50cy9yZWFkLW1vcmUvcmVhZC1tb3JlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jb21wb25lbnRzL3NlYXJjaC1hdXRvY29tcGxldGUvc2VhcmNoLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbXBvbmVudHMvdXNlci1jYXJkL3VzZXItY2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvY29tcG9uZW50cy9nZW5lcmFsLW5vdGlmaWNhdGlvbi1wb3B1cC9nZW5lcmFsLW5vdGlmaWNhdGlvbi1wb3B1cC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvbGlicmFyeVNoYXJlZC5tb2R1bGUnO1xyXG5cclxuLy8gZXhwb3J0IGFsbCBmcm9tIHNoYXJlZCBzZXJ2aWNlcyBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL2dsb2JhbC1hZG1pbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL3NoYXJlZC1zZXJ2aWNlcy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtc2VydmljZXMvdXNlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL2FwaXMtZXJyb3JzLW1lc3NhZ2VzLnNlcnZpY2UnO1xyXG5cclxuLy8gZXhwb3J0IGFsbCBmcm9tIGNvcmUgbW9kdWxlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvYWRhcHRlcnMvYWRhcHRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9lbnVtcy9sYW5ndWFnZS5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9lbnYvaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9jYWxsQXBpL2NhbGwtYXBpLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2V4dGVuc2lvbi9hY3Rpb24uZXh0ZW5zaW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvZXh0ZW5zaW9uL2NvbXBvbmVudC1yZWdpc3Rlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9leHRlbnNpb24vZXh0ZW5pb24tdXRpbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2V4dGVuc2lvbi9leHRlbnNpb24tZWxlbWVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvZXh0ZW5zaW9uL2V4dGVuc2lvbi1sb2FkZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvZXh0ZW5zaW9uL2V4dGVuc2lvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9pbml0aWFsaXphdGlvbi9pbml0aWFsaXphdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9sb2NhbFN0b3JhZy9sb2NhbC1zdG9yYWcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvcm9sZXMvcm9sZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRlLWxvYWRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy91c2VyL3VzZXItcHJlZmVyZW5jZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvdXRpbGl0aWVzL21vbWVudC1kYXRlLWFkYXB0ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3V0aWxpdGllcy91dGlsaXR5LnNlcnZpY2UnO1xyXG5cclxuLy8gZXhwb3J0IGFsbCBwaXBlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9maWxlLXNpemUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2hpanJpLWRhdGUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2xvY2FsaXplZC1kYXRlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9tdWx0aS12YWx1ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvcGlwZXMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvc2VjdXJlLWh0bWwucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3NlY3VyZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvdGltZS1hZ28ucGlwZSc7XHJcblxyXG4vL2V4cG9ydCBhbGwgZGlyZWN0aXZlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvYXBwLWhhcy1yb2xlL2FwcC1oYXMtcm9sZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvY2xpY2tPdXRTaWRlL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlL2RpcmVjdGl2ZS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvcnRsL3NldC1kaXItcnRsLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9ydGwvc2V0LXJ0bC5kaXJlY3RpdmUnO1xyXG5cclxuLy9leHBvcnQgYWxsIGNvbmZpZ3VyYXRpb25cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWd1cmF0aW9uL2hlbHBlcnMvYXBwLWluaXRpYWxpemVyJztcclxuXHJcbi8vIEV2YWxcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlL3Blcm1pc3Npb25zL2V2YWx1YXRvcnMuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbW1lbnRzL3NlcnZpY2VzL2NvbW1lbnQtYXBpLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2RpcmVjdGl2ZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3Rva2Vucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmRmLWRhdGVwaWNrZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25kZi1wYW5lbCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmRmLXRhYnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25vLWRhdGEtZm91bmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvY2hhcnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZXBvcnRzL25kZi1yZXBvcnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9yZXBvcnRzL2NoYXJ0LXBhbmVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9za2VsZXRvbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGFibGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uZGYtY29uZmlnLWVkaXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25kZi11cGxvYWRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmRmLXNjYW5uZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXZhbHVhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbnN0YW50cyc7XHJcbiJdfQ==
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLHdCQUF3QjtBQUN4QixjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrRkFBa0YsQ0FBQztBQUNqRyxjQUFjLG9GQUFvRixDQUFDO0FBQ25HLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHlFQUF5RSxDQUFDO0FBQ3hGLGNBQWMsd0ZBQXdGLENBQUM7QUFDdkcsY0FBYywrR0FBK0csQ0FBQztBQUU5SCxjQUFjLHVJQUF1SSxDQUFDO0FBQ3RKLGNBQWMsaUZBQWlGLENBQUM7QUFDaEcsY0FBYyx5RUFBeUUsQ0FBQztBQUN4RixjQUFjLG9GQUFvRixDQUFDO0FBQ25HLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsd0ZBQXdGLENBQUM7QUFDdkcsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHFEQUFxRCxDQUFDO0FBQ3BFLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLG1GQUFtRixDQUFDO0FBQ2xHLGNBQWMs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LENBQUM7QUFDakQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1Q0FBdUMsQ0FBQztBQUV0RCwwQkFBMEI7QUFDMUIsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELE9BQU87QUFDUCxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELGNBQWMsd0RBQXdELENBQUM7QUFFdkUsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvY29tcG9uZW50cy9pbmRleCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9tb2RlbHMvaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvc2VydmljZXMvaW5kZXgnO1xyXG5cclxuLy8gZXhwb3J0IGFsbCBjb21wb25lbnRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2FyZC9jYXJkLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29tbWVudHMvY29tbWVudHMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb21tZW50cy9jb21wb25lbnRzL2NvbW1lbnRzLWRhc2hsZXQvY29tbWVudHMtZGFzaGxldC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbW1lbnRzL2NvbXBvbmVudHMvZWRpdC1kZWxldGUtbW9kYWwvZWRpdC1kZWxldGUtbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtLWNhbGxlci9jb25maXJtLWNhbGxlci5kaWFsb2cnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbmZpcm0tY2FsbGVyL2NvbmZpcm0tY2FsbGVyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29uZmlybS1jYWxsZXIvY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vY29ycmVzcG9uZGVuY2UtcmVsYXRpb24uY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29ycmVzcG9uZGVuY2UtcmVsYXRpb24vY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi1jcmVhdGUtZm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uL2NvbXBvbmVudHMvdmVyc2lvbnMvdmVyc2lvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXJlbGF0aW9uL3NlcnZpY2VzL2NvcnJlc3BvbmRlbmNlLXJlYWxhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb3JyZXNwb25kZW5jZS1yZWxhdGlvbi9zZXJ2aWNlcy92aWV3ZXItZmlsZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3JlYXRlLWVudGl0eS9jcmVhdGUtZW50aXR5Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3JlYXRlLWVudGl0eS9jcmVhdGUtZW50aXR5L2NyZWF0ZS1lbnRpdHkuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jdHMtdGFncy9jb21wb25lbnRzL2NvcnJlc3BvbmRlbmNlLXRhZ3MvY29ycmVzcG9uZGVuY2UtdGFncy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N0cy10YWdzL2N0cy10YWdzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3RzLXRhZ3Mvc2VydmljZXMvdGFncy1hcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3VzdG9tLXRvYXN0ci9jdXN0b20tdG9hc3RyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3VzdG9tLXRvYXN0ci9zZXJ2aWNlcy9jdXN0b20tdG9hc3RyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2F0dGFjaG1lbnRzLWxpc3QvYXR0YWNobWVudHMtbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2F0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXIvYXR0YWNobWVudHMtcGFnZS1wcm92aWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2RvY3VtZW50LWxpc3QvZG9jdW1lbnRzLWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9kb2N1bWVudC1zY2FuL2RvY3VtZW50LXNjYW4uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29tcG9uZW50cy9kb2N1bWVudC1zY2FuL2RvY3VtZW50LXNjYW4uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbXBvbmVudHMvZG9jdW1lbnQtdXBsb2FkL2RvY3VtZW50LXVwbG9hZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2RvY3VtZW50cy9kb2N1bWVudHMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvY29uc3RhbnRzL2RvY3VtZW50LXRlbXBsYXRlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZG9jdW1lbnRzL2NvbnN0YW50cy9kb2N1bWVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9kb2N1bWVudHMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kb2N1bWVudHMvc2VydmljZXMvZG9jdW1lbnQtdGVtcGxhdGVzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1jaGFydC9keW5hbWljLWNoYXJ0Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1jaGFydC9keW5hbWljLWNoYXJ0L2R5bmFtaWMtY2hhcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWNoYXJ0L3NlcnZpY2VzL2NoYXJ0LWRhdGEuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1maWx0ZXIvZHluYW1pYy1maWx0ZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZpbHRlci9keW5hbWljLWZpbHRlci9keW5hbWljLWZpbHRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2RlcGFydG1lbnQtZm9ybS9kZXBhcnRtZW50LWZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tYm9vbGl0ZW0vZHluYW1pYy1mb3JtLWJvb2xpdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLWJ1aWxkZXIvZHluYW1pYy1mb3JtLWJ1aWxkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tY2hlY2tib3gtaXRlbS9keW5hbWljLWZvcm0tY2hlY2tib3gtaXRlbS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kYXRlaXRlbS9keW5hbWljLWZvcm0tZGF0ZWl0ZW0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L3NlcnZpY2VzL2RlcGFydG1lbnQtYXBpLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1maWVsZC9keW5hbWljLWZvcm0tZmllbGQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0taGlqcmktZGF0ZWl0ZW0vZHluYW1pYy1mb3JtLWhpanJpLWRhdGVpdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLW1hcGl0ZW0vZHluYW1pYy1mb3JtLW1hcGl0ZW0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tb3B0aW9ucy9keW5hbWljLWZvcm0tb3B0aW9ucy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1zZWxlY3QtdGFnL2R5bmFtaWMtZm9ybS1zZWxlY3QtdGFnLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXNlbGVjdC11c2VyLWZpbHRlci9keW5hbWljLWZvcm0tc2VsZWN0LXVzZXItZmlsdGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXNlbGVjdC11c2Vycy9keW5hbWljLWZvcm0tc2VsZWN0LXVzZXJzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXNlbGVjdGl0ZW0vZHluYW1pYy1mb3JtLXNlbGVjdGl0ZW0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbS9keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS10ZXh0YXJlYS9keW5hbWljLWZvcm0tdGV4dGFyZWEuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdGV4dGl0ZW0vZHluYW1pYy1mb3JtLXRleHRpdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdC9kcm9wZG93bi10cmVldmlldy1zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdmlld2VyL2R5bmFtaWMtZm9ybS12aWV3ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tdm9jYWJ1bGFyeS1pdGVtL2R5bmFtaWMtZm9ybS12b2NhYnVsYXJ5LWl0ZW0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2Zvcm0tYnVpbGRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vZHluYW1pYy1mb3JtLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy1zZWFyY2gvZHluYW1pYy1zZWFyY2gubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdmlldy9ib29sZWFuLXZpZXdlci9ib29sZWFuLXZpZXdlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdmlldy9jdXN0b20tZG9jdW1lbnQtdmlld2VyL2N1c3RvbS1kb2N1bWVudC12aWV3ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLXZpZXcvY3VzdG9tLXBwLXZpZXdlci9jdXN0b20tcHAtdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy12aWV3L2N1dG9tZS12b2Mtdmlld2VyL2N1dG9tZS12b2Mtdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy12aWV3L2RhdGEtdmlld2VyL2RhdGEtdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy12aWV3L2RhdGUtdmlld2VyL2RhdGUtdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy12aWV3L2RlcGFydG1lbnQtdmlld2VyL2RlcGFydG1lbnQtdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy12aWV3L2Ryb3Bkb3duLXZpZXdlci9kcm9wZG93bi12aWV3ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLXZpZXcvZHluYW1pYy12aWV3Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZHluYW1pYy12aWV3L2xpc3Qtdmlld2VyL2xpc3Qtdmlld2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9hZGQtdG8tY29sbGVjdGlvbi9hZGQtdG8tY29sbGVjdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvY2xpcGJvYXJkL2NsaXBib2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvY29weS9jb3B5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9jcmVhdGUtZGlyZWN0b3J5L2NyZWF0ZS1kaXJlY3RvcnkuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2NyZWF0ZS1tb2RhbC9jcmVhdGUtbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9jb21wb25lbnRzL2NyZWF0aW9uLXR5cGUvY3JlYXRpb24tdHlwZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvZGVsZXRlL2RlbGV0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvZm9sZGVyLW1vZGFsL2ZvbGRlci1tb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvbG9hbi1yZXF1ZXN0L2xvYW4tcmVxdWVzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvbW92ZS9tb3ZlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9wdWJsaXNoLWRpYWxvZy9wdWJsaXNoLWRpYWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvcmVuYW1lL3JlbmFtZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvc2Nhbi1tb2RhbC9zY2FuLW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaGFyZS1kaWFsb2cvc2hhcmUtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy9zaWRlcGFuZWwvc2lkZXBhbmVsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvY29tcG9uZW50cy90ZW1wbGF0ZS1tb2RhbC90ZW1wbGF0ZS1tb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvdHJhbnNmZXItZG9jL3RyYW5zZmVyLWRvYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2NvbXBvbmVudHMvdXBkYXRlLW1vZGFsL3VwZGF0ZS1tb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2RpcmVjdGl2ZXMvZmlsZS1ncmlkLWluZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbGUtbWFuZ2VyL2ZpbGUtbWFuYWdlci5hYnN0cmFjdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmlsZS1tYW5nZXIvZmlsZS1tYW5nZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWxlLW1hbmdlci9tb2RlbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2hpanJpLWdyZWdvcmlhbi1kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyL2dyZWdvcmlhbi1kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIvaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIvaGlqcmktZGF0ZXBpY2tlci9oaWpyaS1kYXRlcGlja2VyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIvaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIvaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9uZ3gtaGlqcmktZ3JlZ29yaWFuLWRhdGVwaWNrZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9zZXJ2aWNlcy9kYXRlLWZvcm1hdHRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9oaWpyaS1ncmVnb3JpYW4tZGF0ZXBpY2tlci9zZXJ2aWNlcy9kYXRlLWhlbHBlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXRlc3QtYWN0aXZpdHkvY29tcG9uZW50cy9hY3Rpdml0eS1saW5lL2FjdGl2aXR5LWxpbmUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXRlc3QtYWN0aXZpdHkvY29tcG9uZW50cy9sYXRlc3QtYWN0aXZpdHkvbGF0ZXN0LWFjdGl2aXR5LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF0ZXN0LWFjdGl2aXR5L2NvbXBvbmVudHMvc2luZ2xlLWFjdGl2aXR5L3NpbmdsZS1hY3Rpdml0eS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2xhdGVzdC1hY3Rpdml0eS9sYXRlc3QtYWN0aXZpdHkubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZi10cm9uLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGRmLXRyb24vcGRmdHJvbi9wZGZ0cm9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGRmLXRyb24vcGRmdHJvbi9wZGZ0cm9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3BkZi10cm9uL3BkZnRyb24vc2lsZW50LXBkZnRyb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGRmLXRyb24vZGlyZWN0aXZlcy9uZGYtdHJvbi1leHRyYWN0LXRleHQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy91c2Vycy1jYXJkL3VzZXJzLWNhcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy91c2Vycy1jYXJkL3VzZXJzLWNhcmQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92aWV3ZXItbG9nL2NvbXBvbmVudHMvdmlld2VyLWxvZy92aWV3ZXItbG9nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdmlld2VyLWxvZy92aWV3ZXItbG9nLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdm9jYWJ1bGFyeS9pbnRlcmZhY2VzL29wLXR5cGUuaW50ZXJmYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy92b2NhYnVsYXJ5L3NlcnZpY2VzL3ZvY2FidWxhcnktYXBpLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3ZvY2FidWxhcnkvdHJhbnNsYXRlZC12b2NhYnVsYXJ5LXNlbGVjdC90cmFuc2xhdGVkLXZvY2FidWxhcnktc2VsZWN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdm9jYWJ1bGFyeS92b2NhYnVsYXJ5Lm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdm9jYWJ1bGFyeS92b2NhYnVsYXJ5L3ZvY2FidWxhcnkuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9jb3JlLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy9maWxlLW1hbmFnZXIuYWRhcHRlcic7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rpc3BsYXktc3VpdGFibGUtaWNvbi9kaXNwbGF5LXN1aXRhYmxlLWljb24ubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9kaXNwbGF5LXN1aXRhYmxlLWljb24vZGlzcGxheS1zdWl0YWJsZS1pY29uL2Rpc3BsYXktc3VpdGFibGUtaWNvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2Rpc3BsYXktc3VpdGFibGUtaWNvbi9kaXNwbGF5LXN1aXRhYmxlLWljb24vaWNvbi5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXR0YWNobWVudC1pdGVtL2F0dGFjaG1lbnQtaXRlbS5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0dGFjaG1lbnQtaXRlbS9hdHRhY2htZW50LWl0ZW0vYXR0YWNobWVudC1pdGVtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvc2VsZWN0LXVzZXJzLWJ5LWRlcGFydG1lbnQvc2VsZWN0LXVzZXJzLWJ5LWRlcGFydG1lbnQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zZWxlY3QtdXNlcnMtYnktZGVwYXJ0bWVudC9zZWxlY3QtdXNlcnMtYnktZGVwYXJ0bWVudHMvZGVwYXJ0bWVudC1tYW5hZ2VtZW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NlbGVjdC11c2Vycy1ieS1kZXBhcnRtZW50L3NlbGVjdC11c2Vycy1ieS1kZXBhcnRtZW50cy9zZWxlY3QtdXNlcnMtYnktZGVwYXJ0bWVudHMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zcGVsbC1jaGVja2VyLWZpZWxkL3NwZWxsLWNoZWNrZXItZmllbGQubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9zcGVsbC1jaGVja2VyLWZpZWxkL3NwZWxsLWNoZWNrZXItdGV4dC1maWVsZC9zcGVsbC1jaGVja2VyLXRleHQtZmllbGQuY29tcG9uZW50JztcclxuXHJcbi8vIHNlcnZpY2VzIGZyb20gZmlsZSBtYW5nZXJcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL2RpYWxvZy1tYW5nbWVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL2ZpbGUtbWFuYWdlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL2dsb2JhbC1wZGZ0cm9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtc2VydmljZXMvbWFpbmZvbGRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL3B1Ymxpc2hpbmctZG9jdW1lbnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy9yZWNlbnRseS12aWV3ZWQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy9zaGFyZWQtZG9jcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkLXNlcnZpY2VzL3VwbG9hZC1maWxlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtc2VydmljZXMvdXBsb2FkLW1hbmFnbWVudC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYWN0aXZpdGllcy1sb2cvYWN0aXZpdGllcy1sb2cubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hY3Rpdml0aWVzLWxvZy9hY3Rpdml0aWVzLWxvZy9hY3Rpdml0aWVzLWxvZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtdGFicy9keW5hbWljLXRhYnMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLXRhYnMvZHluYW1pYy10YWJzL2R5bmFtaWMtdGFicy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL211dGlwbGUtZHluYW1pYy1mb3JtLXZpZXdlci9tdWx0aXBsZS1keW5hbWljLWZvcm0tdmlld2VyL211bHRpcGxlLWR5bmFtaWMtZm9ybS12aWV3ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tdXRpcGxlLWR5bmFtaWMtZm9ybS12aWV3ZXIvbXV0aXBsZS1keW5hbWljLWZvcm0tdmlld2VyLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbnMvYWRkLXBlcm1pc3Npb25zLWRpYWxvZy9hZGQtcGVybWlzc2lvbnMtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbnMvcGVybWlzc2lvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9wZXJtaXNzaW9ucy9wZXJtaXNzaW9ucy10ZW1wbGF0ZS9wZXJtaXNzaW9ucy10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcGVybWlzc2lvbnMvcGVybWlzc2lvbnMvcGVybWlzc2lvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy91c2VyL3VzZXIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy91c2VyL3VzZXIvdXNlci5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdHRhY2htZW50LW1vZGFsL2F0dGFjaG1lbnQtbW9kYWwubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdHRhY2htZW50LW1vZGFsL2F0dGFjaG1lbnRzL2F0dGFjaG1lbnRzLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RpYWdyYW1zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90b2FzdHMnO1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZpZWxkcy1yZW5kZXJlci9keW5hbWljLWZpZWxkcy1yZW5kZXJlci5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZmllbGRzLXJlbmRlcmVyL2R5bmFtaWMtZmllbGRzLXJlbmRlcmVyL2R5bmFtaWMtZmllbGRzLXJlbmRlcmVyLmNvbXBvbmVudCc7XHJcblxyXG4vLyBleHBvcnQgYWxsIGZyb20gc2hhcmVkIG1vZHVsZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jb21wb25lbnRzL2l0ZW0tbGlzdC9pdGVtLWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbXBvbmVudHMvbm8tZGF0YS9uby1kYXRhLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jb21wb25lbnRzL3JlYWQtbW9yZS9yZWFkLW1vcmUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLWF1dG9jb21wbGV0ZS9zZWFyY2gtYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvY29tcG9uZW50cy91c2VyLWNhcmQvdXNlci1jYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jb21wb25lbnRzL2dlbmVyYWwtbm90aWZpY2F0aW9uLXBvcHVwL2dlbmVyYWwtbm90aWZpY2F0aW9uLXBvcHVwLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9saWJyYXJ5U2hhcmVkLm1vZHVsZSc7XHJcblxyXG4vLyBleHBvcnQgYWxsIGZyb20gc2hhcmVkIHNlcnZpY2VzIG1vZHVsZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtc2VydmljZXMvZ2xvYmFsLWFkbWluLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtc2VydmljZXMvc2hhcmVkLXNlcnZpY2VzLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC1zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQtc2VydmljZXMvYXBpcy1lcnJvcnMtbWVzc2FnZXMuc2VydmljZSc7XHJcblxyXG4vLyBleHBvcnQgYWxsIGZyb20gY29yZSBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9hZGFwdGVycy9hZGFwdGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL2VudW1zL2xhbmd1YWdlLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL2Vudi9pbmRleCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvbW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy8nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2NhbGxBcGkvY2FsbC1hcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvZXh0ZW5zaW9uL2FjdGlvbi5leHRlbnNpb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9leHRlbnNpb24vY29tcG9uZW50LXJlZ2lzdGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2V4dGVuc2lvbi9leHRlbmlvbi11dGlscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvc2VydmljZXMvZXh0ZW5zaW9uL2V4dGVuc2lvbi1lbGVtZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9leHRlbnNpb24vZXh0ZW5zaW9uLWxvYWRlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9leHRlbnNpb24vZXh0ZW5zaW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2luaXRpYWxpemF0aW9uL2luaXRpYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL2xvY2FsU3RvcmFnL2xvY2FsLXN0b3JhZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy9yb2xlcy9yb2xlcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGUtbG9hZGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3NlcnZpY2VzL3VzZXIvdXNlci1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS91dGlsaXRpZXMvbW9tZW50LWRhdGUtYWRhcHRlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvdXRpbGl0aWVzL3V0aWxpdHkuc2VydmljZSc7XHJcblxyXG4vLyBleHBvcnQgYWxsIHBpcGVzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2ZpbGUtc2l6ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvaGlqcmktZGF0ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvbG9jYWxpemVkLWRhdGUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL211bHRpLXZhbHVlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9waXBlcy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9zZWN1cmUtaHRtbC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvc2VjdXJlLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy90aW1lLWFnby5waXBlJztcclxuXHJcbi8vZXhwb3J0IGFsbCBkaXJlY3RpdmVzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9hcHAtaGFzLXJvbGUvYXBwLWhhcy1yb2xlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9jbGlja091dFNpZGUvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvZGlyZWN0aXZlLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlL3Blcm1pc3Npb25zL3Blcm1pc3Npb25zLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9ydGwvc2V0LWRpci1ydGwuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlL3J0bC9zZXQtcnRsLmRpcmVjdGl2ZSc7XHJcblxyXG4vL2V4cG9ydCBhbGwgY29uZmlndXJhdGlvblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWd1cmF0aW9uL2FwcC1jb25maWcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbmZpZ3VyYXRpb24vaGVscGVycy9hcHAtaW5pdGlhbGl6ZXInO1xyXG5cclxuLy8gRXZhbFxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvcGVybWlzc2lvbnMvZXZhbHVhdG9ycy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29tbWVudHMvc2VydmljZXMvY29tbWVudC1hcGkuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvdG9rZW5zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uZGYtZGF0ZXBpY2tlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmRmLXBhbmVsJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uZGYtdGFicyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbm8tZGF0YS1mb3VuZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcmVwb3J0cy9jaGFydHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvbmRmLXJlcG9ydHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3JlcG9ydHMvY2hhcnQtcGFuZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3NrZWxldG9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90YWJsZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25kZi1jb25maWctZWRpdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uZGYtZmlsdGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmRmLXVwbG9hZGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uZGYtc2Nhbm5lcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmRmLXNpZ25hdHVyZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZXZhbHVhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbnN0YW50cyc7XHJcbiJdfQ==