@techextensor/tab-core-utility 2.2.175 → 2.2.177

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 (43) hide show
  1. package/esm2022/index.mjs +1 -1
  2. package/esm2022/lib/tab-core-utility/app/constants/app-object-constants.mjs +1 -1
  3. package/esm2022/lib/tab-core-utility/app/crud/tab-blueprint.service.mjs +1 -1
  4. package/esm2022/lib/tab-core-utility/app/crud/tab-crud.service.mjs +1 -1
  5. package/esm2022/lib/tab-core-utility/app/crud/tab-formio.service.mjs +1 -1
  6. package/esm2022/lib/tab-core-utility/app/crud/tab-release.service.mjs +1 -1
  7. package/esm2022/lib/tab-core-utility/app/enums/common.enum.mjs +1 -1
  8. package/esm2022/lib/tab-core-utility/app/helpers/common/app.helpers.mjs +8 -2
  9. package/esm2022/lib/tab-core-utility/app/helpers/common/meta-data.helpers.mjs +22 -1
  10. package/esm2022/lib/tab-core-utility/app/helpers/common/template.helpers.mjs +2 -2
  11. package/esm2022/lib/tab-core-utility/app/helpers/common/user-personalization.helper.mjs +1 -1
  12. package/esm2022/lib/tab-core-utility/app/interfaces/auth.interface.mjs +1 -1
  13. package/esm2022/lib/tab-core-utility/app/interfaces/common.interface.mjs +1 -1
  14. package/esm2022/lib/tab-core-utility/app/interfaces/grid.interface.mjs +1 -1
  15. package/esm2022/lib/tab-core-utility/app/interfaces/orgInfo.interface.mjs +1 -1
  16. package/esm2022/lib/tab-core-utility/app/interfaces/schema.interface.mjs +1 -1
  17. package/esm2022/lib/tab-core-utility/app/interfaces/user.interface.mjs +1 -1
  18. package/esm2022/lib/tab-core-utility/app/models/app-field.model.mjs +1 -1
  19. package/esm2022/lib/tab-core-utility/app/models/app-menu.model.mjs +1 -1
  20. package/esm2022/lib/tab-core-utility/app/models/app-object.model.mjs +1 -1
  21. package/esm2022/lib/tab-core-utility/app/models/app-screen.model.mjs +1 -1
  22. package/esm2022/lib/tab-core-utility/app/models/data-source-query.model.mjs +1 -1
  23. package/esm2022/lib/tab-core-utility/app/models/filter.model.mjs +1 -1
  24. package/esm2022/lib/tab-core-utility/app/models/orgInfo.model.mjs +1 -1
  25. package/esm2022/lib/tab-core-utility/app/models/parameter.model.mjs +1 -1
  26. package/esm2022/lib/tab-core-utility/app/models/sort.model.mjs +1 -1
  27. package/esm2022/lib/tab-core-utility/app/utils/req-res.util.mjs +2 -2
  28. package/esm2022/lib/tab-core-utility/auth/auth.service.mjs +1 -1
  29. package/esm2022/lib/tab-core-utility/auth/idb-storage.service.mjs +1 -1
  30. package/esm2022/lib/tab-core-utility/auth/local-storage.service.mjs +1 -1
  31. package/esm2022/lib/tab-core-utility/auth/session-storage.service.mjs +1 -1
  32. package/esm2022/lib/tab-core-utility/core/http-client/api-url.token.mjs +1 -1
  33. package/esm2022/lib/tab-core-utility/core/http-client/api.service.mjs +1 -1
  34. package/esm2022/lib/tab-core-utility/core/pipe/translate.pipe.mjs +1 -1
  35. package/esm2022/lib/tab-core-utility/core/provider/notification.provider.mjs +1 -1
  36. package/esm2022/lib/tab-core-utility/core/provider/translation.provider.mjs +1 -1
  37. package/esm2022/lib/tab-core-utility/core/service/confirmation.service.mjs +1 -1
  38. package/esm2022/lib/tab-core-utility/core/service/encryption.service.mjs +1 -1
  39. package/esm2022/lib/tab-core-utility/core/service/notification.service.mjs +1 -1
  40. package/esm2022/lib/tab-core-utility/core/service/translation.service.mjs +1 -1
  41. package/lib/tab-core-utility/app/helpers/common/app.helpers.d.ts +1 -0
  42. package/lib/tab-core-utility/app/helpers/common/meta-data.helpers.d.ts +5 -0
  43. package/package.json +1 -1
@@ -270,6 +270,27 @@ export class MetadataHelper {
270
270
  // If a filter function is given, apply it to the list of app screens.
271
271
  return filterFn ? list.filter(filterFn) : list;
272
272
  }
273
+ /**
274
+ * Clears all cached metadata safely.
275
+ * This should be called on context changes (e.g., when app, org, or session changes).
276
+ */
277
+ clearCache() {
278
+ try {
279
+ // Clear maps
280
+ this.appObjectMap.clear();
281
+ this.appScreenMap.clear();
282
+ this.orgInfoMap.clear();
283
+ this.appMenuMap.clear();
284
+ // Reset lists
285
+ this.allAppObjects = null;
286
+ this.allAppScreens = null;
287
+ this.allOrgInfos = null;
288
+ this.allAppMenus = null;
289
+ }
290
+ catch (error) {
291
+ console.warn('MetadataHelper Failed to clear cache:', error);
292
+ }
293
+ }
273
294
  static { this.ɵfac = function MetadataHelper_Factory(t) { return new (t || MetadataHelper)(); }; }
274
295
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MetadataHelper, factory: MetadataHelper.ɵfac, providedIn: 'root' }); }
275
296
  }
@@ -277,4 +298,4 @@ export class MetadataHelper {
277
298
  type: Injectable,
278
299
  args: [{ providedIn: 'root' }]
279
300
  }], null, null); })();
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS1kYXRhLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vbWV0YS1kYXRhLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUcvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFVSxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3hELGtCQUFhLEdBQTRCLElBQUksQ0FBQztRQUU5QyxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3hELGtCQUFhLEdBQTRCLElBQUksQ0FBQztRQUU5QyxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7UUFDcEQsZ0JBQVcsR0FBMEIsSUFBSSxDQUFDO1FBRTFDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUNwRCxnQkFBVyxHQUEwQixJQUFJLENBQUM7UUFFakMs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LEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDekIsQ0FBQztRQUVGLHNFQUFzRTtRQUN0RSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7K0VBeFdVLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWMsbUJBREQsTUFBTTs7aUZBQ25CLGNBQWM7Y0FEMUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb24gfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzL2NvbW1vblwiO1xuaW1wb3J0IHsgQXBwT2JqZWN0TW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcC1vYmplY3QubW9kZWxcIjtcbmltcG9ydCB7IEFwcEZpZWxkTW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcC1maWVsZC5tb2RlbFwiO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2RhdGEtc291cmNlLXF1ZXJ5Lm1vZGVsXCI7XG5pbXBvcnQgeyBNZXRhZGF0YUVudGl0eVR5cGUgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zY2hlbWEuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBBcHBTY3JlZW5Nb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXBwLXNjcmVlbi5tb2RlbFwiO1xuaW1wb3J0IHsgT3JnSW5mb01vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9vcmdJbmZvLm1vZGVsXCI7XG5pbXBvcnQgeyBBcHBNZW51TW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcC1tZW51Lm1vZGVsXCI7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vYXV0aC9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZVwiO1xuaW1wb3J0IHsgU3RvcmFnZUNvbnN0YW50cyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHMvc3RvcmFnZS1jb25zdGFudHNcIjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YUhlbHBlciB7XG4gIHByaXZhdGUgYXBwT2JqZWN0TWFwID0gbmV3IE1hcDxzdHJpbmcsIEFwcE9iamVjdE1vZGVsIHwgbnVsbD4oKTtcbiAgcHJpdmF0ZSBhbGxBcHBPYmplY3RzOiBBcHBPYmplY3RNb2RlbFtdIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBhcHBTY3JlZW5NYXAgPSBuZXcgTWFwPHN0cmluZywgQXBwU2NyZWVuTW9kZWwgfCBudWxsPigpO1xuICBwcml2YXRlIGFsbEFwcFNjcmVlbnM6IEFwcFNjcmVlbk1vZGVsW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIG9yZ0luZm9NYXAgPSBuZXcgTWFwPHN0cmluZywgT3JnSW5mb01vZGVsIHwgbnVsbD4oKTtcbiAgcHJpdmF0ZSBhbGxPcmdJbmZvczogT3JnSW5mb01vZGVsW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGFwcE1lbnVNYXAgPSBuZXcgTWFwPHN0cmluZywgQXBwTWVudU1vZGVsIHwgbnVsbD4oKTtcbiAgcHJpdmF0ZSBhbGxBcHBNZW51czogQXBwTWVudU1vZGVsW10gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KFNlc3Npb25TdG9yYWdlU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZ2V0IGN1cnJlbnQgYXBwIElEIGZyb20gc2Vzc2lvblxuICAgKiBAcmV0dXJucyBDdXJyZW50IGFwcCBJRCBvciBudWxsIGlmIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIHByaXZhdGUgZ2V0Q3VycmVudEFwcElkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhcHBJbmZvID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0U2Vzc2lvblN0b3JhZ2UoU3RvcmFnZUNvbnN0YW50cy5hcHBJbmZvKTtcbiAgICAgIGNvbnN0IHBhcnNlZEFwcEluZm8gPSBhcHBJbmZvID8gSlNPTi5wYXJzZShhcHBJbmZvKSA6IG51bGw7XG4gICAgICByZXR1cm4gcGFyc2VkQXBwSW5mbz8uSWQgfHwgbnVsbDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgYXBwIElEIGZyb20gc2Vzc2lvbjonLCBlcnJvcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkgZnJvbSB0aGUgZ2l2ZW4gbWFwLlxuICAgKiBJZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAsIGFuZCB0aGUgc291cmNlIGxpc3QgY29udGFpbnMgYW4gaXRlbSB0aGF0IG1hdGNoZXNcbiAgICogdGhlIGdpdmVuIGNvbmRpdGlvbiwgaXQgY3JlYXRlcyBhIG5ldyBtb2RlbCB1c2luZyB0aGUgZ2l2ZW4gbW9kZWwgZmFjdG9yeSBhbmQgYWRkcyBpdCB0byB0aGUgbWFwLlxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gc2VhcmNoIGluLlxuICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHNvdXJjZUxpc3QgVGhlIGxpc3Qgb2YgaXRlbXMgdG8gc2VhcmNoIGluLlxuICAgKiBAcGFyYW0gbWF0Y2hGbiBUaGUgY29uZGl0aW9uIHRvIG1hdGNoLlxuICAgKiBAcGFyYW0gbW9kZWxGYWN0b3J5IFRoZSBmYWN0b3J5IHRvIGNyZWF0ZSBhIG5ldyBtb2RlbCBpZiB0aGUga2V5IGRvZXMgbm90IGV4aXN0LlxuICAgKiBAcmV0dXJucyBUaGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXksIG9yIG51bGwgaWYgbm8gbWF0Y2ggaXMgZm91bmQuXG4gICAqL1xuICBwcml2YXRlIGdldEZyb21NYXBPckNyZWF0ZTxUPihcbiAgICBtYXA6IE1hcDxzdHJpbmcsIFQgfCBudWxsPixcbiAgICBrZXk6IHN0cmluZyxcbiAgICBzb3VyY2VMaXN0OiBUW10sXG4gICAgbWF0Y2hGbjogKGl0ZW06IFQpID0+IGJvb2xlYW4sXG4gICAgbW9kZWxGYWN0b3J5OiAoaXRlbTogVCkgPT4gVFxuICApOiBUIHwgbnVsbCB7XG4gICAgaWYgKCFrZXkpIHJldHVybiBudWxsO1xuICAgIGlmIChtYXAuaGFzKGtleSkpIHJldHVybiBtYXAuZ2V0KGtleSkgfHwgbnVsbDtcblxuICAgIGNvbnN0IGl0ZW0gPSBzb3VyY2VMaXN0LmZpbmQobWF0Y2hGbik7XG4gICAgY29uc3QgbW9kZWwgPSBpdGVtID8gbW9kZWxGYWN0b3J5KGl0ZW0pIDogbnVsbDtcbiAgICBtYXAuc2V0KGtleSwgbW9kZWwpO1xuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMYXppbHkgaW5pdGlhbGl6ZXMgYSBsaXN0IG9mIG1vZGVscyBmcm9tIGEgc291cmNlIGxpc3QuXG4gICAqIEl0IGNyZWF0ZXMgYSBuZXcgbW9kZWwgZm9yIGVhY2ggaXRlbSBpbiB0aGUgc291cmNlIGxpc3QgYW5kIGFkZHMgaXQgdG8gdGhlIGdpdmVuIG1hcC5cbiAgICogSXQgYWxzbyBzZXRzIHRoZSBsaXN0IG9mIG1vZGVscyB0byB0aGUgZ2l2ZW4gc2V0dGVyLlxuICAgKiBAcGFyYW0gbGlzdFJlZiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBsaXN0IG9mIG1vZGVscy5cbiAgICogQHBhcmFtIHNldHRlciBUaGUgc2V0dGVyIHRvIHNldCB0aGUgbGlzdCBvZiBtb2RlbHMuXG4gICAqIEBwYXJhbSBzb3VyY2VMaXN0IFRoZSBzb3VyY2UgbGlzdCBvZiBpdGVtcy5cbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIHN0b3JlIHRoZSBtb2RlbHMuXG4gICAqIEBwYXJhbSBnZXRLZXlzIFRoZSBmdW5jdGlvbiB0byBnZXQgdGhlIGtleXMgZm9yIHRoZSBnaXZlbiBpdGVtLlxuICAgKiBAcGFyYW0gbW9kZWxGYWN0b3J5IFRoZSBmYWN0b3J5IHRvIGNyZWF0ZSBhIG5ldyBtb2RlbCBmb3IgdGhlIGdpdmVuIGl0ZW0uXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIG1vZGVscy5cbiAgICovXG4gIHByaXZhdGUgbGF6eUluaXRMaXN0PFQsIE0+KFxuICAgIGxpc3RSZWY6IE1bXSB8IG51bGwsXG4gICAgc2V0dGVyOiAobGlzdDogTVtdKSA9PiB2b2lkLFxuICAgIHNvdXJjZUxpc3Q6IFRbXSxcbiAgICBtYXA6IE1hcDxzdHJpbmcsIE0gfCBudWxsPixcbiAgICBnZXRLZXlzOiAoaXRlbTogVCkgPT4gc3RyaW5nW10sXG4gICAgbW9kZWxGYWN0b3J5OiAoaXRlbTogVCkgPT4gTVxuICApOiBNW10ge1xuICAgIC8vIElmIHRoZSBsaXN0IGlzIGFscmVhZHkgaW5pdGlhbGl6ZWQsIHJldHVybiBpdC5cbiAgICBpZiAobGlzdFJlZikgcmV0dXJuIGxpc3RSZWY7XG5cbiAgICAvLyBDcmVhdGUgYSBuZXcgbW9kZWwgZm9yIGVhY2ggaXRlbSBpbiB0aGUgc291cmNlIGxpc3QgYW5kIGFkZCBpdCB0byB0aGUgbWFwLlxuICAgIGNvbnN0IG1vZGVscyA9IHNvdXJjZUxpc3QubWFwKChpdGVtOiBUKSA9PiB7XG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsRmFjdG9yeShpdGVtKTtcbiAgICAgIGdldEtleXMoaXRlbSkuZm9yRWFjaChrZXkgPT4gbWFwLnNldChrZXksIG1vZGVsKSk7XG4gICAgICByZXR1cm4gbW9kZWw7XG4gICAgfSk7XG5cbiAgICAvLyBTZXQgdGhlIGxpc3Qgb2YgbW9kZWxzIHRvIHRoZSBnaXZlbiBzZXR0ZXIuXG4gICAgc2V0dGVyKG1vZGVscyk7XG5cbiAgICAvLyBSZXR1cm4gdGhlIGxpc3Qgb2YgbW9kZWxzLlxuICAgIHJldHVybiBtb2RlbHM7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYW4gYXBwIG9iamVjdCBpbiB0aGUgbWFwIGJ5IGl0cyBuYW1lIG9yIGlkLlxuICAgKiBJZiB0aGUgYXBwIG9iamVjdCBpcyBub3QgZm91bmQsIGl0IGNyZWF0ZXMgYSBuZXcgb25lIGFuZCBhZGRzIGl0IHRvIHRoZSBtYXAuXG4gICAqIEBwYXJhbSBuYW1lT3JJZCBUaGUgbmFtZSBvciBpZCBvZiB0aGUgYXBwIG9iamVjdCB0byBmaW5kLlxuICAgKiBAcmV0dXJucyBUaGUgYXBwIG9iamVjdCBpZiBmb3VuZCwgb3IgbnVsbCBpZiBub3QgZm91bmQuXG4gICAqL1xuICBnZXRBcHBPYmplY3RCeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBPYmplY3RNb2RlbCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmdldEZyb21NYXBPckNyZWF0ZShcbiAgICAgIHRoaXMuYXBwT2JqZWN0TWFwLFxuICAgICAgbmFtZU9ySWQsXG4gICAgICBDb21tb24udGFiSnNvbi5BcHBPYmplY3RzLFxuICAgICAgb2JqID0+IG9iai5PYmplY3ROYW1lID09PSBuYW1lT3JJZCB8fCBvYmouSUQ/LnRvTG93ZXJDYXNlKCkgPT09IG5hbWVPcklkPy50b0xvd2VyQ2FzZSgpLFxuICAgICAgb2JqID0+IG5ldyBBcHBPYmplY3RNb2RlbChvYmosIHRoaXMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhcHAgb2JqZWN0cyBpbiB0aGUgbWV0YWRhdGEuXG4gICAqIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBpdCBpcyBhcHBsaWVkIHRvIGVhY2ggYXBwIG9iamVjdC5cbiAgICogQHBhcmFtIGZpbHRlckZuIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGFwcCBvYmplY3RzLlxuICAgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiBhcHAgb2JqZWN0cy5cbiAgICovXG4gIGdldEFsbEFwcE9iamVjdHMoZmlsdGVyRm4/OiAob2JqOiBBcHBPYmplY3RNb2RlbCkgPT4gYm9vbGVhbiwgaW5jbHVkZVN5c3RlbURhdGEgPSBmYWxzZSk6IEFwcE9iamVjdE1vZGVsW10ge1xuICAgIC8vIEluaXRpYWxpemUgdGhlIGxpc3Qgb2YgYXBwIG9iamVjdHMgbGF6aWx5LlxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxhenlJbml0TGlzdChcbiAgICAgIHRoaXMuYWxsQXBwT2JqZWN0cyxcbiAgICAgIHZhbCA9PiAodGhpcy5hbGxBcHBPYmplY3RzID0gdmFsKSxcbiAgICAgIENvbW1vbi50YWJKc29uLkFwcE9iamVjdHMsXG4gICAgICB0aGlzLmFwcE9iamVjdE1hcCxcbiAgICAgIChvYmo6IGFueSkgPT4gW29iai5JRD8udG9Mb3dlckNhc2UoKSwgb2JqLk9iamVjdE5hbWVdLFxuICAgICAgb2JqID0+IG5ldyBBcHBPYmplY3RNb2RlbChvYmosIHRoaXMpXG4gICAgKTtcblxuICAgIGxldCBmaWx0ZXJlZExpc3Q6IEFwcE9iamVjdE1vZGVsW10gPSBsaXN0O1xuICAgIGlmICghaW5jbHVkZVN5c3RlbURhdGEpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRBcHBJZCA9IHRoaXMuZ2V0Q3VycmVudEFwcElkKCk/LnRvTG93ZXJDYXNlKCk7XG4gICAgICBmaWx0ZXJlZExpc3QgPSBsaXN0LmZpbHRlcihvYmogPT4gXG4gICAgICAgICFvYmouQXBwSWQgfHwgICAgICAgICAgICAgICAgICAgIC8vIEdsb2JhbCBkYXRhIChhcHAgPSBudWxsKVxuICAgICAgICBvYmouQXBwSWQgPT09IGN1cnJlbnRBcHBJZCAgICAgICAvLyBDdXJyZW50IGFwcCBkYXRhXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBhcHBseSBpdCB0byB0aGUgbGlzdCBvZiBhcHAgb2JqZWN0cy5cbiAgICByZXR1cm4gZmlsdGVyRm4gPyBmaWx0ZXJlZExpc3QuZmlsdGVyKGZpbHRlckZuKSA6IGZpbHRlcmVkTGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBmaWVsZHMgaW4gdGhlIG1ldGFkYXRhLlxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byBlYWNoIGZpZWxkLlxuICAgKiBAcGFyYW0gZmlsdGVyRm4gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgZmllbGRzLlxuICAgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiBmaWVsZHMuXG4gICAqL1xuICBnZXRBbGxGaWVsZHMoZmlsdGVyRm4/OiAoZmllbGQ6IEFwcEZpZWxkTW9kZWwpID0+IGJvb2xlYW4sIGluY2x1ZGVTeXN0ZW1EYXRhID0gZmFsc2UpOiBBcHBGaWVsZE1vZGVsW10ge1xuICAgIC8vIEdldCBhIGxpc3Qgb2YgYWxsIGZpZWxkcyBmcm9tIGFsbCBhcHAgb2JqZWN0cy5cbiAgICBjb25zdCBhbGxGaWVsZHMgPSB0aGlzLmdldEFsbEFwcE9iamVjdHModW5kZWZpbmVkLCBpbmNsdWRlU3lzdGVtRGF0YSkuZmxhdE1hcChvYmogPT4gb2JqLmZpZWxkcygpKTtcblxuICAgIC8vIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBhcHBseSBpdCB0byB0aGUgbGlzdCBvZiBmaWVsZHMuXG4gICAgcmV0dXJuIGZpbHRlckZuID8gYWxsRmllbGRzLmZpbHRlcihmaWx0ZXJGbikgOiBhbGxGaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgYSBmaWVsZCBieSBpdHMgSUQgYWNyb3NzIGFsbCBhcHAgb2JqZWN0c1xuICAgKiBAcGFyYW0gZmllbGRJZCBUaGUgSUQgb2YgdGhlIGZpZWxkIHRvIGZpbmRcbiAgICogQHJldHVybnMgVGhlIGZpZWxkIGlmIGZvdW5kLCBvciBudWxsIGlmIG5vdCBmb3VuZFxuICAgKi9cbiAgZ2V0RmllbGRCeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBGaWVsZE1vZGVsIHwgbnVsbCB7XG4gICAgaWYgKCFuYW1lT3JJZCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWxsRmllbGRzKGZpZWxkID0+IFxuICAgICAgZmllbGQuSUQ/LnRvTG93ZXJDYXNlKCkgPT09IG5hbWVPcklkPy50b0xvd2VyQ2FzZSgpIHx8IFxuICAgICAgZmllbGQuRmllbGROYW1lID09PSBuYW1lT3JJZCxcbiAgICAgIHRydWVcbiAgICApWzBdIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgZGF0YSBzb3VyY2UgcXVlcmllcyBpbiB0aGUgbWV0YWRhdGEuXG4gICAqIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBpdCBpcyBhcHBsaWVkIHRvIGVhY2ggZGF0YSBzb3VyY2UgcXVlcnkuXG4gICAqIEBwYXJhbSBmaWx0ZXJGbiBUaGUgZmlsdGVyIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBkYXRhIHNvdXJjZSBxdWVyaWVzLlxuICAgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiBkYXRhIHNvdXJjZSBxdWVyaWVzLlxuICAgKi9cbiAgZ2V0QWxsRGF0YVNvdXJjZVF1ZXJpZXMoZmlsdGVyRm4/OiAoZHNxOiBEYXRhU291cmNlUXVlcnlNb2RlbCkgPT4gYm9vbGVhbixpbmNsdWRlU3lzdGVtRGF0YSA9IGZhbHNlKTogRGF0YVNvdXJjZVF1ZXJ5TW9kZWxbXSB7XG4gICAgLy8gR2V0IGEgbGlzdCBvZiBhbGwgZGF0YSBzb3VyY2UgcXVlcmllcyBmcm9tIGFsbCBhcHAgb2JqZWN0cy5cbiAgICBjb25zdCBhbGxEU1FzID0gdGhpcy5nZXRBbGxBcHBPYmplY3RzKHVuZGVmaW5lZCwgaW5jbHVkZVN5c3RlbURhdGEpLmZsYXRNYXAob2JqID0+IG9iai5kYXRhU291cmNlUXVlcmllcygpKTtcblxuICAgIC8vIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBhcHBseSBpdCB0byB0aGUgbGlzdCBvZiBkYXRhIHNvdXJjZSBxdWVyaWVzLlxuICAgIHJldHVybiBmaWx0ZXJGbiA/IGFsbERTUXMuZmlsdGVyKGZpbHRlckZuKSA6IGFsbERTUXM7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgZGF0YSBzb3VyY2UgcXVlcnkgYnkgaXRzIElELCBRdWVyeU5hbWUsIG9yIERpc3BsYXlOYW1lLlxuICAgKiBTZWFyY2hlcyB0aHJvdWdoIGFsbCBkYXRhIHNvdXJjZSBxdWVyaWVzIGFuZCByZXR1cm5zIHRoZSBmaXJzdCBtYXRjaC5cbiAgICogXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lT3JJZCAtIFRoZSBJRCwgUXVlcnlOYW1lLCBvciBEaXNwbGF5TmFtZSBvZiB0aGUgZGF0YSBzb3VyY2UgcXVlcnkgdG8gcmV0cmlldmUuXG4gICAqIEByZXR1cm5zIHtEYXRhU291cmNlUXVlcnlNb2RlbCB8IG51bGx9IC0gVGhlIGRhdGEgc291cmNlIHF1ZXJ5IG1vZGVsIGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbC5cbiAgICovXG4gIGdldERhdGFTb3VyY2VRdWVyeUJ5SWRPck5hbWUobmFtZU9ySWQ6IHN0cmluZyk6IERhdGFTb3VyY2VRdWVyeU1vZGVsIHwgbnVsbCB7XG4gICAgLy8gU2VhcmNoIGZvciB0aGUgZGF0YSBzb3VyY2UgcXVlcnkgYnkgSUQsIFF1ZXJ5TmFtZSwgb3IgRGlzcGxheU5hbWVcbiAgICByZXR1cm4gdGhpcy5nZXRBbGxEYXRhU291cmNlUXVlcmllcyh1bmRlZmluZWQsdHJ1ZSkuZmluZChcbiAgICAgIGRzcSA9PiBkc3E/LklEPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lT3JJZD8udG9Mb3dlckNhc2UoKSB8fCBkc3E/LlF1ZXJ5TmFtZSA9PT0gbmFtZU9ySWQgfHwgZHNxPy5EaXNwbGF5TmFtZSA9PT0gbmFtZU9ySWRcbiAgICApIHx8IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGFuIGFwcCBzY3JlZW4gYnkgaXRzIElELCBOYW1lLCBvciBEaXNwbGF5TmFtZS5cbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgYXBwIHNjcmVlbnMgYW5kIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoLlxuICAgKiBcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPcklkIC0gVGhlIElELCBOYW1lLCBvciBEaXNwbGF5TmFtZSBvZiB0aGUgYXBwIHNjcmVlbiB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybnMge0FwcFNjcmVlbk1vZGVsIHwgbnVsbH0gLSBUaGUgYXBwIHNjcmVlbiBtb2RlbCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXG4gICAqL1xuICBnZXRBcHBTY3JlZW5CeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBTY3JlZW5Nb2RlbCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmdldEZyb21NYXBPckNyZWF0ZShcbiAgICAgIHRoaXMuYXBwU2NyZWVuTWFwLFxuICAgICAgbmFtZU9ySWQsXG4gICAgICBDb21tb24udGFiSnNvbi5BcHBTY3JlZW5zLFxuICAgICAgc2NyZWVuID0+IHNjcmVlbj8uSUQ/LnRvTG93ZXJDYXNlKCkgPT09IG5hbWVPcklkPy50b0xvd2VyQ2FzZSgpIHx8IHNjcmVlbj8uTmFtZSA9PT0gbmFtZU9ySWQsXG4gICAgICBzY3JlZW4gPT4gbmV3IEFwcFNjcmVlbk1vZGVsKHNjcmVlbilcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIGFwcCBzY3JlZW5zLlxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucy5cbiAgICogXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZpbHRlckZuIC0gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgYXBwIHNjcmVlbnMuXG4gICAqIEByZXR1cm5zIHtBcHBTY3JlZW5Nb2RlbFtdfSAtIFRoZSBsaXN0IG9mIGFwcCBzY3JlZW5zLlxuICAgKi9cbiAgZ2V0QWxsQXBwU2NyZWVucyhmaWx0ZXJGbj86IChzY3JlZW46IEFwcFNjcmVlbk1vZGVsKSA9PiBib29sZWFuKTogQXBwU2NyZWVuTW9kZWxbXSB7XG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucyBsYXppbHkuXG4gICAgY29uc3QgbGlzdCA9IHRoaXMubGF6eUluaXRMaXN0KFxuICAgICAgdGhpcy5hbGxBcHBTY3JlZW5zLFxuICAgICAgdmFsID0+ICh0aGlzLmFsbEFwcFNjcmVlbnMgPSB2YWwpLFxuICAgICAgQ29tbW9uLnRhYkpzb24uQXBwU2NyZWVucyxcbiAgICAgIHRoaXMuYXBwU2NyZWVuTWFwLFxuICAgICAgKHM6IGFueSkgPT4gW3M/LklEPy50b0xvd2VyQ2FzZSgpLCBzPy5OYW1lXSxcbiAgICAgIHMgPT4gbmV3IEFwcFNjcmVlbk1vZGVsKHMpXG4gICAgKTtcblxuICAgIC8vIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBhcHBseSBpdCB0byB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucy5cbiAgICByZXR1cm4gZmlsdGVyRm4gPyBsaXN0LmZpbHRlcihmaWx0ZXJGbikgOiBsaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBvcmdhbml6YXRpb24gaW5mbyBieSBpdHMgSUQgb3IgVGVuYW50Q29kZS5cbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgb3JnYW5pemF0aW9uIGluZm8gYW5kIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoLlxuICAgKiBcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPclRlbmFudENvZGUgLSBUaGUgSUQgb3IgVGVuYW50Q29kZSBvZiB0aGUgb3JnYW5pemF0aW9uIGluZm8gdG8gcmV0cmlldmUuXG4gICAqIEByZXR1cm5zIHtPcmdJbmZvTW9kZWwgfCBudWxsfSAtIFRoZSBvcmdhbml6YXRpb24gaW5mbyBtb2RlbCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXG4gICAqL1xuICBnZXRPcmdJbmZvQnlJZE9yVGVuYW50Q29kZShuYW1lT3JUZW5hbnRDb2RlOiBzdHJpbmcpOiBPcmdJbmZvTW9kZWwgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGcm9tTWFwT3JDcmVhdGUoXG4gICAgICB0aGlzLm9yZ0luZm9NYXAsXG4gICAgICBuYW1lT3JUZW5hbnRDb2RlLFxuICAgICAgQ29tbW9uLnRhYkpzb24uT3JnSW5mb3MsXG4gICAgICAvLyBTZWFyY2ggZm9yIHRoZSBvcmdhbml6YXRpb24gaW5mbyBieSBJRCBvciBUZW5hbnRDb2RlXG4gICAgICBvcmcgPT4gb3JnLklEPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lT3JUZW5hbnRDb2RlPy50b0xvd2VyQ2FzZSgpIHx8IG9yZy5UZW5hbnRDb2RlID09PSBuYW1lT3JUZW5hbnRDb2RlLFxuICAgICAgLy8gQ3JlYXRlIGEgbmV3IE9yZ0luZm9Nb2RlbCBpZiB0aGUgb3JnYW5pemF0aW9uIGluZm8gaXMgZm91bmRcbiAgICAgIG9yZyA9PiBuZXcgT3JnSW5mb01vZGVsKG9yZylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIG9yZ2FuaXphdGlvbiBpbmZvLlxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byB0aGUgbGlzdCBvZiBvcmdhbml6YXRpb24gaW5mby5cbiAgICogXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZpbHRlckZuIC0gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgb3JnYW5pemF0aW9uIGluZm8uXG4gICAqIEByZXR1cm5zIHtPcmdJbmZvTW9kZWxbXX0gLSBUaGUgbGlzdCBvZiBvcmdhbml6YXRpb24gaW5mby5cbiAgICovXG4gIGdldEFsbE9yZ0luZm9zKGZpbHRlckZuPzogKG9yZzogT3JnSW5mb01vZGVsKSA9PiBib29sZWFuKTogT3JnSW5mb01vZGVsW10ge1xuICAgIC8vIEluaXRpYWxpemUgdGhlIGxpc3Qgb2Ygb3JnYW5pemF0aW9uIGluZm8gbGF6aWx5LlxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxhenlJbml0TGlzdChcbiAgICAgIHRoaXMuYWxsT3JnSW5mb3MsXG4gICAgICB2YWwgPT4gKHRoaXMuYWxsT3JnSW5mb3MgPSB2YWwpLFxuICAgICAgQ29tbW9uLnRhYkpzb24uT3JnSW5mb3MsXG4gICAgICB0aGlzLm9yZ0luZm9NYXAsXG4gICAgICAob3JnOiBhbnkpID0+IFtvcmc/LklEPy50b0xvd2VyQ2FzZSgpLCBvcmc/LlRlbmFudENvZGVdLFxuICAgICAgb3JnID0+IG5ldyBPcmdJbmZvTW9kZWwob3JnKVxuICAgICk7XG5cbiAgICAvLyBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgYXBwbHkgaXQgdG8gdGhlIGxpc3Qgb2Ygb3JnYW5pemF0aW9uIGluZm8uXG4gICAgcmV0dXJuIGZpbHRlckZuID8gbGlzdC5maWx0ZXIoZmlsdGVyRm4pIDogbGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIGdsb2JhbCBzZWFyY2ggYWNyb3NzIGFsbCBtZXRhZGF0YSBmb3IgYSBnaXZlbiBzZWFyY2ggdGVybS5cbiAgICogWW91IGNhbiBuYXJyb3cgdGhlIHNlYXJjaCBieSBwcm92aWRpbmcgYSBsaXN0IG9mIGVudGl0eSB0eXBlcyB0byBzZWFyY2ggd2l0aGluLlxuICAgKiBcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRlcm0gLSBUaGUgc2VhcmNoIHRlcm0gdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHtNZXRhZGF0YUVudGl0eVR5cGVbXX0gZW50aXR5VHlwZXMgLSBUaGUgbGlzdCBvZiBlbnRpdHkgdHlwZXMgdG8gc2VhcmNoIHdpdGhpbi4gSWYgb21pdHRlZCwgYWxsIGVudGl0eSB0eXBlcyBhcmUgc2VhcmNoZWQuXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBhbnlbXT59IC0gQSBkaWN0aW9uYXJ5IHdpdGggcmVzdWx0cyBncm91cGVkIGJ5IGVudGl0eSB0eXBlLlxuICAgKi9cbiAgc2VhcmNoTWV0YWRhdGEodGVybTogc3RyaW5nLCBlbnRpdHlUeXBlcz86IE1ldGFkYXRhRW50aXR5VHlwZVtdKTogUmVjb3JkPHN0cmluZywgYW55W10+IHtcbiAgICBjb25zdCBzZWFyY2hUZXJtID0gdGVybS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55W10+ID0ge307XG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGlmIGEgZ2l2ZW4gZW50aXR5IHR5cGUgc2hvdWxkIGJlIHNlYXJjaGVkLlxuICAgICAqIEBwYXJhbSB7TWV0YWRhdGFFbnRpdHlUeXBlfSB0eXBlIC0gVGhlIGVudGl0eSB0eXBlIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGVudGl0eSB0eXBlIHNob3VsZCBiZSBzZWFyY2hlZC5cbiAgICAgKi9cbiAgICBjb25zdCBzaG91bGRTZWFyY2ggPSAodHlwZTogTWV0YWRhdGFFbnRpdHlUeXBlKSA9PiAhZW50aXR5VHlwZXMgfHwgZW50aXR5VHlwZXMuaW5jbHVkZXModHlwZSk7XG5cbiAgICBpZiAoc2hvdWxkU2VhcmNoKE1ldGFkYXRhRW50aXR5VHlwZS5BUFBfT0JKRUNUUykpIHtcbiAgICAgIC8vIFNlYXJjaCBmb3IgYXBwIG9iamVjdHMgYnkgSUQsIE9iamVjdE5hbWUsIERpc3BsYXlOYW1lLCBvciBTeXN0ZW1EQlRhYmxlTmFtZVxuICAgICAgcmVzdWx0W01ldGFkYXRhRW50aXR5VHlwZS5BUFBfT0JKRUNUU10gPSB0aGlzLmdldEFsbEFwcE9iamVjdHMob2JqID0+XG4gICAgICAgIFtvYmo/LklELCBvYmo/Lk9iamVjdE5hbWUsIG9iaj8uRGlzcGxheU5hbWUsIG9iaj8uU3lzdGVtREJUYWJsZU5hbWVdXG4gICAgICAgICAgLnNvbWUodmFsID0+IHZhbCA9PT0gc2VhcmNoVGVybSB8fCB2YWw/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChzaG91bGRTZWFyY2goTWV0YWRhdGFFbnRpdHlUeXBlLkFQUF9GSUVMRFMpKSB7XG4gICAgICAvLyBTZWFyY2ggZm9yIGFwcCBmaWVsZHMgYnkgdXNpbmcgdGhlIHNlYXJjaCBtZXRob2RcbiAgICAgIHJlc3VsdFtNZXRhZGF0YUVudGl0eVR5cGUuQVBQX0ZJRUxEU10gPSB0aGlzLmdldEFsbEZpZWxkcyhmaWVsZCA9PiBmaWVsZC5zZWFyY2goc2VhcmNoVGVybSkpO1xuICAgIH1cblxuICAgIGlmIChzaG91bGRTZWFyY2goTWV0YWRhdGFFbnRpdHlUeXBlLkRBVEFfU09VUkNFX1FVRVJJRVMpKSB7XG4gICAgICAvLyBTZWFyY2ggZm9yIGRhdGEgc291cmNlIHF1ZXJpZXMgYnkgdXNpbmcgdGhlIHNlYXJjaCBtZXRob2RcbiAgICAgIHJlc3VsdFtNZXRhZGF0YUVudGl0eVR5cGUuREFUQV9TT1VSQ0VfUVVFUklFU10gPSB0aGlzLmdldEFsbERhdGFTb3VyY2VRdWVyaWVzKGRzcSA9PiBkc3Euc2VhcmNoKHNlYXJjaFRlcm0pKTtcbiAgICB9XG5cbiAgICBpZiAoc2hvdWxkU2VhcmNoKE1ldGFkYXRhRW50aXR5VHlwZS5BUFBfU0NSRUVOUykpIHtcbiAgICAgIC8vIFNlYXJjaCBmb3IgYXBwIHNjcmVlbnMgYnkgdXNpbmcgdGhlIHNlYXJjaCBtZXRob2RcbiAgICAgIHJlc3VsdFtNZXRhZGF0YUVudGl0eVR5cGUuQVBQX1NDUkVFTlNdID0gdGhpcy5nZXRBbGxBcHBTY3JlZW5zKHNjcmVlbiA9PiBzY3JlZW4uc2VhcmNoKHNlYXJjaFRlcm0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBhcHAgbWVudSBieSBpdHMgSUQgb3IgbmFtZS5cbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgYXBwIG1lbnVzIGFuZCByZXR1cm5zIHRoZSBmaXJzdCBtYXRjaC5cbiAgICogXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lT3JJZCAtIFRoZSBJRCBvciBuYW1lIG9mIHRoZSBhcHAgbWVudSB0byByZXRyaWV2ZS5cbiAgICogQHJldHVybnMge0FwcE1lbnVNb2RlbCB8IG51bGx9IC0gVGhlIGFwcCBtZW51IG1vZGVsIGlmIGZvdW5kLCBvdGhlcndpc2UgbnVsbC5cbiAgICovXG4gIGdldEFwcE1lbnVCeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBNZW51TW9kZWwgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGcm9tTWFwT3JDcmVhdGUoXG4gICAgICB0aGlzLmFwcE1lbnVNYXAsXG4gICAgICBuYW1lT3JJZCxcbiAgICAgIENvbW1vbi50YWJKc29uLk1lbnVzLFxuICAgICAgLy8gU2VhcmNoIGZvciB0aGUgYXBwIG1lbnUgYnkgSUQgb3IgbmFtZVxuICAgICAgbWVudSA9PiBtZW51Py5JZD8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZU9ySWQ/LnRvTG93ZXJDYXNlKCkgfHwgbWVudT8uTWVudU5hbWUgPT09IG5hbWVPcklkLFxuICAgICAgLy8gQ3JlYXRlIGEgbmV3IEFwcE1lbnVNb2RlbCBpZiB0aGUgYXBwIG1lbnUgaXMgZm91bmRcbiAgICAgIG1lbnUgPT4gbmV3IEFwcE1lbnVNb2RlbChtZW51KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgYXBwIG1lbnVzLlxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byB0aGUgbGlzdCBvZiBhcHAgbWVudXMuXG4gICAqIFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBmaWx0ZXJGbiAtIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGFwcCBtZW51cy5cbiAgICogQHJldHVybnMge0FwcE1lbnVNb2RlbFtdfSAtIFRoZSBsaXN0IG9mIGFwcCBtZW51cy5cbiAgICovXG4gIGdldEFsbEFwcE1lbnVzKGZpbHRlckZuPzogKG1lbnU6IEFwcE1lbnVNb2RlbCkgPT4gYm9vbGVhbik6IEFwcE1lbnVNb2RlbFtdIHtcbiAgICAvLyBJbml0aWFsaXplIHRoZSBsaXN0IG9mIGFwcCBzY3JlZW5zIGxhemlseS5cbiAgICBjb25zdCBsaXN0ID0gdGhpcy5sYXp5SW5pdExpc3QoXG4gICAgICB0aGlzLmFsbEFwcE1lbnVzLFxuICAgICAgdmFsID0+ICh0aGlzLmFsbEFwcE1lbnVzID0gdmFsKSxcbiAgICAgIENvbW1vbi50YWJKc29uLk1lbnVzLFxuICAgICAgdGhpcy5hcHBNZW51TWFwLFxuICAgICAgKG06IGFueSkgPT4gW20/LklkPy50b0xvd2VyQ2FzZSgpLCBtPy5OYW1lXSxcbiAgICAgIHMgPT4gbmV3IEFwcE1lbnVNb2RlbChzKVxuICAgICk7XG5cbiAgICAvLyBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgYXBwbHkgaXQgdG8gdGhlIGxpc3Qgb2YgYXBwIHNjcmVlbnMuXG4gICAgcmV0dXJuIGZpbHRlckZuID8gbGlzdC5maWx0ZXIoZmlsdGVyRm4pIDogbGlzdDtcbiAgfVxufSJdfQ==
301
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS1kYXRhLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vbWV0YS1kYXRhLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUcvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLGNBQWM7SUFEM0I7UUFFVSxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3hELGtCQUFhLEdBQTRCLElBQUksQ0FBQztRQUU5QyxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO1FBQ3hELGtCQUFhLEdBQTRCLElBQUksQ0FBQztRQUU5QyxlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7UUFDcEQsZ0JBQVcsR0FBMEIsSUFBSSxDQUFDO1FBRTFDLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBK0IsQ0FBQztRQUNwRCxnQkFBVyxHQUEwQixJQUFJLENBQUM7UUFFakMs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LEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FDekIsQ0FBQztRQUVGLHNFQUFzRTtRQUN0RSxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDO1lBQ0gsYUFBYTtZQUNiLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFFeEIsY0FBYztZQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBRTFCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQzsrRUEvWFUsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFERCxNQUFNOztpRkFDbkIsY0FBYztjQUQxQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50cy9jb21tb25cIjtcclxuaW1wb3J0IHsgQXBwT2JqZWN0TW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcC1vYmplY3QubW9kZWxcIjtcclxuaW1wb3J0IHsgQXBwRmllbGRNb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvYXBwLWZpZWxkLm1vZGVsXCI7XHJcbmltcG9ydCB7IERhdGFTb3VyY2VRdWVyeU1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyeS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBNZXRhZGF0YUVudGl0eVR5cGUgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9zY2hlbWEuaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IEFwcFNjcmVlbk1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9hcHAtc2NyZWVuLm1vZGVsXCI7XHJcbmltcG9ydCB7IE9yZ0luZm9Nb2RlbCB9IGZyb20gXCIuLi8uLi9tb2RlbHMvb3JnSW5mby5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBcHBNZW51TW9kZWwgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2FwcC1tZW51Lm1vZGVsXCI7XHJcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9hdXRoL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN0b3JhZ2VDb25zdGFudHMgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzL3N0b3JhZ2UtY29uc3RhbnRzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgTWV0YWRhdGFIZWxwZXIge1xyXG4gIHByaXZhdGUgYXBwT2JqZWN0TWFwID0gbmV3IE1hcDxzdHJpbmcsIEFwcE9iamVjdE1vZGVsIHwgbnVsbD4oKTtcclxuICBwcml2YXRlIGFsbEFwcE9iamVjdHM6IEFwcE9iamVjdE1vZGVsW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBhcHBTY3JlZW5NYXAgPSBuZXcgTWFwPHN0cmluZywgQXBwU2NyZWVuTW9kZWwgfCBudWxsPigpO1xyXG4gIHByaXZhdGUgYWxsQXBwU2NyZWVuczogQXBwU2NyZWVuTW9kZWxbXSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIG9yZ0luZm9NYXAgPSBuZXcgTWFwPHN0cmluZywgT3JnSW5mb01vZGVsIHwgbnVsbD4oKTtcclxuICBwcml2YXRlIGFsbE9yZ0luZm9zOiBPcmdJbmZvTW9kZWxbXSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIGFwcE1lbnVNYXAgPSBuZXcgTWFwPHN0cmluZywgQXBwTWVudU1vZGVsIHwgbnVsbD4oKTtcclxuICBwcml2YXRlIGFsbEFwcE1lbnVzOiBBcHBNZW51TW9kZWxbXSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KFNlc3Npb25TdG9yYWdlU2VydmljZSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEhlbHBlciBtZXRob2QgdG8gZ2V0IGN1cnJlbnQgYXBwIElEIGZyb20gc2Vzc2lvblxyXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgYXBwIElEIG9yIG51bGwgaWYgbm90IGF2YWlsYWJsZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0Q3VycmVudEFwcElkKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgYXBwSW5mbyA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldFNlc3Npb25TdG9yYWdlKFN0b3JhZ2VDb25zdGFudHMuYXBwSW5mbyk7XHJcbiAgICAgIGNvbnN0IHBhcnNlZEFwcEluZm8gPSBhcHBJbmZvID8gSlNPTi5wYXJzZShhcHBJbmZvKSA6IG51bGw7XHJcbiAgICAgIHJldHVybiBwYXJzZWRBcHBJbmZvPy5JZCB8fCBudWxsO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgYXBwIElEIGZyb20gc2Vzc2lvbjonLCBlcnJvcik7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkgZnJvbSB0aGUgZ2l2ZW4gbWFwLlxyXG4gICAqIElmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hcCwgYW5kIHRoZSBzb3VyY2UgbGlzdCBjb250YWlucyBhbiBpdGVtIHRoYXQgbWF0Y2hlc1xyXG4gICAqIHRoZSBnaXZlbiBjb25kaXRpb24sIGl0IGNyZWF0ZXMgYSBuZXcgbW9kZWwgdXNpbmcgdGhlIGdpdmVuIG1vZGVsIGZhY3RvcnkgYW5kIGFkZHMgaXQgdG8gdGhlIG1hcC5cclxuICAgKiBAcGFyYW0gbWFwIFRoZSBtYXAgdG8gc2VhcmNoIGluLlxyXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB0byBzZWFyY2ggZm9yLlxyXG4gICAqIEBwYXJhbSBzb3VyY2VMaXN0IFRoZSBsaXN0IG9mIGl0ZW1zIHRvIHNlYXJjaCBpbi5cclxuICAgKiBAcGFyYW0gbWF0Y2hGbiBUaGUgY29uZGl0aW9uIHRvIG1hdGNoLlxyXG4gICAqIEBwYXJhbSBtb2RlbEZhY3RvcnkgVGhlIGZhY3RvcnkgdG8gY3JlYXRlIGEgbmV3IG1vZGVsIGlmIHRoZSBrZXkgZG9lcyBub3QgZXhpc3QuXHJcbiAgICogQHJldHVybnMgVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4ga2V5LCBvciBudWxsIGlmIG5vIG1hdGNoIGlzIGZvdW5kLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0RnJvbU1hcE9yQ3JlYXRlPFQ+KFxyXG4gICAgbWFwOiBNYXA8c3RyaW5nLCBUIHwgbnVsbD4sXHJcbiAgICBrZXk6IHN0cmluZyxcclxuICAgIHNvdXJjZUxpc3Q6IFRbXSxcclxuICAgIG1hdGNoRm46IChpdGVtOiBUKSA9PiBib29sZWFuLFxyXG4gICAgbW9kZWxGYWN0b3J5OiAoaXRlbTogVCkgPT4gVFxyXG4gICk6IFQgfCBudWxsIHtcclxuICAgIGlmICgha2V5KSByZXR1cm4gbnVsbDtcclxuICAgIGlmIChtYXAuaGFzKGtleSkpIHJldHVybiBtYXAuZ2V0KGtleSkgfHwgbnVsbDtcclxuXHJcbiAgICBjb25zdCBpdGVtID0gc291cmNlTGlzdC5maW5kKG1hdGNoRm4pO1xyXG4gICAgY29uc3QgbW9kZWwgPSBpdGVtID8gbW9kZWxGYWN0b3J5KGl0ZW0pIDogbnVsbDtcclxuICAgIG1hcC5zZXQoa2V5LCBtb2RlbCk7XHJcbiAgICByZXR1cm4gbW9kZWw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMYXppbHkgaW5pdGlhbGl6ZXMgYSBsaXN0IG9mIG1vZGVscyBmcm9tIGEgc291cmNlIGxpc3QuXHJcbiAgICogSXQgY3JlYXRlcyBhIG5ldyBtb2RlbCBmb3IgZWFjaCBpdGVtIGluIHRoZSBzb3VyY2UgbGlzdCBhbmQgYWRkcyBpdCB0byB0aGUgZ2l2ZW4gbWFwLlxyXG4gICAqIEl0IGFsc28gc2V0cyB0aGUgbGlzdCBvZiBtb2RlbHMgdG8gdGhlIGdpdmVuIHNldHRlci5cclxuICAgKiBAcGFyYW0gbGlzdFJlZiBUaGUgcmVmZXJlbmNlIHRvIHRoZSBsaXN0IG9mIG1vZGVscy5cclxuICAgKiBAcGFyYW0gc2V0dGVyIFRoZSBzZXR0ZXIgdG8gc2V0IHRoZSBsaXN0IG9mIG1vZGVscy5cclxuICAgKiBAcGFyYW0gc291cmNlTGlzdCBUaGUgc291cmNlIGxpc3Qgb2YgaXRlbXMuXHJcbiAgICogQHBhcmFtIG1hcCBUaGUgbWFwIHRvIHN0b3JlIHRoZSBtb2RlbHMuXHJcbiAgICogQHBhcmFtIGdldEtleXMgVGhlIGZ1bmN0aW9uIHRvIGdldCB0aGUga2V5cyBmb3IgdGhlIGdpdmVuIGl0ZW0uXHJcbiAgICogQHBhcmFtIG1vZGVsRmFjdG9yeSBUaGUgZmFjdG9yeSB0byBjcmVhdGUgYSBuZXcgbW9kZWwgZm9yIHRoZSBnaXZlbiBpdGVtLlxyXG4gICAqIEByZXR1cm5zIFRoZSBsaXN0IG9mIG1vZGVscy5cclxuICAgKi9cclxuICBwcml2YXRlIGxhenlJbml0TGlzdDxULCBNPihcclxuICAgIGxpc3RSZWY6IE1bXSB8IG51bGwsXHJcbiAgICBzZXR0ZXI6IChsaXN0OiBNW10pID0+IHZvaWQsXHJcbiAgICBzb3VyY2VMaXN0OiBUW10sXHJcbiAgICBtYXA6IE1hcDxzdHJpbmcsIE0gfCBudWxsPixcclxuICAgIGdldEtleXM6IChpdGVtOiBUKSA9PiBzdHJpbmdbXSxcclxuICAgIG1vZGVsRmFjdG9yeTogKGl0ZW06IFQpID0+IE1cclxuICApOiBNW10ge1xyXG4gICAgLy8gSWYgdGhlIGxpc3QgaXMgYWxyZWFkeSBpbml0aWFsaXplZCwgcmV0dXJuIGl0LlxyXG4gICAgaWYgKGxpc3RSZWYpIHJldHVybiBsaXN0UmVmO1xyXG5cclxuICAgIC8vIENyZWF0ZSBhIG5ldyBtb2RlbCBmb3IgZWFjaCBpdGVtIGluIHRoZSBzb3VyY2UgbGlzdCBhbmQgYWRkIGl0IHRvIHRoZSBtYXAuXHJcbiAgICBjb25zdCBtb2RlbHMgPSBzb3VyY2VMaXN0Lm1hcCgoaXRlbTogVCkgPT4ge1xyXG4gICAgICBjb25zdCBtb2RlbCA9IG1vZGVsRmFjdG9yeShpdGVtKTtcclxuICAgICAgZ2V0S2V5cyhpdGVtKS5mb3JFYWNoKGtleSA9PiBtYXAuc2V0KGtleSwgbW9kZWwpKTtcclxuICAgICAgcmV0dXJuIG1vZGVsO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gU2V0IHRoZSBsaXN0IG9mIG1vZGVscyB0byB0aGUgZ2l2ZW4gc2V0dGVyLlxyXG4gICAgc2V0dGVyKG1vZGVscyk7XHJcblxyXG4gICAgLy8gUmV0dXJuIHRoZSBsaXN0IG9mIG1vZGVscy5cclxuICAgIHJldHVybiBtb2RlbHM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kcyBhbiBhcHAgb2JqZWN0IGluIHRoZSBtYXAgYnkgaXRzIG5hbWUgb3IgaWQuXHJcbiAgICogSWYgdGhlIGFwcCBvYmplY3QgaXMgbm90IGZvdW5kLCBpdCBjcmVhdGVzIGEgbmV3IG9uZSBhbmQgYWRkcyBpdCB0byB0aGUgbWFwLlxyXG4gICAqIEBwYXJhbSBuYW1lT3JJZCBUaGUgbmFtZSBvciBpZCBvZiB0aGUgYXBwIG9iamVjdCB0byBmaW5kLlxyXG4gICAqIEByZXR1cm5zIFRoZSBhcHAgb2JqZWN0IGlmIGZvdW5kLCBvciBudWxsIGlmIG5vdCBmb3VuZC5cclxuICAgKi9cclxuICBnZXRBcHBPYmplY3RCeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBPYmplY3RNb2RlbCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RnJvbU1hcE9yQ3JlYXRlKFxyXG4gICAgICB0aGlzLmFwcE9iamVjdE1hcCxcclxuICAgICAgbmFtZU9ySWQsXHJcbiAgICAgIENvbW1vbi50YWJKc29uLkFwcE9iamVjdHMsXHJcbiAgICAgIG9iaiA9PiBvYmouT2JqZWN0TmFtZSA9PT0gbmFtZU9ySWQgfHwgb2JqLklEPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lT3JJZD8udG9Mb3dlckNhc2UoKSxcclxuICAgICAgb2JqID0+IG5ldyBBcHBPYmplY3RNb2RlbChvYmosIHRoaXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgYXBwIG9iamVjdHMgaW4gdGhlIG1ldGFkYXRhLlxyXG4gICAqIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBpdCBpcyBhcHBsaWVkIHRvIGVhY2ggYXBwIG9iamVjdC5cclxuICAgKiBAcGFyYW0gZmlsdGVyRm4gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgYXBwIG9iamVjdHMuXHJcbiAgICogQHJldHVybnMgVGhlIGxpc3Qgb2YgYXBwIG9iamVjdHMuXHJcbiAgICovXHJcbiAgZ2V0QWxsQXBwT2JqZWN0cyhmaWx0ZXJGbj86IChvYmo6IEFwcE9iamVjdE1vZGVsKSA9PiBib29sZWFuLCBpbmNsdWRlU3lzdGVtRGF0YSA9IGZhbHNlKTogQXBwT2JqZWN0TW9kZWxbXSB7XHJcbiAgICAvLyBJbml0aWFsaXplIHRoZSBsaXN0IG9mIGFwcCBvYmplY3RzIGxhemlseS5cclxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxhenlJbml0TGlzdChcclxuICAgICAgdGhpcy5hbGxBcHBPYmplY3RzLFxyXG4gICAgICB2YWwgPT4gKHRoaXMuYWxsQXBwT2JqZWN0cyA9IHZhbCksXHJcbiAgICAgIENvbW1vbi50YWJKc29uLkFwcE9iamVjdHMsXHJcbiAgICAgIHRoaXMuYXBwT2JqZWN0TWFwLFxyXG4gICAgICAob2JqOiBhbnkpID0+IFtvYmouSUQ/LnRvTG93ZXJDYXNlKCksIG9iai5PYmplY3ROYW1lXSxcclxuICAgICAgb2JqID0+IG5ldyBBcHBPYmplY3RNb2RlbChvYmosIHRoaXMpXHJcbiAgICApO1xyXG5cclxuICAgIGxldCBmaWx0ZXJlZExpc3Q6IEFwcE9iamVjdE1vZGVsW10gPSBsaXN0O1xyXG4gICAgaWYgKCFpbmNsdWRlU3lzdGVtRGF0YSkge1xyXG4gICAgICBjb25zdCBjdXJyZW50QXBwSWQgPSB0aGlzLmdldEN1cnJlbnRBcHBJZCgpPy50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBmaWx0ZXJlZExpc3QgPSBsaXN0LmZpbHRlcihvYmogPT5cclxuICAgICAgICAhb2JqLkFwcElkIHx8ICAgICAgICAgICAgICAgICAgICAvLyBHbG9iYWwgZGF0YSAoYXBwID0gbnVsbClcclxuICAgICAgICBvYmouQXBwSWQgPT09IGN1cnJlbnRBcHBJZCAgICAgICAvLyBDdXJyZW50IGFwcCBkYXRhXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGFwcGx5IGl0IHRvIHRoZSBsaXN0IG9mIGFwcCBvYmplY3RzLlxyXG4gICAgcmV0dXJuIGZpbHRlckZuID8gZmlsdGVyZWRMaXN0LmZpbHRlcihmaWx0ZXJGbikgOiBmaWx0ZXJlZExpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBmaWVsZHMgaW4gdGhlIG1ldGFkYXRhLlxyXG4gICAqIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBpdCBpcyBhcHBsaWVkIHRvIGVhY2ggZmllbGQuXHJcbiAgICogQHBhcmFtIGZpbHRlckZuIFRoZSBmaWx0ZXIgZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIGZpZWxkcy5cclxuICAgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiBmaWVsZHMuXHJcbiAgICovXHJcbiAgZ2V0QWxsRmllbGRzKGZpbHRlckZuPzogKGZpZWxkOiBBcHBGaWVsZE1vZGVsKSA9PiBib29sZWFuLCBpbmNsdWRlU3lzdGVtRGF0YSA9IGZhbHNlKTogQXBwRmllbGRNb2RlbFtdIHtcclxuICAgIC8vIEdldCBhIGxpc3Qgb2YgYWxsIGZpZWxkcyBmcm9tIGFsbCBhcHAgb2JqZWN0cy5cclxuICAgIGNvbnN0IGFsbEZpZWxkcyA9IHRoaXMuZ2V0QWxsQXBwT2JqZWN0cyh1bmRlZmluZWQsIGluY2x1ZGVTeXN0ZW1EYXRhKS5mbGF0TWFwKG9iaiA9PiBvYmouZmllbGRzKCkpO1xyXG5cclxuICAgIC8vIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBhcHBseSBpdCB0byB0aGUgbGlzdCBvZiBmaWVsZHMuXHJcbiAgICByZXR1cm4gZmlsdGVyRm4gPyBhbGxGaWVsZHMuZmlsdGVyKGZpbHRlckZuKSA6IGFsbEZpZWxkcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZpbmRzIGEgZmllbGQgYnkgaXRzIElEIGFjcm9zcyBhbGwgYXBwIG9iamVjdHNcclxuICAgKiBAcGFyYW0gZmllbGRJZCBUaGUgSUQgb2YgdGhlIGZpZWxkIHRvIGZpbmRcclxuICAgKiBAcmV0dXJucyBUaGUgZmllbGQgaWYgZm91bmQsIG9yIG51bGwgaWYgbm90IGZvdW5kXHJcbiAgICovXHJcbiAgZ2V0RmllbGRCeUlkT3JOYW1lKG5hbWVPcklkOiBzdHJpbmcpOiBBcHBGaWVsZE1vZGVsIHwgbnVsbCB7XHJcbiAgICBpZiAoIW5hbWVPcklkKSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiB0aGlzLmdldEFsbEZpZWxkcyhmaWVsZCA9PlxyXG4gICAgICBmaWVsZC5JRD8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZU9ySWQ/LnRvTG93ZXJDYXNlKCkgfHxcclxuICAgICAgZmllbGQuRmllbGROYW1lID09PSBuYW1lT3JJZCxcclxuICAgICAgdHJ1ZVxyXG4gICAgKVswXSB8fCBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyBhIGxpc3Qgb2YgZGF0YSBzb3VyY2UgcXVlcmllcyBpbiB0aGUgbWV0YWRhdGEuXHJcbiAgICogSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGl0IGlzIGFwcGxpZWQgdG8gZWFjaCBkYXRhIHNvdXJjZSBxdWVyeS5cclxuICAgKiBAcGFyYW0gZmlsdGVyRm4gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgZGF0YSBzb3VyY2UgcXVlcmllcy5cclxuICAgKiBAcmV0dXJucyBUaGUgbGlzdCBvZiBkYXRhIHNvdXJjZSBxdWVyaWVzLlxyXG4gICAqL1xyXG4gIGdldEFsbERhdGFTb3VyY2VRdWVyaWVzKGZpbHRlckZuPzogKGRzcTogRGF0YVNvdXJjZVF1ZXJ5TW9kZWwpID0+IGJvb2xlYW4sIGluY2x1ZGVTeXN0ZW1EYXRhID0gZmFsc2UpOiBEYXRhU291cmNlUXVlcnlNb2RlbFtdIHtcclxuICAgIC8vIEdldCBhIGxpc3Qgb2YgYWxsIGRhdGEgc291cmNlIHF1ZXJpZXMgZnJvbSBhbGwgYXBwIG9iamVjdHMuXHJcbiAgICBjb25zdCBhbGxEU1FzID0gdGhpcy5nZXRBbGxBcHBPYmplY3RzKHVuZGVmaW5lZCwgaW5jbHVkZVN5c3RlbURhdGEpLmZsYXRNYXAob2JqID0+IG9iai5kYXRhU291cmNlUXVlcmllcygpKTtcclxuXHJcbiAgICAvLyBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgYXBwbHkgaXQgdG8gdGhlIGxpc3Qgb2YgZGF0YSBzb3VyY2UgcXVlcmllcy5cclxuICAgIHJldHVybiBmaWx0ZXJGbiA/IGFsbERTUXMuZmlsdGVyKGZpbHRlckZuKSA6IGFsbERTUXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBkYXRhIHNvdXJjZSBxdWVyeSBieSBpdHMgSUQsIFF1ZXJ5TmFtZSwgb3IgRGlzcGxheU5hbWUuXHJcbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgZGF0YSBzb3VyY2UgcXVlcmllcyBhbmQgcmV0dXJucyB0aGUgZmlyc3QgbWF0Y2guXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPcklkIC0gVGhlIElELCBRdWVyeU5hbWUsIG9yIERpc3BsYXlOYW1lIG9mIHRoZSBkYXRhIHNvdXJjZSBxdWVyeSB0byByZXRyaWV2ZS5cclxuICAgKiBAcmV0dXJucyB7RGF0YVNvdXJjZVF1ZXJ5TW9kZWwgfCBudWxsfSAtIFRoZSBkYXRhIHNvdXJjZSBxdWVyeSBtb2RlbCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXHJcbiAgICovXHJcbiAgZ2V0RGF0YVNvdXJjZVF1ZXJ5QnlJZE9yTmFtZShuYW1lT3JJZDogc3RyaW5nKTogRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgfCBudWxsIHtcclxuICAgIC8vIFNlYXJjaCBmb3IgdGhlIGRhdGEgc291cmNlIHF1ZXJ5IGJ5IElELCBRdWVyeU5hbWUsIG9yIERpc3BsYXlOYW1lXHJcbiAgICByZXR1cm4gdGhpcy5nZXRBbGxEYXRhU291cmNlUXVlcmllcyh1bmRlZmluZWQsIHRydWUpLmZpbmQoXHJcbiAgICAgIGRzcSA9PiBkc3E/LklEPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lT3JJZD8udG9Mb3dlckNhc2UoKSB8fCBkc3E/LlF1ZXJ5TmFtZSA9PT0gbmFtZU9ySWQgfHwgZHNxPy5EaXNwbGF5TmFtZSA9PT0gbmFtZU9ySWRcclxuICAgICkgfHwgbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhbiBhcHAgc2NyZWVuIGJ5IGl0cyBJRCwgTmFtZSwgb3IgRGlzcGxheU5hbWUuXHJcbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgYXBwIHNjcmVlbnMgYW5kIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lT3JJZCAtIFRoZSBJRCwgTmFtZSwgb3IgRGlzcGxheU5hbWUgb2YgdGhlIGFwcCBzY3JlZW4gdG8gcmV0cmlldmUuXHJcbiAgICogQHJldHVybnMge0FwcFNjcmVlbk1vZGVsIHwgbnVsbH0gLSBUaGUgYXBwIHNjcmVlbiBtb2RlbCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXHJcbiAgICovXHJcbiAgZ2V0QXBwU2NyZWVuQnlJZE9yTmFtZShuYW1lT3JJZDogc3RyaW5nKTogQXBwU2NyZWVuTW9kZWwgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmdldEZyb21NYXBPckNyZWF0ZShcclxuICAgICAgdGhpcy5hcHBTY3JlZW5NYXAsXHJcbiAgICAgIG5hbWVPcklkLFxyXG4gICAgICBDb21tb24udGFiSnNvbi5BcHBTY3JlZW5zLFxyXG4gICAgICBzY3JlZW4gPT4gc2NyZWVuPy5JRD8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZU9ySWQ/LnRvTG93ZXJDYXNlKCkgfHwgc2NyZWVuPy5OYW1lID09PSBuYW1lT3JJZCxcclxuICAgICAgc2NyZWVuID0+IG5ldyBBcHBTY3JlZW5Nb2RlbChzY3JlZW4pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiBhbGwgYXBwIHNjcmVlbnMuXHJcbiAgICogSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGl0IGlzIGFwcGxpZWQgdG8gdGhlIGxpc3Qgb2YgYXBwIHNjcmVlbnMuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZmlsdGVyRm4gLSBUaGUgZmlsdGVyIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBhcHAgc2NyZWVucy5cclxuICAgKiBAcmV0dXJucyB7QXBwU2NyZWVuTW9kZWxbXX0gLSBUaGUgbGlzdCBvZiBhcHAgc2NyZWVucy5cclxuICAgKi9cclxuICBnZXRBbGxBcHBTY3JlZW5zKGZpbHRlckZuPzogKHNjcmVlbjogQXBwU2NyZWVuTW9kZWwpID0+IGJvb2xlYW4pOiBBcHBTY3JlZW5Nb2RlbFtdIHtcclxuICAgIC8vIEluaXRpYWxpemUgdGhlIGxpc3Qgb2YgYXBwIHNjcmVlbnMgbGF6aWx5LlxyXG4gICAgY29uc3QgbGlzdCA9IHRoaXMubGF6eUluaXRMaXN0KFxyXG4gICAgICB0aGlzLmFsbEFwcFNjcmVlbnMsXHJcbiAgICAgIHZhbCA9PiAodGhpcy5hbGxBcHBTY3JlZW5zID0gdmFsKSxcclxuICAgICAgQ29tbW9uLnRhYkpzb24uQXBwU2NyZWVucyxcclxuICAgICAgdGhpcy5hcHBTY3JlZW5NYXAsXHJcbiAgICAgIChzOiBhbnkpID0+IFtzPy5JRD8udG9Mb3dlckNhc2UoKSwgcz8uTmFtZV0sXHJcbiAgICAgIHMgPT4gbmV3IEFwcFNjcmVlbk1vZGVsKHMpXHJcbiAgICApO1xyXG5cclxuICAgIC8vIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBhcHBseSBpdCB0byB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucy5cclxuICAgIHJldHVybiBmaWx0ZXJGbiA/IGxpc3QuZmlsdGVyKGZpbHRlckZuKSA6IGxpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYW4gb3JnYW5pemF0aW9uIGluZm8gYnkgaXRzIElEIG9yIFRlbmFudENvZGUuXHJcbiAgICogU2VhcmNoZXMgdGhyb3VnaCBhbGwgb3JnYW5pemF0aW9uIGluZm8gYW5kIHJldHVybnMgdGhlIGZpcnN0IG1hdGNoLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lT3JUZW5hbnRDb2RlIC0gVGhlIElEIG9yIFRlbmFudENvZGUgb2YgdGhlIG9yZ2FuaXphdGlvbiBpbmZvIHRvIHJldHJpZXZlLlxyXG4gICAqIEByZXR1cm5zIHtPcmdJbmZvTW9kZWwgfCBudWxsfSAtIFRoZSBvcmdhbml6YXRpb24gaW5mbyBtb2RlbCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXHJcbiAgICovXHJcbiAgZ2V0T3JnSW5mb0J5SWRPclRlbmFudENvZGUobmFtZU9yVGVuYW50Q29kZTogc3RyaW5nKTogT3JnSW5mb01vZGVsIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRGcm9tTWFwT3JDcmVhdGUoXHJcbiAgICAgIHRoaXMub3JnSW5mb01hcCxcclxuICAgICAgbmFtZU9yVGVuYW50Q29kZSxcclxuICAgICAgQ29tbW9uLnRhYkpzb24uT3JnSW5mb3MsXHJcbiAgICAgIC8vIFNlYXJjaCBmb3IgdGhlIG9yZ2FuaXphdGlvbiBpbmZvIGJ5IElEIG9yIFRlbmFudENvZGVcclxuICAgICAgb3JnID0+IG9yZy5JRD8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZU9yVGVuYW50Q29kZT8udG9Mb3dlckNhc2UoKSB8fCBvcmcuVGVuYW50Q29kZSA9PT0gbmFtZU9yVGVuYW50Q29kZSxcclxuICAgICAgLy8gQ3JlYXRlIGEgbmV3IE9yZ0luZm9Nb2RlbCBpZiB0aGUgb3JnYW5pemF0aW9uIGluZm8gaXMgZm91bmRcclxuICAgICAgb3JnID0+IG5ldyBPcmdJbmZvTW9kZWwob3JnKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIG9yZ2FuaXphdGlvbiBpbmZvLlxyXG4gICAqIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBpdCBpcyBhcHBsaWVkIHRvIHRoZSBsaXN0IG9mIG9yZ2FuaXphdGlvbiBpbmZvLlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGZpbHRlckZuIC0gVGhlIGZpbHRlciBmdW5jdGlvbiB0byBhcHBseSB0byB0aGUgb3JnYW5pemF0aW9uIGluZm8uXHJcbiAgICogQHJldHVybnMge09yZ0luZm9Nb2RlbFtdfSAtIFRoZSBsaXN0IG9mIG9yZ2FuaXphdGlvbiBpbmZvLlxyXG4gICAqL1xyXG4gIGdldEFsbE9yZ0luZm9zKGZpbHRlckZuPzogKG9yZzogT3JnSW5mb01vZGVsKSA9PiBib29sZWFuKTogT3JnSW5mb01vZGVsW10ge1xyXG4gICAgLy8gSW5pdGlhbGl6ZSB0aGUgbGlzdCBvZiBvcmdhbml6YXRpb24gaW5mbyBsYXppbHkuXHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5sYXp5SW5pdExpc3QoXHJcbiAgICAgIHRoaXMuYWxsT3JnSW5mb3MsXHJcbiAgICAgIHZhbCA9PiAodGhpcy5hbGxPcmdJbmZvcyA9IHZhbCksXHJcbiAgICAgIENvbW1vbi50YWJKc29uLk9yZ0luZm9zLFxyXG4gICAgICB0aGlzLm9yZ0luZm9NYXAsXHJcbiAgICAgIChvcmc6IGFueSkgPT4gW29yZz8uSUQ/LnRvTG93ZXJDYXNlKCksIG9yZz8uVGVuYW50Q29kZV0sXHJcbiAgICAgIG9yZyA9PiBuZXcgT3JnSW5mb01vZGVsKG9yZylcclxuICAgICk7XHJcblxyXG4gICAgLy8gSWYgYSBmaWx0ZXIgZnVuY3Rpb24gaXMgZ2l2ZW4sIGFwcGx5IGl0IHRvIHRoZSBsaXN0IG9mIG9yZ2FuaXphdGlvbiBpbmZvLlxyXG4gICAgcmV0dXJuIGZpbHRlckZuID8gbGlzdC5maWx0ZXIoZmlsdGVyRm4pIDogbGlzdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm1zIGEgZ2xvYmFsIHNlYXJjaCBhY3Jvc3MgYWxsIG1ldGFkYXRhIGZvciBhIGdpdmVuIHNlYXJjaCB0ZXJtLlxyXG4gICAqIFlvdSBjYW4gbmFycm93IHRoZSBzZWFyY2ggYnkgcHJvdmlkaW5nIGEgbGlzdCBvZiBlbnRpdHkgdHlwZXMgdG8gc2VhcmNoIHdpdGhpbi5cclxuICAgKiBcclxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGVybSAtIFRoZSBzZWFyY2ggdGVybSB0byBzZWFyY2ggZm9yLlxyXG4gICAqIEBwYXJhbSB7TWV0YWRhdGFFbnRpdHlUeXBlW119IGVudGl0eVR5cGVzIC0gVGhlIGxpc3Qgb2YgZW50aXR5IHR5cGVzIHRvIHNlYXJjaCB3aXRoaW4uIElmIG9taXR0ZWQsIGFsbCBlbnRpdHkgdHlwZXMgYXJlIHNlYXJjaGVkLlxyXG4gICAqIEByZXR1cm5zIHtSZWNvcmQ8c3RyaW5nLCBhbnlbXT59IC0gQSBkaWN0aW9uYXJ5IHdpdGggcmVzdWx0cyBncm91cGVkIGJ5IGVudGl0eSB0eXBlLlxyXG4gICAqL1xyXG4gIHNlYXJjaE1ldGFkYXRhKHRlcm06IHN0cmluZywgZW50aXR5VHlwZXM/OiBNZXRhZGF0YUVudGl0eVR5cGVbXSk6IFJlY29yZDxzdHJpbmcsIGFueVtdPiB7XHJcbiAgICBjb25zdCBzZWFyY2hUZXJtID0gdGVybS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnlbXT4gPSB7fTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlbHBlciBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgYSBnaXZlbiBlbnRpdHkgdHlwZSBzaG91bGQgYmUgc2VhcmNoZWQuXHJcbiAgICAgKiBAcGFyYW0ge01ldGFkYXRhRW50aXR5VHlwZX0gdHlwZSAtIFRoZSBlbnRpdHkgdHlwZSB0byBjaGVjay5cclxuICAgICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGVudGl0eSB0eXBlIHNob3VsZCBiZSBzZWFyY2hlZC5cclxuICAgICAqL1xyXG4gICAgY29uc3Qgc2hvdWxkU2VhcmNoID0gKHR5cGU6IE1ldGFkYXRhRW50aXR5VHlwZSkgPT4gIWVudGl0eVR5cGVzIHx8IGVudGl0eVR5cGVzLmluY2x1ZGVzKHR5cGUpO1xyXG5cclxuICAgIGlmIChzaG91bGRTZWFyY2goTWV0YWRhdGFFbnRpdHlUeXBlLkFQUF9PQkpFQ1RTKSkge1xyXG4gICAgICAvLyBTZWFyY2ggZm9yIGFwcCBvYmplY3RzIGJ5IElELCBPYmplY3ROYW1lLCBEaXNwbGF5TmFtZSwgb3IgU3lzdGVtREJUYWJsZU5hbWVcclxuICAgICAgcmVzdWx0W01ldGFkYXRhRW50aXR5VHlwZS5BUFBfT0JKRUNUU10gPSB0aGlzLmdldEFsbEFwcE9iamVjdHMob2JqID0+XHJcbiAgICAgICAgW29iaj8uSUQsIG9iaj8uT2JqZWN0TmFtZSwgb2JqPy5EaXNwbGF5TmFtZSwgb2JqPy5TeXN0ZW1EQlRhYmxlTmFtZV1cclxuICAgICAgICAgIC5zb21lKHZhbCA9PiB2YWwgPT09IHNlYXJjaFRlcm0gfHwgdmFsPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG91bGRTZWFyY2goTWV0YWRhdGFFbnRpdHlUeXBlLkFQUF9GSUVMRFMpKSB7XHJcbiAgICAgIC8vIFNlYXJjaCBmb3IgYXBwIGZpZWxkcyBieSB1c2luZyB0aGUgc2VhcmNoIG1ldGhvZFxyXG4gICAgICByZXN1bHRbTWV0YWRhdGFFbnRpdHlUeXBlLkFQUF9GSUVMRFNdID0gdGhpcy5nZXRBbGxGaWVsZHMoZmllbGQgPT4gZmllbGQuc2VhcmNoKHNlYXJjaFRlcm0pKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2hvdWxkU2VhcmNoKE1ldGFkYXRhRW50aXR5VHlwZS5EQVRBX1NPVVJDRV9RVUVSSUVTKSkge1xyXG4gICAgICAvLyBTZWFyY2ggZm9yIGRhdGEgc291cmNlIHF1ZXJpZXMgYnkgdXNpbmcgdGhlIHNlYXJjaCBtZXRob2RcclxuICAgICAgcmVzdWx0W01ldGFkYXRhRW50aXR5VHlwZS5EQVRBX1NPVVJDRV9RVUVSSUVTXSA9IHRoaXMuZ2V0QWxsRGF0YVNvdXJjZVF1ZXJpZXMoZHNxID0+IGRzcS5zZWFyY2goc2VhcmNoVGVybSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzaG91bGRTZWFyY2goTWV0YWRhdGFFbnRpdHlUeXBlLkFQUF9TQ1JFRU5TKSkge1xyXG4gICAgICAvLyBTZWFyY2ggZm9yIGFwcCBzY3JlZW5zIGJ5IHVzaW5nIHRoZSBzZWFyY2ggbWV0aG9kXHJcbiAgICAgIHJlc3VsdFtNZXRhZGF0YUVudGl0eVR5cGUuQVBQX1NDUkVFTlNdID0gdGhpcy5nZXRBbGxBcHBTY3JlZW5zKHNjcmVlbiA9PiBzY3JlZW4uc2VhcmNoKHNlYXJjaFRlcm0pKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGFuIGFwcCBtZW51IGJ5IGl0cyBJRCBvciBuYW1lLlxyXG4gICAqIFNlYXJjaGVzIHRocm91Z2ggYWxsIGFwcCBtZW51cyBhbmQgcmV0dXJucyB0aGUgZmlyc3QgbWF0Y2guXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5hbWVPcklkIC0gVGhlIElEIG9yIG5hbWUgb2YgdGhlIGFwcCBtZW51IHRvIHJldHJpZXZlLlxyXG4gICAqIEByZXR1cm5zIHtBcHBNZW51TW9kZWwgfCBudWxsfSAtIFRoZSBhcHAgbWVudSBtb2RlbCBpZiBmb3VuZCwgb3RoZXJ3aXNlIG51bGwuXHJcbiAgICovXHJcbiAgZ2V0QXBwTWVudUJ5SWRPck5hbWUobmFtZU9ySWQ6IHN0cmluZyk6IEFwcE1lbnVNb2RlbCB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0RnJvbU1hcE9yQ3JlYXRlKFxyXG4gICAgICB0aGlzLmFwcE1lbnVNYXAsXHJcbiAgICAgIG5hbWVPcklkLFxyXG4gICAgICBDb21tb24udGFiSnNvbi5NZW51cyxcclxuICAgICAgLy8gU2VhcmNoIGZvciB0aGUgYXBwIG1lbnUgYnkgSUQgb3IgbmFtZVxyXG4gICAgICBtZW51ID0+IG1lbnU/LklkPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lT3JJZD8udG9Mb3dlckNhc2UoKSB8fCBtZW51Py5NZW51TmFtZSA9PT0gbmFtZU9ySWQsXHJcbiAgICAgIC8vIENyZWF0ZSBhIG5ldyBBcHBNZW51TW9kZWwgaWYgdGhlIGFwcCBtZW51IGlzIGZvdW5kXHJcbiAgICAgIG1lbnUgPT4gbmV3IEFwcE1lbnVNb2RlbChtZW51KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgYWxsIGFwcCBtZW51cy5cclxuICAgKiBJZiBhIGZpbHRlciBmdW5jdGlvbiBpcyBnaXZlbiwgaXQgaXMgYXBwbGllZCB0byB0aGUgbGlzdCBvZiBhcHAgbWVudXMuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZmlsdGVyRm4gLSBUaGUgZmlsdGVyIGZ1bmN0aW9uIHRvIGFwcGx5IHRvIHRoZSBhcHAgbWVudXMuXHJcbiAgICogQHJldHVybnMge0FwcE1lbnVNb2RlbFtdfSAtIFRoZSBsaXN0IG9mIGFwcCBtZW51cy5cclxuICAgKi9cclxuICBnZXRBbGxBcHBNZW51cyhmaWx0ZXJGbj86IChtZW51OiBBcHBNZW51TW9kZWwpID0+IGJvb2xlYW4pOiBBcHBNZW51TW9kZWxbXSB7XHJcbiAgICAvLyBJbml0aWFsaXplIHRoZSBsaXN0IG9mIGFwcCBzY3JlZW5zIGxhemlseS5cclxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxhenlJbml0TGlzdChcclxuICAgICAgdGhpcy5hbGxBcHBNZW51cyxcclxuICAgICAgdmFsID0+ICh0aGlzLmFsbEFwcE1lbnVzID0gdmFsKSxcclxuICAgICAgQ29tbW9uLnRhYkpzb24uTWVudXMsXHJcbiAgICAgIHRoaXMuYXBwTWVudU1hcCxcclxuICAgICAgKG06IGFueSkgPT4gW20/LklkPy50b0xvd2VyQ2FzZSgpLCBtPy5OYW1lXSxcclxuICAgICAgcyA9PiBuZXcgQXBwTWVudU1vZGVsKHMpXHJcbiAgICApO1xyXG5cclxuICAgIC8vIElmIGEgZmlsdGVyIGZ1bmN0aW9uIGlzIGdpdmVuLCBhcHBseSBpdCB0byB0aGUgbGlzdCBvZiBhcHAgc2NyZWVucy5cclxuICAgIHJldHVybiBmaWx0ZXJGbiA/IGxpc3QuZmlsdGVyKGZpbHRlckZuKSA6IGxpc3Q7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhcnMgYWxsIGNhY2hlZCBtZXRhZGF0YSBzYWZlbHkuXHJcbiAgICogVGhpcyBzaG91bGQgYmUgY2FsbGVkIG9uIGNvbnRleHQgY2hhbmdlcyAoZS5nLiwgd2hlbiBhcHAsIG9yZywgb3Igc2Vzc2lvbiBjaGFuZ2VzKS5cclxuICAgKi9cclxuICBjbGVhckNhY2hlKCk6IHZvaWQge1xyXG4gICAgdHJ5IHtcclxuICAgICAgLy8gQ2xlYXIgbWFwc1xyXG4gICAgICB0aGlzLmFwcE9iamVjdE1hcC5jbGVhcigpO1xyXG4gICAgICB0aGlzLmFwcFNjcmVlbk1hcC5jbGVhcigpO1xyXG4gICAgICB0aGlzLm9yZ0luZm9NYXAuY2xlYXIoKTtcclxuICAgICAgdGhpcy5hcHBNZW51TWFwLmNsZWFyKCk7XHJcblxyXG4gICAgICAvLyBSZXNldCBsaXN0c1xyXG4gICAgICB0aGlzLmFsbEFwcE9iamVjdHMgPSBudWxsO1xyXG4gICAgICB0aGlzLmFsbEFwcFNjcmVlbnMgPSBudWxsO1xyXG4gICAgICB0aGlzLmFsbE9yZ0luZm9zID0gbnVsbDtcclxuICAgICAgdGhpcy5hbGxBcHBNZW51cyA9IG51bGw7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdNZXRhZGF0YUhlbHBlciBGYWlsZWQgdG8gY2xlYXIgY2FjaGU6JywgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn0iXX0=
@@ -115,7 +115,7 @@ export class TemplateHelper {
115
115
  }
116
116
  obj = Object.getPrototypeOf(obj);
117
117
  }
118
- if (service?.constructor?.name === 'UtilService') {
118
+ if (service?._isProxy) {
119
119
  // Probe the context directly
120
120
  const ctx = service._context;
121
121
  if (ctx) {
@@ -252,4 +252,4 @@ export class TemplateHelper {
252
252
  type: Injectable,
253
253
  args: [{ providedIn: 'root' }]
254
254
  }], () => [], null); })();
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi90ZW1wbGF0ZS5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSXRELE1BQU0sT0FBTyxjQUFjO0lBS3pCO1FBSmlCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBWSxDQUFDO1FBQ2hELFdBQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBRzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxvQkFBb0IsQ0FBQyxRQUFnQixFQUFFLGlCQUF5QjtRQUM5RCxNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25FLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO1NBQzlCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILHNCQUFzQixDQUFDLElBQTBCLEVBQUUscUJBQXFCLEdBQUcsSUFBSTtRQUM3RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDN0UsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsRUFDakMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQyxPQUFPLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssYUFBYSxDQUFDLElBQTBCO1FBQzlDLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxDQUFDO1FBRTdCLDREQUE0RDtRQUM1RCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGNBQWM7UUFDcEIsTUFBTSxPQUFPLEdBQUksTUFBYyxFQUFFLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXhCLE1BQU0sV0FBVyxHQUFRLEVBQUUsQ0FBQztRQUM1QixpREFBaUQ7UUFDakQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN4RCxJQUFJLFdBQVcsS0FBSyxRQUFRLElBQUksV0FBVyxLQUFLLE1BQU0sSUFBSSxXQUFXLEtBQUssV0FBVztnQkFBRSxPQUFPO1lBRTlGLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPO1lBRXJCLGlDQUFpQztZQUNqQyxXQUFXLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLG9CQUFvQixDQUFDLE9BQVk7UUFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFRLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNoRSxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1lBRS9CLHdGQUF3RjtZQUN4RixJQUFJLEdBQUcsR0FBUSxPQUFPLENBQUM7WUFDdkIsT0FBTyxHQUFHLElBQUksR0FBRyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDdkMsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDbkQsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDO3dCQUFFLFNBQVM7b0JBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRWYsSUFBSSxLQUFVLENBQUM7b0JBQ2YsSUFBSSxDQUFDO3dCQUNILHNFQUFzRTt3QkFDdEUsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNyQyxDQUFDO29CQUFDLE1BQU0sQ0FBQzt3QkFDUCxTQUFTO29CQUNYLENBQUM7b0JBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQzt3QkFDaEMsbUVBQW1FO3dCQUNuRSxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDeEQsQ0FBQzt5QkFBTSxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztvQkFDekIsQ0FBQztnQkFDSCxDQUFDO2dCQUNELEdBQUcsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFFRCxJQUFJLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxLQUFLLGFBQWEsRUFBRSxDQUFDO2dCQUNqRCw2QkFBNkI7Z0JBQzdCLE1BQU0sR0FBRyxHQUFJLE9BQWUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3RDLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ1IsS0FBSyxNQUFNLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ3ZDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDekIsSUFBSSxDQUFDLEdBQUc7NEJBQUUsU0FBUzt3QkFFbkIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDOzRCQUNwRSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0NBQUUsU0FBUzs0QkFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFFZixJQUFJLEtBQVUsQ0FBQzs0QkFDZixJQUFJLENBQUM7Z0NBQ0gsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsMEJBQTBCOzRCQUNoRSxDQUFDOzRCQUFDLE1BQU0sQ0FBQztnQ0FDUCxTQUFTOzRCQUNYLENBQUM7NEJBRUQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztnQ0FDaEMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7NEJBQ3hELENBQUM7aUNBQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7Z0NBQy9CLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7NEJBQ3pCLENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLDZDQUE2QyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekMsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNLLGdCQUFnQixDQUFDLE1BQVcsRUFBRSxJQUFZO1FBQ2hELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUM5QixXQUFXLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFO1lBQ3pGLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUU7WUFDcEYsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRTtTQUNqRixDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBVSxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7WUFDdEUsSUFBSSxDQUFDO2dCQUNILGlFQUFpRTtnQkFDakUsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQzlFLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3JELElBQUksT0FBTyxFQUFFLEtBQUssVUFBVSxFQUFFLENBQUM7d0JBQzdCLE9BQU8sRUFBRSxDQUFDO29CQUNaLENBQUM7b0JBQ0QsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUMzQyxPQUFPLE1BQU0sR0FBRyxDQUFDLENBQUMsZ0JBQWdCO2dCQUNwQyxDQUFDO2dCQUVELDhEQUE4RDtnQkFDOUQsSUFBSSxLQUFLLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN0RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNCLElBQUksVUFBVSxLQUFLLFdBQVcsSUFBSSxVQUFVLEtBQUssV0FBVyxJQUFJLFVBQVUsS0FBSyxhQUFhO3dCQUFFLE9BQU8sRUFBRSxDQUFDO29CQUN4RyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0IsSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQzt3QkFDakMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7d0JBQ3RDLE9BQU8sTUFBTSxHQUFHLENBQUM7b0JBQ25CLENBQUM7b0JBQ0QsOENBQThDO29CQUM5QyxPQUFPLE1BQU0sSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLENBQUM7Z0JBRUQsb0VBQW9FO2dCQUNwRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUNoQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDM0IsT0FBTyxNQUFNLEdBQUcsQ0FBQztnQkFDbkIsQ0FBQztnQkFFRCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxJQUFTLEVBQUUsRUFBRTtZQUMzRCxJQUFJLEtBQUssSUFBSSxJQUFJO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFBRSxPQUFPLEVBQUUsQ0FBQztZQUV4RCwyREFBMkQ7WUFDM0QsTUFBTSxRQUFRLEdBQUcsSUFBSTtpQkFDbEIsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBSyxZQUFZO2lCQUM3QyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFLLGdCQUFnQjtpQkFDakQsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2xCLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVuQixJQUFJLEdBQUcsR0FBUSxLQUFLLENBQUM7WUFFckIsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxHQUFHLElBQUksSUFBSTtvQkFBRSxPQUFPLEVBQUUsQ0FBQztnQkFFM0IsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4QixNQUFNLEdBQUcsR0FBUSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFFL0MsSUFBSSxDQUFDO29CQUNILEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytFQWhRVSxjQUFjO3VFQUFkLGNBQWMsV0FBZCxjQUFjLG1CQURELE1BQU07O2lGQUNuQixjQUFjO2NBRDFCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuaW1wb3J0IHsgTGlxdWlkIH0gZnJvbSAnbGlxdWlkanMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmcm9tLCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGdldEhlYWRlcnMgfSBmcm9tICcuLi8uLi91dGlscy9yZXEtcmVzLnV0aWwnO1xyXG5pbXBvcnQgeyBDb21tb25BcGlSZXNwb25zZSwgVGVtcGxhdGVQYXJzZVBheWxvYWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFRlbXBsYXRlSGVscGVyIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlQ2FjaGUgPSBuZXcgV2Vha01hcDxhbnksIGFueT4oKTtcclxuICBwcml2YXRlIGVuZ2luZSA9IG5ldyBMaXF1aWQoKTtcclxuICBcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHRoaXMucmVnaXN0ZXJDYWxsRmlsdGVyKCk7XHJcbiAgICB0aGlzLnJlZ2lzdGVyUHJvcEZpbHRlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFyc2VzIHRoZSB0ZW1wbGF0ZSB1c2luZyBsb2NhbCByZW5kZXJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gdGVtcGxhdGUgLSBUaGUgdGVtcGxhdGUgdG8gYmUgcGFyc2VkLlxyXG4gICAqIEBwYXJhbSB0ZW1wbGF0ZVZhcmlhYmxlcyAtIFRoZSB2YXJpYWJsZXMgdG8gYmUgdXNlZCBmb3IgdGVtcGxhdGUgcmVuZGVyaW5nLlxyXG4gICAqIEByZXR1cm5zIFRoZSByZW5kZXJlZCB0ZW1wbGF0ZSByZXN1bHQuXHJcbiAgICovXHJcbiAgdGVtcGxhdGVQYXJzZUxvY2FsbHkodGVtcGxhdGU6IHN0cmluZywgdGVtcGxhdGVWYXJpYWJsZXM6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAuLi4odGVtcGxhdGVWYXJpYWJsZXM/Lmxlbmd0aCA/IEpTT04ucGFyc2UodGVtcGxhdGVWYXJpYWJsZXMpIDoge30pLFxyXG4gICAgICBUYWJTZGs6IHRoaXMuY3JlYXRlU2RrUHJveHkoKSxcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5lbmdpbmUucGFyc2VBbmRSZW5kZXIodGVtcGxhdGUgPz8gJycsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFyc2VzIHRoZSB0ZW1wbGF0ZSB1bml2ZXJzYWxseSwgZWl0aGVyIHVzaW5nIGxvY2FsIHJlbmRlcmluZyBvciBzZXJ2ZXItc2lkZSByZW5kZXJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGJlIHVzZWQgZm9yIHRlbXBsYXRlIHBhcnNpbmcuXHJcbiAgICogQHBhcmFtIHNob3VsZEZhaWxPblNlcnZlclBhcnNlIC0gSW5kaWNhdGVzIHdoZXRoZXIgdG8gZmFpbCBvbiBzZXJ2ZXItc2lkZSBwYXJzZSBpZiBsb2NhbCBwYXJzaW5nIGZhaWxzLlxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgcGFyc2VkIHRlbXBsYXRlIHJlc3VsdC5cclxuICAgKi9cclxuICB0ZW1wbGF0ZVBhcnNlVW5pdmVyc2FsKGRhdGE6IFRlbXBsYXRlUGFyc2VQYXlsb2FkLCBvbkZhaWxlZFBhcnNlT25TZXJ2ZXIgPSB0cnVlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBmcm9tKHRoaXMudGVtcGxhdGVQYXJzZUxvY2FsbHkoZGF0YS5WYWx1ZSwgZGF0YS5UZW1wbGF0ZXZhcmlhYmxlcykpLnBpcGUoXHJcbiAgICAgIG1hcCgoaHRtbCkgPT4gKHsgUmVzdWx0OiBodG1sIH0pKSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdMb2NhbCBwYXJzZSBmYWlsZWQnLCBlcnJvcik7XHJcbiAgICAgICAgcmV0dXJuIG9uRmFpbGVkUGFyc2VPblNlcnZlciA/IHRoaXMudGVtcGxhdGVQYXJzZShkYXRhKSA6IG9mKHsgUmVzdWx0OiAnJyB9KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYXJzZXMgdGhlIHRlbXBsYXRlIHVzaW5nIHNlcnZlci1zaWRlIHJlbmRlcmluZy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGRhdGEgdG8gYmUgdXNlZCBmb3IgdGVtcGxhdGUgcGFyc2luZy5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHBhcnNlZCB0ZW1wbGF0ZSByZXN1bHQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVBhcnNlKGRhdGE6IFRlbXBsYXRlUGFyc2VQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuXHJcbiAgICAvLyBNYWtlcyBhIFBPU1QgcmVxdWVzdCB0byB0aGUgc2VydmVyIHRvIHBhcnNlIHRoZSB0ZW1wbGF0ZS5cclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkudGVtcGxhdGVQYXJzZSwgZGF0YSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgcHJveHkgZm9yIHRoZSBUYWJTZGsgb2JqZWN0IHRvIGV4cG9zZSBpdHMgcHJvcGVydGllcyBhbmQgbWV0aG9kcy5cclxuICAgKiBUaGlzIGFsbG93cyB0ZW1wbGF0ZXMgdG8gYWNjZXNzIFNESyBzZXJ2aWNlcyBhbmQgdGhlaXIgcHJvcGVydGllcy5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSByZXNvbHZlZCBTREsgc2VydmljZXMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVTZGtQcm94eSgpOiBhbnkge1xyXG4gICAgY29uc3Qgc2RrUm9vdCA9ICh3aW5kb3cgYXMgYW55KT8uVGFiU2RrO1xyXG4gICAgaWYgKCFzZGtSb290KSByZXR1cm4ge307XHJcblxyXG4gICAgY29uc3QgcmVzb2x2ZWRTZGs6IGFueSA9IHt9O1xyXG4gICAgLy8gR2V0IHN0YXRpYyBwcm9wZXJ0aWVzIGFuZCByZXNvbHZlIHRoZWlyIHZhbHVlc1xyXG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc2RrUm9vdCkuZm9yRWFjaChzZXJ2aWNlTmFtZSA9PiB7XHJcbiAgICAgIGlmIChzZXJ2aWNlTmFtZSA9PT0gJ2xlbmd0aCcgfHwgc2VydmljZU5hbWUgPT09ICduYW1lJyB8fCBzZXJ2aWNlTmFtZSA9PT0gJ3Byb3RvdHlwZScpIHJldHVybjtcclxuXHJcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBzZGtSb290W3NlcnZpY2VOYW1lXTtcclxuICAgICAgaWYgKCFzZXJ2aWNlKSByZXR1cm47XHJcblxyXG4gICAgICAvLyBDcmVhdGUgcmVzb2x2ZWQgc2VydmljZSBvYmplY3RcclxuICAgICAgcmVzb2x2ZWRTZGtbc2VydmljZU5hbWVdID0gdGhpcy5yZXNvbHZlU2VydmljZVZhbHVlcyhzZXJ2aWNlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiByZXNvbHZlZFNkaztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlc29sdmVzIHRoZSBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzIG9mIGEgc2VydmljZSBvYmplY3QuXHJcbiAgICogVGhpcyBpbmNsdWRlcyBib3RoIHN0YXRpYyBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzLCBhcyB3ZWxsIGFzIHByb3RvdHlwZSBwcm9wZXJ0aWVzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHNlcnZpY2UgLSBUaGUgc2VydmljZSBvYmplY3QgdG8gcmVzb2x2ZS5cclxuICAgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzb2x2ZWQgcHJvcGVydGllcyBhbmQgbWV0aG9kcy5cclxuICAgKi9cclxuICBwcml2YXRlIHJlc29sdmVTZXJ2aWNlVmFsdWVzKHNlcnZpY2U6IGFueSk6IGFueSB7XHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlQ2FjaGUuaGFzKHNlcnZpY2UpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VDYWNoZS5nZXQoc2VydmljZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmVzb2x2ZWQ6IGFueSA9IHt9O1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgZGVueSA9IG5ldyBTZXQoWydfX3Byb3RvX18nLCAncHJvdG90eXBlJywgJ2NvbnN0cnVjdG9yJ10pO1xyXG4gICAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XHJcblxyXG4gICAgICAvLyB3YWxrIHRoZSB3aG9sZSBwcm90b3R5cGUgY2hhaW4gKGluc3RhbmNlIOKGkiBiYXNlIHByb3RvdHlwZXMpLCBzdG9wIGF0IE9iamVjdC5wcm90b3R5cGVcclxuICAgICAgbGV0IG9iajogYW55ID0gc2VydmljZTtcclxuICAgICAgd2hpbGUgKG9iaiAmJiBvYmogIT09IE9iamVjdC5wcm90b3R5cGUpIHtcclxuICAgICAgICBmb3IgKGNvbnN0IHByb3Agb2YgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMob2JqKSkge1xyXG4gICAgICAgICAgaWYgKGRlbnkuaGFzKHByb3ApIHx8IHNlZW4uaGFzKHByb3ApKSBjb250aW51ZTtcclxuICAgICAgICAgIHNlZW4uYWRkKHByb3ApO1xyXG5cclxuICAgICAgICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgLy8gYWx3YXlzIHJlYWQgb2ZmIHRoZSBvcmlnaW5hbCBpbnN0YW5jZSBzbyBnZXR0ZXJzIHNlZSBjb3JyZWN0IGB0aGlzYFxyXG4gICAgICAgICAgICB2YWx1ZSA9IFJlZmxlY3QuZ2V0KHNlcnZpY2UsIHByb3ApO1xyXG4gICAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgLy8gZXhwb3NlIGEgaGFuZGxlIHNvIExpcXVpZCBwYXNzZXMgaXQgdGhyb3VnaCB0byB0aGUgYGNhbGxgIGZpbHRlclxyXG4gICAgICAgICAgICByZXNvbHZlZFtwcm9wXSA9IHRoaXMubWFrZU1ldGhvZEhhbmRsZShzZXJ2aWNlLCBwcm9wKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICByZXNvbHZlZFtwcm9wXSA9IHZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBvYmogPSBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHNlcnZpY2U/LmNvbnN0cnVjdG9yPy5uYW1lID09PSAnVXRpbFNlcnZpY2UnKSB7XHJcbiAgICAgICAgLy8gUHJvYmUgdGhlIGNvbnRleHQgZGlyZWN0bHlcclxuICAgICAgICBjb25zdCBjdHggPSAoc2VydmljZSBhcyBhbnkpLl9jb250ZXh0O1xyXG4gICAgICAgIGlmIChjdHgpIHtcclxuICAgICAgICAgIGZvciAoY29uc3Qgc3ZjTmFtZSBvZiBPYmplY3Qua2V5cyhjdHgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN2YyA9IGN0eFtzdmNOYW1lXTtcclxuICAgICAgICAgICAgaWYgKCFzdmMpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHN2Yy5fX3Byb3RvX18gfHwgc3ZjKSkge1xyXG4gICAgICAgICAgICAgIGlmIChkZW55Lmhhcyhwcm9wKSB8fCBzZWVuLmhhcyhwcm9wKSkgY29udGludWU7XHJcbiAgICAgICAgICAgICAgc2Vlbi5hZGQocHJvcCk7XHJcblxyXG4gICAgICAgICAgICAgIGxldCB2YWx1ZTogYW55O1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IFJlZmxlY3QuZ2V0KHNlcnZpY2UsIHByb3ApOyAvLyBmb3JjZXMgcHJveHkgdG8gcmVzb2x2ZVxyXG4gICAgICAgICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlZFtwcm9wXSA9IHRoaXMubWFrZU1ldGhvZEhhbmRsZShzZXJ2aWNlLCBwcm9wKTtcclxuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmVkW3Byb3BdID0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgIGNvbnNvbGUud2FybignVGVtcGxhdGVIZWxwZXI6IHJlc29sdmVTZXJ2aWNlVmFsdWVzIGZhaWxlZCcsIGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VydmljZUNhY2hlLnNldChzZXJ2aWNlLCByZXNvbHZlZCk7XHJcbiAgICByZXR1cm4gcmVzb2x2ZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgc3BlY2lhbCBoYW5kbGUgb2JqZWN0IHRoYXQgd3JhcHMgYSBmdW5jdGlvbiBvciBtZXRob2QgcmVmZXJlbmNlLlxyXG4gICAqIFRoZSBoYW5kbGUgaXMgdXNlZCBhcyBhIHBsYWNlaG9sZGVyIGZvciB0aGUgZnVuY3Rpb24gb3IgbWV0aG9kIGluIHRoZVxyXG4gICAqIHRlbXBsYXRlIGNvbnRleHQsIGFuZCBpcyB1c2VkIGJ5IHRoZSBgY2FsbGAgZmlsdGVyIHRvIGludm9rZSB0aGVcclxuICAgKiBmdW5jdGlvbiBvciBtZXRob2Qgd2l0aCBwcm92aWRlZCBhcmd1bWVudHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gcGFyZW50IC0gVGhlIG9iamVjdCB0aGF0IHRoZSBtZXRob2QgYmVsb25ncyB0by5cclxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBtZXRob2QuXHJcbiAgICogQHJldHVybnMgQSBoYW5kbGUgb2JqZWN0IHRoYXQgd3JhcHMgdGhlIGZ1bmN0aW9uIG9yIG1ldGhvZC5cclxuICAgKi9cclxuICBwcml2YXRlIG1ha2VNZXRob2RIYW5kbGUocGFyZW50OiBhbnksIG5hbWU6IHN0cmluZyk6IGFueSB7XHJcbiAgICBjb25zdCBoYW5kbGUgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoaGFuZGxlLCB7XHJcbiAgICAgIF9fc2RrSGFuZGxlOiB7IHZhbHVlOiAnbWV0aG9kJywgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSB9LFxyXG4gICAgICBfX3BhcmVudDogeyB2YWx1ZTogcGFyZW50LCBlbnVtZXJhYmxlOiBmYWxzZSwgd3JpdGFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlIH0sXHJcbiAgICAgIF9fbmFtZTogeyB2YWx1ZTogbmFtZSwgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBoYW5kbGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RlcnMgYSBmaWx0ZXIgdG8gY2FsbCBhIGZ1bmN0aW9uIG9yIG1ldGhvZCB3aXRoIHByb3ZpZGVkIGFyZ3VtZW50cy5cclxuICAgKiBUaGlzIGFsbG93cyB0ZW1wbGF0ZXMgdG8gaW52b2tlIGZ1bmN0aW9ucyBvciBtZXRob2RzIGR5bmFtaWNhbGx5LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJDYWxsRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbmdpbmUucmVnaXN0ZXJGaWx0ZXIoJ2NhbGwnLCBhc3luYyAoaW5wdXQ6IGFueSwgLi4uYXJnczogYW55W10pID0+IHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICAvLyBjYXNlIEE6IGlucHV0IGlzIG91ciBtZXRob2QgaGFuZGxlIChmcm9tIHJlc29sdmVTZXJ2aWNlVmFsdWVzKVxyXG4gICAgICAgIGlmIChpbnB1dCAmJiBpbnB1dC5fX3Nka0hhbmRsZSA9PT0gJ21ldGhvZCcgJiYgaW5wdXQuX19wYXJlbnQgJiYgaW5wdXQuX19uYW1lKSB7XHJcbiAgICAgICAgICBjb25zdCBmbiA9IFJlZmxlY3QuZ2V0KGlucHV0Ll9fcGFyZW50LCBpbnB1dC5fX25hbWUpO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCByZXMgPSBmbi5hcHBseShpbnB1dC5fX3BhcmVudCwgYXJncyk7XHJcbiAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzOyAvLyBzeW5jIG9yIGFzeW5jXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBjYXNlIEI6IGlucHV0IGlzIGFuIG9iamVjdCBhbmQgZmlyc3QgYXJnIGlzIHRoZSBtZXRob2QgbmFtZVxyXG4gICAgICAgIGlmIChpbnB1dCAmJiB0eXBlb2YgaW5wdXQgPT09ICdvYmplY3QnICYmIHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgY29uc3QgbWV0aG9kTmFtZSA9IGFyZ3NbMF07XHJcbiAgICAgICAgICBpZiAobWV0aG9kTmFtZSA9PT0gJ19fcHJvdG9fXycgfHwgbWV0aG9kTmFtZSA9PT0gJ3Byb3RvdHlwZScgfHwgbWV0aG9kTmFtZSA9PT0gJ2NvbnN0cnVjdG9yJykgcmV0dXJuICcnO1xyXG4gICAgICAgICAgY29uc3QgbWV0aG9kID0gUmVmbGVjdC5nZXQoaW5wdXQsIG1ldGhvZE5hbWUpO1xyXG4gICAgICAgICAgY29uc3QgcmVzdCA9IGFyZ3Muc2xpY2UoMSk7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIG1ldGhvZCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICBjb25zdCByZXMgPSBtZXRob2QuYXBwbHkoaW5wdXQsIHJlc3QpO1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gbm90IGEgZnVuY3Rpb24g4oaSIHRyZWF0IGFzIHByb3BlcnR5IGZhbGxiYWNrXHJcbiAgICAgICAgICByZXR1cm4gbWV0aG9kID8/ICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gKGZhbGxiYWNrKSBmdW5jdGlvbnMgc2hvdWxkIG5vdCByZWFjaCBMaXF1aWQsIGJ1dCBrZWVwIGZvciBzYWZldHlcclxuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICBjb25zdCByZXMgPSBpbnB1dCguLi5hcmdzKTtcclxuICAgICAgICAgIHJldHVybiBhd2FpdCByZXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWdpc3RlcnMgYSBmaWx0ZXIgdG8gYWNjZXNzIHByb3BlcnRpZXMgb2YgYW4gb2JqZWN0IHVzaW5nIGRvdCBvciBicmFja2V0IG5vdGF0aW9uLlxyXG4gICAqIFRoaXMgYWxsb3dzIHRlbXBsYXRlcyB0byBhY2Nlc3MgbmVzdGVkIHByb3BlcnRpZXMgc2FmZWx5LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVnaXN0ZXJQcm9wRmlsdGVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbmdpbmUucmVnaXN0ZXJGaWx0ZXIoJ3Byb3AnLCAoaW5wdXQ6IGFueSwgcGF0aDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChpbnB1dCA9PSBudWxsKSByZXR1cm4gJyc7XHJcbiAgICAgIGlmICh0eXBlb2YgcGF0aCAhPT0gJ3N0cmluZycgfHwgIXBhdGgudHJpbSgpKSByZXR1cm4gJyc7XHJcblxyXG4gICAgICAvLyBzdXBwb3J0IGRvdCAmIHNpbXBsZSBicmFja2V0IG5vdGF0aW9uOiBhLmIsIGFbMF0sIGFba2V5XVxyXG4gICAgICBjb25zdCBzZWdtZW50cyA9IHBhdGhcclxuICAgICAgICAucmVwbGFjZSgvXFxbKFxcZCspXFxdL2csICcuJDEnKSAgICAgLy8gWzBdIC0+IC4wXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhcXHcrKVxcXS9nLCAnLiQxJykgICAgIC8vIFtrZXldIC0+IC5rZXlcclxuICAgICAgICAuc3BsaXQoJy4nKVxyXG4gICAgICAgIC5tYXAocyA9PiBzLnRyaW0oKSlcclxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pO1xyXG5cclxuICAgICAgbGV0IGN1cjogYW55ID0gaW5wdXQ7XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IHNlZyBvZiBzZWdtZW50cykge1xyXG4gICAgICAgIGlmIChjdXIgPT0gbnVsbCkgcmV0dXJuICcnO1xyXG5cclxuICAgICAgICBjb25zdCBpZHggPSBOdW1iZXIoc2VnKTtcclxuICAgICAgICBjb25zdCBrZXk6IGFueSA9IE51bWJlci5pc05hTihpZHgpID8gc2VnIDogaWR4O1xyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgY3VyID0gUmVmbGVjdC5nZXQoY3VyLCBrZXkpO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGN1ciA/PyAnJztcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9oZWxwZXJzL2NvbW1vbi90ZW1wbGF0ZS5oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSXRELE1BQU0sT0FBTyxjQUFjO0lBS3pCO1FBSmlCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBWSxDQUFDO1FBQ2hELFdBQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBRzVCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxvQkFBb0IsQ0FBQyxRQUFnQixFQUFFLGlCQUF5QjtRQUM5RCxNQUFNLElBQUksR0FBRztZQUNYLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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Q0wsQ0FBQzsrRUFoUVUsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFERCxNQUFNOztpRkFDbkIsY0FBYztjQUQxQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvaHR0cC1jbGllbnQvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXBpLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IExpcXVpZCB9IGZyb20gJ2xpcXVpZGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZnJvbSwgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBnZXRIZWFkZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVxLXJlcy51dGlsJztcclxuaW1wb3J0IHsgQ29tbW9uQXBpUmVzcG9uc2UsIFRlbXBsYXRlUGFyc2VQYXlsb2FkIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jb21tb24uaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUhlbHBlciB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VydmljZUNhY2hlID0gbmV3IFdlYWtNYXA8YW55LCBhbnk+KCk7XHJcbiAgcHJpdmF0ZSBlbmdpbmUgPSBuZXcgTGlxdWlkKCk7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyQ2FsbEZpbHRlcigpO1xyXG4gICAgdGhpcy5yZWdpc3RlclByb3BGaWx0ZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnNlcyB0aGUgdGVtcGxhdGUgdXNpbmcgbG9jYWwgcmVuZGVyaW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHRlbXBsYXRlIC0gVGhlIHRlbXBsYXRlIHRvIGJlIHBhcnNlZC5cclxuICAgKiBAcGFyYW0gdGVtcGxhdGVWYXJpYWJsZXMgLSBUaGUgdmFyaWFibGVzIHRvIGJlIHVzZWQgZm9yIHRlbXBsYXRlIHJlbmRlcmluZy5cclxuICAgKiBAcmV0dXJucyBUaGUgcmVuZGVyZWQgdGVtcGxhdGUgcmVzdWx0LlxyXG4gICAqL1xyXG4gIHRlbXBsYXRlUGFyc2VMb2NhbGx5KHRlbXBsYXRlOiBzdHJpbmcsIHRlbXBsYXRlVmFyaWFibGVzOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgLi4uKHRlbXBsYXRlVmFyaWFibGVzPy5sZW5ndGggPyBKU09OLnBhcnNlKHRlbXBsYXRlVmFyaWFibGVzKSA6IHt9KSxcclxuICAgICAgVGFiU2RrOiB0aGlzLmNyZWF0ZVNka1Byb3h5KCksXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHRoaXMuZW5naW5lLnBhcnNlQW5kUmVuZGVyKHRlbXBsYXRlID8/ICcnLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnNlcyB0aGUgdGVtcGxhdGUgdW5pdmVyc2FsbHksIGVpdGhlciB1c2luZyBsb2NhbCByZW5kZXJpbmcgb3Igc2VydmVyLXNpZGUgcmVuZGVyaW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGRhdGEgLSBUaGUgZGF0YSB0byBiZSB1c2VkIGZvciB0ZW1wbGF0ZSBwYXJzaW5nLlxyXG4gICAqIEBwYXJhbSBzaG91bGRGYWlsT25TZXJ2ZXJQYXJzZSAtIEluZGljYXRlcyB3aGV0aGVyIHRvIGZhaWwgb24gc2VydmVyLXNpZGUgcGFyc2UgaWYgbG9jYWwgcGFyc2luZyBmYWlscy5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHBhcnNlZCB0ZW1wbGF0ZSByZXN1bHQuXHJcbiAgICovXHJcbiAgdGVtcGxhdGVQYXJzZVVuaXZlcnNhbChkYXRhOiBUZW1wbGF0ZVBhcnNlUGF5bG9hZCwgb25GYWlsZWRQYXJzZU9uU2VydmVyID0gdHJ1ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLnRlbXBsYXRlUGFyc2VMb2NhbGx5KGRhdGEuVmFsdWUsIGRhdGEuVGVtcGxhdGV2YXJpYWJsZXMpKS5waXBlKFxyXG4gICAgICBtYXAoKGh0bWwpID0+ICh7IFJlc3VsdDogaHRtbCB9KSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignTG9jYWwgcGFyc2UgZmFpbGVkJywgZXJyb3IpO1xyXG4gICAgICAgIHJldHVybiBvbkZhaWxlZFBhcnNlT25TZXJ2ZXIgPyB0aGlzLnRlbXBsYXRlUGFyc2UoZGF0YSkgOiBvZih7IFJlc3VsdDogJycgfSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFyc2VzIHRoZSB0ZW1wbGF0ZSB1c2luZyBzZXJ2ZXItc2lkZSByZW5kZXJpbmcuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBkYXRhIHRvIGJlIHVzZWQgZm9yIHRlbXBsYXRlIHBhcnNpbmcuXHJcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBwYXJzZWQgdGVtcGxhdGUgcmVzdWx0LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdGVtcGxhdGVQYXJzZShkYXRhOiBUZW1wbGF0ZVBhcnNlUGF5bG9hZCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcblxyXG4gICAgLy8gTWFrZXMgYSBQT1NUIHJlcXVlc3QgdG8gdGhlIHNlcnZlciB0byBwYXJzZSB0aGUgdGVtcGxhdGUuXHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLnRlbXBsYXRlUGFyc2UsIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHByb3h5IGZvciB0aGUgVGFiU2RrIG9iamVjdCB0byBleHBvc2UgaXRzIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMuXHJcbiAgICogVGhpcyBhbGxvd3MgdGVtcGxhdGVzIHRvIGFjY2VzcyBTREsgc2VydmljZXMgYW5kIHRoZWlyIHByb3BlcnRpZXMuXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzb2x2ZWQgU0RLIHNlcnZpY2VzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlU2RrUHJveHkoKTogYW55IHtcclxuICAgIGNvbnN0IHNka1Jvb3QgPSAod2luZG93IGFzIGFueSk/LlRhYlNkaztcclxuICAgIGlmICghc2RrUm9vdCkgcmV0dXJuIHt9O1xyXG5cclxuICAgIGNvbnN0IHJlc29sdmVkU2RrOiBhbnkgPSB7fTtcclxuICAgIC8vIEdldCBzdGF0aWMgcHJvcGVydGllcyBhbmQgcmVzb2x2ZSB0aGVpciB2YWx1ZXNcclxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHNka1Jvb3QpLmZvckVhY2goc2VydmljZU5hbWUgPT4ge1xyXG4gICAgICBpZiAoc2VydmljZU5hbWUgPT09ICdsZW5ndGgnIHx8IHNlcnZpY2VOYW1lID09PSAnbmFtZScgfHwgc2VydmljZU5hbWUgPT09ICdwcm90b3R5cGUnKSByZXR1cm47XHJcblxyXG4gICAgICBjb25zdCBzZXJ2aWNlID0gc2RrUm9vdFtzZXJ2aWNlTmFtZV07XHJcbiAgICAgIGlmICghc2VydmljZSkgcmV0dXJuO1xyXG5cclxuICAgICAgLy8gQ3JlYXRlIHJlc29sdmVkIHNlcnZpY2Ugb2JqZWN0XHJcbiAgICAgIHJlc29sdmVkU2RrW3NlcnZpY2VOYW1lXSA9IHRoaXMucmVzb2x2ZVNlcnZpY2VWYWx1ZXMoc2VydmljZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzb2x2ZWRTZGs7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNvbHZlcyB0aGUgcHJvcGVydGllcyBhbmQgbWV0aG9kcyBvZiBhIHNlcnZpY2Ugb2JqZWN0LlxyXG4gICAqIFRoaXMgaW5jbHVkZXMgYm90aCBzdGF0aWMgcHJvcGVydGllcyBhbmQgbWV0aG9kcywgYXMgd2VsbCBhcyBwcm90b3R5cGUgcHJvcGVydGllcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBzZXJ2aWNlIC0gVGhlIHNlcnZpY2Ugb2JqZWN0IHRvIHJlc29sdmUuXHJcbiAgICogQHJldHVybnMgQW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlc29sdmVkIHByb3BlcnRpZXMgYW5kIG1ldGhvZHMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZXNvbHZlU2VydmljZVZhbHVlcyhzZXJ2aWNlOiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHRoaXMuc2VydmljZUNhY2hlLmhhcyhzZXJ2aWNlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlQ2FjaGUuZ2V0KHNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJlc29sdmVkOiBhbnkgPSB7fTtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGRlbnkgPSBuZXcgU2V0KFsnX19wcm90b19fJywgJ3Byb3RvdHlwZScsICdjb25zdHJ1Y3RvciddKTtcclxuICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICAgICAgLy8gd2FsayB0aGUgd2hvbGUgcHJvdG90eXBlIGNoYWluIChpbnN0YW5jZSDihpIgYmFzZSBwcm90b3R5cGVzKSwgc3RvcCBhdCBPYmplY3QucHJvdG90eXBlXHJcbiAgICAgIGxldCBvYmo6IGFueSA9IHNlcnZpY2U7XHJcbiAgICAgIHdoaWxlIChvYmogJiYgb2JqICE9PSBPYmplY3QucHJvdG90eXBlKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKG9iaikpIHtcclxuICAgICAgICAgIGlmIChkZW55Lmhhcyhwcm9wKSB8fCBzZWVuLmhhcyhwcm9wKSkgY29udGludWU7XHJcbiAgICAgICAgICBzZWVuLmFkZChwcm9wKTtcclxuXHJcbiAgICAgICAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIC8vIGFsd2F5cyByZWFkIG9mZiB0aGUgb3JpZ2luYWwgaW5zdGFuY2Ugc28gZ2V0dGVycyBzZWUgY29ycmVjdCBgdGhpc2BcclxuICAgICAgICAgICAgdmFsdWUgPSBSZWZsZWN0LmdldChzZXJ2aWNlLCBwcm9wKTtcclxuICAgICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIC8vIGV4cG9zZSBhIGhhbmRsZSBzbyBMaXF1aWQgcGFzc2VzIGl0IHRocm91Z2ggdG8gdGhlIGBjYWxsYCBmaWx0ZXJcclxuICAgICAgICAgICAgcmVzb2x2ZWRbcHJvcF0gPSB0aGlzLm1ha2VNZXRob2RIYW5kbGUoc2VydmljZSwgcHJvcCk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZWRbcHJvcF0gPSB2YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgb2JqID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChzZXJ2aWNlPy5faXNQcm94eSkge1xyXG4gICAgICAgIC8vIFByb2JlIHRoZSBjb250ZXh0IGRpcmVjdGx5XHJcbiAgICAgICAgY29uc3QgY3R4ID0gKHNlcnZpY2UgYXMgYW55KS5fY29udGV4dDtcclxuICAgICAgICBpZiAoY3R4KSB7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IHN2Y05hbWUgb2YgT2JqZWN0LmtleXMoY3R4KSkge1xyXG4gICAgICAgICAgICBjb25zdCBzdmMgPSBjdHhbc3ZjTmFtZV07XHJcbiAgICAgICAgICAgIGlmICghc3ZjKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhzdmMuX19wcm90b19fIHx8IHN2YykpIHtcclxuICAgICAgICAgICAgICBpZiAoZGVueS5oYXMocHJvcCkgfHwgc2Vlbi5oYXMocHJvcCkpIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgIHNlZW4uYWRkKHByb3ApO1xyXG5cclxuICAgICAgICAgICAgICBsZXQgdmFsdWU6IGFueTtcclxuICAgICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSBSZWZsZWN0LmdldChzZXJ2aWNlLCBwcm9wKTsgLy8gZm9yY2VzIHByb3h5IHRvIHJlc29sdmVcclxuICAgICAgICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZWRbcHJvcF0gPSB0aGlzLm1ha2VNZXRob2RIYW5kbGUoc2VydmljZSwgcHJvcCk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlZFtwcm9wXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICBjb25zb2xlLndhcm4oJ1RlbXBsYXRlSGVscGVyOiByZXNvbHZlU2VydmljZVZhbHVlcyBmYWlsZWQnLCBlKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlcnZpY2VDYWNoZS5zZXQoc2VydmljZSwgcmVzb2x2ZWQpO1xyXG4gICAgcmV0dXJuIHJlc29sdmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIHNwZWNpYWwgaGFuZGxlIG9iamVjdCB0aGF0IHdyYXBzIGEgZnVuY3Rpb24gb3IgbWV0aG9kIHJlZmVyZW5jZS5cclxuICAgKiBUaGUgaGFuZGxlIGlzIHVzZWQgYXMgYSBwbGFjZWhvbGRlciBmb3IgdGhlIGZ1bmN0aW9uIG9yIG1ldGhvZCBpbiB0aGVcclxuICAgKiB0ZW1wbGF0ZSBjb250ZXh0LCBhbmQgaXMgdXNlZCBieSB0aGUgYGNhbGxgIGZpbHRlciB0byBpbnZva2UgdGhlXHJcbiAgICogZnVuY3Rpb24gb3IgbWV0aG9kIHdpdGggcHJvdmlkZWQgYXJndW1lbnRzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHBhcmVudCAtIFRoZSBvYmplY3QgdGhhdCB0aGUgbWV0aG9kIGJlbG9uZ3MgdG8uXHJcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgbWV0aG9kLlxyXG4gICAqIEByZXR1cm5zIEEgaGFuZGxlIG9iamVjdCB0aGF0IHdyYXBzIHRoZSBmdW5jdGlvbiBvciBtZXRob2QuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtYWtlTWV0aG9kSGFuZGxlKHBhcmVudDogYW55LCBuYW1lOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgaGFuZGxlID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcclxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGhhbmRsZSwge1xyXG4gICAgICBfX3Nka0hhbmRsZTogeyB2YWx1ZTogJ21ldGhvZCcsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2UgfSxcclxuICAgICAgX19wYXJlbnQ6IHsgdmFsdWU6IHBhcmVudCwgZW51bWVyYWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZSwgY29uZmlndXJhYmxlOiBmYWxzZSB9LFxyXG4gICAgICBfX25hbWU6IHsgdmFsdWU6IG5hbWUsIGVudW1lcmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2UgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaGFuZGxlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgZmlsdGVyIHRvIGNhbGwgYSBmdW5jdGlvbiBvciBtZXRob2Qgd2l0aCBwcm92aWRlZCBhcmd1bWVudHMuXHJcbiAgICogVGhpcyBhbGxvd3MgdGVtcGxhdGVzIHRvIGludm9rZSBmdW5jdGlvbnMgb3IgbWV0aG9kcyBkeW5hbWljYWxseS5cclxuICAgKi9cclxuICBwcml2YXRlIHJlZ2lzdGVyQ2FsbEZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZW5naW5lLnJlZ2lzdGVyRmlsdGVyKCdjYWxsJywgYXN5bmMgKGlucHV0OiBhbnksIC4uLmFyZ3M6IGFueVtdKSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgLy8gY2FzZSBBOiBpbnB1dCBpcyBvdXIgbWV0aG9kIGhhbmRsZSAoZnJvbSByZXNvbHZlU2VydmljZVZhbHVlcylcclxuICAgICAgICBpZiAoaW5wdXQgJiYgaW5wdXQuX19zZGtIYW5kbGUgPT09ICdtZXRob2QnICYmIGlucHV0Ll9fcGFyZW50ICYmIGlucHV0Ll9fbmFtZSkge1xyXG4gICAgICAgICAgY29uc3QgZm4gPSBSZWZsZWN0LmdldChpbnB1dC5fX3BhcmVudCwgaW5wdXQuX19uYW1lKTtcclxuICAgICAgICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgcmVzID0gZm4uYXBwbHkoaW5wdXQuX19wYXJlbnQsIGFyZ3MpO1xyXG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHJlczsgLy8gc3luYyBvciBhc3luY1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gY2FzZSBCOiBpbnB1dCBpcyBhbiBvYmplY3QgYW5kIGZpcnN0IGFyZyBpcyB0aGUgbWV0aG9kIG5hbWVcclxuICAgICAgICBpZiAoaW5wdXQgJiYgdHlwZW9mIGlucHV0ID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgYXJnc1swXSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBhcmdzWzBdO1xyXG4gICAgICAgICAgaWYgKG1ldGhvZE5hbWUgPT09ICdfX3Byb3RvX18nIHx8IG1ldGhvZE5hbWUgPT09ICdwcm90b3R5cGUnIHx8IG1ldGhvZE5hbWUgPT09ICdjb25zdHJ1Y3RvcicpIHJldHVybiAnJztcclxuICAgICAgICAgIGNvbnN0IG1ldGhvZCA9IFJlZmxlY3QuZ2V0KGlucHV0LCBtZXRob2ROYW1lKTtcclxuICAgICAgICAgIGNvbnN0IHJlc3QgPSBhcmdzLnNsaWNlKDEpO1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiBtZXRob2QgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgY29uc3QgcmVzID0gbWV0aG9kLmFwcGx5KGlucHV0LCByZXN0KTtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIG5vdCBhIGZ1bmN0aW9uIOKGkiB0cmVhdCBhcyBwcm9wZXJ0eSBmYWxsYmFja1xyXG4gICAgICAgICAgcmV0dXJuIG1ldGhvZCA/PyAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIChmYWxsYmFjaykgZnVuY3Rpb25zIHNob3VsZCBub3QgcmVhY2ggTGlxdWlkLCBidXQga2VlcCBmb3Igc2FmZXR5XHJcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgY29uc3QgcmVzID0gaW5wdXQoLi4uYXJncyk7XHJcbiAgICAgICAgICByZXR1cm4gYXdhaXQgcmVzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICB9IGNhdGNoIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGEgZmlsdGVyIHRvIGFjY2VzcyBwcm9wZXJ0aWVzIG9mIGFuIG9iamVjdCB1c2luZyBkb3Qgb3IgYnJhY2tldCBub3RhdGlvbi5cclxuICAgKiBUaGlzIGFsbG93cyB0ZW1wbGF0ZXMgdG8gYWNjZXNzIG5lc3RlZCBwcm9wZXJ0aWVzIHNhZmVseS5cclxuICAgKi9cclxuICBwcml2YXRlIHJlZ2lzdGVyUHJvcEZpbHRlcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZW5naW5lLnJlZ2lzdGVyRmlsdGVyKCdwcm9wJywgKGlucHV0OiBhbnksIHBhdGg6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaW5wdXQgPT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgICBpZiAodHlwZW9mIHBhdGggIT09ICdzdHJpbmcnIHx8ICFwYXRoLnRyaW0oKSkgcmV0dXJuICcnO1xyXG5cclxuICAgICAgLy8gc3VwcG9ydCBkb3QgJiBzaW1wbGUgYnJhY2tldCBub3RhdGlvbjogYS5iLCBhWzBdLCBhW2tleV1cclxuICAgICAgY29uc3Qgc2VnbWVudHMgPSBwYXRoXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhcXGQrKVxcXS9nLCAnLiQxJykgICAgIC8vIFswXSAtPiAuMFxyXG4gICAgICAgIC5yZXBsYWNlKC9cXFsoXFx3KylcXF0vZywgJy4kMScpICAgICAvLyBba2V5XSAtPiAua2V5XHJcbiAgICAgICAgLnNwbGl0KCcuJylcclxuICAgICAgICAubWFwKHMgPT4gcy50cmltKCkpXHJcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcclxuXHJcbiAgICAgIGxldCBjdXI6IGFueSA9IGlucHV0O1xyXG5cclxuICAgICAgZm9yIChjb25zdCBzZWcgb2Ygc2VnbWVudHMpIHtcclxuICAgICAgICBpZiAoY3VyID09IG51bGwpIHJldHVybiAnJztcclxuXHJcbiAgICAgICAgY29uc3QgaWR4ID0gTnVtYmVyKHNlZyk7XHJcbiAgICAgICAgY29uc3Qga2V5OiBhbnkgPSBOdW1iZXIuaXNOYU4oaWR4KSA/IHNlZyA6IGlkeDtcclxuXHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgIGN1ciA9IFJlZmxlY3QuZ2V0KGN1ciwga2V5KTtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBjdXIgPz8gJyc7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -73,4 +73,4 @@ export class UserPersonalizationHelper {
73
73
  type: Injectable,
74
74
  args: [{ providedIn: 'root' }]
75
75
  }], null, null); })();
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJzb25hbGl6YXRpb24uaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3VzZXItcGVyc29uYWxpemF0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUdtQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBc0VsRDtJQXBFQyx1QkFBdUIsQ0FBQyxJQUFTO1FBQy9CLE1BQU0sQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQWdCLEVBQUUsV0FBbUIsRUFBRSxJQUFZLEVBQUUsTUFBcUIsRUFBRSxHQUFtQixFQUFFLFFBQXdCO1FBQy9JLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFtQixFQUFF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Q1YsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLFdBQVcsRUFBRTtZQUN2RCxDQUFDLENBQUMsSUFBSSxDQUNUO2FBQ0EsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzswRkF0RVUseUJBQXlCO3VFQUF6Qix5QkFBeUIsV0FBekIseUJBQXlCLG1CQURaLE1BQU07O2lGQUNuQix5QkFBeUI7Y0FEckMsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZGJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXV0aC9pZGItc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9jb21tb24nO1xuaW1wb3J0IHsgU3RvcmFnZUNvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9zdG9yYWdlLWNvbnN0YW50cyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVXNlclBlcnNvbmFsaXphdGlvbkhlbHBlciB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpZGJTZXJ2aWNlID0gaW5qZWN0KElkYlNlcnZpY2UpO1xuXG4gIHNldFVzZXJQZXJzb25hbGl6ZWREYXRhKGRhdGE6IGFueSkge1xuICAgIENvbW1vbi50YWJVc2VyUGVyc29uYWxpemVkRGF0YSA9IGRhdGE7XG4gICAgdGhpcy5pZGJTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUNvbnN0YW50cy50YWJVc2VyUGVyc29uYWxpemVkRGF0YSwgZGF0YSk7XG4gIH1cblxuICBnZXRVc2VyUGVyc29uYWxpemVkRGF0YShzY3JlZW5JZDogc3RyaW5nLCBjb21wb25lbnRJZDogc3RyaW5nLCB0eXBlOiBudW1iZXIsIHVzZXJJZDogc3RyaW5nIHwgbnVsbCwga2V5Pzogc3RyaW5nIHwgbnVsbCwgdGVuYW50SWQ/OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVXNlclBlcnNvbmFsaXplZERhdGEoQ29tbW9uPy50YWJVc2VyUGVyc29uYWxpemVkRGF0YSwgc2NyZWVuSWQsIGNvbXBvbmVudElkLCB0eXBlLCB1c2VySWQsIGtleSwgdGVuYW50SWQpO1xuICB9XG5cbiAgZmlsdGVyVXNlclBlcnNvbmFsaXplZERhdGEoZGF0YTogYW55LCBzY3JlZW5JZDogc3RyaW5nLCBjb21wb25lbnRJZDogc3RyaW5nLCB0eXBlOiBudW1iZXIsIHVzZXJJZDogc3RyaW5nIHwgbnVsbCwga2V5Pzogc3RyaW5nIHwgbnVsbCwgdGVuYW50SWQ/OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgbGV0IGZpbHRlcmVkRGF0YSA9IGRhdGE/LmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtPy5TY3JlZW5JZD8udG9Mb3dlckNhc2UoKSA9PT0gc2NyZWVuSWQ/LnRvTG93ZXJDYXNlKCkgJiYgaXRlbT8uQ29tcG9uZW50SWQgPT09IGNvbXBvbmVudElkICYmIGl0ZW0/LlR5cGUgPT09IHR5cGUpO1xuXG4gICAgY29uc3Qga2V5RmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uS2V5Py50b0xvd2VyQ2FzZSgpID09PSBrZXk/LnRvTG93ZXJDYXNlKCkpO1xuICAgIGlmIChrZXlGaWx0ZXJlZERhdGE/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGZpbHRlcmVkRGF0YSA9IGtleUZpbHRlcmVkRGF0YTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uS2V5ID09PSBudWxsKTtcbiAgICB9XG5cbiAgICBjb25zdCB1c2VyRmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uVXNlcklkPy50b0xvd2VyQ2FzZSgpID09PSB1c2VySWQ/LnRvTG93ZXJDYXNlKCkpO1xuICAgIGlmICh1c2VyRmlsdGVyZWREYXRhPy5sZW5ndGggPiAwKSB7XG4gICAgICBmaWx0ZXJlZERhdGEgPSB1c2VyRmlsdGVyZWREYXRhO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZW5hbnREZWZhdWx0RGF0YSA9IGZpbHRlcmVkRGF0YT8uZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/LlVzZXJJZCA9PT0gbnVsbCAmJiBpdGVtPy5SZWNvcmRJbmZvPy5UZW5hbnRJZD8udG9Mb3dlckNhc2UoKSA9PT0gdGVuYW50SWQ/LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgaWYgKHRlbmFudElkICYmIHRlbmFudERlZmF1bHREYXRhPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbHRlcmVkRGF0YSA9IHRlbmFudERlZmF1bHREYXRhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uVXNlcklkID09PSBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyZWREYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIGEgdXNlcidzIHBlcnNvbmFsaXplZCBkYXRhIGZvciBhIGdpdmVuIGtleSBhbmQgdHlwZS5cbiAgICogRXhlY3V0ZXMgdGhlIGZvbGxvd2luZyBzdGVwczpcbiAgICogMS4gRmlsdGVycyBvdXQgcmVjb3JkcyB3aGVyZSB0aGUgVHlwZSBkb2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWVkIHR5cGUuXG4gICAqIDIuIFNvcnRzIHRoZSBkYXRhIGluIGRlc2NlbmRpbmcgb3JkZXIgYmFzZWQgb24gdGhlIFVzZXJJZCBmaWVsZC4gSWYgdGhlIFVzZXJJZFxuICAgKiAgICBpcyBudWxsLCBpdCBpcyBwbGFjZWQgYXQgdGhlIGVuZCBvZiB0aGUgc29ydGVkIGFycmF5LlxuICAgKiAzLiBGaWx0ZXJzIG91dCByZWNvcmRzIHdoZXJlIHRoZSBVc2VySWQgZG9lcyBub3QgbWF0Y2ggdGhlIHNwZWNpZmllZCB1c2VySWQuXG4gICAqICAgIElmIHRoZSBVc2VySWQgaXMgbnVsbCwgdGhlIHJlY29yZCBpcyBub3QgZmlsdGVyZWQgb3V0LlxuICAgKiA0LiBGaW5kcyB0aGUgZmlyc3QgcmVjb3JkIHdoZXJlIHRoZSBLZXkgbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIGtleS5cbiAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHNlYXJjaCBmb3IuXG4gICAqIEBwYXJhbSB0eXBlIFRoZSB0eXBlIG9mIGRhdGEgdG8gc2VhcmNoIGZvci5cbiAgICogQHBhcmFtIHVzZXJJZCBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gc2VhcmNoIGZvci5cbiAgICogQHJldHVybnMgVGhlIHVzZXIncyBwZXJzb25hbGl6ZWQgZGF0YSwgb3IgdW5kZWZpbmVkIGlmIG5vdCBmb3VuZC5cbiAgICogQGF1dGhvciBQYXJ0aCBCIFRoYWtrYXJcbiAgICogQGRhdGUgMjAyMy0xMS0yOFxuICAgKi9cbiAgZ2V0VXNlclBlcnNvbmFsaXplZERhdGFGcm9tS2V5KGtleTogc3RyaW5nLCB0eXBlOiBudW1iZXIsIHVzZXJJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgZGF0YSA9IChDb21tb24/LnRhYlVzZXJQZXJzb25hbGl6ZWREYXRhIHx8IFtdKVxuICAgICAgLmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtPy5UeXBlID09PSB0eXBlKVxuICAgICAgLnNvcnQoXG4gICAgICAgIChhOiBhbnksIGI6IGFueSkgPT5cbiAgICAgICAgICAoYT8uVXNlcklkID09PSBudWxsID8gMSA6IDApIC0gKGI/LlVzZXJJZCA9PT0gbnVsbCA/IDEgOiAwKSB8fFxuICAgICAgICAgIChhPy5Vc2VySWQ/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXJJZD8udG9Mb3dlckNhc2UoKSA/IC0xIDogMSlcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoKGl0ZW06IGFueSkgPT5cbiAgICAgICAgaXRlbT8uVXNlcklkXG4gICAgICAgICAgPyBpdGVtPy5Vc2VySWQ/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXJJZD8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgIDogdHJ1ZVxuICAgICAgKVxuICAgICAgLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbT8uS2V5Py50b0xvd2VyQ2FzZSgpID09PSBrZXk/LnRvTG93ZXJDYXNlKCkpO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxufSJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wZXJzb25hbGl6YXRpb24uaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2hlbHBlcnMvY29tbW9uL3VzZXItcGVyc29uYWxpemF0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFHckUsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUdtQixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBc0VsRDtJQXBFQyx1QkFBdUIsQ0FBQyxJQUFTO1FBQy9CLE1BQU0sQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELHVCQUF1QixDQUFDLFFBQWdCLEVBQUUsV0FBbUIsRUFBRSxJQUFZLEVBQUUsTUFBcUIsRUFBRSxHQUFtQixFQUFFLFFBQXdCO1FBQy9JLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlILENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFtQixFQUFF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Q1YsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEtBQUssTUFBTSxFQUFFLFdBQVcsRUFBRTtZQUN2RCxDQUFDLENBQUMsSUFBSSxDQUNUO2FBQ0EsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxLQUFLLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzswRkF0RVUseUJBQXlCO3VFQUF6Qix5QkFBeUIsV0FBekIseUJBQXlCLG1CQURaLE1BQU07O2lGQUNuQix5QkFBeUI7Y0FEckMsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJZGJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXV0aC9pZGItc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IFN0b3JhZ2VDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvc3RvcmFnZS1jb25zdGFudHMnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFVzZXJQZXJzb25hbGl6YXRpb25IZWxwZXIge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGlkYlNlcnZpY2UgPSBpbmplY3QoSWRiU2VydmljZSk7XHJcblxyXG4gIHNldFVzZXJQZXJzb25hbGl6ZWREYXRhKGRhdGE6IGFueSkge1xyXG4gICAgQ29tbW9uLnRhYlVzZXJQZXJzb25hbGl6ZWREYXRhID0gZGF0YTtcclxuICAgIHRoaXMuaWRiU2VydmljZS5zZXRJdGVtKFN0b3JhZ2VDb25zdGFudHMudGFiVXNlclBlcnNvbmFsaXplZERhdGEsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXNlclBlcnNvbmFsaXplZERhdGEoc2NyZWVuSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZywgdHlwZTogbnVtYmVyLCB1c2VySWQ6IHN0cmluZyB8IG51bGwsIGtleT86IHN0cmluZyB8IG51bGwsIHRlbmFudElkPzogc3RyaW5nIHwgbnVsbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyVXNlclBlcnNvbmFsaXplZERhdGEoQ29tbW9uPy50YWJVc2VyUGVyc29uYWxpemVkRGF0YSwgc2NyZWVuSWQsIGNvbXBvbmVudElkLCB0eXBlLCB1c2VySWQsIGtleSwgdGVuYW50SWQpO1xyXG4gIH1cclxuXHJcbiAgZmlsdGVyVXNlclBlcnNvbmFsaXplZERhdGEoZGF0YTogYW55LCBzY3JlZW5JZDogc3RyaW5nLCBjb21wb25lbnRJZDogc3RyaW5nLCB0eXBlOiBudW1iZXIsIHVzZXJJZDogc3RyaW5nIHwgbnVsbCwga2V5Pzogc3RyaW5nIHwgbnVsbCwgdGVuYW50SWQ/OiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBsZXQgZmlsdGVyZWREYXRhID0gZGF0YT8uZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/LlNjcmVlbklkPy50b0xvd2VyQ2FzZSgpID09PSBzY3JlZW5JZD8udG9Mb3dlckNhc2UoKSAmJiBpdGVtPy5Db21wb25lbnRJZCA9PT0gY29tcG9uZW50SWQgJiYgaXRlbT8uVHlwZSA9PT0gdHlwZSk7XHJcblxyXG4gICAgY29uc3Qga2V5RmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uS2V5Py50b0xvd2VyQ2FzZSgpID09PSBrZXk/LnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgaWYgKGtleUZpbHRlcmVkRGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBmaWx0ZXJlZERhdGEgPSBrZXlGaWx0ZXJlZERhdGE7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmaWx0ZXJlZERhdGEgPSBmaWx0ZXJlZERhdGE/LmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtPy5LZXkgPT09IG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHVzZXJGaWx0ZXJlZERhdGEgPSBmaWx0ZXJlZERhdGE/LmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtPy5Vc2VySWQ/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXJJZD8udG9Mb3dlckNhc2UoKSk7XHJcbiAgICBpZiAodXNlckZpbHRlcmVkRGF0YT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICBmaWx0ZXJlZERhdGEgPSB1c2VyRmlsdGVyZWREYXRhO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgdGVuYW50RGVmYXVsdERhdGEgPSBmaWx0ZXJlZERhdGE/LmZpbHRlcigoaXRlbTogYW55KSA9PiBpdGVtPy5Vc2VySWQgPT09IG51bGwgJiYgaXRlbT8uUmVjb3JkSW5mbz8uVGVuYW50SWQ/LnRvTG93ZXJDYXNlKCkgPT09IHRlbmFudElkPy50b0xvd2VyQ2FzZSgpKTtcclxuICAgICAgaWYgKHRlbmFudElkICYmIHRlbmFudERlZmF1bHREYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZmlsdGVyZWREYXRhID0gdGVuYW50RGVmYXVsdERhdGE7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmlsdGVyZWREYXRhID0gZmlsdGVyZWREYXRhPy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8uVXNlcklkID09PSBudWxsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kcyBhIHVzZXIncyBwZXJzb25hbGl6ZWQgZGF0YSBmb3IgYSBnaXZlbiBrZXkgYW5kIHR5cGUuXHJcbiAgICogRXhlY3V0ZXMgdGhlIGZvbGxvd2luZyBzdGVwczpcclxuICAgKiAxLiBGaWx0ZXJzIG91dCByZWNvcmRzIHdoZXJlIHRoZSBUeXBlIGRvZXMgbm90IG1hdGNoIHRoZSBzcGVjaWZpZWQgdHlwZS5cclxuICAgKiAyLiBTb3J0cyB0aGUgZGF0YSBpbiBkZXNjZW5kaW5nIG9yZGVyIGJhc2VkIG9uIHRoZSBVc2VySWQgZmllbGQuIElmIHRoZSBVc2VySWRcclxuICAgKiAgICBpcyBudWxsLCBpdCBpcyBwbGFjZWQgYXQgdGhlIGVuZCBvZiB0aGUgc29ydGVkIGFycmF5LlxyXG4gICAqIDMuIEZpbHRlcnMgb3V0IHJlY29yZHMgd2hlcmUgdGhlIFVzZXJJZCBkb2VzIG5vdCBtYXRjaCB0aGUgc3BlY2lmaWVkIHVzZXJJZC5cclxuICAgKiAgICBJZiB0aGUgVXNlcklkIGlzIG51bGwsIHRoZSByZWNvcmQgaXMgbm90IGZpbHRlcmVkIG91dC5cclxuICAgKiA0LiBGaW5kcyB0aGUgZmlyc3QgcmVjb3JkIHdoZXJlIHRoZSBLZXkgbWF0Y2hlcyB0aGUgc3BlY2lmaWVkIGtleS5cclxuICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gc2VhcmNoIGZvci5cclxuICAgKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiBkYXRhIHRvIHNlYXJjaCBmb3IuXHJcbiAgICogQHBhcmFtIHVzZXJJZCBUaGUgSUQgb2YgdGhlIHVzZXIgdG8gc2VhcmNoIGZvci5cclxuICAgKiBAcmV0dXJucyBUaGUgdXNlcidzIHBlcnNvbmFsaXplZCBkYXRhLCBvciB1bmRlZmluZWQgaWYgbm90IGZvdW5kLlxyXG4gICAqIEBhdXRob3IgUGFydGggQiBUaGFra2FyXHJcbiAgICogQGRhdGUgMjAyMy0xMS0yOFxyXG4gICAqL1xyXG4gIGdldFVzZXJQZXJzb25hbGl6ZWREYXRhRnJvbUtleShrZXk6IHN0cmluZywgdHlwZTogbnVtYmVyLCB1c2VySWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgZGF0YSA9IChDb21tb24/LnRhYlVzZXJQZXJzb25hbGl6ZWREYXRhIHx8IFtdKVxyXG4gICAgICAuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/LlR5cGUgPT09IHR5cGUpXHJcbiAgICAgIC5zb3J0KFxyXG4gICAgICAgIChhOiBhbnksIGI6IGFueSkgPT5cclxuICAgICAgICAgIChhPy5Vc2VySWQgPT09IG51bGwgPyAxIDogMCkgLSAoYj8uVXNlcklkID09PSBudWxsID8gMSA6IDApIHx8XHJcbiAgICAgICAgICAoYT8uVXNlcklkPy50b0xvd2VyQ2FzZSgpID09PSB1c2VySWQ/LnRvTG93ZXJDYXNlKCkgPyAtMSA6IDEpXHJcbiAgICAgIClcclxuICAgICAgLmZpbHRlcigoaXRlbTogYW55KSA9PlxyXG4gICAgICAgIGl0ZW0/LlVzZXJJZFxyXG4gICAgICAgICAgPyBpdGVtPy5Vc2VySWQ/LnRvTG93ZXJDYXNlKCkgPT09IHVzZXJJZD8udG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgOiB0cnVlXHJcbiAgICAgIClcclxuICAgICAgLmZpbmQoKGl0ZW06IGFueSkgPT4gaXRlbT8uS2V5Py50b0xvd2VyQ2FzZSgpID09PSBrZXk/LnRvTG93ZXJDYXNlKCkpO1xyXG5cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbn0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9hdXRoLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOZXdVc2VyUmVxdWVzdCB7XG4gIHVzZXJuYW1lPzogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luVXNlclJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG4vLyBleHBvcnQgaW50ZXJmYWNlIEZvcmdvdFBhc3N3b3JkVXNlclJlcXVlc3Qge1xuLy8gICBlbWFpbDogc3RyaW5nO1xuLy8gfVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmRVc2VyUmVxdWVzdCB7XG4gIEVtYWlsOiBzdHJpbmcsXG4gIE5ld1Bhc3N3b3JkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VQYXNzd29yZFVzZXJSZXF1ZXN0IHtcbiAgRW1haWw6IHN0cmluZyxcbiAgTmV3UGFzc3dvcmQ6IHN0cmluZztcbiAgQ3VycmVudFBhc3N3b3JkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWdpc3RlclRlbmFudCB7XG4gIEFkbWluRmlyc3ROYW1lOiBzdHJpbmcsXG4gIEFkbWluTGFzdE5hbWU6IHN0cmluZyxcbiAgQWRtaW5FbWFpbDogc3RyaW5nLFxuICBQYXNzd29yZDogc3RyaW5nLFxuICBUZW5hbnROYW1lOiBzdHJpbmcsXG4gIHRlcm1zOiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaFRva2VuUmVxdWVzdCB7XG4gIFRva2VuOiBzdHJpbmc7XG4gIFJlZnJlc2hUb2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJEZXRhaWxzUmVxdWVzdCB7XG4gIFVzZXJuYW1lPzogc3RyaW5nOyBcbiAgVXNlcklkPzogc3RyaW5nXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9hdXRoLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOZXdVc2VyUmVxdWVzdCB7XHJcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbiAgZW1haWw6IHN0cmluZztcclxuICBwYXNzd29yZDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luVXNlclJlcXVlc3Qge1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgcGFzc3dvcmQ6IHN0cmluZztcclxufVxyXG5cclxuLy8gZXhwb3J0IGludGVyZmFjZSBGb3Jnb3RQYXNzd29yZFVzZXJSZXF1ZXN0IHtcclxuLy8gICBlbWFpbDogc3RyaW5nO1xyXG4vLyB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmRVc2VyUmVxdWVzdCB7XHJcbiAgRW1haWw6IHN0cmluZyxcclxuICBOZXdQYXNzd29yZDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlUGFzc3dvcmRVc2VyUmVxdWVzdCB7XHJcbiAgRW1haWw6IHN0cmluZyxcclxuICBOZXdQYXNzd29yZDogc3RyaW5nO1xyXG4gIEN1cnJlbnRQYXNzd29yZDogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJUZW5hbnQge1xyXG4gIEFkbWluRmlyc3ROYW1lOiBzdHJpbmcsXHJcbiAgQWRtaW5MYXN0TmFtZTogc3RyaW5nLFxyXG4gIEFkbWluRW1haWw6IHN0cmluZyxcclxuICBQYXNzd29yZDogc3RyaW5nLFxyXG4gIFRlbmFudE5hbWU6IHN0cmluZyxcclxuICB0ZXJtczogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlZnJlc2hUb2tlblJlcXVlc3Qge1xyXG4gIFRva2VuOiBzdHJpbmc7XHJcbiAgUmVmcmVzaFRva2VuOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlckRldGFpbHNSZXF1ZXN0IHtcclxuICBVc2VybmFtZT86IHN0cmluZzsgXHJcbiAgVXNlcklkPzogc3RyaW5nXHJcbn0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluZGl2aWR1YWxDb25maWcgfSBmcm9tIFwibmd4LXRvYXN0clwiO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3RUeXBlLCBKc29uVHlwZSwgTm90aWZpY2F0aW9uVHlwZSwgUHJvY2VkdXJlT2JqZWN0VHlwZSB9IGZyb20gXCIuLi9lbnVtcy9jb21tb24uZW51bVwiO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJlc3BvbnNlIHtcbiAgcmVxdWVzdElkOiBzdHJpbmc7XG4gIGlzU3VjY2VzczogYm9vbGVhbjtcbiAgcmVzdWx0OiBhbnk7XG4gIGVycm9yczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3JkSW5mbyB7XG4gIGlzU3lzdGVtUmVjb3JkOiBib29sZWFuIHwgbnVsbDtcbiAgYmx1ZXByaW50SWQ6IHN0cmluZyB8IG51bGw7XG4gIGJsdWVwcmludFN0YXR1c0lkOiBzdHJpbmcgfCBudWxsO1xuICByZWNvcmRJZDogc3RyaW5nO1xuICBwcmltYXJ5S2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbW9uQXBpUmVzcG9uc2Uge1xuICBSZXF1ZXN0SWQ6IHN0cmluZ1xuICBJc1N1Y2Nlc3M6IGJvb2xlYW5cbiAgUmVzdWx0OiBhbnlcbiAgU3RhdHVzQ29kZTogc3RyaW5nXG4gIFJlY29yZEFmZmVjdHRlZDogbnVtYmVyXG4gIFRvdGFsUmVjb3JkczogbnVtYmVyXG4gIFRvdGFsRXhlY3V0aW9uVGltZTogbnVtYmVyXG4gIExvZzogYW55W11cbiAgRXJyb3JzOiBhbnlbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFNjcmVlbkNvbmZpZyB7XG4gIGxheW91dElkPzogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1JlcXVlc3RQYXlsb2FkIHtcbiAgU2NyZWVuSWQ6IHN0cmluZyxcbiAgRGF0YTogYW55XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVQYXJzZVBheWxvYWQge1xuICBEYXRhU291cmNlTW9kZT86IG51bWJlcixcbiAgVmFsdWU6IHN0cmluZyxcbiAgVGVtcGxhdGV2YXJpYWJsZXM6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5leHRTdGF0dXNQYXlsb2FkIHtcbiAgcmVjb3JkSWQ6IHN0cmluZyxcbiAgYXBwT2JqZWN0SWQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTdGF0dXNQYXlsb2FkIGV4dGVuZHMgTmV4dFN0YXR1c1BheWxvYWQge1xuICBuZXh0UG9zc2libGVTdGF0dXNJZDogc3RyaW5nLFxuICBvcHRpb25zPzogYW55XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJBcHBPYmplY3RzUGF5bG9hZCB7XG4gIENvbm5lY3Rpb25JZDogc3RyaW5nLFxuICBUYWJsZXM6IHN0cmluZ1tdLFxuICBWaWV3czogc3RyaW5nW11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG9uZURzcVBheWxvYWQge1xuICBEU1FJZDogc3RyaW5nLFxuICBRdWVyeU5hbWU6IHN0cmluZyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXREYXRhSnNvbkJ5VHlwZVBheWxvYWQge1xuICBKc29uVHlwZTogSnNvblR5cGUsXG4gIFJlcXRva2Vucz86IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN5bmNBcHBGaWVsZHNQYXlsb2FkIHtcbiAgQ29ubmVjdGlvbklkOiBzdHJpbmc7XG4gIEFwcE9iamVjdElkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaEdsb2JhbFNlYXJjaERhdGFQYXlsb2FkIHtcbiAgUXVlcnlPYmplY3RJRDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZnJlc2hSZWNvcmRJbmZvRGF0YVBheWxvYWQge1xuICBRdWVyeU9iamVjdElEOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkTWVkaWFGaWxlUGF5bG9hZCB7XG4gIEJhc2U2NFN0cmluZzogc3RyaW5nO1xuICBGaWxlTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZE1lZGlhRmlsZXNQYXlsb2FkIHtcbiAgVXBsb2FkRmlsZXM6IFVwbG9hZE1lZGlhRmlsZVBheWxvYWRbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydFBheWxvYWQge1xuICBEYXRhUmVwb3J0SWQ6IHN0cmluZyxcbiAgUmVxdG9rZW5zOiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQZXJmb3JtYW5jZUFuYWx5dGljc1BheWxvYWQge1xuICB0eXBlOiBzdHJpbmcsXG4gIHZhbHVlOiBzdHJpbmcsXG4gIGZyb21EYXRlOiBzdHJpbmcsXG4gIHRvRGF0ZTogc3RyaW5nLFxuICBsaW1pdD86IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcmVlblBlcmZvcm1hbmNlUGF5bG9hZCB7XG4gIHZhbHVlOiBzdHJpbmcsXG4gIGxvYWRUaW1lOiBudW1iZXIsXG4gIHRhZ3M6IHtcbiAgICBkc3FJZHM6IHN0cmluZ1tdLFxuICAgIGFwcE9iamVjdElkczogc3RyaW5nW11cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIHRyYW5zbGF0ZVBheWxvYWQge1xuICBsYW5ndWFnZTogc3RyaW5nO1xuICBsYW5ndWFnZUNvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlTm90aWZpY2F0aW9uT3B0aW9ucyB7XG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGNvbmZpZ3VyYXRpb24/OiBQYXJ0aWFsPEluZGl2aWR1YWxDb25maWc8YW55Pj4gfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uT3B0aW9ucyBleHRlbmRzIEJhc2VOb3RpZmljYXRpb25PcHRpb25zIHtcbiAgdHlwZTogTm90aWZpY2F0aW9uVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtYXRpb25PcHRpb25zIHtcbiAgdGl0bGU6IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBwcmltYXJ5T3B0aW9uPzogc3RyaW5nO1xuICBzZWNvbmRhcnlPcHRpb24/OiBzdHJpbmc7XG4gIGRpc3BsYXlIZWFkZXI/OiBib29sZWFuO1xuICBkaXNwbGF5Rm9vdGVyPzogYm9vbGVhbjtcbiAgZGlzcGxheUJvZHk/OiBib29sZWFuO1xuICBkaXNwbGF5UHJpbWFyeUJ1dHRvbj86IGJvb2xlYW47XG4gIGRpc3BsYXlTZWNvbmRhcnlCdXR0b24/OiBib29sZWFuO1xuICBkaXNwbGF5Q2xvc2VCdXR0b24/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENydWRCYXNlUGF5bG9hZCB7XG4gIGFwcE9iamVjdElkT3JOYW1lPzogc3RyaW5nO1xuICBkYXRhU291cmNlUXVlcnlJZE9yTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnNlcnRQYXlsb2FkIGV4dGVuZHMgQ3J1ZEJhc2VQYXlsb2FkIHtcbiAgZGF0YTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVBheWxvYWQgZXh0ZW5kcyBJbnNlcnRQYXlsb2FkIHtcbiAgY3JpdGVyaWE6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVQYXlsb2FkIGV4dGVuZHMgQ3J1ZEJhc2VQYXlsb2FkIHtcbiAgY3JpdGVyaWE6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRQYXlsb2FkIHtcbiAgZGF0YVNvdXJjZVF1ZXJ5SWRPck5hbWU6IHN0cmluZztcbiAgY3JpdGVyaWE6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbXByb3REYXRhUGF5bG9hZCB7XG4gIEltcG9ydE9iamVjdE1hcHBpbmdJZDogc3RyaW5nO1xuICBGaWxlOiBzdHJpbmc7XG4gIEltcG9ydFR5cGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hEYXRhUGF5bG9hZCB7XG4gIHNlYXJjaFF1ZXJ5OiBzdHJpbmc7XG4gIGxpbWl0OiBudW1iZXI7XG4gIGFwcE9iamVjdElkPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmNvcmRIaXN0b3J5UGF5bG9hZCB7XG4gIGFwcE9iamVjdElkOiBzdHJpbmc7XG4gIHJlY29yZElkczogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEV4ZWN1dGVSZXF1ZXN0UGF5bG9hZCB7XG4gIGZ1bGxVcmw6IHN0cmluZyxcbiAgbWV0aG9kOiBIdHRwUmVxdWVzdFR5cGUsXG4gIGhlYWRlcnM/OiBhbnksXG4gIGJvZHk/OiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBleGVjdXRlU3RvcmVkUHJvY2VkdXJlUGF5bG9hZCB7XG4gIE9iamVjdE5hbWU6IHN0cmluZztcbiAgT2JqZWN0VHlwZTogUHJvY2VkdXJlT2JqZWN0VHlwZVxuICBQYXJhbWV0ZXJzPzogYW55O1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluZGl2aWR1YWxDb25maWcgfSBmcm9tIFwibmd4LXRvYXN0clwiO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdFR5cGUsIEpzb25UeXBlLCBOb3RpZmljYXRpb25UeXBlLCBQcm9jZWR1cmVPYmplY3RUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2NvbW1vbi5lbnVtXCI7XHJcblxyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBpUmVzcG9uc2Uge1xyXG4gIHJlcXVlc3RJZDogc3RyaW5nO1xyXG4gIGlzU3VjY2VzczogYm9vbGVhbjtcclxuICByZXN1bHQ6IGFueTtcclxuICBlcnJvcnM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlY29yZEluZm8ge1xyXG4gIGlzU3lzdGVtUmVjb3JkOiBib29sZWFuIHwgbnVsbDtcclxuICBibHVlcHJpbnRJZDogc3RyaW5nIHwgbnVsbDtcclxuICBibHVlcHJpbnRTdGF0dXNJZDogc3RyaW5nIHwgbnVsbDtcclxuICByZWNvcmRJZDogc3RyaW5nO1xyXG4gIHByaW1hcnlLZXk6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb21tb25BcGlSZXNwb25zZSB7XHJcbiAgUmVxdWVzdElkOiBzdHJpbmdcclxuICBJc1N1Y2Nlc3M6IGJvb2xlYW5cclxuICBSZXN1bHQ6IGFueVxyXG4gIFN0YXR1c0NvZGU6IHN0cmluZ1xyXG4gIFJlY29yZEFmZmVjdHRlZDogbnVtYmVyXHJcbiAgVG90YWxSZWNvcmRzOiBudW1iZXJcclxuICBUb3RhbEV4ZWN1dGlvblRpbWU6IG51bWJlclxyXG4gIExvZzogYW55W11cclxuICBFcnJvcnM6IGFueVtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0U2NyZWVuQ29uZmlnIHtcclxuICBsYXlvdXRJZD86IHN0cmluZztcclxuICB2ZXJzaW9uPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1JlcXVlc3RQYXlsb2FkIHtcclxuICBTY3JlZW5JZDogc3RyaW5nLFxyXG4gIERhdGE6IGFueVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlUGFyc2VQYXlsb2FkIHtcclxuICBEYXRhU291cmNlTW9kZT86IG51bWJlcixcclxuICBWYWx1ZTogc3RyaW5nLFxyXG4gIFRlbXBsYXRldmFyaWFibGVzOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOZXh0U3RhdHVzUGF5bG9hZCB7XHJcbiAgcmVjb3JkSWQ6IHN0cmluZyxcclxuICBhcHBPYmplY3RJZD86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVN0YXR1c1BheWxvYWQgZXh0ZW5kcyBOZXh0U3RhdHVzUGF5bG9hZCB7XHJcbiAgbmV4dFBvc3NpYmxlU3RhdHVzSWQ6IHN0cmluZyxcclxuICBvcHRpb25zPzogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJBcHBPYmplY3RzUGF5bG9hZCB7XHJcbiAgQ29ubmVjdGlvbklkOiBzdHJpbmcsXHJcbiAgVGFibGVzOiBzdHJpbmdbXSxcclxuICBWaWV3czogc3RyaW5nW11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDbG9uZURzcVBheWxvYWQge1xyXG4gIERTUUlkOiBzdHJpbmcsXHJcbiAgUXVlcnlOYW1lOiBzdHJpbmcsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2V0RGF0YUpzb25CeVR5cGVQYXlsb2FkIHtcclxuICBKc29uVHlwZTogSnNvblR5cGUsXHJcbiAgUmVxdG9rZW5zPzogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3luY0FwcEZpZWxkc1BheWxvYWQge1xyXG4gIENvbm5lY3Rpb25JZDogc3RyaW5nO1xyXG4gIEFwcE9iamVjdElkOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaEdsb2JhbFNlYXJjaERhdGFQYXlsb2FkIHtcclxuICBRdWVyeU9iamVjdElEOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaFJlY29yZEluZm9EYXRhUGF5bG9hZCB7XHJcbiAgUXVlcnlPYmplY3RJRDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZE1lZGlhRmlsZVBheWxvYWQge1xyXG4gIEJhc2U2NFN0cmluZzogc3RyaW5nO1xyXG4gIEZpbGVOYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkTWVkaWFGaWxlc1BheWxvYWQge1xyXG4gIFVwbG9hZEZpbGVzOiBVcGxvYWRNZWRpYUZpbGVQYXlsb2FkW11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRQYXlsb2FkIHtcclxuICBEYXRhUmVwb3J0SWQ6IHN0cmluZyxcclxuICBSZXF0b2tlbnM6IGFueVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBlcmZvcm1hbmNlQW5hbHl0aWNzUGF5bG9hZCB7XHJcbiAgdHlwZTogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmcsXHJcbiAgZnJvbURhdGU6IHN0cmluZyxcclxuICB0b0RhdGU6IHN0cmluZyxcclxuICBsaW1pdD86IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNjcmVlblBlcmZvcm1hbmNlUGF5bG9hZCB7XHJcbiAgdmFsdWU6IHN0cmluZyxcclxuICBsb2FkVGltZTogbnVtYmVyLFxyXG4gIHRhZ3M6IHtcclxuICAgIGRzcUlkczogc3RyaW5nW10sXHJcbiAgICBhcHBPYmplY3RJZHM6IHN0cmluZ1tdXHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHRyYW5zbGF0ZVBheWxvYWQge1xyXG4gIGxhbmd1YWdlOiBzdHJpbmc7XHJcbiAgbGFuZ3VhZ2VDb2RlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFzZU5vdGlmaWNhdGlvbk9wdGlvbnMge1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBjb25maWd1cmF0aW9uPzogUGFydGlhbDxJbmRpdmlkdWFsQ29uZmlnPGFueT4+IHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbk9wdGlvbnMgZXh0ZW5kcyBCYXNlTm90aWZpY2F0aW9uT3B0aW9ucyB7XHJcbiAgdHlwZTogTm90aWZpY2F0aW9uVHlwZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb25maXJtYXRpb25PcHRpb25zIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBwcmltYXJ5T3B0aW9uPzogc3RyaW5nO1xyXG4gIHNlY29uZGFyeU9wdGlvbj86IHN0cmluZztcclxuICBkaXNwbGF5SGVhZGVyPzogYm9vbGVhbjtcclxuICBkaXNwbGF5Rm9vdGVyPzogYm9vbGVhbjtcclxuICBkaXNwbGF5Qm9keT86IGJvb2xlYW47XHJcbiAgZGlzcGxheVByaW1hcnlCdXR0b24/OiBib29sZWFuO1xyXG4gIGRpc3BsYXlTZWNvbmRhcnlCdXR0b24/OiBib29sZWFuO1xyXG4gIGRpc3BsYXlDbG9zZUJ1dHRvbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3J1ZEJhc2VQYXlsb2FkIHtcclxuICBhcHBPYmplY3RJZE9yTmFtZT86IHN0cmluZztcclxuICBkYXRhU291cmNlUXVlcnlJZE9yTmFtZT86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnNlcnRQYXlsb2FkIGV4dGVuZHMgQ3J1ZEJhc2VQYXlsb2FkIHtcclxuICBkYXRhOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlUGF5bG9hZCBleHRlbmRzIEluc2VydFBheWxvYWQge1xyXG4gIGNyaXRlcmlhOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlUGF5bG9hZCBleHRlbmRzIENydWRCYXNlUGF5bG9hZCB7XHJcbiAgY3JpdGVyaWE6IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHZXRQYXlsb2FkIHtcclxuICBkYXRhU291cmNlUXVlcnlJZE9yTmFtZTogc3RyaW5nO1xyXG4gIGNyaXRlcmlhOiBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW1wcm90RGF0YVBheWxvYWQge1xyXG4gIEltcG9ydE9iamVjdE1hcHBpbmdJZDogc3RyaW5nO1xyXG4gIEZpbGU6IHN0cmluZztcclxuICBJbXBvcnRUeXBlOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoRGF0YVBheWxvYWQge1xyXG4gIHNlYXJjaFF1ZXJ5OiBzdHJpbmc7XHJcbiAgbGltaXQ6IG51bWJlcjtcclxuICBhcHBPYmplY3RJZD86IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJjb3JkSGlzdG9yeVBheWxvYWQge1xyXG4gIGFwcE9iamVjdElkOiBzdHJpbmc7XHJcbiAgcmVjb3JkSWRzOiBzdHJpbmdbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBIdHRwRXhlY3V0ZVJlcXVlc3RQYXlsb2FkIHtcclxuICBmdWxsVXJsOiBzdHJpbmcsXHJcbiAgbWV0aG9kOiBIdHRwUmVxdWVzdFR5cGUsXHJcbiAgaGVhZGVycz86IGFueSxcclxuICBib2R5PzogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXhlY3V0ZVN0b3JlZFByb2NlZHVyZVBheWxvYWQge1xyXG4gIE9iamVjdE5hbWU6IHN0cmluZztcclxuICBPYmplY3RUeXBlOiBQcm9jZWR1cmVPYmplY3RUeXBlXHJcbiAgUGFyYW1ldGVycz86IGFueTtcclxufVxyXG4iXX0=
@@ -1,3 +1,3 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  export {};
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9ncmlkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5cbmltcG9ydCB7IExvb2tVcERldGFpbHMgfSBmcm9tIFwiLi4vbW9kZWxzL2RhdGEtc291cmNlLXF1ZXJpZXMuY2xhc3NcIjtcblxuZXhwb3J0IGludGVyZmFjZSBKcVdpZGdodE1vZGVsIHtcbiAgd2lkdGg/OiBudW1iZXIgfCBhbnk7XG4gIGhlaWdodD86IG51bWJlciB8IGFueTtcbiAgc291cmNlPzogU291cmNlTW9kZWw7XG4gIGNvbHVtbnM/OiBBcnJheTxDb2x1bW5EZXRhaWxNb2RlbD47XG4gIGlzUGFnZWFibGU/OiBib29sZWFuO1xuICBpc0F1dG9oZWlnaHQ/OiBib29sZWFuO1xuICBpc1NvcnRhYmxlPzogYm9vbGVhbjtcbiAgc2VsZWN0aW9ubW9kZT86IHN0cmluZztcbiAgY29sdW1uZ3JvdXBzPzogQXJyYXk8Q29sdW1uZ3JvdXBNb2RlbD47XG4gIGlzQWx0Um93PzogYm9vbGVhbjtcbiAgaXNlbmFibGV0b29sdGlwcz86IGJvb2xlYW47XG4gIGlzZWRpdGFibGU/OiBib29sZWFuO1xuICBzb3VyY2VJZD86IHN0cmluZztcbiAgdHlwZU9mRGF0YT86IHN0cmluZztcbiAgYWN0dWFsRGF0YT86IEFycmF5PGFueT47XG4gIGRhdGFGaWVsZD86IEFycmF5PERhdGFGaWVsZHNNb2RlbD47XG4gIGFjdGlvbkFycmF5PzogQXJyYXk8QWN0aW9uTW9kZWw+O1xuICBpc1Nob3dUb29sYmFyPzogYm9vbGVhbjtcbiAgaXNTaG93U3RhdHVzQmFyPzogYm9vbGVhbjtcbiAgYWN0aW9uc0luPzogc3RyaW5nO1xuICBpc0ZpbHRlcmFibGU/OiBib29sZWFuO1xuICBpc1NvcnRiYWNrR3JvdW5nQ29sb3I/OiBib29sZWFuO1xuICBpc2F1dG9zaG93ZmlsdGVyaWNvbj86IGJvb2xlYW47XG4gIGlzc2hvd2ZpbHRlcnJvdz86IGJvb2xlYW47XG4gIHBhZ2VybW9kZT86IHN0cmluZztcbiAgaXNHcm91cGFibGU/OiBib29sZWFuO1xuICBpc1Jvd2xldmVsRWRpdD86IGJvb2xlYW47XG4gIGlzUm93bGV2ZWxEZWxldGU/OiBib29sZWFuO1xuICBpc1Jvd2xldmVsVmlldz86IGJvb2xlYW47XG4gIHByaW1hcnlLZXljb2x1bW5OYW1lPzogc3RyaW5nO1xuICBncmlkSWQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBncm91cHM/OiBhbnk7XG4gIGdyb3VwQ29sdW1ucz86IHN0cmluZztcbiAgZ3JpZENvbHVtbkFycj86IEFycmF5PHN0cmluZz4gfCBhbnk7XG4gIHRoZW1lPzogc3RyaW5nO1xuICBwYWdlc2l6ZW9wdGlvbnM/OiBzdHJpbmc7XG4gIGRlZmF1bHRQYWdlU2l6ZT86IHN0cmluZztcbiAgY3VycmVudFNjcmVlbklkPzogc3RyaW5nO1xuICBjdXN0b21OYXZpZ2F0ZT86IHN0cmluZztcbiAgZ3JpZE5hbWU/OiBzdHJpbmc7XG4gIGdyaWRTdGF0ZT86IHN0cmluZyB8IGFueTtcbiAgaXNjb2x1bW5zcmVvcmRlcj86IGJvb2xlYW47XG4gIGlzU3RhdGVCPzogYm9vbGVhbjtcbiAgYWRkU2NyZWVuSWQ/OiBzdHJpbmc7XG4gIGVkaXRTY3JlZW5JZD86IHN0cmluZztcbiAgdmlld1NjcmVlbklkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZU1vZGVsIHtcbiAgZGF0YXR5cGU/OiBzdHJpbmc7XG4gIGRhdGFmaWVsZHM/OiBBcnJheTxEYXRhRmllbGRzTW9kZWw+O1xuICBpZD86IHN0cmluZztcbiAgbG9jYWxkYXRhPzogYW55O1xuICBwYWdlc2l6ZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhRmllbGRzTW9kZWwge1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBzZXE/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRGV0YWlsTW9kZWwge1xuICB0ZXh0Pzogc3RyaW5nO1xuICBkYXRhRmllbGQ/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICBjZWxsc2FsaWduPzogc3RyaW5nO1xuICBjZWxsc2Zvcm1hdD86IHN0cmluZztcbiAgY29sdW1uVHlwZT86IHN0cmluZztcbiAgY29sdW1uR3JvdXA/OiBzdHJpbmc7XG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcbiAgYnV0dG9uY2xpY2s/OiBhbnk7XG4gIHJlbmRlcmVyPzogYW55O1xuICBjb2x1bW50eXBlPzogc3RyaW5nO1xuICBmaWx0ZXJ0eXBlPzogc3RyaW5nO1xuICBzZXE/OiBudW1iZXI7XG4gIGFsaWduPzogc3RyaW5nO1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGZpbHRlcmFibGU/OiBib29sZWFuO1xuICBjZWxsc3JlbmRlcmVyPzogYW55O1xuICBmaWx0ZXJQYXJhbWV0ZXI/OiBzdHJpbmc7XG4gIGFkZFNjcmVlbklkPzogc3RyaW5nO1xuICBlZGl0U2NyZWVuSWQ/OiBzdHJpbmc7XG4gIHZpZXdTY3JlZW5JZD86IHN0cmluZztcbiAgYXBwRmllbGRJZD86IHN0cmluZztcbiAgaXNQcmltYXJ5S2V5PzogYm9vbGVhbjtcbiAgTG9va1VwRGV0YWlscz86IGFueTtcbiAgZHJvcERvd25Mb29rdXA/OiBhbnk7XG4gIFN5c3RlbURCRmllbGROYW1lPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbmdyb3VwTW9kZWwge1xuICB0ZXh0Pzogc3RyaW5nO1xuICBhbGlnbj86IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25Nb2RlbCB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGltZ1NyYz86IHN0cmluZztcbiAgYnV0dG9uV2lkdGg/OiBudW1iZXI7XG4gIGJ1dHRvbkhlaWdodD86IG51bWJlcjtcbiAgYnV0dG9uVmFsdWU/OiBzdHJpbmc7XG4gIGltZ1Bvc2l0aW9uPzogc3RyaW5nO1xuICB0ZXh0UG9zaXRpb24/OiBzdHJpbmc7XG4gIHRleHRJbWFnZVJlbGF0aW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkxldmVsQWN0aW9ucyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHJvd0lkPzogbnVtYmVyO1xuICB2YWx1ZVRvU2hvdz86IHN0cmluZztcbn1cblxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgYSBjbGFzcyBDb2x1bW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTeW5jZnVzaW9uR3JpZENvbHVtbk1vZGVsIHtcbiAgLy8gZm9yIGVkaXQgdGFtcGxhdGVzXG4gIGVkaXQ/OiBhbnk7XG5cbiAgTG9va1VwRGV0YWlscz86IExvb2tVcERldGFpbHM7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBmaWVsZCBuYW1lIG9mIGNvbHVtbiB3aGljaCBpcyBtYXBwZWQgd2l0aCBtYXBwaW5nIG5hbWUgb2YgRGF0YVNvdXJjZS5cbiAgICogVGhlIGJvdW5kZWQgY29sdW1ucyBjYW4gYmUgc29ydCwgZmlsdGVyIGFuZCBncm91cCBldGMuLFxuICAgKiBJZiB0aGUgYGZpZWxkYCBuYW1lIGNvbnRhaW5zIOKAnGRvdOKAnSwgdGhlbiBpdCBpcyBjb25zaWRlcmVkIGFzIGNvbXBsZXggYmluZGluZy5cbiAgICogVGhlIGBmaWVsZGAgbmFtZSBtdXN0IGJlIGEgdmFsaWQgSmF2YVNjcmlwdCBpZGVudGlmaWVyLFxuICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYW4gYWxwaGFiZXQgYW5kIHNob3VsZCBub3QgY29udGFpbiBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycy5cbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIGZpZWxkPzogc3RyaW5nO1xuICAvKipcbiAgICogR2V0cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgdmFsdWUgb2YgdGhlIGNvbHVtbi4gSXQgaXMgdXNlZCB0byBnZXQgdGhlIG9iamVjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIHVpZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEdldHMgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIHZhbHVlIG9mIHRoZSBjb2x1bW4uIEl0IGlzIHVzZWQgdG8gZ2V0IHRoZSBvYmplY3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGluZGV4PzogbnVtYmVyO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgaGVhZGVyIHRleHQgb2YgY29sdW1uIHdoaWNoIGlzIHVzZWQgdG8gZGlzcGxheSBpbiBjb2x1bW4gaGVhZGVyLlxuICAgKiBJZiBgaGVhZGVyVGV4dGAgaXMgbm90IGRlZmluZWQsIHRoZW4gZmllbGQgbmFtZSB2YWx1ZSB3aWxsIGJlIGFzc2lnbmVkIHRvIGhlYWRlciB0ZXh0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBoZWFkZXJUZXh0Pzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbiBpbiBwaXhlbHMgb3IgcGVyY2VudGFnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIHdpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgbWluaW11bSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgbWluV2lkdGg/OiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBtYXhpbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWwgb3IgcGVyY2VudGFnZSwgd2hpY2ggd2lsbCByZXN0cmljdCByZXNpemluZyBiZXlvbmQgdGhpcyBwaXhlbCBvciBwZXJjZW50YWdlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgbWF4V2lkdGg/OiBzdHJpbmcgfCBudW1iZXI7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBhbGlnbm1lbnQgb2YgdGhlIGNvbHVtbiBpbiBib3RoIGhlYWRlciBhbmQgY29udGVudCBjZWxscy5cbiAgICpcbiAgICogQGRlZmF1bHQgTGVmdFxuICAgKi9cbiAgdGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgY2VsbCBjb250ZW50J3Mgb3ZlcmZsb3cgbW9kZS4gVGhlIGF2YWlsYWJsZSBtb2RlcyBhcmVcbiAgICogKiBgQ2xpcGAgLSAgVHJ1bmNhdGVzIHRoZSBjZWxsIGNvbnRlbnQgd2hlbiBpdCBvdmVyZmxvd3MgaXRzIGFyZWEuXG4gICAqICogYEVsbGlwc2lzYCAtICBEaXNwbGF5cyBlbGxpcHNpcyB3aGVuIHRoZSBjZWxsIGNvbnRlbnQgb3ZlcmZsb3dzIGl0cyBhcmVhLlxuICAgKiAqIGBFbGxpcHNpc1dpdGhUb29sdGlwYCAtIERpc3BsYXlzIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWFcbiAgICogYWxzbyBpdCB3aWxsIGRpc3BsYXkgdG9vbHRpcCB3aGlsZSBob3ZlciBvbiBlbGxpcHNpcyBhcHBsaWVkIGNlbGwuXG4gICAqXG4gICAqIEBkZWZhdWx0IEVsbGlwc2lzXG4gICAqL1xuICBjbGlwTW9kZT86IENsaXBNb2RlO1xuICAvKipcbiAgICogRGVmaW5lIHRoZSBhbGlnbm1lbnQgb2YgY29sdW1uIGhlYWRlciB3aGljaCBpcyB1c2VkIHRvIGFsaWduIHRoZSB0ZXh0IG9mIGNvbHVtbiBoZWFkZXIuXG4gICAqXG4gICAqIEBhc3BkZWZhdWx0dmFsdWVpZ25vcmVcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgaGVhZGVyVGV4dEFsaWduPzogVGV4dEFsaWduO1xuICAvKipcbiAgICogSWYgYGRpc2FibGVIdG1sRW5jb2RlYCBpcyBzZXQgdG8gdHJ1ZSwgaXQgZW5jb2RlcyB0aGUgSFRNTCBvZiB0aGUgaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkaXNhYmxlSHRtbEVuY29kZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGNvbHVtbi5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgdHlwZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEl0IGlzIHVzZWQgdG8gY2hhbmdlIGRpc3BsYXkgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0IGFuZCBkb2VzIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIGRhdGEuXG4gICAqIEdldHMgdGhlIGZvcm1hdCBmcm9tIHRoZSB1c2VyIHdoaWNoIGNhbiBiZSBzdGFuZGFyZCBvciBjdXN0b21cbiAgICogW2BudW1iZXJgXSguLi8uLi9jb21tb24vaW50ZXJuYXRpb25hbGl6YXRpb24vI21hbmlwdWxhdGluZy1udW1iZXJzKVxuICAgKiBhbmQgW2BkYXRlYF0oLi4vLi4vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNtYW5pcHVsYXRpbmctZGF0ZXRpbWUpIGZvcm1hdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICogQGFzcFR5cGUgc3RyaW5nXG4gICAqL1xuICAvLyBmb3JtYXQ/OiBzdHJpbmcgfCBOdW1iZXJGb3JtYXRPcHRpb25zIHwgRGF0ZUZvcm1hdE9wdGlvbnM7XG4gIGZvcm1hdD86IHN0cmluZztcbiAgLyoqXG4gICAqIElmIGB2aXNpYmxlYCBpcyBzZXQgdG8gZmFsc2UsIGhpZGVzIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi4gQnkgZGVmYXVsdCwgYWxsIGNvbHVtbnMgYXJlIGRpc3BsYXllZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBjb2x1bW4gdGVtcGxhdGUgdGhhdCByZW5kZXJzIGN1c3RvbWl6ZWQgZWxlbWVudCBpbiBlYWNoIGNlbGwgb2YgdGhlIGNvbHVtbi5cbiAgICogSXQgYWNjZXB0cyBlaXRoZXIgW3RlbXBsYXRlIHN0cmluZ10oLi4vLi4vY29tbW9uL3RlbXBsYXRlLWVuZ2luZS8pIG9yIEhUTUwgZWxlbWVudCBJRC5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKiBAYXNwVHlwZSBzdHJpbmdcbiAgICovXG4gIHRlbXBsYXRlPzogc3RyaW5nIHwgRnVuY3Rpb247XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBjb2x1bW4gdGVtcGxhdGUgYXMgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRCB3aGljaCBpcyB1c2VkIHRvIGFkZCBjdXN0b21pemVkIGVsZW1lbnQgaW4gdGhlIGNvbHVtbiBoZWFkZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICogQGFzcFR5cGUgc3RyaW5nXG4gICAqL1xuICBoZWFkZXJUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAvKipcbiAgICogWW91IGNhbiB1c2UgdGhpcyBwcm9wZXJ0eSB0byBmcmVlemUgc2VsZWN0ZWQgY29sdW1ucyBpbiBncmlkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgaXNGcm96ZW4/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGFsbG93U29ydGluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHNvcnRpbmcgb3B0aW9uIG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIHNvcnRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhbGxvd1NvcnRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGFsbG93UmVzaXppbmdgIHNldCB0byBmYWxzZSwgaXQgZGlzYWJsZXMgcmVzaXplIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhbGxvd1Jlc2l6aW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIGBzaG93Q29sdW1uTWVudWAgc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGUgdGhlIGNvbHVtbiBtZW51IG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAqIEJ5IGRlZmF1bHQgY29sdW1uIG1lbnUgd2lsbCBzaG93IGZvciBhbGwgY29sdW1uc1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBzaG93Q29sdW1uTWVudT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBJZiBgYWxsb3dGaWx0ZXJpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBmaWx0ZXJpbmcgb3B0aW9uIGFuZCBmaWx0ZXIgYmFyIGVsZW1lbnQgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi5cbiAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBhcmUgZmlsdGVyYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgYWxsb3dGaWx0ZXJpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGFsbG93R3JvdXBpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBncm91cGluZyBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBncm91cGFibGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGFsbG93R3JvdXBpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi5cbiAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBjYW4gYmUgcmVvcmRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgYWxsb3dSZW9yZGVyaW5nPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIGBlbmFibGVHcm91cEJ5Rm9ybWF0YCBzZXQgdG8gdHJ1ZSwgdGhlbiBpdCBncm91cHMgdGhlIHBhcnRpY3VsYXIgY29sdW1uIGJ5IGZvcm1hdHRlZCB2YWx1ZXMuXG4gICAqIEJ5IGRlZmF1bHQgbm8gY29sdW1ucyBhcmUgZ3JvdXAgYnkgZm9ybWF0LlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBlbmFibGVHcm91cEJ5Rm9ybWF0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIGBhbGxvd0VkaXRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBlZGl0aW5nIG9mIGEgcGFydGljdWxhciBjb2x1bW4uXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhbGxvd0VkaXRpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogQGhpZGRlblxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHZpZXcgZm9yZWlnbiBrZXkgZGF0YS5cbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIGNvbHVtbkRhdGE/OiBPYmplY3RbXTtcbiAgLyoqXG4gICAqIFRoZSBDU1Mgc3R5bGVzIGFuZCBhdHRyaWJ1dGVzIG9mIHRoZSBjb250ZW50IGNlbGxzIG9mIGEgcGFydGljdWxhciBjb2x1bW4gY2FuIGJlIGN1c3RvbWl6ZWQuXG4gICAqXG4gICAqIGBgYGh0bWxcbiAgICogPGRpdiBpZD1cIkdyaWRcIj48L2Rpdj5cbiAgICogYGBgXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XG4gICAqIGRhdGFTb3VyY2U6IGZpbHRlckRhdGEsXG4gICAqIGNvbHVtbnM6IFtcbiAgICogICAgeyBmaWVsZDogJ09yZGVySUQnLCBoZWFkZXJUZXh0OiAnT3JkZXIgSUQnIH0sXG4gICAqICAgIHtcbiAgICogICAgICAgIGZpZWxkOiAnRW1wbG95ZWVJRCcsIGhlYWRlclRleHQ6ICdFbXBsb3llZSBJRCcsIGN1c3RvbUF0dHJpYnV0ZXM6IHtcbiAgICogICAgICAgICAgIGNsYXNzOiAnZW1wbG95ZWVpZCcsXG4gICAqICAgICAgICAgICB0eXBlOiAnZW1wbG95ZWUtaWQtY2VsbCdcbiAgICogICAgICB9XG4gICAqICAgfV1cbiAgICogfSk7XG4gICAqIGdyaWRPYmouYXBwZW5kVG8oJyNHcmlkJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBjdXN0b21BdHRyaWJ1dGVzPzoge1xuICAgICAgW3g6IHN0cmluZ106IE9iamVjdDtcbiAgfTtcbiAgLyoqXG4gICAqIElmIGBkaXNwbGF5QXNDaGVja0JveGAgaXMgc2V0IHRvIHRydWUsIGl0IGRpc3BsYXlzIHRoZSBjb2x1bW4gdmFsdWUgYXMgYSBjaGVjayBib3ggaW5zdGVhZCBvZiBCb29sZWFuIHZhbHVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZGlzcGxheUFzQ2hlY2tCb3g/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgY29sdW1uIGRhdGEgc291cmNlICB3aGljaCB3aWxsIGFjdCBhcyBmb3JlaWduIGRhdGEgc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICAvLyBkYXRhU291cmNlPzogT2JqZWN0W10gfCBEYXRhTWFuYWdlciB8IERhdGFSZXN1bHQ7XG4gIGRhdGFTb3VyY2U/OiBPYmplY3RbXTtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB3aGljaCBpcyB1c2VkIHRvIGFjaGlldmUgY3VzdG9tIGZvcm1hdHRpbmcgZnJvbSBhbiBleHRlcm5hbCBmdW5jdGlvbi5cbiAgICogVGhpcyBmdW5jdGlvbiB0cmlnZ2VycyBiZWZvcmUgcmVuZGVyaW5nIG9mIGVhY2ggY2VsbC5cbiAgICpcbiAgICogYGBgaHRtbFxuICAgKiA8ZGl2IGlkPVwiR3JpZFwiPjwvZGl2PlxuICAgKiBgYGBcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjbGFzcyBFeHRlbmRlZEZvcm1hdHRlciBpbXBsZW1lbnRzIElDZWxsRm9ybWF0dGVyIHtcbiAgICogcHVibGljIGdldFZhbHVlKGNvbHVtbjogQ29sdW1uLCBkYXRhOiBPYmplY3QpOiBPYmplY3Qge1xuICAgKiAgIHJldHVybiAnPHNwYW4gc3R5bGU9XCJjb2xvcjonICsgKGRhdGFbJ1ZlcmlmaWVkJ10gPyAnZ3JlZW4nIDogJ3JlZCcpICsgJ1wiPjxpPicgKyBkYXRhWydWZXJpZmllZCddICsgJzwvaT48c3Bhbj4nO1xuICAgKiB9XG4gICAqIH1cbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XG4gICAqICAgICBkYXRhU291cmNlOiBmaWx0ZXJEYXRhLFxuICAgKiAgICAgY29sdW1uczogW1xuICAgKiAgICAgICAgIHsgZmllbGQ6ICdTaGlwTmFtZScsIGhlYWRlclRleHQ6ICdTaGlwIE5hbWUnIH0sXG4gICAqICAgICAgICAgeyBmaWVsZDogJ1ZlcmlmaWVkJywgaGVhZGVyVGV4dDogJ1ZlcmlmaWVkIFN0YXR1cycsIGZvcm1hdHRlcjogRXh0ZW5kZWRGb3JtYXR0ZXIgfV1cbiAgICogfSk7XG4gICAqIGdyaWRPYmouYXBwZW5kVG8oJyNHcmlkJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICAvLyBmb3JtYXR0ZXI/OiB7XG4gIC8vICAgICBuZXcgKCk6IElDZWxsRm9ybWF0dGVyO1xuICAvLyB9IHwgSUNlbGxGb3JtYXR0ZXIgfCBGdW5jdGlvbjtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB1c2VkIHRvIGFwcGx5IGN1c3RvbSBjZWxsIHZhbHVlcyBmcm9tIGV4dGVybmFsIGZ1bmN0aW9uIGFuZCBkaXNwbGF5IHRoaXMgb24gZWFjaCBjZWxsIHJlbmRlcmVkLlxuICAgKlxuICAgKiBgYGBodG1sXG4gICAqIDxkaXYgaWQ9XCJHcmlkXCI+PC9kaXY+XG4gICAqIGBgYFxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGxldCBncmlkT2JqOiBHcmlkID0gbmV3IEdyaWQoe1xuICAgKiBkYXRhU291cmNlOiBbeyBFbXBsb3llZUlEOiAxLCBFbXBsb3llZU5hbWU6IFsnSm9obicsICdNJ10gfSwgeyBFbXBsb3llZUlEOiAyLCBFbXBsb3llZU5hbWU6IFsnUGV0ZXInLCAnQSddIH1dLFxuICAgKiBjb2x1bW5zOiBbXG4gICAqICAgICB7IGZpZWxkOiAnRW1wbG95ZWVJRCcsIGhlYWRlclRleHQ6ICdFbXBsb3llZSBJRCcgfSxcbiAgICogICAgIHsgZmllbGQ6ICdFbXBsb3llZU5hbWUnLCBoZWFkZXJUZXh0OiAnRW1wbG95ZWUgRmlyc3QgTmFtZScsXG4gICAqICAgICAgIHZhbHVlQWNjZXNzb3I6IChmaWVsZDogc3RyaW5nLCBkYXRhOiBPYmplY3QsIGNvbHVtbjogQ29sdW1uKSA9PiB7XG4gICAqICAgICAgICAgICAgIHJldHVybiBkYXRhWydFbXBsb3llZU5hbWUnXVswXTtcbiAgICogICAgICAgICB9LFxuICAgKiAgICAgfV1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICAvLyB2YWx1ZUFjY2Vzc29yPzogVmFsdWVBY2Nlc3NvciB8IHN0cmluZztcbiAgdmFsdWVBY2Nlc3Nvcj86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB1c2VkIHRvIGFwcGx5IGN1c3RvbSBoZWFkZXIgY2VsbCB2YWx1ZXMgZnJvbSBleHRlcm5hbCBmdW5jdGlvbiBhbmQgZGlzcGxheSB0aGlzIG9uIGVhY2ggY2VsbCByZW5kZXJlZC5cbiAgICpcbiAgICogYGBgaHRtbFxuICAgKiA8ZGl2IGlkPVwiR3JpZFwiPjwvZGl2PlxuICAgKiBgYGBcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBsZXQgZ3JpZE9iajogR3JpZCA9IG5ldyBHcmlkKHtcbiAgICogZGF0YVNvdXJjZTogW3sgRW1wbG95ZWVJRDogMSwgRW1wbG95ZWVOYW1lOiBbJ0pvaG4nLCAnTSddIH0sIHsgRW1wbG95ZWVJRDogMiwgRW1wbG95ZWVOYW1lOiBbJ1BldGVyJywgJ0EnXSB9XSxcbiAgICogY29sdW1uczogW1xuICAgKiAgICAgeyBmaWVsZDogJ0VtcGxveWVlSUQnLCBoZWFkZXJUZXh0OiAnRW1wbG95ZWUgSUQnIH0sXG4gICAqICAgICB7IGZpZWxkOiAnRW1wbG95ZWVOYW1lJywgaGVhZGVyVGV4dDogJ0VtcGxveWVlIEZpcnN0IE5hbWUnLFxuICAgKiAgICAgICBoZWFkZXJWYWx1ZUFjY2Vzc29yOiAoZmllbGQ6IHN0cmluZyxjb2x1bW46IENvbHVtbikgPT4ge1xuICAgKiAgICAgICAgICAgICByZXR1cm4gXCJuZXdoZWFkZXJuYW1lXCI7XG4gICAqICAgICAgICAgfSxcbiAgICogICAgIH1dXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgLy8gaGVhZGVyVmFsdWVBY2Nlc3Nvcj86IEhlYWRlclZhbHVlQWNjZXNzb3IgfCBzdHJpbmc7XG4gIGhlYWRlclZhbHVlQWNjZXNzb3I/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYGZpbHRlckJhclRlbXBsYXRlYCBpcyB1c2VkIHRvIGFkZCBhIGN1c3RvbSBjb21wb25lbnQgaW5zdGVhZCBvZiBkZWZhdWx0IGlucHV0IGNvbXBvbmVudCBmb3IgZmlsdGVyIGJhci5cbiAgICogSXQgaGF2ZSBjcmVhdGUgYW5kIHJlYWQgZnVuY3Rpb25zLlxuICAgKiAqIGNyZWF0ZTogSXQgaXMgdXNlZCBmb3IgY3JlYXRpbmcgY3VzdG9tIGNvbXBvbmVudHMuXG4gICAqICogcmVhZDogSXQgaXMgdXNlZCB0byBwZXJmb3JtIGN1c3RvbSBmaWx0ZXIgYWN0aW9uLlxuICAgKlxuICAgKiBgYGBodG1sXG4gICAqIDxkaXYgaWQ9XCJHcmlkXCI+PC9kaXY+XG4gICAqIGBgYFxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGxldCBncmlkT2JqOiBHcmlkID0gbmV3IEdyaWQoe1xuICAgKiBkYXRhU291cmNlOiBmaWx0ZXJEYXRhLFxuICAgKiBjb2x1bW5zOiBbXG4gICAqICAgeyBmaWVsZDogJ09yZGVySUQnLCBoZWFkZXJUZXh0OiAnT3JkZXIgSUQnIH0sXG4gICAqICAge1xuICAgKiAgICAgIGZpZWxkOiAnRW1wbG95ZWVJRCcsIGZpbHRlckJhclRlbXBsYXRlOiB7XG4gICAqICAgICAgICAgY3JlYXRlOiAoYXJnczogeyBlbGVtZW50OiBFbGVtZW50LCBjb2x1bW46IENvbHVtbiB9KSA9PiB7XG4gICAqICAgICAgICAgICAgICBsZXQgaW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgKiAgICAgICAgICAgICAgaW5wdXQuaWQgPSAnRW1wbG95ZWVJRCc7XG4gICAqICAgICAgICAgICAgICBpbnB1dC50eXBlID0gJ3RleHQnO1xuICAgKiAgICAgICAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgKiAgICAgICAgIH0sXG4gICAqICAgICAgICAgd3JpdGU6IChhcmdzOiB7IGVsZW1lbnQ6IEVsZW1lbnQsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICogICAgICAgICAgICAgYXJncy5lbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgYXJncy5jb2x1bW4uZmlsdGVyQmFyVGVtcGxhdGUucmVhZCBhcyBFdmVudExpc3RlbmVyKTtcbiAgICogICAgICAgICB9LFxuICAgKiAgICAgICAgIHJlYWQ6IChhcmdzOiB7IGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQsIGNvbHVtbkluZGV4OiBudW1iZXIsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcbiAgICogICAgICAgICAgICAgZ3JpZE9iai5maWx0ZXJCeUNvbHVtbihhcmdzLmVsZW1lbnQuaWQsICdlcXVhbCcsIGFyZ3MuZWxlbWVudC52YWx1ZSk7XG4gICAqICAgICAgICB9XG4gICAqICAgICB9XG4gICAqICB9XSxcbiAgICogICBhbGxvd0ZpbHRlcmluZzogdHJ1ZVxuICAgKiB9KTtcbiAgICogZ3JpZE9iai5hcHBlbmRUbygnI0dyaWQnKTtcbiAgICogYGBgXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIC8vIGZpbHRlckJhclRlbXBsYXRlPzogSUZpbHRlclVJO1xuICAvKipcbiAgICogIERlZmluZXMgdGhlIGZpbHRlciBvcHRpb25zIHRvIGN1c3RvbWl6ZSBmaWx0ZXJpbmcgZm9yIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi5cbiAgICpcbiAgICogIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIC8vIGZpbHRlcj86IElGaWx0ZXI7XG4gIC8qKlxuICAgKiBVc2VkIHRvIHJlbmRlciBtdWx0aXBsZSBoZWFkZXIgcm93cyhzdGFja2VkIGhlYWRlcnMpIG9uIHRoZSBHcmlkIGhlYWRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgLy8gY29sdW1ucz86IENvbHVtbltdIHwgc3RyaW5nW10gfCBDb2x1bW5Nb2RlbFtdO1xuICBjb2x1bW5zPzogc3RyaW5nW10gfCBTeW5jZnVzaW9uR3JpZENvbHVtbk1vZGVsW107XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSB0b29sIHRpcCB0ZXh0IGZvciBzdGFja2VkIGhlYWRlcnMuXG4gICAqXG4gICAqIEBoaWRkZW5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgdG9vbFRpcD86IHN0cmluZztcbiAgLyoqXG4gICAqIElmIGBpc1ByaW1hcnlLZXlgIGlzIHNldCB0byB0cnVlLCBjb25zaWRlcnMgdGhpcyBjb2x1bW4gYXMgdGhlIHByaW1hcnkga2V5IGNvbnN0cmFpbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBpc1ByaW1hcnlLZXk/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgdHlwZSBvZiBjb21wb25lbnQgZm9yIGVkaXRpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdzdHJpbmdlZGl0J1xuICAgKi9cbiAgZWRpdFR5cGU6IEVkaXRUeXBlIHwgc3RyaW5nO1xuICAvKipcbiAgICogYGVkaXRUeXBlYCguLi8uLi9ncmlkL2VkaXQvI2NlbGwtZWRpdC10eXBlLWFuZC1pdHMtcGFyYW1zKSBEZWZpbmVzIHJ1bGVzIHRvIHZhbGlkYXRlIGRhdGEgYmVmb3JlIGNyZWF0aW5nIGFuZCB1cGRhdGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgdmFsaWRhdGlvblJ1bGVzPzogT2JqZWN0O1xuICAvKipcbiAgICogRGVmaW5lcyBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGNvbXBvbmVudCB3aGVuIGFkZGluZyBhIG5ldyByZWNvcmQgdG8gdGhlIEdyaWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICogQGFzcFR5cGUgb2JqZWN0XG4gICAqL1xuICBkZWZhdWx0VmFsdWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBgSUVkaXRDZWxsYCguLi8uLi9ncmlkL2VkaXQvI2NlbGwtZWRpdC10ZW1wbGF0ZSkgb2JqZWN0IHRvIGN1c3RvbWl6ZSBkZWZhdWx0IGVkaXQgY2VsbC5cbiAgICpcbiAgICogQGRlZmF1bHQge31cbiAgICovXG4gIC8vIGVkaXQ/OiBJRWRpdENlbGw7XG4gIC8qKlxuICAgKiBJZiBgaXNJZGVudGl0eWAgaXMgc2V0IHRvIHRydWUsIHRoZW4gdGhpcyBjb2x1bW4gaXMgY29uc2lkZXJlZCBhcyBpZGVudGl0eSBjb2x1bW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBpc0lkZW50aXR5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIG1hcHBpbmcgY29sdW1uIG5hbWUgb2YgdGhlIGZvcmVpZ24gZGF0YSBzb3VyY2UuXG4gICAqIElmIGl0IGlzIG5vdCBkZWZpbmVkIHRoZW4gdGhlIGBjb2x1bW5zLmZpZWxkYCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgbWFwcGluZyBjb2x1bW4gbmFtZVxuICAgKlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBmb3JlaWduS2V5RmllbGQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSBkaXNwbGF5IGNvbHVtbiBuYW1lIGZyb20gdGhlIGZvcmVpZ24gZGF0YSBzb3VyY2Ugd2hpY2ggd2lsbCBiZSBvYnRhaW5lZCBmcm9tIGNvbXBhcmluZyBsb2NhbCBhbmQgZm9yZWlnbiBkYXRhXG4gICAqXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGZvcmVpZ25LZXlWYWx1ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIGNvbHVtbiB2aXNpYmlsaXR5IGNhbiBjaGFuZ2UgYmFzZWQgb24gaXRzIFtgTWVkaWEgUXVlcmllc2BdKGh0dHA6Ly9jc3NtZWRpYXF1ZXJpZXMuY29tL3doYXQtYXJlLWNzcy1tZWRpYS1xdWVyaWVzLmh0bWwpLlxuICAgKiBgaGlkZUF0TWVkaWFgIGFjY2VwdHMgb25seSB2YWxpZCBNZWRpYSBRdWVyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnJ1xuICAgKi9cbiAgaGlkZUF0TWVkaWE/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZiBgc2hvd0luQ29sdW1uQ2hvb3NlcmAgc2V0IHRvIGZhbHNlLCB0aGVuIGhpZGVzIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbiBpbiBjb2x1bW4gY2hvb3Nlci5cbiAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBhcmUgZGlzcGxheWVkIGluIGNvbHVtbiBDaG9vc2VyLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBzaG93SW5Db2x1bW5DaG9vc2VyPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEBoaWRkZW5cbiAgICogRGVmaW5lcyB0aGUgY29tbWFuZHMgY29sdW1uIHRlbXBsYXRlIGFzIHN0cmluZyBvciBIVE1MIGVsZW1lbnQgSUQgd2hpY2ggaXMgdXNlZCB0byBhZGRcbiAgICogY3VzdG9taXplZCBjb21tYW5kIGJ1dHRvbnMgaW4gZWFjaCBjZWxscyBvZiB0aGUgY29sdW1uLlxuICAgKi9cbiAgY29tbWFuZHNUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAvKipcbiAgICogYGNvbW1hbmRzYCBwcm92aWRlcyBhbiBvcHRpb24gdG8gZGlzcGxheSBjb21tYW5kIGJ1dHRvbnMgaW4gZXZlcnkgY2VsbC5cbiAgICogVGhlIGF2YWlsYWJsZSBidWlsdC1pbiBjb21tYW5kIGJ1dHRvbnMgYXJlXG4gICAqICogRWRpdCAtIEVkaXQgdGhlIHJlY29yZC5cbiAgICogKiBEZWxldGUgLSBEZWxldGUgdGhlIHJlY29yZC5cbiAgICogKiBTYXZlIC0gU2F2ZSB0aGUgcmVjb3JkLlxuICAgKiAqIENhbmNlbCAtIENhbmNlbCB0aGUgZWRpdCBzdGF0ZS5cbiAgICpcbiAgICogVGhlIGZvbGxvd2luZyBjb2RlIGV4YW1wbGUgaW1wbGVtZW50cyB0aGUgY3VzdG9tIGNvbW1hbmQgY29sdW1uLlxuICAgKiBgYGBodG1sXG4gICAqIDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIiBjbGFzcz1cImNzc1N0eWxlc1wiPlxuICAgKiAuZGV0YWlscy1pY29uOmJlZm9yZVxuICAgKiB7XG4gICAqICAgIGNvbnRlbnQ6XCJcXGU3NGRcIjtcbiAgICogfVxuICAgKiA8L3N0eWxlPlxuICAgKiA8ZGl2IGlkPVwiR3JpZFwiPjwvZGl2PlxuICAgKiBgYGBcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB2YXIgZ3JpZE9iaiA9IG5ldyBHcmlkKHtcbiAgICogZGF0YXNvdXJjZTogd2luZG93LmdyaWREYXRhLFxuICAgKiBjb2x1bW5zIDogW1xuICAgKiAgeyBmaWVsZDogJ0N1c3RvbWVySUQnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgSUQnIH0sXG4gICAqICB7IGZpZWxkOiAnQ3VzdG9tZXJOYW1lJywgaGVhZGVyVGV4dDogJ0N1c3RvbWVyIE5hbWUnIH0sXG4gICAqICB7Y29tbWFuZHM6IFt7YnV0dG9uT3B0aW9uOntjb250ZW50OiAnRGV0YWlscycsIGNsaWNrOiBvbkNsaWNrLCBjc3NDbGFzczogZGV0YWlscy1pY29ufX1dLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgRGV0YWlscyd9XG4gICAqIF1cbiAgICogZ3JpZE9iai5hcHBlbmRUbyhcIiNHcmlkXCIpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgY29tbWFuZHM/OiBDb21tYW5kTW9kZWxbXTtcbiAgLyoqXG4gICAqIEl0IGRlZmluZXMgdGhlIGN1c3RvbSBzb3J0IGNvbXBhcmVyIGZ1bmN0aW9uLlxuICAgKi9cbiAgLy8gc29ydENvbXBhcmVyPzogU29ydENvbXBhcmVyIHwgc3RyaW5nO1xuICBzb3J0Q29tcGFyZXI/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBAaGlkZGVuXG4gICAqIEl0IGRlZmluZXMgdGhlIGNvbHVtbiBpcyBmb3JlaWduIGtleSBjb2x1bW4gb3Igbm90LlxuICAgKi9cbiAgaXNGb3JlaWduQ29sdW1uPzogKCkgPT4gYm9vbGVhbjtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGNlbGwgZWRpdCB0ZW1wbGF0ZSB0aGF0IHVzZWQgYXMgZWRpdG9yIGZvciBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKiBJdCBhY2NlcHRzIGVpdGhlciB0ZW1wbGF0ZSBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElELlxuICAgKlxuICAgKiBAYXNwSWdub3JlXG4gICAqL1xuICBlZGl0VGVtcGxhdGU/OiBzdHJpbmcgfCBGdW5jdGlvbjtcbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGZpbHRlciB0ZW1wbGF0ZS9VSSB0aGF0IHVzZWQgYXMgZmlsdGVyIGZvciBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKiBJdCBhY2NlcHRzIGVpdGhlciB0ZW1wbGF0ZSBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElELlxuICAgKlxuICAgKiBAYXNwSWdub3JlXG4gICAqL1xuICBmaWx0ZXJUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xuICAvKipcbiAgICogRGVmaW5lcyB0aGUgbWFwcGluZyBjb2x1bW4gbmFtZSBvZiB0aGUgZm9yZWlnbiBkYXRhIHNvdXJjZS5cbiAgICogSWYgaXQgaXMgbm90IGRlZmluZWQgdGhlbiB0aGUgYGNvbHVtbnMuZmllbGRgIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBtYXBwaW5nIGNvbHVtbiBuYW1lXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBsb2NrQ29sdW1uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIElmIGBhbGxvd1NlYXJjaGluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIFNlYXJjaGluZyBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxuICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFsbG93IFNlYXJjaGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgYWxsb3dTZWFyY2hpbmc/OiBib29sZWFuO1xuICAvKipcbiAgICogSWYgYGF1dG9GaXRgIHNldCB0byB0cnVlLCB0aGVuIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbiBjb250ZW50IHdpZHRoIHdpbGwgYmVcbiAgICogYWRqdXN0ZWQgYmFzZWQgb24gaXRzIGNvbnRlbnQgaW4gdGhlIGluaXRpYWwgcmVuZGVyaW5nIGl0c2VsZi5cbiAgICogU2V0dGluZyB0aGlzIHByb3BlcnR5IGFzIHRydWUgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIGBhdXRvRml0Q29sdW1uc2AgbWV0aG9kIGluIHRoZSBgZGF0YUJvdW5kYCBldmVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGF1dG9GaXQ/OiBib29sZWFuO1xuICAvKipcbiAgICogZGVmaW5lcyB3aGljaCBzaWRlIHRoZSBjb2x1bW4gbmVlZCB0byBmcmVlemVcbiAgICogVGhlIGF2YWlsYWJsZSBidWlsdC1pbiBmcmVlemUgZGlyZWN0aW9ucyBhcmVcbiAgICogKiBMZWZ0IC0gRnJlZXplIHRoZSBjb2x1bW4gYXQgbGVmdCBzaWRlLlxuICAgKiAqIFJpZ2h0IC0gRnJlZXplIHRoZSBjb2x1bW4gYXQgcmlnaHQgc2lkZS5cbiAgICogKiBGaXhlZCAtIEZyZWV6ZSB0aGUgY29sdW1uIGF0IENlbnRlci5cbiAgICogKiBOb25lIC0gRG9lcyBub3QgZnJlZXplIHRoZSBjb2x1bW4uXG4gICAqXG4gICAqIEBkZWZhdWx0IE5vbmVcbiAgICovXG4gIGZyZWV6ZT86IGZyZWV6ZURpcmVjdGlvbjtcbn1cblxuXG5cbi8qKlxuICogRGVmaW5lcyBhbGlnbm1lbnRzIG9mIHRleHQsIHRoZXkgYXJlXG4gKiBgYGBwcm9wc1xuICogKiBMZWZ0IDotIERlZmluZXMgTGVmdCBhbGlnbm1lbnRcbiAqICogUmlnaHQgOi0gRGVmaW5lcyBSaWdodCBhbGlnbm1lbnRcbiAqICogQ2VudGVyIDotIERlZmluZXMgQ2VudGVyIGFsaWdubWVudFxuICogKiBKdXN0aWZ5IDotIERlZmluZXMgSnVzdGlmeSBhbGlnbm1lbnRcbiAqIGBgYFxuICovXG5leHBvcnQgZGVjbGFyZSB0eXBlIFRleHRBbGlnbiA9ICdMZWZ0JyB8ICdSaWdodCcgfCAnQ2VudGVyJyB8ICdKdXN0aWZ5JztcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBjZWxsIGNvbnRlbnQncyBvdmVyZmxvdyBtb2RlLiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZVxuICogYGBgcHJvcHNcbiAqICogYENsaXBgIDotICBUcnVuY2F0ZXMgdGhlIGNlbGwgY29udGVudCB3aGVuIGl0IG92ZXJmbG93cyBpdHMgYXJlYS5cbiAqICogYEVsbGlwc2lzYCA6LSAgRGlzcGxheXMgZWxsaXBzaXMgd2hlbiB0aGUgY2VsbCBjb250ZW50IG92ZXJmbG93cyBpdHMgYXJlYS5cbiAqICogYEVsbGlwc2lzV2l0aFRvb2x0aXBgIDotIERpc3BsYXlzIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWFcbiAqIGFsc28gaXQgd2lsbCBkaXNwbGF5IHRvb2x0aXAgd2hpbGUgaG92ZXIgb24gZWxsaXBzaXMgYXBwbGllZCBjZWxsLlxuICogYGBgXG4gKiB7JSBjb2RlQmxvY2sgc3JjPSdncmlkL2NsaXBNb2RlL2luZGV4Lm1kJyAlfXslIGVuZGNvZGVCbG9jayAlfVxuICovXG5leHBvcnQgZGVjbGFyZSB0eXBlIENsaXBNb2RlID0gJ0NsaXAnIHwgJ0VsbGlwc2lzJyB8ICdFbGxpcHNpc1dpdGhUb29sdGlwJztcblxuLyoqXG4gKiBEZWZpbmUgb3B0aW9ucyBmb3IgY3VzdG9tIGNvbW1hbmQgYnV0dG9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kTW9kZWwge1xuICAvKipcbiAgICogRGVmaW5lIHRoZSBjb21tYW5kIEJ1dHRvbiB0b29sdGlwXG4gICAqL1xuICB0aXRsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmluZSB0aGUgY29tbWFuZCBCdXR0b24gdHlwZVxuICAgKlxuICAgKiBAYmxhem9yRGVmYXVsdFZhbHVlIG5vbmVcbiAgICovXG4gIHR5cGU/OiBDb21tYW5kQnV0dG9uVHlwZTtcbiAgLyoqXG4gICAqIERlZmluZSB0aGUgYnV0dG9uIG1vZGVsXG4gICAqL1xuICAvLyBidXR0b25PcHRpb24/OiBDb21tYW5kQnV0dG9uT3B0aW9ucztcbn1cblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBDb21tYW5kIEJ1dHRvbnMgdHlwZS5cbiAqIGBgYHByb3BzXG4gKiAqIE5vbmUgOi0gIEVkaXQgdGhlIGN1cnJlbnQgcmVjb3JkLlxuICogKiBFZGl0IDotICBFZGl0IHRoZSBjdXJyZW50IHJlY29yZC5cbiAqICogRGVsZXRlIDotIERlbGV0ZSB0aGUgY3VycmVudCByZWNvcmQuXG4gKiAqIFNhdmUgOi0gU2F2ZSB0aGUgY3VycmVudCBlZGl0ZWQgcmVjb3JkLlxuICogKiBDYW5jZWwgOi0gQ2FuY2VsIHRoZSBlZGl0ZWQgc3RhdGUuXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlY2xhcmUgdHlwZSBDb21tYW5kQnV0dG9uVHlwZSA9ICdOb25lJyB8ICdFZGl0JyB8ICdEZWxldGUnIHwgJ1NhdmUnIHwgJ0NhbmNlbCc7XG5cbi8qKlxuICogRGVmaW5lcyBmcmVlemUgZGlyZWN0aW9uIG9mIHRoZSBncmlkIGNvbHVtbnNcbiAqIGBgYHByb3BzXG4gKiAqIExlZnQgOi0gZnJlZXplIHRoZSBjb2x1bW5zIGF0IGxlZnQuXG4gKiAqIFJpZ2h0IDotIGZyZWV6ZSB0aGUgY29sdW1ucyBhdCByaWdodC5cbiAqICogRml4ZWQgOi0gZnJlZXplIHRoZSBjb2x1bW5zIGF0IGNlbnRlci5cbiAqICogTm9uZSA6LSBkb2VzIG5vdCBmcmVlemUgYW55IGNvbHVtbnMuXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlY2xhcmUgdHlwZSBmcmVlemVEaXJlY3Rpb24gPSAnTGVmdCcgfCAnUmlnaHQnIHwgJ0ZpeGVkJyB8ICdOb25lJztcblxuLyoqXG4gKiBEZWZpbmVzIHRoZSBFZGl0IFR5cGUgb2YgdGhlIGNvbHVtblxuICogYGBgcHJvcHNcbiAqICogRGVmYXVsdEVkaXQgOi0gRGVmaW5lcyBFZGl0VHlwZSBhcyBEZWZhdWx0RWRpdFxuICogKiBEcm9wZG93bkVkaXQgOi0gRGVmaW5lcyBFZGl0TW9kZSBhcyBEcm9wZG93bmVkaXRcbiAqICogQm9vbGVhbkVkaXQgOi0gRGVmaW5lcyBFZGl0TW9kZSBhcyBCb29sZWFuZWRpdFxuICogKiBEYXRlcGlja2VyRWRpdCA6LSBEZWZpbmVzIEVkaXRNb2RlIGFzIERhdGVwaWNrZXJlZGl0XG4gKiAqIERhdGV0aW1lcGlja2VyRWRpdCA6LSBEZWZpbmVzIEVkaXRUeXBlIGFzIERhdGV0aW1lcGlja2VyZWRpdFxuICogKiBOdW1lcmljRWRpdCA6LSBEZWZpbmVzIEVkaXRNb2RlIGFzIE51bWVyaWNlZGl0XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlY2xhcmUgdHlwZSBFZGl0VHlwZSA9ICdkZWZhdWx0RWRpdCcgfCAnZHJvcERvd25FZGl0JyB8ICdib29sZWFuRWRpdCcgfCAnZGF0ZVBpY2tlckVkaXQnIHwgJ2RhdGVUaW1lUGlja2VyRWRpdCcgfCAnbnVtZXJpY0VkaXQnO1xuXG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9ncmlkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcblxyXG5pbXBvcnQgeyBMb29rVXBEZXRhaWxzIH0gZnJvbSBcIi4uL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyaWVzLmNsYXNzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEpxV2lkZ2h0TW9kZWwge1xyXG4gIHdpZHRoPzogbnVtYmVyIHwgYW55O1xyXG4gIGhlaWdodD86IG51bWJlciB8IGFueTtcclxuICBzb3VyY2U/OiBTb3VyY2VNb2RlbDtcclxuICBjb2x1bW5zPzogQXJyYXk8Q29sdW1uRGV0YWlsTW9kZWw+O1xyXG4gIGlzUGFnZWFibGU/OiBib29sZWFuO1xyXG4gIGlzQXV0b2hlaWdodD86IGJvb2xlYW47XHJcbiAgaXNTb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgc2VsZWN0aW9ubW9kZT86IHN0cmluZztcclxuICBjb2x1bW5ncm91cHM/OiBBcnJheTxDb2x1bW5ncm91cE1vZGVsPjtcclxuICBpc0FsdFJvdz86IGJvb2xlYW47XHJcbiAgaXNlbmFibGV0b29sdGlwcz86IGJvb2xlYW47XHJcbiAgaXNlZGl0YWJsZT86IGJvb2xlYW47XHJcbiAgc291cmNlSWQ/OiBzdHJpbmc7XHJcbiAgdHlwZU9mRGF0YT86IHN0cmluZztcclxuICBhY3R1YWxEYXRhPzogQXJyYXk8YW55PjtcclxuICBkYXRhRmllbGQ/OiBBcnJheTxEYXRhRmllbGRzTW9kZWw+O1xyXG4gIGFjdGlvbkFycmF5PzogQXJyYXk8QWN0aW9uTW9kZWw+O1xyXG4gIGlzU2hvd1Rvb2xiYXI/OiBib29sZWFuO1xyXG4gIGlzU2hvd1N0YXR1c0Jhcj86IGJvb2xlYW47XHJcbiAgYWN0aW9uc0luPzogc3RyaW5nO1xyXG4gIGlzRmlsdGVyYWJsZT86IGJvb2xlYW47XHJcbiAgaXNTb3J0YmFja0dyb3VuZ0NvbG9yPzogYm9vbGVhbjtcclxuICBpc2F1dG9zaG93ZmlsdGVyaWNvbj86IGJvb2xlYW47XHJcbiAgaXNzaG93ZmlsdGVycm93PzogYm9vbGVhbjtcclxuICBwYWdlcm1vZGU/OiBzdHJpbmc7XHJcbiAgaXNHcm91cGFibGU/OiBib29sZWFuO1xyXG4gIGlzUm93bGV2ZWxFZGl0PzogYm9vbGVhbjtcclxuICBpc1Jvd2xldmVsRGVsZXRlPzogYm9vbGVhbjtcclxuICBpc1Jvd2xldmVsVmlldz86IGJvb2xlYW47XHJcbiAgcHJpbWFyeUtleWNvbHVtbk5hbWU/OiBzdHJpbmc7XHJcbiAgZ3JpZElkPzogc3RyaW5nO1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIGdyb3Vwcz86IGFueTtcclxuICBncm91cENvbHVtbnM/OiBzdHJpbmc7XHJcbiAgZ3JpZENvbHVtbkFycj86IEFycmF5PHN0cmluZz4gfCBhbnk7XHJcbiAgdGhlbWU/OiBzdHJpbmc7XHJcbiAgcGFnZXNpemVvcHRpb25zPzogc3RyaW5nO1xyXG4gIGRlZmF1bHRQYWdlU2l6ZT86IHN0cmluZztcclxuICBjdXJyZW50U2NyZWVuSWQ/OiBzdHJpbmc7XHJcbiAgY3VzdG9tTmF2aWdhdGU/OiBzdHJpbmc7XHJcbiAgZ3JpZE5hbWU/OiBzdHJpbmc7XHJcbiAgZ3JpZFN0YXRlPzogc3RyaW5nIHwgYW55O1xyXG4gIGlzY29sdW1uc3Jlb3JkZXI/OiBib29sZWFuO1xyXG4gIGlzU3RhdGVCPzogYm9vbGVhbjtcclxuICBhZGRTY3JlZW5JZD86IHN0cmluZztcclxuICBlZGl0U2NyZWVuSWQ/OiBzdHJpbmc7XHJcbiAgdmlld1NjcmVlbklkPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZU1vZGVsIHtcclxuICBkYXRhdHlwZT86IHN0cmluZztcclxuICBkYXRhZmllbGRzPzogQXJyYXk8RGF0YUZpZWxkc01vZGVsPjtcclxuICBpZD86IHN0cmluZztcclxuICBsb2NhbGRhdGE/OiBhbnk7XHJcbiAgcGFnZXNpemU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUZpZWxkc01vZGVsIHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgc2VxPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkRldGFpbE1vZGVsIHtcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIGRhdGFGaWVsZD86IHN0cmluZztcclxuICB3aWR0aD86IHN0cmluZztcclxuICBjZWxsc2FsaWduPzogc3RyaW5nO1xyXG4gIGNlbGxzZm9ybWF0Pzogc3RyaW5nO1xyXG4gIGNvbHVtblR5cGU/OiBzdHJpbmc7XHJcbiAgY29sdW1uR3JvdXA/OiBzdHJpbmc7XHJcbiAgZWRpdGFibGU/OiBib29sZWFuO1xyXG4gIGJ1dHRvbmNsaWNrPzogYW55O1xyXG4gIHJlbmRlcmVyPzogYW55O1xyXG4gIGNvbHVtbnR5cGU/OiBzdHJpbmc7XHJcbiAgZmlsdGVydHlwZT86IHN0cmluZztcclxuICBzZXE/OiBudW1iZXI7XHJcbiAgYWxpZ24/OiBzdHJpbmc7XHJcbiAgc29ydGFibGU/OiBib29sZWFuO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgZmlsdGVyYWJsZT86IGJvb2xlYW47XHJcbiAgY2VsbHNyZW5kZXJlcj86IGFueTtcclxuICBmaWx0ZXJQYXJhbWV0ZXI/OiBzdHJpbmc7XHJcbiAgYWRkU2NyZWVuSWQ/OiBzdHJpbmc7XHJcbiAgZWRpdFNjcmVlbklkPzogc3RyaW5nO1xyXG4gIHZpZXdTY3JlZW5JZD86IHN0cmluZztcclxuICBhcHBGaWVsZElkPzogc3RyaW5nO1xyXG4gIGlzUHJpbWFyeUtleT86IGJvb2xlYW47XHJcbiAgTG9va1VwRGV0YWlscz86IGFueTtcclxuICBkcm9wRG93bkxvb2t1cD86IGFueTtcclxuICBTeXN0ZW1EQkZpZWxkTmFtZT86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5ncm91cE1vZGVsIHtcclxuICB0ZXh0Pzogc3RyaW5nO1xyXG4gIGFsaWduPzogc3RyaW5nO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uTW9kZWwge1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgaW1nU3JjPzogc3RyaW5nO1xyXG4gIGJ1dHRvbldpZHRoPzogbnVtYmVyO1xyXG4gIGJ1dHRvbkhlaWdodD86IG51bWJlcjtcclxuICBidXR0b25WYWx1ZT86IHN0cmluZztcclxuICBpbWdQb3NpdGlvbj86IHN0cmluZztcclxuICB0ZXh0UG9zaXRpb24/OiBzdHJpbmc7XHJcbiAgdGV4dEltYWdlUmVsYXRpb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uTGV2ZWxBY3Rpb25zIHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHJvd0lkPzogbnVtYmVyO1xyXG4gIHZhbHVlVG9TaG93Pzogc3RyaW5nO1xyXG59XHJcblxyXG5cclxuLyoqXHJcbiAqIEludGVyZmFjZSBmb3IgYSBjbGFzcyBDb2x1bW5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3luY2Z1c2lvbkdyaWRDb2x1bW5Nb2RlbCB7XHJcbiAgLy8gZm9yIGVkaXQgdGFtcGxhdGVzXHJcbiAgZWRpdD86IGFueTtcclxuXHJcbiAgTG9va1VwRGV0YWlscz86IExvb2tVcERldGFpbHM7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgZmllbGQgbmFtZSBvZiBjb2x1bW4gd2hpY2ggaXMgbWFwcGVkIHdpdGggbWFwcGluZyBuYW1lIG9mIERhdGFTb3VyY2UuXHJcbiAgICogVGhlIGJvdW5kZWQgY29sdW1ucyBjYW4gYmUgc29ydCwgZmlsdGVyIGFuZCBncm91cCBldGMuLFxyXG4gICAqIElmIHRoZSBgZmllbGRgIG5hbWUgY29udGFpbnMg4oCcZG904oCdLCB0aGVuIGl0IGlzIGNvbnNpZGVyZWQgYXMgY29tcGxleCBiaW5kaW5nLlxyXG4gICAqIFRoZSBgZmllbGRgIG5hbWUgbXVzdCBiZSBhIHZhbGlkIEphdmFTY3JpcHQgaWRlbnRpZmllcixcclxuICAgKiB0aGUgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYW4gYWxwaGFiZXQgYW5kIHNob3VsZCBub3QgY29udGFpbiBzcGFjZXMgYW5kIHNwZWNpYWwgY2hhcmFjdGVycy5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0ICcnXHJcbiAgICovXHJcbiAgZmllbGQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgdmFsdWUgb2YgdGhlIGNvbHVtbi4gSXQgaXMgdXNlZCB0byBnZXQgdGhlIG9iamVjdC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0ICcnXHJcbiAgICovXHJcbiAgdWlkPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEdldHMgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIHZhbHVlIG9mIHRoZSBjb2x1bW4uIEl0IGlzIHVzZWQgdG8gZ2V0IHRoZSBvYmplY3QuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgaW5kZXg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgaGVhZGVyIHRleHQgb2YgY29sdW1uIHdoaWNoIGlzIHVzZWQgdG8gZGlzcGxheSBpbiBjb2x1bW4gaGVhZGVyLlxyXG4gICAqIElmIGBoZWFkZXJUZXh0YCBpcyBub3QgZGVmaW5lZCwgdGhlbiBmaWVsZCBuYW1lIHZhbHVlIHdpbGwgYmUgYXNzaWduZWQgdG8gaGVhZGVyIHRleHQuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgaGVhZGVyVGV4dD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGluIHBpeGVscyBvciBwZXJjZW50YWdlLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgJydcclxuICAgKi9cclxuICB3aWR0aD86IHN0cmluZyB8IG51bWJlcjtcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBtaW5pbXVtIHdpZHRoIG9mIHRoZSBjb2x1bW4gaW4gcGl4ZWxzIG9yIHBlcmNlbnRhZ2UuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCAnJ1xyXG4gICAqL1xyXG4gIG1pbldpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIGNvbHVtbiBpbiBwaXhlbCBvciBwZXJjZW50YWdlLCB3aGljaCB3aWxsIHJlc3RyaWN0IHJlc2l6aW5nIGJleW9uZCB0aGlzIHBpeGVsIG9yIHBlcmNlbnRhZ2UuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCAnJ1xyXG4gICAqL1xyXG4gIG1heFdpZHRoPzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGFsaWdubWVudCBvZiB0aGUgY29sdW1uIGluIGJvdGggaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgTGVmdFxyXG4gICAqL1xyXG4gIHRleHRBbGlnbj86IFRleHRBbGlnbjtcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBjZWxsIGNvbnRlbnQncyBvdmVyZmxvdyBtb2RlLiBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZVxyXG4gICAqICogYENsaXBgIC0gIFRydW5jYXRlcyB0aGUgY2VsbCBjb250ZW50IHdoZW4gaXQgb3ZlcmZsb3dzIGl0cyBhcmVhLlxyXG4gICAqICogYEVsbGlwc2lzYCAtICBEaXNwbGF5cyBlbGxpcHNpcyB3aGVuIHRoZSBjZWxsIGNvbnRlbnQgb3ZlcmZsb3dzIGl0cyBhcmVhLlxyXG4gICAqICogYEVsbGlwc2lzV2l0aFRvb2x0aXBgIC0gRGlzcGxheXMgZWxsaXBzaXMgd2hlbiB0aGUgY2VsbCBjb250ZW50IG92ZXJmbG93cyBpdHMgYXJlYVxyXG4gICAqIGFsc28gaXQgd2lsbCBkaXNwbGF5IHRvb2x0aXAgd2hpbGUgaG92ZXIgb24gZWxsaXBzaXMgYXBwbGllZCBjZWxsLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgRWxsaXBzaXNcclxuICAgKi9cclxuICBjbGlwTW9kZT86IENsaXBNb2RlO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZSB0aGUgYWxpZ25tZW50IG9mIGNvbHVtbiBoZWFkZXIgd2hpY2ggaXMgdXNlZCB0byBhbGlnbiB0aGUgdGV4dCBvZiBjb2x1bW4gaGVhZGVyLlxyXG4gICAqXHJcbiAgICogQGFzcGRlZmF1bHR2YWx1ZWlnbm9yZVxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICBoZWFkZXJUZXh0QWxpZ24/OiBUZXh0QWxpZ247XHJcbiAgLyoqXHJcbiAgICogSWYgYGRpc2FibGVIdG1sRW5jb2RlYCBpcyBzZXQgdG8gdHJ1ZSwgaXQgZW5jb2RlcyB0aGUgSFRNTCBvZiB0aGUgaGVhZGVyIGFuZCBjb250ZW50IGNlbGxzLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGRpc2FibGVIdG1sRW5jb2RlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBkYXRhIHR5cGUgb2YgdGhlIGNvbHVtbi5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEl0IGlzIHVzZWQgdG8gY2hhbmdlIGRpc3BsYXkgdmFsdWUgd2l0aCB0aGUgZ2l2ZW4gZm9ybWF0IGFuZCBkb2VzIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIGRhdGEuXHJcbiAgICogR2V0cyB0aGUgZm9ybWF0IGZyb20gdGhlIHVzZXIgd2hpY2ggY2FuIGJlIHN0YW5kYXJkIG9yIGN1c3RvbVxyXG4gICAqIFtgbnVtYmVyYF0oLi4vLi4vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNtYW5pcHVsYXRpbmctbnVtYmVycylcclxuICAgKiBhbmQgW2BkYXRlYF0oLi4vLi4vY29tbW9uL2ludGVybmF0aW9uYWxpemF0aW9uLyNtYW5pcHVsYXRpbmctZGF0ZXRpbWUpIGZvcm1hdHMuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICogQGFzcFR5cGUgc3RyaW5nXHJcbiAgICovXHJcbiAgLy8gZm9ybWF0Pzogc3RyaW5nIHwgTnVtYmVyRm9ybWF0T3B0aW9ucyB8IERhdGVGb3JtYXRPcHRpb25zO1xyXG4gIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBJZiBgdmlzaWJsZWAgaXMgc2V0IHRvIGZhbHNlLCBoaWRlcyB0aGUgcGFydGljdWxhciBjb2x1bW4uIEJ5IGRlZmF1bHQsIGFsbCBjb2x1bW5zIGFyZSBkaXNwbGF5ZWQuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgY29sdW1uIHRlbXBsYXRlIHRoYXQgcmVuZGVycyBjdXN0b21pemVkIGVsZW1lbnQgaW4gZWFjaCBjZWxsIG9mIHRoZSBjb2x1bW4uXHJcbiAgICogSXQgYWNjZXB0cyBlaXRoZXIgW3RlbXBsYXRlIHN0cmluZ10oLi4vLi4vY29tbW9uL3RlbXBsYXRlLWVuZ2luZS8pIG9yIEhUTUwgZWxlbWVudCBJRC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKiBAYXNwVHlwZSBzdHJpbmdcclxuICAgKi9cclxuICB0ZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGNvbHVtbiB0ZW1wbGF0ZSBhcyBzdHJpbmcgb3IgSFRNTCBlbGVtZW50IElEIHdoaWNoIGlzIHVzZWQgdG8gYWRkIGN1c3RvbWl6ZWQgZWxlbWVudCBpbiB0aGUgY29sdW1uIGhlYWRlci5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKiBAYXNwVHlwZSBzdHJpbmdcclxuICAgKi9cclxuICBoZWFkZXJUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xyXG4gIC8qKlxyXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gZnJlZXplIHNlbGVjdGVkIGNvbHVtbnMgaW4gZ3JpZC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgaXNGcm96ZW4/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBhbGxvd1NvcnRpbmdgIHNldCB0byBmYWxzZSwgdGhlbiBpdCBkaXNhYmxlcyBzb3J0aW5nIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIHNvcnRhYmxlLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93U29ydGluZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogSWYgYGFsbG93UmVzaXppbmdgIHNldCB0byBmYWxzZSwgaXQgZGlzYWJsZXMgcmVzaXplIG9wdGlvbiBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93UmVzaXppbmc/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBzaG93Q29sdW1uTWVudWAgc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGUgdGhlIGNvbHVtbiBtZW51IG9mIGEgcGFydGljdWxhciBjb2x1bW4uXHJcbiAgICogQnkgZGVmYXVsdCBjb2x1bW4gbWVudSB3aWxsIHNob3cgZm9yIGFsbCBjb2x1bW5zXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgc2hvd0NvbHVtbk1lbnU/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBhbGxvd0ZpbHRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIGZpbHRlcmluZyBvcHRpb24gYW5kIGZpbHRlciBiYXIgZWxlbWVudCBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGZpbHRlcmFibGUuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgYWxsb3dGaWx0ZXJpbmc/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBhbGxvd0dyb3VwaW5nYCBzZXQgdG8gZmFsc2UsIHRoZW4gaXQgZGlzYWJsZXMgZ3JvdXBpbmcgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi5cclxuICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGFyZSBncm91cGFibGUuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCB0cnVlXHJcbiAgICovXHJcbiAgYWxsb3dHcm91cGluZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogSWYgYGFsbG93UmVvcmRlcmluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIHJlb3JkZXIgb2YgYSBwYXJ0aWN1bGFyIGNvbHVtbi5cclxuICAgKiBCeSBkZWZhdWx0IGFsbCBjb2x1bW5zIGNhbiBiZSByZW9yZGVyLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93UmVvcmRlcmluZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogSWYgYGVuYWJsZUdyb3VwQnlGb3JtYXRgIHNldCB0byB0cnVlLCB0aGVuIGl0IGdyb3VwcyB0aGUgcGFydGljdWxhciBjb2x1bW4gYnkgZm9ybWF0dGVkIHZhbHVlcy5cclxuICAgKiBCeSBkZWZhdWx0IG5vIGNvbHVtbnMgYXJlIGdyb3VwIGJ5IGZvcm1hdC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IHRydWVcclxuICAgKi9cclxuICBlbmFibGVHcm91cEJ5Rm9ybWF0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBJZiBgYWxsb3dFZGl0aW5nYCBzZXQgdG8gZmFsc2UsIHRoZW4gaXQgZGlzYWJsZXMgZWRpdGluZyBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYXJlIGVkaXRhYmxlLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93RWRpdGluZz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQGhpZGRlblxyXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdmlldyBmb3JlaWduIGtleSBkYXRhLlxyXG4gICAqIEBkZWZhdWx0IFtdXHJcbiAgICovXHJcbiAgY29sdW1uRGF0YT86IE9iamVjdFtdO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBDU1Mgc3R5bGVzIGFuZCBhdHRyaWJ1dGVzIG9mIHRoZSBjb250ZW50IGNlbGxzIG9mIGEgcGFydGljdWxhciBjb2x1bW4gY2FuIGJlIGN1c3RvbWl6ZWQuXHJcbiAgICpcclxuICAgKiBgYGBodG1sXHJcbiAgICogPGRpdiBpZD1cIkdyaWRcIj48L2Rpdj5cclxuICAgKiBgYGBcclxuICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICogZGF0YVNvdXJjZTogZmlsdGVyRGF0YSxcclxuICAgKiBjb2x1bW5zOiBbXHJcbiAgICogICAgeyBmaWVsZDogJ09yZGVySUQnLCBoZWFkZXJUZXh0OiAnT3JkZXIgSUQnIH0sXHJcbiAgICogICAge1xyXG4gICAqICAgICAgICBmaWVsZDogJ0VtcGxveWVlSUQnLCBoZWFkZXJUZXh0OiAnRW1wbG95ZWUgSUQnLCBjdXN0b21BdHRyaWJ1dGVzOiB7XHJcbiAgICogICAgICAgICAgIGNsYXNzOiAnZW1wbG95ZWVpZCcsXHJcbiAgICogICAgICAgICAgIHR5cGU6ICdlbXBsb3llZS1pZC1jZWxsJ1xyXG4gICAqICAgICAgfVxyXG4gICAqICAgfV1cclxuICAgKiB9KTtcclxuICAgKiBncmlkT2JqLmFwcGVuZFRvKCcjR3JpZCcpO1xyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAqL1xyXG4gIGN1c3RvbUF0dHJpYnV0ZXM/OiB7XHJcbiAgICAgIFt4OiBzdHJpbmddOiBPYmplY3Q7XHJcbiAgfTtcclxuICAvKipcclxuICAgKiBJZiBgZGlzcGxheUFzQ2hlY2tCb3hgIGlzIHNldCB0byB0cnVlLCBpdCBkaXNwbGF5cyB0aGUgY29sdW1uIHZhbHVlIGFzIGEgY2hlY2sgYm94IGluc3RlYWQgb2YgQm9vbGVhbiB2YWx1ZS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgZGlzcGxheUFzQ2hlY2tCb3g/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGNvbHVtbiBkYXRhIHNvdXJjZSAgd2hpY2ggd2lsbCBhY3QgYXMgZm9yZWlnbiBkYXRhIHNvdXJjZS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICAvLyBkYXRhU291cmNlPzogT2JqZWN0W10gfCBEYXRhTWFuYWdlciB8IERhdGFSZXN1bHQ7XHJcbiAgZGF0YVNvdXJjZT86IE9iamVjdFtdO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB3aGljaCBpcyB1c2VkIHRvIGFjaGlldmUgY3VzdG9tIGZvcm1hdHRpbmcgZnJvbSBhbiBleHRlcm5hbCBmdW5jdGlvbi5cclxuICAgKiBUaGlzIGZ1bmN0aW9uIHRyaWdnZXJzIGJlZm9yZSByZW5kZXJpbmcgb2YgZWFjaCBjZWxsLlxyXG4gICAqXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDxkaXYgaWQ9XCJHcmlkXCI+PC9kaXY+XHJcbiAgICogYGBgXHJcbiAgICogYGBgdHlwZXNjcmlwdFxyXG4gICAqIGNsYXNzIEV4dGVuZGVkRm9ybWF0dGVyIGltcGxlbWVudHMgSUNlbGxGb3JtYXR0ZXIge1xyXG4gICAqIHB1YmxpYyBnZXRWYWx1ZShjb2x1bW46IENvbHVtbiwgZGF0YTogT2JqZWN0KTogT2JqZWN0IHtcclxuICAgKiAgIHJldHVybiAnPHNwYW4gc3R5bGU9XCJjb2xvcjonICsgKGRhdGFbJ1ZlcmlmaWVkJ10gPyAnZ3JlZW4nIDogJ3JlZCcpICsgJ1wiPjxpPicgKyBkYXRhWydWZXJpZmllZCddICsgJzwvaT48c3Bhbj4nO1xyXG4gICAqIH1cclxuICAgKiB9XHJcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICogICAgIGRhdGFTb3VyY2U6IGZpbHRlckRhdGEsXHJcbiAgICogICAgIGNvbHVtbnM6IFtcclxuICAgKiAgICAgICAgIHsgZmllbGQ6ICdTaGlwTmFtZScsIGhlYWRlclRleHQ6ICdTaGlwIE5hbWUnIH0sXHJcbiAgICogICAgICAgICB7IGZpZWxkOiAnVmVyaWZpZWQnLCBoZWFkZXJUZXh0OiAnVmVyaWZpZWQgU3RhdHVzJywgZm9ybWF0dGVyOiBFeHRlbmRlZEZvcm1hdHRlciB9XVxyXG4gICAqIH0pO1xyXG4gICAqIGdyaWRPYmouYXBwZW5kVG8oJyNHcmlkJyk7XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgLy8gZm9ybWF0dGVyPzoge1xyXG4gIC8vICAgICBuZXcgKCk6IElDZWxsRm9ybWF0dGVyO1xyXG4gIC8vIH0gfCBJQ2VsbEZvcm1hdHRlciB8IEZ1bmN0aW9uO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1ldGhvZCB1c2VkIHRvIGFwcGx5IGN1c3RvbSBjZWxsIHZhbHVlcyBmcm9tIGV4dGVybmFsIGZ1bmN0aW9uIGFuZCBkaXNwbGF5IHRoaXMgb24gZWFjaCBjZWxsIHJlbmRlcmVkLlxyXG4gICAqXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDxkaXYgaWQ9XCJHcmlkXCI+PC9kaXY+XHJcbiAgICogYGBgXHJcbiAgICogYGBgdHlwZXNjcmlwdFxyXG4gICAqIGxldCBncmlkT2JqOiBHcmlkID0gbmV3IEdyaWQoe1xyXG4gICAqIGRhdGFTb3VyY2U6IFt7IEVtcGxveWVlSUQ6IDEsIEVtcGxveWVlTmFtZTogWydKb2huJywgJ00nXSB9LCB7IEVtcGxveWVlSUQ6IDIsIEVtcGxveWVlTmFtZTogWydQZXRlcicsICdBJ10gfV0sXHJcbiAgICogY29sdW1uczogW1xyXG4gICAqICAgICB7IGZpZWxkOiAnRW1wbG95ZWVJRCcsIGhlYWRlclRleHQ6ICdFbXBsb3llZSBJRCcgfSxcclxuICAgKiAgICAgeyBmaWVsZDogJ0VtcGxveWVlTmFtZScsIGhlYWRlclRleHQ6ICdFbXBsb3llZSBGaXJzdCBOYW1lJyxcclxuICAgKiAgICAgICB2YWx1ZUFjY2Vzc29yOiAoZmllbGQ6IHN0cmluZywgZGF0YTogT2JqZWN0LCBjb2x1bW46IENvbHVtbikgPT4ge1xyXG4gICAqICAgICAgICAgICAgIHJldHVybiBkYXRhWydFbXBsb3llZU5hbWUnXVswXTtcclxuICAgKiAgICAgICAgIH0sXHJcbiAgICogICAgIH1dXHJcbiAgICogfSk7XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgLy8gdmFsdWVBY2Nlc3Nvcj86IFZhbHVlQWNjZXNzb3IgfCBzdHJpbmc7XHJcbiAgdmFsdWVBY2Nlc3Nvcj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBtZXRob2QgdXNlZCB0byBhcHBseSBjdXN0b20gaGVhZGVyIGNlbGwgdmFsdWVzIGZyb20gZXh0ZXJuYWwgZnVuY3Rpb24gYW5kIGRpc3BsYXkgdGhpcyBvbiBlYWNoIGNlbGwgcmVuZGVyZWQuXHJcbiAgICpcclxuICAgKiBgYGBodG1sXHJcbiAgICogPGRpdiBpZD1cIkdyaWRcIj48L2Rpdj5cclxuICAgKiBgYGBcclxuICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICogZGF0YVNvdXJjZTogW3sgRW1wbG95ZWVJRDogMSwgRW1wbG95ZWVOYW1lOiBbJ0pvaG4nLCAnTSddIH0sIHsgRW1wbG95ZWVJRDogMiwgRW1wbG95ZWVOYW1lOiBbJ1BldGVyJywgJ0EnXSB9XSxcclxuICAgKiBjb2x1bW5zOiBbXHJcbiAgICogICAgIHsgZmllbGQ6ICdFbXBsb3llZUlEJywgaGVhZGVyVGV4dDogJ0VtcGxveWVlIElEJyB9LFxyXG4gICAqICAgICB7IGZpZWxkOiAnRW1wbG95ZWVOYW1lJywgaGVhZGVyVGV4dDogJ0VtcGxveWVlIEZpcnN0IE5hbWUnLFxyXG4gICAqICAgICAgIGhlYWRlclZhbHVlQWNjZXNzb3I6IChmaWVsZDogc3RyaW5nLGNvbHVtbjogQ29sdW1uKSA9PiB7XHJcbiAgICogICAgICAgICAgICAgcmV0dXJuIFwibmV3aGVhZGVybmFtZVwiO1xyXG4gICAqICAgICAgICAgfSxcclxuICAgKiAgICAgfV1cclxuICAgKiB9KTtcclxuICAgKiBgYGBcclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICAvLyBoZWFkZXJWYWx1ZUFjY2Vzc29yPzogSGVhZGVyVmFsdWVBY2Nlc3NvciB8IHN0cmluZztcclxuICBoZWFkZXJWYWx1ZUFjY2Vzc29yPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBgZmlsdGVyQmFyVGVtcGxhdGVgIGlzIHVzZWQgdG8gYWRkIGEgY3VzdG9tIGNvbXBvbmVudCBpbnN0ZWFkIG9mIGRlZmF1bHQgaW5wdXQgY29tcG9uZW50IGZvciBmaWx0ZXIgYmFyLlxyXG4gICAqIEl0IGhhdmUgY3JlYXRlIGFuZCByZWFkIGZ1bmN0aW9ucy5cclxuICAgKiAqIGNyZWF0ZTogSXQgaXMgdXNlZCBmb3IgY3JlYXRpbmcgY3VzdG9tIGNvbXBvbmVudHMuXHJcbiAgICogKiByZWFkOiBJdCBpcyB1c2VkIHRvIHBlcmZvcm0gY3VzdG9tIGZpbHRlciBhY3Rpb24uXHJcbiAgICpcclxuICAgKiBgYGBodG1sXHJcbiAgICogPGRpdiBpZD1cIkdyaWRcIj48L2Rpdj5cclxuICAgKiBgYGBcclxuICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICogbGV0IGdyaWRPYmo6IEdyaWQgPSBuZXcgR3JpZCh7XHJcbiAgICogZGF0YVNvdXJjZTogZmlsdGVyRGF0YSxcclxuICAgKiBjb2x1bW5zOiBbXHJcbiAgICogICB7IGZpZWxkOiAnT3JkZXJJRCcsIGhlYWRlclRleHQ6ICdPcmRlciBJRCcgfSxcclxuICAgKiAgIHtcclxuICAgKiAgICAgIGZpZWxkOiAnRW1wbG95ZWVJRCcsIGZpbHRlckJhclRlbXBsYXRlOiB7XHJcbiAgICogICAgICAgICBjcmVhdGU6IChhcmdzOiB7IGVsZW1lbnQ6IEVsZW1lbnQsIGNvbHVtbjogQ29sdW1uIH0pID0+IHtcclxuICAgKiAgICAgICAgICAgICAgbGV0IGlucHV0OiBIVE1MSW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgKiAgICAgICAgICAgICAgaW5wdXQuaWQgPSAnRW1wbG95ZWVJRCc7XHJcbiAgICogICAgICAgICAgICAgIGlucHV0LnR5cGUgPSAndGV4dCc7XHJcbiAgICogICAgICAgICAgICAgIHJldHVybiBpbnB1dDtcclxuICAgKiAgICAgICAgIH0sXHJcbiAgICogICAgICAgICB3cml0ZTogKGFyZ3M6IHsgZWxlbWVudDogRWxlbWVudCwgY29sdW1uOiBDb2x1bW4gfSkgPT4ge1xyXG4gICAqICAgICAgICAgICAgIGFyZ3MuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGFyZ3MuY29sdW1uLmZpbHRlckJhclRlbXBsYXRlLnJlYWQgYXMgRXZlbnRMaXN0ZW5lcik7XHJcbiAgICogICAgICAgICB9LFxyXG4gICAqICAgICAgICAgcmVhZDogKGFyZ3M6IHsgZWxlbWVudDogSFRNTElucHV0RWxlbWVudCwgY29sdW1uSW5kZXg6IG51bWJlciwgY29sdW1uOiBDb2x1bW4gfSkgPT4ge1xyXG4gICAqICAgICAgICAgICAgIGdyaWRPYmouZmlsdGVyQnlDb2x1bW4oYXJncy5lbGVtZW50LmlkLCAnZXF1YWwnLCBhcmdzLmVsZW1lbnQudmFsdWUpO1xyXG4gICAqICAgICAgICB9XHJcbiAgICogICAgIH1cclxuICAgKiAgfV0sXHJcbiAgICogICBhbGxvd0ZpbHRlcmluZzogdHJ1ZVxyXG4gICAqIH0pO1xyXG4gICAqIGdyaWRPYmouYXBwZW5kVG8oJyNHcmlkJyk7XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgLy8gZmlsdGVyQmFyVGVtcGxhdGU/OiBJRmlsdGVyVUk7XHJcbiAgLyoqXHJcbiAgICogIERlZmluZXMgdGhlIGZpbHRlciBvcHRpb25zIHRvIGN1c3RvbWl6ZSBmaWx0ZXJpbmcgZm9yIHRoZSBwYXJ0aWN1bGFyIGNvbHVtbi5cclxuICAgKlxyXG4gICAqICBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgLy8gZmlsdGVyPzogSUZpbHRlcjtcclxuICAvKipcclxuICAgKiBVc2VkIHRvIHJlbmRlciBtdWx0aXBsZSBoZWFkZXIgcm93cyhzdGFja2VkIGhlYWRlcnMpIG9uIHRoZSBHcmlkIGhlYWRlci5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICAvLyBjb2x1bW5zPzogQ29sdW1uW10gfCBzdHJpbmdbXSB8IENvbHVtbk1vZGVsW107XHJcbiAgY29sdW1ucz86IHN0cmluZ1tdIHwgU3luY2Z1c2lvbkdyaWRDb2x1bW5Nb2RlbFtdO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIHRvb2wgdGlwIHRleHQgZm9yIHN0YWNrZWQgaGVhZGVycy5cclxuICAgKlxyXG4gICAqIEBoaWRkZW5cclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgdG9vbFRpcD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBJZiBgaXNQcmltYXJ5S2V5YCBpcyBzZXQgdG8gdHJ1ZSwgY29uc2lkZXJzIHRoaXMgY29sdW1uIGFzIHRoZSBwcmltYXJ5IGtleSBjb25zdHJhaW50LlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgZmFsc2VcclxuICAgKi9cclxuICBpc1ByaW1hcnlLZXk/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIHR5cGUgb2YgY29tcG9uZW50IGZvciBlZGl0aW5nLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgJ3N0cmluZ2VkaXQnXHJcbiAgICovXHJcbiAgZWRpdFR5cGU6IEVkaXRUeXBlIHwgc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIGBlZGl0VHlwZWAoLi4vLi4vZ3JpZC9lZGl0LyNjZWxsLWVkaXQtdHlwZS1hbmQtaXRzLXBhcmFtcykgRGVmaW5lcyBydWxlcyB0byB2YWxpZGF0ZSBkYXRhIGJlZm9yZSBjcmVhdGluZyBhbmQgdXBkYXRpbmcuXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgdmFsaWRhdGlvblJ1bGVzPzogT2JqZWN0O1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBjb21wb25lbnQgd2hlbiBhZGRpbmcgYSBuZXcgcmVjb3JkIHRvIHRoZSBHcmlkLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgbnVsbFxyXG4gICAqIEBhc3BUeXBlIG9iamVjdFxyXG4gICAqL1xyXG4gIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBEZWZpbmVzIHRoZSBgSUVkaXRDZWxsYCguLi8uLi9ncmlkL2VkaXQvI2NlbGwtZWRpdC10ZW1wbGF0ZSkgb2JqZWN0IHRvIGN1c3RvbWl6ZSBkZWZhdWx0IGVkaXQgY2VsbC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IHt9XHJcbiAgICovXHJcbiAgLy8gZWRpdD86IElFZGl0Q2VsbDtcclxuICAvKipcclxuICAgKiBJZiBgaXNJZGVudGl0eWAgaXMgc2V0IHRvIHRydWUsIHRoZW4gdGhpcyBjb2x1bW4gaXMgY29uc2lkZXJlZCBhcyBpZGVudGl0eSBjb2x1bW4uXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIGlzSWRlbnRpdHk/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1hcHBpbmcgY29sdW1uIG5hbWUgb2YgdGhlIGZvcmVpZ24gZGF0YSBzb3VyY2UuXHJcbiAgICogSWYgaXQgaXMgbm90IGRlZmluZWQgdGhlbiB0aGUgYGNvbHVtbnMuZmllbGRgIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBtYXBwaW5nIGNvbHVtbiBuYW1lXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgZm9yZWlnbktleUZpZWxkPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGRpc3BsYXkgY29sdW1uIG5hbWUgZnJvbSB0aGUgZm9yZWlnbiBkYXRhIHNvdXJjZSB3aGljaCB3aWxsIGJlIG9idGFpbmVkIGZyb20gY29tcGFyaW5nIGxvY2FsIGFuZCBmb3JlaWduIGRhdGFcclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IG51bGxcclxuICAgKi9cclxuICBmb3JlaWduS2V5VmFsdWU/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogY29sdW1uIHZpc2liaWxpdHkgY2FuIGNoYW5nZSBiYXNlZCBvbiBpdHMgW2BNZWRpYSBRdWVyaWVzYF0oaHR0cDovL2Nzc21lZGlhcXVlcmllcy5jb20vd2hhdC1hcmUtY3NzLW1lZGlhLXF1ZXJpZXMuaHRtbCkuXHJcbiAgICogYGhpZGVBdE1lZGlhYCBhY2NlcHRzIG9ubHkgdmFsaWQgTWVkaWEgUXVlcmllcy5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0ICcnXHJcbiAgICovXHJcbiAgaGlkZUF0TWVkaWE/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogSWYgYHNob3dJbkNvbHVtbkNob29zZXJgIHNldCB0byBmYWxzZSwgdGhlbiBoaWRlcyB0aGUgcGFydGljdWxhciBjb2x1bW4gaW4gY29sdW1uIGNob29zZXIuXHJcbiAgICogQnkgZGVmYXVsdCBhbGwgY29sdW1ucyBhcmUgZGlzcGxheWVkIGluIGNvbHVtbiBDaG9vc2VyLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIHNob3dJbkNvbHVtbkNob29zZXI/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEBoaWRkZW5cclxuICAgKiBEZWZpbmVzIHRoZSBjb21tYW5kcyBjb2x1bW4gdGVtcGxhdGUgYXMgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRCB3aGljaCBpcyB1c2VkIHRvIGFkZFxyXG4gICAqIGN1c3RvbWl6ZWQgY29tbWFuZCBidXR0b25zIGluIGVhY2ggY2VsbHMgb2YgdGhlIGNvbHVtbi5cclxuICAgKi9cclxuICBjb21tYW5kc1RlbXBsYXRlPzogc3RyaW5nIHwgRnVuY3Rpb247XHJcbiAgLyoqXHJcbiAgICogYGNvbW1hbmRzYCBwcm92aWRlcyBhbiBvcHRpb24gdG8gZGlzcGxheSBjb21tYW5kIGJ1dHRvbnMgaW4gZXZlcnkgY2VsbC5cclxuICAgKiBUaGUgYXZhaWxhYmxlIGJ1aWx0LWluIGNvbW1hbmQgYnV0dG9ucyBhcmVcclxuICAgKiAqIEVkaXQgLSBFZGl0IHRoZSByZWNvcmQuXHJcbiAgICogKiBEZWxldGUgLSBEZWxldGUgdGhlIHJlY29yZC5cclxuICAgKiAqIFNhdmUgLSBTYXZlIHRoZSByZWNvcmQuXHJcbiAgICogKiBDYW5jZWwgLSBDYW5jZWwgdGhlIGVkaXQgc3RhdGUuXHJcbiAgICpcclxuICAgKiBUaGUgZm9sbG93aW5nIGNvZGUgZXhhbXBsZSBpbXBsZW1lbnRzIHRoZSBjdXN0b20gY29tbWFuZCBjb2x1bW4uXHJcbiAgICogYGBgaHRtbFxyXG4gICAqIDxzdHlsZSB0eXBlPVwidGV4dC9jc3NcIiBjbGFzcz1cImNzc1N0eWxlc1wiPlxyXG4gICAqIC5kZXRhaWxzLWljb246YmVmb3JlXHJcbiAgICoge1xyXG4gICAqICAgIGNvbnRlbnQ6XCJcXGU3NGRcIjtcclxuICAgKiB9XHJcbiAgICogPC9zdHlsZT5cclxuICAgKiA8ZGl2IGlkPVwiR3JpZFwiPjwvZGl2PlxyXG4gICAqIGBgYFxyXG4gICAqIGBgYHR5cGVzY3JpcHRcclxuICAgKiB2YXIgZ3JpZE9iaiA9IG5ldyBHcmlkKHtcclxuICAgKiBkYXRhc291cmNlOiB3aW5kb3cuZ3JpZERhdGEsXHJcbiAgICogY29sdW1ucyA6IFtcclxuICAgKiAgeyBmaWVsZDogJ0N1c3RvbWVySUQnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgSUQnIH0sXHJcbiAgICogIHsgZmllbGQ6ICdDdXN0b21lck5hbWUnLCBoZWFkZXJUZXh0OiAnQ3VzdG9tZXIgTmFtZScgfSxcclxuICAgKiAge2NvbW1hbmRzOiBbe2J1dHRvbk9wdGlvbjp7Y29udGVudDogJ0RldGFpbHMnLCBjbGljazogb25DbGljaywgY3NzQ2xhc3M6IGRldGFpbHMtaWNvbn19XSwgaGVhZGVyVGV4dDogJ0N1c3RvbWVyIERldGFpbHMnfVxyXG4gICAqIF1cclxuICAgKiBncmlkT2JqLmFwcGVuZFRvKFwiI0dyaWRcIik7XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBudWxsXHJcbiAgICovXHJcbiAgY29tbWFuZHM/OiBDb21tYW5kTW9kZWxbXTtcclxuICAvKipcclxuICAgKiBJdCBkZWZpbmVzIHRoZSBjdXN0b20gc29ydCBjb21wYXJlciBmdW5jdGlvbi5cclxuICAgKi9cclxuICAvLyBzb3J0Q29tcGFyZXI/OiBTb3J0Q29tcGFyZXIgfCBzdHJpbmc7XHJcbiAgc29ydENvbXBhcmVyPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEBoaWRkZW5cclxuICAgKiBJdCBkZWZpbmVzIHRoZSBjb2x1bW4gaXMgZm9yZWlnbiBrZXkgY29sdW1uIG9yIG5vdC5cclxuICAgKi9cclxuICBpc0ZvcmVpZ25Db2x1bW4/OiAoKSA9PiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIGNlbGwgZWRpdCB0ZW1wbGF0ZSB0aGF0IHVzZWQgYXMgZWRpdG9yIGZvciBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRlbXBsYXRlIHN0cmluZyBvciBIVE1MIGVsZW1lbnQgSUQuXHJcbiAgICpcclxuICAgKiBAYXNwSWdub3JlXHJcbiAgICovXHJcbiAgZWRpdFRlbXBsYXRlPzogc3RyaW5nIHwgRnVuY3Rpb247XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lcyB0aGUgZmlsdGVyIHRlbXBsYXRlL1VJIHRoYXQgdXNlZCBhcyBmaWx0ZXIgZm9yIGEgcGFydGljdWxhciBjb2x1bW4uXHJcbiAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGVtcGxhdGUgc3RyaW5nIG9yIEhUTUwgZWxlbWVudCBJRC5cclxuICAgKlxyXG4gICAqIEBhc3BJZ25vcmVcclxuICAgKi9cclxuICBmaWx0ZXJUZW1wbGF0ZT86IHN0cmluZyB8IEZ1bmN0aW9uO1xyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIG1hcHBpbmcgY29sdW1uIG5hbWUgb2YgdGhlIGZvcmVpZ24gZGF0YSBzb3VyY2UuXHJcbiAgICogSWYgaXQgaXMgbm90IGRlZmluZWQgdGhlbiB0aGUgYGNvbHVtbnMuZmllbGRgIHdpbGwgYmUgY29uc2lkZXJlZCBhcyBtYXBwaW5nIGNvbHVtbiBuYW1lXHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIGxvY2tDb2x1bW4/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIElmIGBhbGxvd1NlYXJjaGluZ2Agc2V0IHRvIGZhbHNlLCB0aGVuIGl0IGRpc2FibGVzIFNlYXJjaGluZyBvZiBhIHBhcnRpY3VsYXIgY29sdW1uLlxyXG4gICAqIEJ5IGRlZmF1bHQgYWxsIGNvbHVtbnMgYWxsb3cgU2VhcmNoaW5nLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgdHJ1ZVxyXG4gICAqL1xyXG4gIGFsbG93U2VhcmNoaW5nPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBJZiBgYXV0b0ZpdGAgc2V0IHRvIHRydWUsIHRoZW4gdGhlIHBhcnRpY3VsYXIgY29sdW1uIGNvbnRlbnQgd2lkdGggd2lsbCBiZVxyXG4gICAqIGFkanVzdGVkIGJhc2VkIG9uIGl0cyBjb250ZW50IGluIHRoZSBpbml0aWFsIHJlbmRlcmluZyBpdHNlbGYuXHJcbiAgICogU2V0dGluZyB0aGlzIHByb3BlcnR5IGFzIHRydWUgaXMgZXF1aXZhbGVudCB0byBjYWxsaW5nIGBhdXRvRml0Q29sdW1uc2AgbWV0aG9kIGluIHRoZSBgZGF0YUJvdW5kYCBldmVudC5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgYXV0b0ZpdD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogZGVmaW5lcyB3aGljaCBzaWRlIHRoZSBjb2x1bW4gbmVlZCB0byBmcmVlemVcclxuICAgKiBUaGUgYXZhaWxhYmxlIGJ1aWx0LWluIGZyZWV6ZSBkaXJlY3Rpb25zIGFyZVxyXG4gICAqICogTGVmdCAtIEZyZWV6ZSB0aGUgY29sdW1uIGF0IGxlZnQgc2lkZS5cclxuICAgKiAqIFJpZ2h0IC0gRnJlZXplIHRoZSBjb2x1bW4gYXQgcmlnaHQgc2lkZS5cclxuICAgKiAqIEZpeGVkIC0gRnJlZXplIHRoZSBjb2x1bW4gYXQgQ2VudGVyLlxyXG4gICAqICogTm9uZSAtIERvZXMgbm90IGZyZWV6ZSB0aGUgY29sdW1uLlxyXG4gICAqXHJcbiAgICogQGRlZmF1bHQgTm9uZVxyXG4gICAqL1xyXG4gIGZyZWV6ZT86IGZyZWV6ZURpcmVjdGlvbjtcclxufVxyXG5cclxuXHJcblxyXG4vKipcclxuICogRGVmaW5lcyBhbGlnbm1lbnRzIG9mIHRleHQsIHRoZXkgYXJlXHJcbiAqIGBgYHByb3BzXHJcbiAqICogTGVmdCA6LSBEZWZpbmVzIExlZnQgYWxpZ25tZW50XHJcbiAqICogUmlnaHQgOi0gRGVmaW5lcyBSaWdodCBhbGlnbm1lbnRcclxuICogKiBDZW50ZXIgOi0gRGVmaW5lcyBDZW50ZXIgYWxpZ25tZW50XHJcbiAqICogSnVzdGlmeSA6LSBEZWZpbmVzIEp1c3RpZnkgYWxpZ25tZW50XHJcbiAqIGBgYFxyXG4gKi9cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBUZXh0QWxpZ24gPSAnTGVmdCcgfCAnUmlnaHQnIHwgJ0NlbnRlcicgfCAnSnVzdGlmeSc7XHJcblxyXG4vKipcclxuICogRGVmaW5lcyB0aGUgY2VsbCBjb250ZW50J3Mgb3ZlcmZsb3cgbW9kZS4gVGhlIGF2YWlsYWJsZSBtb2RlcyBhcmVcclxuICogYGBgcHJvcHNcclxuICogKiBgQ2xpcGAgOi0gIFRydW5jYXRlcyB0aGUgY2VsbCBjb250ZW50IHdoZW4gaXQgb3ZlcmZsb3dzIGl0cyBhcmVhLlxyXG4gKiAqIGBFbGxpcHNpc2AgOi0gIERpc3BsYXlzIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWEuXHJcbiAqICogYEVsbGlwc2lzV2l0aFRvb2x0aXBgIDotIERpc3BsYXlzIGVsbGlwc2lzIHdoZW4gdGhlIGNlbGwgY29udGVudCBvdmVyZmxvd3MgaXRzIGFyZWFcclxuICogYWxzbyBpdCB3aWxsIGRpc3BsYXkgdG9vbHRpcCB3aGlsZSBob3ZlciBvbiBlbGxpcHNpcyBhcHBsaWVkIGNlbGwuXHJcbiAqIGBgYFxyXG4gKiB7JSBjb2RlQmxvY2sgc3JjPSdncmlkL2NsaXBNb2RlL2luZGV4Lm1kJyAlfXslIGVuZGNvZGVCbG9jayAlfVxyXG4gKi9cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBDbGlwTW9kZSA9ICdDbGlwJyB8ICdFbGxpcHNpcycgfCAnRWxsaXBzaXNXaXRoVG9vbHRpcCc7XHJcblxyXG4vKipcclxuICogRGVmaW5lIG9wdGlvbnMgZm9yIGN1c3RvbSBjb21tYW5kIGJ1dHRvbnMuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRNb2RlbCB7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIHRoZSBjb21tYW5kIEJ1dHRvbiB0b29sdGlwXHJcbiAgICovXHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIHRoZSBjb21tYW5kIEJ1dHRvbiB0eXBlXHJcbiAgICpcclxuICAgKiBAYmxhem9yRGVmYXVsdFZhbHVlIG5vbmVcclxuICAgKi9cclxuICB0eXBlPzogQ29tbWFuZEJ1dHRvblR5cGU7XHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIHRoZSBidXR0b24gbW9kZWxcclxuICAgKi9cclxuICAvLyBidXR0b25PcHRpb24/OiBDb21tYW5kQnV0dG9uT3B0aW9ucztcclxufVxyXG5cclxuLyoqXHJcbiAqIERlZmluZXMgdGhlIENvbW1hbmQgQnV0dG9ucyB0eXBlLlxyXG4gKiBgYGBwcm9wc1xyXG4gKiAqIE5vbmUgOi0gIEVkaXQgdGhlIGN1cnJlbnQgcmVjb3JkLlxyXG4gKiAqIEVkaXQgOi0gIEVkaXQgdGhlIGN1cnJlbnQgcmVjb3JkLlxyXG4gKiAqIERlbGV0ZSA6LSBEZWxldGUgdGhlIGN1cnJlbnQgcmVjb3JkLlxyXG4gKiAqIFNhdmUgOi0gU2F2ZSB0aGUgY3VycmVudCBlZGl0ZWQgcmVjb3JkLlxyXG4gKiAqIENhbmNlbCA6LSBDYW5jZWwgdGhlIGVkaXRlZCBzdGF0ZS5cclxuICogYGBgXHJcbiAqL1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIENvbW1hbmRCdXR0b25UeXBlID0gJ05vbmUnIHwgJ0VkaXQnIHwgJ0RlbGV0ZScgfCAnU2F2ZScgfCAnQ2FuY2VsJztcclxuXHJcbi8qKlxyXG4gKiBEZWZpbmVzIGZyZWV6ZSBkaXJlY3Rpb24gb2YgdGhlIGdyaWQgY29sdW1uc1xyXG4gKiBgYGBwcm9wc1xyXG4gKiAqIExlZnQgOi0gZnJlZXplIHRoZSBjb2x1bW5zIGF0IGxlZnQuXHJcbiAqICogUmlnaHQgOi0gZnJlZXplIHRoZSBjb2x1bW5zIGF0IHJpZ2h0LlxyXG4gKiAqIEZpeGVkIDotIGZyZWV6ZSB0aGUgY29sdW1ucyBhdCBjZW50ZXIuXHJcbiAqICogTm9uZSA6LSBkb2VzIG5vdCBmcmVlemUgYW55IGNvbHVtbnMuXHJcbiAqIGBgYFxyXG4gKi9cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBmcmVlemVEaXJlY3Rpb24gPSAnTGVmdCcgfCAnUmlnaHQnIHwgJ0ZpeGVkJyB8ICdOb25lJztcclxuXHJcbi8qKlxyXG4gKiBEZWZpbmVzIHRoZSBFZGl0IFR5cGUgb2YgdGhlIGNvbHVtblxyXG4gKiBgYGBwcm9wc1xyXG4gKiAqIERlZmF1bHRFZGl0IDotIERlZmluZXMgRWRpdFR5cGUgYXMgRGVmYXVsdEVkaXRcclxuICogKiBEcm9wZG93bkVkaXQgOi0gRGVmaW5lcyBFZGl0TW9kZSBhcyBEcm9wZG93bmVkaXRcclxuICogKiBCb29sZWFuRWRpdCA6LSBEZWZpbmVzIEVkaXRNb2RlIGFzIEJvb2xlYW5lZGl0XHJcbiAqICogRGF0ZXBpY2tlckVkaXQgOi0gRGVmaW5lcyBFZGl0TW9kZSBhcyBEYXRlcGlja2VyZWRpdFxyXG4gKiAqIERhdGV0aW1lcGlja2VyRWRpdCA6LSBEZWZpbmVzIEVkaXRUeXBlIGFzIERhdGV0aW1lcGlja2VyZWRpdFxyXG4gKiAqIE51bWVyaWNFZGl0IDotIERlZmluZXMgRWRpdE1vZGUgYXMgTnVtZXJpY2VkaXRcclxuICogYGBgXHJcbiAqL1xyXG5leHBvcnQgZGVjbGFyZSB0eXBlIEVkaXRUeXBlID0gJ2RlZmF1bHRFZGl0JyB8ICdkcm9wRG93bkVkaXQnIHwgJ2Jvb2xlYW5FZGl0JyB8ICdkYXRlUGlja2VyRWRpdCcgfCAnZGF0ZVRpbWVQaWNrZXJFZGl0JyB8ICdudW1lcmljRWRpdCc7XHJcblxyXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnSW5mby5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9vcmdJbmZvLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVjb3JkSW5mbyB9IGZyb20gXCIuL2NvbW1vbi5pbnRlcmZhY2VcIlxuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ0luZm9SZXNwb25zZSB7XG4gICAgUmVxdWVzdElkOiBzdHJpbmdcbiAgICBJc1N1Y2Nlc3M6IGJvb2xlYW5cbiAgICBSZXN1bHQ6IFJlc3VsdFtdXG4gICAgU3RhdHVzQ29kZTogc3RyaW5nXG4gICAgUmVjb3JkQWZmZWN0dGVkOiBudW1iZXJcbiAgICBUb3RhbFJlY29yZHM6IG51bWJlclxuICAgIFRvdGFsRXhlY3V0aW9uVGltZTogbnVtYmVyXG4gICAgTG9nOiBzdHJpbmdbXVxuICAgIEVycm9yczogYW55W11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXN1bHQge1xuICAgIFJlY29yZEluZm86IFJlY29yZEluZm9cbiAgICBMb2NhbGVTZXR0aW5nczogc3RyaW5nXG4gICAgT3JnYW5pemF0aW9uTmFtZTogc3RyaW5nXG4gICAgSUQ6IHN0cmluZ1xuICAgIFByaW1hcnlDb250YWN0OiBhbnlcbiAgICBBZGRyZXNzOiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbmZvIHtcbiAgICBGYXZJY29uOiBzdHJpbmcsXG4gICAgT3JnX0JyYW5kX0NvbG9yOiBzdHJpbmcsXG4gICAgT3JnX0xvZ286IHN0cmluZyxcbiAgICBPcmdfTWVudV9Mb2dvOiBzdHJpbmcsXG4gICAgU2hvd1NpZ25VcDogc3RyaW5nLFxuICAgIFRhZ0xpbmU6IHN0cmluZyxcbiAgICBwcm9maWxlU2NyZWVuSUQ6IHN0cmluZyxcbiAgICB3b3JrRmxvd05hbWU6IHN0cmluZyxcbiAgICBPcmdhbml6YXRpb25OYW1lOiBzdHJpbmdcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnSW5mby5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy9vcmdJbmZvLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVjb3JkSW5mbyB9IGZyb20gXCIuL2NvbW1vbi5pbnRlcmZhY2VcIlxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcmdJbmZvUmVzcG9uc2Uge1xyXG4gICAgUmVxdWVzdElkOiBzdHJpbmdcclxuICAgIElzU3VjY2VzczogYm9vbGVhblxyXG4gICAgUmVzdWx0OiBSZXN1bHRbXVxyXG4gICAgU3RhdHVzQ29kZTogc3RyaW5nXHJcbiAgICBSZWNvcmRBZmZlY3R0ZWQ6IG51bWJlclxyXG4gICAgVG90YWxSZWNvcmRzOiBudW1iZXJcclxuICAgIFRvdGFsRXhlY3V0aW9uVGltZTogbnVtYmVyXHJcbiAgICBMb2c6IHN0cmluZ1tdXHJcbiAgICBFcnJvcnM6IGFueVtdXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVzdWx0IHtcclxuICAgIFJlY29yZEluZm86IFJlY29yZEluZm9cclxuICAgIExvY2FsZVNldHRpbmdzOiBzdHJpbmdcclxuICAgIE9yZ2FuaXphdGlvbk5hbWU6IHN0cmluZ1xyXG4gICAgSUQ6IHN0cmluZ1xyXG4gICAgUHJpbWFyeUNvbnRhY3Q6IGFueVxyXG4gICAgQWRkcmVzczogYW55XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSW5mbyB7XHJcbiAgICBGYXZJY29uOiBzdHJpbmcsXHJcbiAgICBPcmdfQnJhbmRfQ29sb3I6IHN0cmluZyxcclxuICAgIE9yZ19Mb2dvOiBzdHJpbmcsXHJcbiAgICBPcmdfTWVudV9Mb2dvOiBzdHJpbmcsXHJcbiAgICBTaG93U2lnblVwOiBzdHJpbmcsXHJcbiAgICBUYWdMaW5lOiBzdHJpbmcsXHJcbiAgICBwcm9maWxlU2NyZWVuSUQ6IHN0cmluZyxcclxuICAgIHdvcmtGbG93TmFtZTogc3RyaW5nLFxyXG4gICAgT3JnYW5pemF0aW9uTmFtZTogc3RyaW5nXHJcbn0iXX0=
@@ -5,4 +5,4 @@ export var MetadataEntityType;
5
5
  MetadataEntityType["DATA_SOURCE_QUERIES"] = "DataSourceQueries";
6
6
  MetadataEntityType["APP_SCREENS"] = "AppScreens";
7
7
  })(MetadataEntityType || (MetadataEntityType = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3NjaGVtYS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0RBQTBCLENBQUE7SUFDMUIsOENBQXdCLENBQUE7SUFDeEIsK0RBQXlDLENBQUE7SUFDekMsZ0RBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNjaGVtYVJlc3BvbnNlIHtcbiAgUmVxdWVzdElkOiBzdHJpbmdcbiAgSXNTdWNjZXNzOiBib29sZWFuXG4gIFJlc3VsdDogc3RyaW5nXG4gIFN0YXR1c0NvZGU6IHN0cmluZ1xuICBSZWNvcmRBZmZlY3R0ZWQ6IG51bWJlclxuICBUb3RhbFJlY29yZHM6IG51bWJlclxuICBUb3RhbEV4ZWN1dGlvblRpbWU6IG51bWJlclxuICBMb2c6IGFueVtdXG4gIEVycm9yczogYW55W11cbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmdJbmZvIHtcbiAgSUQ6IHN0cmluZztcbiAgT3JnYW5pemF0aW9uTmFtZTogc3RyaW5nO1xuICBQcmltYXJ5Q29udGFjdDogYW55O1xuICBBZGRyZXNzOiBhbnk7XG4gIExvY2FsZVNldHRpbmdzOiBzdHJpbmcgfCBudWxsO1xuICBTdWJkb21haW46IHN0cmluZztcbiAgVGVuYW50Q29kZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuZXhwb3J0IGVudW0gTWV0YWRhdGFFbnRpdHlUeXBlIHtcbiAgQVBQX09CSkVDVFMgPSAnQXBwT2JqZWN0cycsXG4gIEFQUF9GSUVMRFMgPSAnQXBwRmllbGRzJyxcbiAgREFUQV9TT1VSQ0VfUVVFUklFUyA9ICdEYXRhU291cmNlUXVlcmllcycsXG4gIEFQUF9TQ1JFRU5TID0gJ0FwcFNjcmVlbnMnXG59Il19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9pbnRlcmZhY2VzL3NjaGVtYS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBLE1BQU0sQ0FBTixJQUFZLGtCQUtYO0FBTEQsV0FBWSxrQkFBa0I7SUFDNUIsZ0RBQTBCLENBQUE7SUFDMUIsOENBQXdCLENBQUE7SUFDeEIsK0RBQXlDLENBQUE7SUFDekMsZ0RBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNjaGVtYVJlc3BvbnNlIHtcclxuICBSZXF1ZXN0SWQ6IHN0cmluZ1xyXG4gIElzU3VjY2VzczogYm9vbGVhblxyXG4gIFJlc3VsdDogc3RyaW5nXHJcbiAgU3RhdHVzQ29kZTogc3RyaW5nXHJcbiAgUmVjb3JkQWZmZWN0dGVkOiBudW1iZXJcclxuICBUb3RhbFJlY29yZHM6IG51bWJlclxyXG4gIFRvdGFsRXhlY3V0aW9uVGltZTogbnVtYmVyXHJcbiAgTG9nOiBhbnlbXVxyXG4gIEVycm9yczogYW55W11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcmdJbmZvIHtcclxuICBJRDogc3RyaW5nO1xyXG4gIE9yZ2FuaXphdGlvbk5hbWU6IHN0cmluZztcclxuICBQcmltYXJ5Q29udGFjdDogYW55O1xyXG4gIEFkZHJlc3M6IGFueTtcclxuICBMb2NhbGVTZXR0aW5nczogc3RyaW5nIHwgbnVsbDtcclxuICBTdWJkb21haW46IHN0cmluZztcclxuICBUZW5hbnRDb2RlOiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBNZXRhZGF0YUVudGl0eVR5cGUge1xyXG4gIEFQUF9PQkpFQ1RTID0gJ0FwcE9iamVjdHMnLFxyXG4gIEFQUF9GSUVMRFMgPSAnQXBwRmllbGRzJyxcclxuICBEQVRBX1NPVVJDRV9RVUVSSUVTID0gJ0RhdGFTb3VyY2VRdWVyaWVzJyxcclxuICBBUFBfU0NSRUVOUyA9ICdBcHBTY3JlZW5zJ1xyXG59Il19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy91c2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VyIHtcbiAgaWQ6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbiAgYmlvOiBzdHJpbmc7XG4gIGltYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJlc3BvbnNlIHtcbiAgdXNlcjogVXNlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VyU3RvcmUge1xuICBpZDogYW55XG4gIGVtYWlsOiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG4gIGF2YXRhcjogc3RyaW5nXG4gIHN0YXR1czogc3RyaW5nXG4gIHRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblJlc3BvbnNlIHtcbiAgUmVxdWVzdElkOiBzdHJpbmdcbiAgSXNTdWNjZXNzOiBib29sZWFuXG4gIFJlc3VsdDogUmVzdWx0XG4gIFN0YXR1c0NvZGU6IHN0cmluZ1xuICBSZWNvcmRBZmZlY3R0ZWQ6IG51bWJlclxuICBUb3RhbFJlY29yZHM6IG51bWJlclxuICBUb3RhbEV4ZWN1dGlvblRpbWU6IG51bWJlclxuICBMb2c6IGFueVtdXG4gIEVycm9yczogYW55W11cbn1cblxuIGludGVyZmFjZSBSZXN1bHQge1xuICB1c2VyOiBVc2VyXG4gIFRva2VuOiBzdHJpbmdcbiAgUmVmcmVzaFRva2VuOiBzdHJpbmdcbiAgU3VjY2VzczogYm9vbGVhblxuICBFcnJvcnM6IGFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIge1xuICBJZDogYW55XG4gIFBlcnNvbkRhdGE6IFBlcnNvbkRhdGFcbiAgVXNlck5hbWU6IHN0cmluZ1xuICBUZWFtczogYW55XG4gIFJvbGVzOiBSb2xlW11cbiAgT3JnRGV0YWlsczogYW55XG4gIE1haWxpbmdBZGRyZXNzOiBhbnlcbiAgTG9jYWxlOiBhbnlcbiAgQXR0cmlidXRlczogQXR0cmlidXRlc1xufVxuXG4gaW50ZXJmYWNlIFBlcnNvbkRhdGEge1xuICBGaXJzdE5hbWU6IHN0cmluZ1xuICBNaWRkbGVOYW1lOiBhbnlcbiAgUHJvZmlsZUltYWdlVVJMOiBhbnlcbiAgTGFzdE5hbWU6IHN0cmluZ1xuICBFbWFpbElEOiBhbnlcbiAgQ29udGFjdHM6IGFueVxuICBOb3RpZmljYXRpb25EZXRhaWxzOiBzdHJpbmdcbn1cblxuIGludGVyZmFjZSBSb2xlIHtcbiAgSUQ6IHN0cmluZ1xuICBSb2xlTmFtZTogc3RyaW5nXG4gIERlc2NyaXB0aW9uOiBhbnlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdHRyaWJ1dGVzIHtcbiAgSXNFbmFibGVkOiBzdHJpbmdcbiAgTG9jYWxlU2V0dGluZ3M6IGFueVxuICBMYXN0TG9naW5UaW1lOiBzdHJpbmdcbiAgUGVyc29uSWQ6IHN0cmluZ1xuICBJZDogc3RyaW5nXG4gIFVzZXJOYW1lOiBzdHJpbmdcbiAgTm9ybWFsaXplZFVzZXJOYW1lOiBzdHJpbmdcbiAgRW1haWw6IHN0cmluZ1xuICBOb3JtYWxpemVkRW1haWw6IHN0cmluZ1xuICBFbWFpbENvbmZpcm1lZDogc3RyaW5nXG4gIFBhc3N3b3JkSGFzaDogc3RyaW5nXG4gIFNlY3VyaXR5U3RhbXA6IHN0cmluZ1xuICBDb25jdXJyZW5jeVN0YW1wOiBzdHJpbmdcbiAgUGhvbmVOdW1iZXI6IGFueVxuICBQaG9uZU51bWJlckNvbmZpcm1lZDogc3RyaW5nXG4gIFR3b0ZhY3RvckVuYWJsZWQ6IHN0cmluZ1xuICBMb2Nrb3V0RW5kOiBhbnlcbiAgTG9ja291dEVuYWJsZWQ6IHN0cmluZ1xuICBBY2Nlc3NGYWlsZWRDb3VudDogc3RyaW5nXG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaW50ZXJmYWNlcy91c2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBVc2VyIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgdG9rZW46IHN0cmluZztcclxuICB1c2VybmFtZTogc3RyaW5nO1xyXG4gIGJpbzogc3RyaW5nO1xyXG4gIGltYWdlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlclJlc3BvbnNlIHtcclxuICB1c2VyOiBVc2VyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJTdG9yZSB7XHJcbiAgaWQ6IGFueVxyXG4gIGVtYWlsOiBzdHJpbmdcclxuICBuYW1lOiBzdHJpbmdcclxuICBhdmF0YXI6IHN0cmluZ1xyXG4gIHN0YXR1czogc3RyaW5nXHJcbiAgdG9rZW46IHN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luUmVzcG9uc2Uge1xyXG4gIFJlcXVlc3RJZDogc3RyaW5nXHJcbiAgSXNTdWNjZXNzOiBib29sZWFuXHJcbiAgUmVzdWx0OiBSZXN1bHRcclxuICBTdGF0dXNDb2RlOiBzdHJpbmdcclxuICBSZWNvcmRBZmZlY3R0ZWQ6IG51bWJlclxyXG4gIFRvdGFsUmVjb3JkczogbnVtYmVyXHJcbiAgVG90YWxFeGVjdXRpb25UaW1lOiBudW1iZXJcclxuICBMb2c6IGFueVtdXHJcbiAgRXJyb3JzOiBhbnlbXVxyXG59XHJcblxyXG4gaW50ZXJmYWNlIFJlc3VsdCB7XHJcbiAgdXNlcjogVXNlclxyXG4gIFRva2VuOiBzdHJpbmdcclxuICBSZWZyZXNoVG9rZW46IHN0cmluZ1xyXG4gIFN1Y2Nlc3M6IGJvb2xlYW5cclxuICBFcnJvcnM6IGFueVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXIge1xyXG4gIElkOiBhbnlcclxuICBQZXJzb25EYXRhOiBQZXJzb25EYXRhXHJcbiAgVXNlck5hbWU6IHN0cmluZ1xyXG4gIFRlYW1zOiBhbnlcclxuICBSb2xlczogUm9sZVtdXHJcbiAgT3JnRGV0YWlsczogYW55XHJcbiAgTWFpbGluZ0FkZHJlc3M6IGFueVxyXG4gIExvY2FsZTogYW55XHJcbiAgQXR0cmlidXRlczogQXR0cmlidXRlc1xyXG59XHJcblxyXG4gaW50ZXJmYWNlIFBlcnNvbkRhdGEge1xyXG4gIEZpcnN0TmFtZTogc3RyaW5nXHJcbiAgTWlkZGxlTmFtZTogYW55XHJcbiAgUHJvZmlsZUltYWdlVVJMOiBhbnlcclxuICBMYXN0TmFtZTogc3RyaW5nXHJcbiAgRW1haWxJRDogYW55XHJcbiAgQ29udGFjdHM6IGFueVxyXG4gIE5vdGlmaWNhdGlvbkRldGFpbHM6IHN0cmluZ1xyXG59XHJcblxyXG4gaW50ZXJmYWNlIFJvbGUge1xyXG4gIElEOiBzdHJpbmdcclxuICBSb2xlTmFtZTogc3RyaW5nXHJcbiAgRGVzY3JpcHRpb246IGFueVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZXMge1xyXG4gIElzRW5hYmxlZDogc3RyaW5nXHJcbiAgTG9jYWxlU2V0dGluZ3M6IGFueVxyXG4gIExhc3RMb2dpblRpbWU6IHN0cmluZ1xyXG4gIFBlcnNvbklkOiBzdHJpbmdcclxuICBJZDogc3RyaW5nXHJcbiAgVXNlck5hbWU6IHN0cmluZ1xyXG4gIE5vcm1hbGl6ZWRVc2VyTmFtZTogc3RyaW5nXHJcbiAgRW1haWw6IHN0cmluZ1xyXG4gIE5vcm1hbGl6ZWRFbWFpbDogc3RyaW5nXHJcbiAgRW1haWxDb25maXJtZWQ6IHN0cmluZ1xyXG4gIFBhc3N3b3JkSGFzaDogc3RyaW5nXHJcbiAgU2VjdXJpdHlTdGFtcDogc3RyaW5nXHJcbiAgQ29uY3VycmVuY3lTdGFtcDogc3RyaW5nXHJcbiAgUGhvbmVOdW1iZXI6IGFueVxyXG4gIFBob25lTnVtYmVyQ29uZmlybWVkOiBzdHJpbmdcclxuICBUd29GYWN0b3JFbmFibGVkOiBzdHJpbmdcclxuICBMb2Nrb3V0RW5kOiBhbnlcclxuICBMb2Nrb3V0RW5hYmxlZDogc3RyaW5nXHJcbiAgQWNjZXNzRmFpbGVkQ291bnQ6IHN0cmluZ1xyXG59XHJcbiJdfQ==